Android發展史(Android各版本特性-技術篇)
文章整理了Android 0.x,Android 1.x, Android 2.x,Android 3.x,Android 4.x,Android 5.x,Android 6.x相關技術更新的內容
之前已經整理了“Android發展史(知識篇)”,上次“知識篇”主要收集的是Android相關發展歷程和各個版本新特性的描述,其中並未涉及到技術內容。這篇文章主要是收集Android各版本技術相關的內容。
1 Android 0.x
AndroidBeta(阿童木):2008年8月18日釋出(內測版)
主要更新如下:
(1)新增一些新的開發工具,例如Eclipse layout佈局支援預覽,支援編輯9-patch影象等;
2 Android 1.x
1 Android1.0
發條機器人: 2008年9月23日釋出(內測版)
首款Android 裝置the T-Mobile G1搭載Androd1.0,內建了Android Market beta。
2 Android1.5
Cupcake(紙杯蛋糕):2009年4月30日釋出。
3 Android1.6[1]
Donut(甜甜圈):2009年9月15日釋出。
(1) 全新的拍照介面;
(2) 支援OpenCore2媒體引擎;
(3) 新增面向視覺或聽覺困難人群的易用性外掛。
3 Android 2.x
1 Android2.0/2.1
Éclair(鬆餅):2009年10月26日釋出。[1]
(1) 新的瀏覽器的使用者介面和支援HTML5
2 Android2.2/2.2.1
Froyo(凍酸奶) :2010年5月20日釋出。[1]
3 Android2.3.x[1]
Gingerbread(薑餅) :2010年12月7日釋出。
(1) 增加了新的垃圾回收和優化處理事件;
(2) 原生程式碼可直接存取輸入和感應器事件、EGL/OpenGLES、OpenSL ES;
(3) 新的管理視窗和生命週期的框架;
(4) 寬頻編碼,提供了新的音訊效果器;
(5) 支援前置攝像頭、SIP/VOIP和NFC(近場通訊)[2]
NFC可以在不接觸的情況下實現資料交換通訊,可以很好的代替RFID SIM卡實現手機支付等擴充套件功能,當然Android2.3提示這需要硬體的支援,新增包在android.nfc包含NfcAdapter,NdefMessage,NdefRecord等類,類似藍芽的處理方式,使用該API需要宣告許可權
4 Android 3.x(蜂巢)
4.1 Android3.0
Honeycomb(蜂巢):2011年2月2日釋出。[1]
4.2 Android3.1
Honeycomb(蜂巢) :2011年5月11日布釋出。[1]
(1) 將Android手機系統跟平板系統再次合併從而方便開發者;
4.3 Android3.2
Honeycomb(蜂巢):2011年7月13日釋出。[1]
5 Android4.x
1 Android 4.0
Ice Cream Sandwich(冰激凌三明治):2011年10月19日在香港釋出。[1]
2 Android4.1
(1) 可以自定義獨立的不需要任何許可權的服務;
(2) 具有更好的記憶體管理,在系統呼叫onLowMemory()函式前,會先呼叫ComponentCallbacks2;
(3) 新添acquireUnstableContentProviderClient()對於不同app之間互動帶來便捷;
(4) 使用Intent.ACTION_CHANGE_LIVE_WALLPAPER支援應用設定動態桌布;
(5) 可以為每個Activity設定android:parentActivityName,這樣的話,點選action bar的返回按鈕將返回到android:parentActivityName所宣告的父Activity;
(6) 支援低水平的視訊的解碼和編碼;
3 Android4.2
(1)儘可能使用GPU進行指令碼渲染
(2)Fragments中可以新增子Fragments
(3)Google Now現可允許使用者使用Gamail作為新的資料來源,如改進後的航班追蹤功能、酒店和餐廳預訂功能以及音樂和電影推薦功能等
(4) 改善平板電腦使用者體驗,特別是在狀態列,導航欄以及通知欄上下功夫。在不同尺寸的螢幕上,將狀態列放在頂部,在下拉狀態列的同時,順帶出通知欄和快速設定欄目。導航欄將放在螢幕底部;擴充套件通知欄,允許使用者直接開啟應用
(5)安全方面改善:[4]
<1>應用安裝校驗,應用在安裝進手機前,系統會彈框讓使用者選擇安裝與否;
<2>在發出會扣取高額費用的簡訊前,系統會新啟一個通知讓使用者選擇傳送與否;
<3>使用者可以配置VPN網路,假如配置了VPN,那麼使用者只能訪問該網路中的資源,這樣可以防止傳送資源到其他網路;
<4>分組顯示許可權,方便使用者管理與檢視
<5>強化初始化指令碼,支援”nofollow”HTML標籤Nofollow 講解連結
<6>ContentProvider的預設屬性由“export”改變為“false”,這樣可以減少其他應用的表面攻擊;
<7>加密方面,由原來的“SecureRandom”和“Cipher.RSA”改為“OpenSSL”(6) 在開發者選項中新增新的欄目:
<1>增加提交錯誤報告;
<2>電源鍵選單錯誤報告;
<3>通過USB驗證應用;
<4>顯示GPU檢視更新;
<5>強制啟用4X MSAA;
<6>模擬輔助顯示裝置;
<7>啟動OpenGl跟蹤;
4 Android4.3
(1)支援OpenGL ES 3.0;
(2)增強藍芽連線功能,支援Android裝置使用藍芽技術連線其他擁有藍芽功能的裝置和感測器;
(3)支援開放的影象壓縮格式VP8;
(4)增強系統棧列印日誌功能,從現在開始,可以收集硬體模組、核心功能、Dalvik虛擬機器等相關的垃圾回收,資訊載入等資訊;
(5)對裝置中的app可檢視GPU效能分析
(6)StrictMode增加對URLS的警告,當一個app使用file:// URI對另一個app檔案輸出時就會警告,建議使用FileProvider
5 Android4.4
(1)透明的系統UI樣式[5]
(2)增強對通知內容的獲取,監聽通知的服務可以獲取通知的文字、圖示、圖片、進度、計時器等;[5]
(3)改進WebView,更好的支援HTML5,CSS3以及JavaScript,支援使用Chrome開發工具遠端調式移動裝置中WebView 的內容;[5]
(4)Android SDK支援螢幕錄影。這對於開發者來說無疑是個福音,然而手機裝置還是沒內建這個功能的。螢幕錄影windows dos下操作方法: [5]
第一步:adb shell screenrecord + 儲存路徑,例如:adb shell screenrecord /sdcard/aaa.mp4
再按CTRL+C 即退出錄影
(5)支援使用IR blasters新API編輯出來的app可以通過發射紅外線遠端控制近場的電視、調諧器、交換器以及其他電子裝置;[5]
(6)新增ART模式
Android 5.0以上預設是使用ART模式,而部分Android4.4深度定製系統,並不提供這個模式,比如小米系統。(7)無障礙設定中新增字幕欄目,
正常app中將不會顯示無障礙的設定,只有特定開發無障礙支援的app才會顯示這個效果
(8)開發者選項中新增程序狀態
如果服務執行時間超過自己預定時間或者程式記憶體評價使用率過高,那麼說明這個程式很可能有bug. [5]
6 Android 5.x
Lollipop(棒棒糖):2014 年 10 月 15 日釋出。
(1)Material design
Material design算是Android 系統風格的里程碑,其3D UI風格新穎,貼近人機互動;[6](2)系統由以往的Dalvik模式改為採用ART(Android Runtime)模式,實現ahead-of-time (AOT)靜態編譯與just-in-time (JIT)動態編譯互動進行;[6]
(3)支援Khronos OpenGL ES 3.1,給遊戲以及其他app提供高效能的螢幕展示;[6]
(4)託管配置 [6] [7]
Android 5.0 提供了用於在企業環境內執行應用的新功能。如果使用者具有現有的個人帳戶,則裝置管理員可以啟動託管配置流程來向裝置新增一個共存但單獨的“託管配置檔案”。與託管配置檔案關聯的應用將與非託管應用一起出現在使用者的啟動器、“最近用過”螢幕以及通知中。
啟動器可以通過向圖示繪圖新增一個工作標記,使託管應用更加惹人注目
(5)支援互作用複合感測器、傾斜探測器感測器、心率感測器[6]
互作用複合感測器能夠探測特別的手勢,例如喚醒手勢、篩選手勢、瀏覽手勢(6)支援64位系統;
開發時記得要考慮相容64位系統的手機。(7)限制只有簽名一樣的兩個App才能自定義一樣的許可權名字,如果簽名不一樣,那麼第二個安裝包將安裝不上。在5.0以前,允許簽名不一樣的兩個App自定義不一樣的許可權名字,但是系統只會把這個許可權指定給第一個app;
7 Android 6.x
Marshmallow(棉花糖):2015年9月30日
(1)新增執行時許可權概念[8]
Android6.0或以上版本,使用者可以完全控制應用許可權。當用戶安裝一個app時,系統預設給app授權部分基礎許可權,其他敏感許可權,需要開發者自己注意,當涉及敏感許可權時,開發者需要手動請求系統授予許可權,系統這時會彈框給使用者,倘若使用者拒絕,如果沒有保護,app將直接崩潰,倘若有保護,app也無法使用相關功能。(2)新增瞌睡模式和待機模式
瞌睡模式:當不碰手機,手機自動關閉屏幕後,過一會,手機將進入瞌睡模式。在瞌睡模式下,裝置只會定期的喚醒,然後繼續執行等待中的任務接著又進入瞌睡;
待機模式:假如使用者一段時間不觸碰手機,裝置將進入待機模式。在這個模式下,系統會認為所有app是閒置的,這時系統會關閉網路,並且暫停app之前正在執行的任務。(3)移除對Apache HTTP client的支援,建議使用HttpURLConnection。如果還是想用Apache HTTP client,
那麼需要在build.gradle中新增
android {
useLibrary 'org.apache.http.legacy'
}
(4)使用BoringSSL加密庫取代OpenSSL支援庫;
(5)為了保護使用者資料安全,使用程式碼WifiInfo.getMacAddress()和BluetoothAdapter.getAddress()將得“02:00:00:00:00:00”;
(6)移除瀏覽器標籤相關API;
(7)Android Keystore provider不再支援DSA,但是仍然支援ECDSA
參考文獻
[1] android 文件連結
[2]android 2.3 文件連結
[3]Jelly Bean介紹 文件連結
[4] Jelly Bean介紹 文件連結
[5] KitKat 介紹 文件連結
[6] Lollipop 介紹 文件連結
[7] Android 5.0 API新增和改進 文件連結
[8] Marshmallow 介紹 文件連結