依照你選的 level 變更,不支援的 package 會變成灰色。
另外在每一個 package 的說明頁都會有 "Added in API level " 的標示。
api level 對應 Android OS version,android 10 之後:
Platform Version API level 14 34 13 33 12 32 31 11 30 10 29
另外,這個: Android OS core topics,左邊panel 的每個 item 都有列出每個feature 在 哪個 Android 版本開始實作。
太多了,每個都有細項可以看。
大概列一下每個版本新增的package api.
Android 14(level 34):
- adservice : 不清楚,好想是open advertising id 供 ap 使用
- documentid :
- sdk sandbox : application sandbox 的 user api
有關 application 的 security, isolation,goole 有一篇說明從 android 5 到 android 10 的改進 -- app-sandbox:
- In Android 5.0, SELinux provided mandatory access control (MAC) separation between the system and apps. However, all third-party apps ran within the same SELinux context so inter-app isolation was primarily enforced by UID DAC.
- In Android 6.0, the SELinux sandbox was extended to isolate apps across the per-physical-user boundary. In addition, Android also set safer defaults for application data: For apps with targetSdkVersion >= 24, default DAC permissions on an app's home dir changed from 751 to 700. This provided safer default for private app data (although apps may override these defaults).
- In Android 8.0, all apps were set to run with a seccomp-bpf filter that limited the syscalls that apps were allowed to use, thus strengthening the app/kernel boundary.
- In Android 9 all non-privileged apps with targetSdkVersion >= 28 must run in individual SELinux sandboxes, providing MAC on a per-app basis. This protection improves app separation, prevents overriding safe defaults, and (most significantly) prevents apps from making their data world accessible.
- In Android 10 apps have a limited raw view of the filesystem, with no direct access to paths like /sdcard/DCIM. However, apps retain full raw access to their package-specific paths, as returned by any applicable methods, such as Context.getExternalFilesDir().
其他的新功能還有 apk cached (freezer): cached-apps-freezer,加速 app 啟動時間。
大的功能是硬體的檢查: Android Health,一樣在每個android 版本有不同的實作。
一開始的brief:
Android 9 includes android.hardware.health HAL 2.0, a major version upgrade from health@1.0 HAL. This new HAL has the following advantages:
- Cleaner separation between framework and vendor code.
- Deprecates the unnecessary healthd daemon.
- Greater degrees of freedom for vendor customization in health information reports.
- More device health information than just battery.
- Easier to implement
- Better conformance with existing 2.0 HAL APIs
- Better Treble separation in off-mode charging code
- Better support for the framework to indicate the battery health of the device
- Remove unused charger-related APIs
- Remove unused StorageAttribute and related fields
- Support dock charging.
Android 12 後:
新增 App Hibernation 功能。一段時間沒用的 app,會自動 release 他用的 memory 和 cache,把她放回 storage。
新增一個 memory monitor 的機制: MM Event -Historical Memory Statics
Android 14 新增一個 Power Mode : GAME.
沒有留言:
張貼留言