進度條

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

進度條編輯群

進度條編輯團隊