1. 程式人生 > >Android Studio——Apk簽名及配置

Android Studio——Apk簽名及配置

一、簡介:
AndroidManifest.xml檔案中的 package可以認為是一個應用的唯一標識id ,在建立專案時輸入的應用包名就是AndroidManifest.xml檔案中的 package的值,因此應該取到和應用相關名字。這時候就涉及到了別人開發應用程式的包名問題,自己的能保證包名各不相同,但是別人如果和自己的包名一致了,客戶在安裝apk時就會出現問題,於是就產生了apk簽名。

所有的Android應用程式都要求開發人員用一個證書進行數字簽名,anroid系統不會安裝沒有進行簽名的應用程式。平時我們的程式可以在模擬器上安裝並執行,是因為在應用程式開發期間,由於是以Debug除錯模式進行編譯的,因此ADT根據會自動用預設的金鑰和證書來進行簽名,而在以釋出模式編譯時,apk檔案就不會得到自動簽名,這樣就需要進行手工簽名。

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

三、apk簽名好處
應用程序升級:如果你希望使用者無縫升級到新的版本,那麼你必須用同一個證書進行簽名。這是由於只有以同一個證書籤名,系統才會允許安裝升級的應用程式。如果你採用了不同的證書,那麼系統會要求你的應用程式採用不同的包名稱,在這種情況下相當於安裝了一個全新的應用程式。如果想升級應用程式,簽名證書要相同,包名稱要相同

應用程式模組化:Android系統可以允許同一個證書籤名的多個應用程式在一個程序裡執行,系統實際把他們作為一個單個的應用程式,此時就可以把我們的應用程式以模組的方式進行部署,而使用者可以獨立的升級其中的一個模組。

程式碼或者資料共享:Android提供了基於簽名的許可權機制,那麼一個應用程式就可以為另一個以相同證書籤名的應用程式公開自己的功能。以同一個證書對多個應用程式進行簽名,利用基於簽名的許可權檢查,你就可以在應用程式間以安全的方式共享程式碼和資料了。

四、具體步驟:
AndroidStudio可以同過以下方式進行簽名

如果沒有簽名檔案,則需要建立一個新的簽名。點選Create new…  例:

填寫完就會出現如下介面

 

 

這時候就會生成 簽名後的APK 與 簽名檔案。

五、配置自動簽名
當我們需要升級APK版本的時候,我們需要再次對APK檔案進行簽名,才能上傳到應用市場。每次簽名都需要重新輸入密碼與等待編譯時間,這看起來比較麻煩。所以我們可以通過配置build.gradle讓其自動生成簽名後的APK。

具體操作:

點選OK,系統編譯後,會出現如下程式碼

 

配置編譯方式

編譯後 會在build.gradle下自動生成

這時候你要執行的時候需要選擇釋出版執行

然後點選編譯就行了 

當然你如果想也給debug版配置簽名信息,這時候你需要在build.gradle下配置如下資訊:

這樣也會自動生成簽名後的APK檔案。

六、自動簽名安全性
如果你的專案是開源的,而你的簽名信息都寫在build.gradle,容易被人獲取:

這時候你需要把這些簽名信息寫到 local.properties

而你需要在.gitignore配置加入如下資訊。這樣你的 local.properties就不會提交到開源專案中。

 

更改build.gradle的簽名信息

這樣就配置完成。

七、獲取SHA1和MD5值
(1)第一種方式

點選androidStudio右邊Gradle

雙擊signingReport

(2)第二種方式

 

注:簽名配置就寫到這,懂得不多。容易忘記,今天抽空做個筆記。資料查的並不多,可能有許多不足或錯誤,如果大夥發現還請告知。後續發現將繼續填坑。
--------------------- 
作者:斌林誠上 
來源:CSDN 
原文:https://blog.csdn.net/cs_lwb/article/details/81386595 
版權宣告:本文為博主原創文章,轉載請