Android通過數字簽名來辨別應用程式的作者和在應用程式之間建立信任關系,不是用來決定最終使用者可以安裝哪些應用程式。 這個數字簽名由應用程式的作者完成,并不需要權威的數字證書簽名機構認證,它隻是用來讓應用程式包自我認證的。
數字簽名的兩種模式 我們都知道Android系統不會安裝運作任何一款未經數字簽名的apk程式,無論是在模拟器上還是在實際的實體裝置上。是以我們會有一個疑問,為何在日常開發過程中我沒有進行任何簽名的操作,程式都會在模拟器和真機上運作?下面我們來講講
APK程式的兩種模式: 調試模式(debug mode)和釋出模式(release mode)
1. 調試模式(debug mode) : 在調試模式下, ADT會自動的使用debug密鑰為應用程式簽名,是以我們可以直接運作程式。
debug密鑰: 一個名為debug.keystore的檔案
存放位置 : C:\Users\Xiaopeng\.android\debug.keystore Xiaopeng對應替換為自己作業系統的使用者名
兩個風險: debug簽名的應用程式有這樣兩個風險:
1)debug簽名的應用程式不能在Android Market上架銷售,它會強制你使用自己的簽名;
2)debug.keystore在不同的機器上所生成的可能都不一樣,就意味着如果你換了機器進行apk版本更新,那麼将會出現上面那種程式不能覆寫安裝的問題。 不要小視這個問題,如果你開發的程式隻有你自己使用,當然無所謂,解除安裝再安裝就可以了。但要是你的軟體有很多使用客戶,這就是大問題了,就相當于軟體不具備更新功能!
是以一定要有自己的數字證書來簽名;
2. 釋出模式(release mode) : 當要釋出程式時,開發者就需要使用自己的數字證書給apk包簽名 使用自己的數字證書給APK簽名的兩種方法:
(1)通過DOS指令來對APK簽名。
(2)使用ADT Export Wizard進行簽名 注意:
釋出一個Android程式必須要使用一個合适的私鑰生成的數字證書來給程式簽名,而不能使用adt插件或者ant工具生成的調試證書來釋出。