天天看點

Android應用生死輪回的那些事兒(7) - PackageManager的不公開APIAndroid應用生死輪回的那些事兒(7) - PackageManager的不公開API

前面,我們花了相當多的篇幅把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

原型:

繼續閱讀