Android 開發版本大變紀錄




    現在開發一個向下相容的Android App, 要注意的事情還真是"不哩啊"多~ 還好開發過程中, Android Studio會給一些提示, 告訴我們該怎麼做. 舊的Eclipse專案如果要升級App, 勢必要改(import)成gradle架構, 對於舊的build system就會變得不方便了. 最近的development tool在 25.X 版以後的不知道哪個改版(2017年的2月底三月初左右), 更新後會強制刪掉ADT和SDK Manager(Google不是說Do no evil嗎?), 所以念舊的開發者如我, 勢必要準備兩份Android SDK, 一份舊的給Eclipse用, 一分新的給Android Studio...





Level24 (Android7 / N)





Level23 (Android6.0 / Marshmallow)

1. Runtime permission: target level 23+的app 機制改成App執行時詢問權限(這點向iOS致敬了)



2. 休眠(Doze) 與 App待命(App Standby)機制 : 機制的前提是關螢幕以及沒連接電源, 當連接電源或開螢幕則解除機制. (參考文)
  • 休眠(或翻作打盹?)時, App : 不能用網路 / 傳統AlarmManager會延遲運作 / 不能WakeLock / 不能WiFi-scan / 不能用SyncAdapter / 不能用JobScheduler. 休眠後每隔一段時間會醒來一下下讓app做以上事情, 但休眠越久系統被喚醒(驚醒?)的間隔時間越長.
  • 都沒有以下的狀態一段時候, App會變成"待命": 被啟用 / 前景運行 / 系統通知欄有訊息. 待命的App一天只被允許連一次網路.
  • 用戶可設白名單讓App破除以上限制. App可跳轉到白名單設定頁, 也可以由API得知使用者有沒有把自己列為白名單.
3.網路:
  • sdk移掉Apache HTTP Client: 要用的話要額外加回lib包
  • BoringSSL取代OpenSSL lib (NDK開發者注意)

4. 硬體資訊受限:
5. 其他 ...





Level19 (Android4.4 / KitKat)

1. 提供App真正的全螢幕顯示 -- 沈浸模式 (immersive mode):
以App UI的全螢幕來看 "狀態欄+導航欄"系統UI的沈浸設定, 可以知道系統UI與App UI的交互是有縮回去或是沒縮回去, 背景色是半透明還是不透明的差別; 但是 App UI的全螢幕, 還是在那裡不動, 寬高不會受影響, 只是 "狀態欄+導航欄" 到底如何呈現的差別, App UI有被擋到還是沒被擋到. 此外, Actionbar(或稱AppBar) 屬於 App UI的一部份, 這部分再視需求另外處理.





參考:
API Level & Platform Highlight




Comments

Popular posts from this blog

[Android App推薦] 利用Wi-Fi熱點分享3G/4G/5G網路, 可以設定事件或排程自動啓閉熱點~

[SEO] 為Google Blogger頁面做搜尋引擎優化