簽名詳解(二)

  • 簽名詳解(一)中主講了Dos命令進行簽名,本文主講通過ADT提供的圖形化界面完成apk簽名的方式;
  1. 首先在Android stidio中導入工程,點擊菜單中“Build”選項,彈出的下拉菜單中的“generate signed APK”
page_1
  1. 然后可以選擇創(chuàng)建新的或者選擇一個已有的key
page_2
  1. 這里我們創(chuàng)建一個新的key,點擊"Create new key store"
page_3
  1. 然后點擊OK,此時就已經創(chuàng)建了一個簽名文件,接下來就開始對項目apk進行簽名
  • 點擊next,


    page_4
  • 給android stidio設置的密碼,如果忘記,點擊Reset進行重置密碼


    page_5
  • 選擇release 發(fā)布模式,最后Finish,就完成了apk的簽名

page_6

小結

  • 更換新簽名的應用將不能覆蓋安裝,必須將原先的程序卸載掉,才能安裝上,因為程序覆蓋安裝主要檢查兩點:
    1)兩個程序的入口Activity是否相同。兩個程序如果包名不一樣,即使其它所有代碼完全一樣,也不會被視為同一個程序的不同版本;
    2)兩個程序所采用的簽名是否相同。如果兩個程序所采用的簽名不同,即使包名相同,也不會被視為同一個程序的不同版本,不能覆蓋安裝。

  • 同一個開發(fā)者的多個程序盡可能使用同一個數(shù)字證書。

  • 有利于程序升級,當新版程序和舊版程序的數(shù)字證書相同時,Android系統(tǒng)才會認為這兩個程序是同一個程序的不同版本。如果新版程序和舊版程序的數(shù)字證書不相同,則Android系統(tǒng)認為他們是不同的程序,并產生沖突,會要求新程序更改包名。

  • 有利于程序的模塊化設計和開發(fā)。Android系統(tǒng)允許擁有同一個數(shù)字簽名的程序運行在一個進程中,Android程序會將他們視為同一個程序。所以開發(fā)者可以將自己的程序分模塊開發(fā),而用戶只需要在需要的時候下載適當?shù)哪K。

  • 可以通過權限(permission)的方式在多個程序間共享數(shù)據和代碼。Android提供了基于數(shù)字證書的權限賦予機制,應用程序可以共享某些功能或者數(shù)據給那些與自己擁有相同數(shù)字證書的程序。如果某個權限(permission)的protectionLevel是signature, 則這個權限就只能授予那些跟該權限所在的包擁有同一個數(shù)字證書的程序。

  • debug簽名的應用程序有兩個風險:
    1)debug簽名的應用程序不能在Android Market上架銷售,它會強制你使用自己的簽名;
    2)debug.keystore在不同的機器上所生成的可能都不一樣,就意味著如果你換了機器進行apk版本升級,那么將會出現(xiàn)上面那種程序不能覆蓋安裝的問題。不要小視這個問題,如果你開發(fā)的軟件有很多用戶,總不能讓所有人都卸載重裝吧,那這就相當于軟件不具備升級功能!

  • 在使用第三方授權(微博,微信)時需要配置注冊應用的簽名,此簽名取決于手機或模擬器中安裝的應用的簽名,測試時安裝的應用是默認簽名方式(debug簽名),發(fā)布時需要更改為自己生成的簽名方式并且在開發(fā)者平臺上的應用信息中也要更改;

  • 在簽名時,需要考慮數(shù)字證書的有效期
  • 數(shù)字證書的有效期要包含程序的預計生命周期,一旦數(shù)字證書失效,持有改數(shù)字證書的程序將不能正常升級。
  • 如果多個程序使用同一個數(shù)字證書,則該數(shù)字證書的有效期要包含所有程序的預計生命周期。
  • Android Market強制要求所有應用程序數(shù)字證書的有效期要持續(xù)到2033年10月22日以后。
  • Android只是在應用程序安裝的時候才會檢查證書的有效期。如果程序已經安裝在系統(tǒng)中,即使證書過期也不會影響程序的正常功能。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容