進度條

Android 系統誰不認識呢?簡述 Android 開發與入門一些該知道的事

果粉別哭!淺談 Android 安卓系統的歷史緣由與開發相關議題

作者: 進度條編輯群 更新日期:

蘋果之於 Google,iOS 之於 Android,在行動裝置普及的現在,這兩大陣營目前仍處於一種平分秋色、難分難捨的瑜亮情懷,但關於蘋果與 iOS 等歷史介紹,想必大家一定毫不陌生,畢竟賈伯斯傳都拍成電影了。

 

但事實上,雖然蘋果的 iPhone 手機因為在高階手機吃下市場大片江山,讓百家爭鳴的安卓 Android 系統手機即使整體市占率最低也有 75% 以上也相形失色。不過在家用電器市場至物聯網智慧家電,以高單價的 Sony 的電視為例,只要掛上的是 Android 系統,同規格硬是比 Sony 自有系統貴上不少呢!

 

所以在小編開始為大家介紹 Android 安卓系統的發展歷史之前,請先盡量把既定想法放得更寬廣一些,Android 並不是三星 Samsung 、Sony 與 HTC,也不是手機與平板專用的系統。至於他能做到什麼,就還請大家繼續往下看。

 

 

pexels-thorn-yang-410635.jpg

 

 

首先 Android 是一個以 Linux 為基底的開放式行動裝置作業系統,早期由 android.Inc (沒錯,同名專輯的概念)

公司的 Andy Rubin 進行開發,而在 2005 年被 Google 精準獨到的眼光收購後,現由 Google 成立的 OHA (Open Handset Alliance,開放手持設備聯盟, WIKI)持續領導與開發。

 

 

這時候如果想到 Android 時,難免不經聯想到 HTC,沒錯! 在 2008 年時,HTC 推出了全球第一個使用 Android 作業系統的手機 - T-Mobile G1。當時 G1 裡面已經有著許多知名的 Google 服務,例如 Google map、Youtube ... 等,僅當時全球業界都不看好安卓,但這些其實都在 Google 的大計畫之中。

 

 

pexels-mohi-syed-47261.jpg

 

 

因為早在 2007 年, Google 就做了一個扭轉安卓歷史定位的重要決定 - 開源 open source

 

 

 

在 2007 年, Google 與 HTC、Samsung 和 Motorola 一起成立 OHA 後沒多久, 就以 Apache 免費開放原始碼許可證的 License 授權,開源了 Android 的原始碼,目的是為未來的行動裝置,可以擁有一個「開放的行動裝置平台」,而這項舉動也是加速了 Android 的普及化,也間接催生了 2008 年 T-Mobile G1 (HTC Dream)的誕生,並於之後幾年陸續打敗了 Windows 與諾基亞 Symbian 系統。

 

 

所以對於普羅大眾來說,Android 代表的,可並非是一個免費的平台這麼簡單,舉例以設備製造商 HTC 來說,使用 Android 的好處就是,不用每出一隻新手機,就得被收取一次 OS License (作業系統授權)費用;而硬體開發商來說,像是一些耳機、穿戴式裝置硬體商等等,也可以使用 Android 來做特有的裝置功能,更不需要被設備製造商綁架。

 

 

pexels-lisa-fotios-1092644.jpg

 

 

此外,Android 作為一個作業系統其實也不是無中生有,Android 的核心層是採用 Linux 的 Kernel 核心,開源加上採用 Linux 核心,既有的 Linux 開發者可以很快地上手。使用 Linux kernel 在意義上不單是一樣的系統核心那麼簡單,系統核心同時間也管理著裝置的「驅動程式」,這表示如果在當時有任何的新裝置要與 Android 互動,並不需要「重新」了解整個程式架構也可以撰寫出公版程式。甚至只要文件完整,一般的開發者玩家也可以自行撰寫「驅動程式」。讓很多高手可以發表有趣的 Side Project,例如一些稀奇古怪的智慧家電,活絡社群。

(可參考:Android things 這個適合開發 IoT 物聯網的 Android 版本)

  

 

 

 

除去韌體段,Android 出產的時間點是 JAVA 最強勢的時間點,所以 Android 的應用程式選擇了以 Java 來撰寫,眾多的 Java 開發者為整個社群提供了相當的能量。由 Google 提供 SDK (Software Development Kit, 軟體開發工具),只要照著範例程式就可以寫出相當有趣的功能。例如藍芽傳輸、鏡頭控制、拍照錄影....等雖然現在的開發者已經習以為常的功能。但是想想看原本要用 C 語言針對裝置一個一個指令執行,閱讀晶片的Spec。現在只要「裝置廠商」有先撰寫好驅動程式符合 Android 規定,利用 Java 照著SDK 說明 call API 就可以完成功能是多麼輕鬆。

 

 

pexels-zain-ali-971325.jpg

 

同時在 Android 裡你也可以讓 Java 與 C 語言或是 C++ 溝通,如果是在比較系統層面的調整中,很多時候使用C 與 C++ 是更可以與 Kernel 溝通的。(可參考:Add C and C++ code to your project ,  JNI, NDK

 

 

 

最後,也是很大的優點,現在撰寫 Android 程式只要下載 Android studio,在 Windows 或是 MacOS 都可以執行與開發,並不像開發蘋果 iOS 程式那樣最終一定要一台 MacOS 的電腦 使用 XCode 編譯。所以入門門檻低很多。

 

 

2017 年 Google 正式宣佈較為年輕的 Kotlin 成為官方主要開發語言。因為比較新,所以在眾多的特性上面比起 Java 更直觀。而且 Kotlin 本質上還是執行在 JVM (Java Virtual Machine, Java 虛擬機器)上,所以其實在專案中與 Java 的共融性還是很高 (可參考 Mix Java and Kotlin in one project)。

 

 

 

 

所以如果你剛好不是果粉,手上又有一台電腦(誰沒有呢?),有時間就開發個 Android APP 來玩玩吧!

 

 


最後,如果你喜歡我們的文章,別忘了到我們的FB粉絲團按讚喔!!

Small logo

進度條編輯群

進度條編輯團隊