最近做了一個Android項目,要求軟件能夠自動下載指定的APK文件並自動安裝,無須用戶操作,即靜默安裝。在查閱了GOOGLE之后,綜合了各位方法之后,找到了一種相對簡化的方法,不過此方法只在4.0的Android版本下測試過,其它版本各位可以照此方法嘗試一下。
想要做到靜默安裝,其實就是要有權限執行pm install命令。准備工作其實就兩步:
1、獲取執行權限
2、執行命令
我們首先介紹第二步,如何執行pm install命令:
關鍵代碼其實就一句:
Runtime.getRuntime().exec(
"pm install xxx.apk");
網上也有人提到利用BufferReader讀取控制台的輸出Success來判斷是否安裝成功,但我始終沒有抓到最后輸出的那一句Success,只好用Package install的receiver來處理安裝成功后的操作。
再回到如何獲取權限的方法,
1、首先,我們要做的就是從Android的系統源碼的
/build/target/product/security目錄中,找到兩個簽名文件: platform.x509.pem和platform.pk8
2、在
/build/tools/signapk目錄下找到signapk.jar文件的源碼,編譯成signapk.jar文件
3、然后在Android項目的manifest.xml文件中,加上INSTALL_PACKAGES的權限。
4、導出apk文件,這里選擇簽名文件導出。右鍵項目->"Android Tools"->"Export Signed application Package..."


5、最后就是執行
jar signapk.jar platform.
x509.pem platform.pk8 簽名的apk 目標文件.apk
由此生成的目標文件apk就可以正常安裝在Android中,並可以靜默安裝任意指定的apk文件了。
文中所需的三個文件下載:
signapk.jar
platform.x509.pem
platform.pk8