android應用程序簽名詳解

   爲了保證每個應用程序開發商合法ID,防止部分開放商可能通過使用相同的Package Name來混淆替換已經安裝的程序,我們需要對我們發佈的APK文件進行唯一簽名,保證我們每次發佈的版本的一致性(如自動更新不會因爲版本不一致而無法安裝)。

    一般開發android的開發者都知道,在我們的Android系統中,不許可安裝兩個相同的包的應用  

 

    假設A應用的包名:com.xwj.appA;    A應用已經在系統中存在了,這個時候再去安裝一個應用B ,它的包名也叫com.xwj.appA,這時候系統就會去檢查這兩應用的簽名是否相同。如果相同,B會把A給覆蓋安裝掉; 如果不相同 B安裝失敗;

    當你把應用發佈到市場時,你的應用升級了,需要替換舊的程序,安裝新的程序

    這時你需要兩個條件:

                                      1.包名相同    2.簽名相同

     

    當包名相同的時候,如果簽名相同,替換安裝(版本升級)成功。如果簽名不相同,安裝失敗;

    要想自動安裝(版本升級)成功,必須保證應用程序不同版本的簽名完全一樣。

    

    在我們程序員自己開發的apk中,一般會有一個默認的簽名(新建一個應用,運行程序,在bin目錄下apk文件,用壓縮文件打開此文件,並進入META-INF目錄),打開文件CERT.RSA

  

    這個默認簽名的密鑰在C:\Users\admin\.android中


    注意:因爲不同的電腦的默認簽名是不一樣的,當你在A電腦開發了版本1,在B電腦開發了版本2,當在一個手機中安裝了版本1,再安裝版本2時是不能覆蓋安裝的,所以應用程序需要自己簽名

      

    接下來講解如何簽名:一般簽名有兩種方式 

一、使用Keytool和Jarsigner給程序簽名(用於android低版本1.5以下)在此就不做詳解了

       二、android 1.5以上暨更新版本的apk簽名方式(在進行此方式簽名時,一定要先clean項目

          1.打開Eclipse->選擇你要簽名的項目->右擊->android tools->Export signed Application package...


          2.跳出窗口


          3.如果是已經存在keystore的就直接選擇然後next  輸入keystore的密碼進行簽名。如果沒有的話選擇 create new keystore 然後選擇 keystore 保存的位置,設置keystore的密碼,點擊Next。


         4.填寫keystore的基本信息,分別爲別名,密碼,確認密碼,有效期,姓名,組織,組織名稱,所在城市,所在省份,國家等,點擊Next

         注意點:1.密碼必須和上一步所設置的密碼一樣

·                        2.有效期:Android Market強制要求所有應用程序數字證書的有效期要持續到2033年10月22日以後,所以有效期一定                       要大於19年,否則當時間過了,你的程序將沒辦法再更新,將損失巨大大笑

                         3.國家:一般寫86,除非你不是中國人,哈

 

         5.選擇被簽名後的APK保存位置,點擊finish


         6.然後就可以在你保存的位置中找到相應的被簽名後的APK文件


         注意點:記得一定不要把keystore文件給丟了,也不要把密碼給忘了,否則以後的升級就保存不了以前的用戶數據了,重新簽名的話也不再是原來的了,正如無法逃脫歌詞中寫的:我已不是原來的我


   如果你的簽名丟了怎麼辦,有兩種修復方式:

     1.包名不變的情況下,改簽名    -----> 犧牲用戶,成全自己

         優點:你在各個應用市場的排名還是原來的排名(比如你原先在應用市場排名第一,這樣子改還是第一,適合應用市場排名高                    的) 

         缺點:無法覆蓋安裝,即只能提醒用戶把原來的程序給卸了,安裝新的應用程序(用戶體驗差)

     2.改包名 ,重新簽名    ----->   犧牲自己,成全用戶



    簽名之後,用zipalign(壓縮對齊)優化你的APK文件

    未簽名的apk不能使用,也不能優化。簽名之後的apk谷歌推薦使用zipalign.exe(位於android-sdk-tools目錄下)工具對其優化

      1.開始->運行->cmd

      2.d: 進入你所在sdk所在盤的目錄

      3.cd android\sdk\tools  進入tools目錄中

      4.輸入zipalign -v 4 a.apkfinal.apka.apk爲你所要優化的apk,記得拷到tools目錄中,final.apk爲你最終生成的apk名字


               

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章