編輯:關於Android編程
最近公司的一款產品提交國內市場,發現有些國內市場提示需要進行應用認領。原因就是別人(或者市場抓取)已經在我們之前將這個應用提交到了該市場。認領成功後,這個應用就重回你的懷抱了,其實認領很簡單,這裡講到的自然是對未簽名的包進行簽名。由於這樣的操作細小瑣屑,這樣更需要記錄一下,免得以後麻煩。
如何認領
1.一般的就是市場提供一個未簽名的apk包,認領方進行簽名後,上傳即可認領成功。
2.另一種就是提供公司證明,這個我們不講,也沒什麼可以講。
通常情況下認領都會有對一個未簽名的apk包簽名認證這種方式,因為簽名是軟件發布商所獨有的,通過對比測試需認領的包的簽名和剛簽過名的apk包是否一致,如果一致就認領成功,否則失敗。
對未簽名包簽名
復制代碼 代碼如下:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore your_keystore -storepass your_storepass -keypass your_keypass -signedjar path_of_signed_apk path_of_unsigned_apk your_alias
需要替換的值
1.your_key_store keystore文件路徑
2.your_storepass store密碼
3.your_keypass key密碼
4.path_of_signed_apk 簽名後apk保存的目錄
5.path_of_unsigned_apk 待簽名的apk包
6.your_alias keystore中的別名
注意上面的簽名算法sigalg 使用SHA1withRSA或者MD5withRSA都可以。
驗證簽名
復制代碼 代碼如下:
jarsigner -verify -certs -verbose your_app.apk
比如我們驗證百度金融的apk,會得到類似這樣的結果
復制代碼 代碼如下:
19:23 $ jarsigner -verify -certs -verbose BaiduFinance.apk | more
s 61679 Fri Nov 14 19:50:16 CST 2014 META-INF/MANIFEST.MF
X.509, CN=Baidu, OU=Baidu Inc., O=Baidu Inc., L=Beijing, ST=Beijing, C=CN
[certificate is valid from 12/6/13 10:19 AM to 11/24/63 10:19 AM]
[CertPath not validated: Path does not chain with any of the trust anchors]
61800 Fri Nov 14 19:50:16 CST 2014 META-INF/MCO_BAID.SF
936 Fri Nov 14 19:50:16 CST 2014 META-INF/MCO_BAID.RSA
sm 2304 Fri Nov 14 19:49:32 CST 2014 assets/mean/data_mean_24_bank_card
疑難問題
復制代碼 代碼如下:
No -tsa or -tsacert is provided and this jar is not timestamped
在簽名時加入下面的選項
復制代碼 代碼如下:
jarsigner -tsa http://timestamp.digicert.com
Windows無法打開文件
有些Windows工具無法打開簽名後的apk,如果你的簽名沒有錯誤,並且驗證過,這種情況請忽略。
簽名認領失敗
如果簽名認領失敗的話,請檢查目前線上的包是否進行了二次打包被別人篡改了簽名,如果是的話,需要進行商務上的溝通來解決了。
在Android開發當中,經常需要用到定位功能,尤其是依賴於地理位置功能的應用,很多人喜歡使用百度地圖,高德地圖提供的sdk,開放API,但是在僅僅需要經緯度,或者城市,
內存映射文件原理首先說說這篇文章要解決什麼問題? 1.虛擬內存與內存映射文件的區別與聯系. 2.內存映射文件的原理. 3.內存映射文件的效率. 4.傳統IO和內存
一:看程序 二:改布局: 1:在res資源下面,找到layout,打開activity_main.xml 在Graphical Layout視圖下面,可以自定義
AVD的全稱為:Android Virtual Device,就是Android運行的虛擬設備,他是Android的模擬器識別。建立的Android要運行,必須創建AVD