標籤:android style blog http io ar color os sp
最近一項目涉及到兩個APK,如果分開安裝,會有兩個提示框,使用者體驗不太好。但要是把兩個項目的源碼合并在一起,也很麻煩,會有很多衝突的地方需要調整。所以這段時間一直在找辦法做到安裝其中一個APK時候,可以在不彈出安裝提示框的同時安裝另一個APK,也就是所謂的靜默安裝。網上與此相關的資料一搜一大堆,剛開始時候信心滿滿,以為按照大神的做法,可以很輕鬆解決問題,殊不知,搞了兩三天都沒點進展,網上的方法總是行不通,雖然沒報異常,但也總是起不到預期的效果。直到今天看到了一個大神的部落格,裡面簡簡單單的幾個步驟,一開始我都不太相信,不過好在最近沒啥事忙,有的是時間來測試,也就試一試,結果一大喜,居然可以了!!!現在基於大神的基礎整理一下實現方法:
一.產生keystore
dos下進入JDK的bin目錄,運行如下命令:
keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore
輸入keystore密碼: ******
再次輸入新密碼: ******
您的名字與姓氏是什嗎?
[Unknown]: qiaoling您的組織單位名稱是什嗎?
[Unknown]: www.chinaandroid.com
您的組織名稱是什嗎?
[Unknown]: www.chinaandroid.com
您所在的城市或地區名稱是什嗎?
[Unknown]: haidian
您所在的州或省份名稱是什嗎?
[Unknown]: BJ
該單位的兩字母國家代碼是什麼
[Unknown]: 86
CN=qiaoling, OU=www.chinaandroid.com, O=www.chinaandroid.com, L=haidian, ST=BJ, C=86 正確嗎?
[否]: Y
輸入<android.keystore>的主密碼(如果和 keystore 密碼相同,按斷行符號):
此時便會在JDK的bin目錄下產生一個adroid.keystore檔案。
其中參數-validity為認證有效天數,這裡我們寫的大些10000天。還有在輸入密碼時沒有回顯(儘管輸就是啦) 並且 退格,tab等都屬於密碼內容,這個密碼在給.apk檔案簽名的時候需要.
二.匯出簽名APK
Eclipse中,右擊需要簽名的工程-->android tools-->export signed application package... 出現下面對話方塊,選擇需要簽名的工程
三.擷取許可權
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.將platform.x509.pem和platform.pk8、signapk.jar檔案以及第二步產生的簽名APK放在同一路徑下。開啟CMD,切換到該目錄,運行如下命令:
java -jar signapk.jar platform.x509.pem platform.pk8 簽名.apk 最終.apk
此時便會產生一個“最終.apk”。此APK便可靜默安裝其它APK。(“最終.APK”代碼裡面要加入安裝APK的SHELL命令:Runtime.getRuntime().exec("***.apk");)
android4.0靜默安裝