Android 系統誰不認識呢?簡述 Android 開發與入門一些該知道的事
果粉別哭!淺談 Android 安卓系統的歷史緣由與開發相關議題
蘋果之於 Google,iOS 之於 Android,在行動裝置普及的現在,
所以在小編開始為大家介紹 Android 安卓系統的發展歷史之前,請先盡量把既定想法放得更寬廣一些,Android 並不是三星 Samsung 、Sony 與 HTC,也不是手機與平板專用的系統。至於他能做到什麼,就還請大家繼續往下看。
我想寫手機程式,但我不知道該選iOS還是Android
Android還是iOS,你的工作是侷限在身分,還是侷限在天分
有網站就不需要APP?放棄APP也放棄了超高價值的融入生活的再行銷方式(iOS, Android)
首先 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 的大計畫之中。
因為早在 2007 年, Google 就做了一個扭轉安卓歷史定位的重要決定 - 開源 open source!
在 2007 年, Google 與 HTC、Samsung 和 Motorola 一起成立 OHA 後沒多久, 就以 Apache 免費開放原始碼許可證的 License 授權,開源了 Android 的原始碼,目的是為未來的行動裝置,可以擁有一個「
所以對於普羅大眾來說,Android 代表的,可並非是一個免費的平台這麼簡單,舉例以設備製造商 HTC 來說,使用 Android 的好處就是,不用每出一隻新手機,就得被收取一次 OS License (作業系統授權)費用;而硬體開發商來說,像是一些耳機、
此外,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 就可以完成功能是多麼輕鬆。
同時在 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粉絲團按讚喔!!