前面,我們花了相當多的篇幅把packagemanager的公開api分門别類,并按版本順序講解了發展的過程。
有的同學問了,既然installer相關的api在android 5.0才引入,那麼android 4.4及之前的應用安裝的程式是怎麼寫出來的呢?
答案是,還有未公開的内部api啊。
這些api有些在未來的版本中就被轉正了。
android 4.4的不公開api大緻分為以下幾類:
uid相關:uid相關查詢沒有公開
多使用者相關:使用者相關的可能不宜公開吧
權限相關:提供比公開版更高的權限
安裝和清理相關:核心功能在這一版還沒有公開
這個api我們上節講過,直到android 7.0才公開。
原型:
根據sharedusernanme來擷取對應的uid
比起公開的api,可以指定userid.
支援userid的resolveactivity
支援userid的queryintentactivities
支援userid的queryintentservices
支援userid的queryintentcontentproviders
雖然沒有叫asuser,但是還是一個增加了userid的版本。
生成權限操作的intent
為某個包授權
回收grantpermission授予的權限
公開的install相關的api要android 5.0才有。是以android 4.4的應用隻能使用隐藏的系統api來進行install相關的操作。
安裝一個包
安裝一個包,同時帶校驗
不僅帶校驗,而且還加密。
安裝一個已經存在的包
uninstall一個應用
清理應用資料
清理應用緩存
清理存儲
清理存儲的另一個版本
擷取包的大小
多使用者版:
雖然不uninstall,但是使應用進入不可用的狀态。
設定blocking
讀取blocking
原型: