AndroidStudio Apk簽名及配置
android
1、簡介:
AndroidManifest.xml文件中的 package能夠認爲是一個應用的惟一標識id ,在創建項目時輸入的應用包名就是AndroidManifest.xml文件中的 package的值,所以應該取到和應用相關名字。這時候就涉及到了別人開發應用程序的包名問題,本身的能保證包名各不相同,可是別人若是和本身的包名一致了,客戶在安裝apk時就會出現問題,因而就產生了apk簽名。git
全部的Android應用程序都要求開發人員用一個證書進行數字簽名,anroid系統不會安裝沒有進行簽名的應用程序。平時咱們的程序能夠在模擬器上安裝並運行,是由於在應用程序開發期間,因爲是以Debug調試模式進行編譯的,所以ADT根據會自動用默認的密鑰和證書來進行簽名,而在以發佈模式編譯時,apk文件就不會獲得自動簽名,這樣就須要進行手工簽名。安全
2、簽名的意義
爲了保證每一個應用程序開發商合法ID,防止部分開放商可能經過使用相同的Package Name來混淆替換已經安裝的程序,咱們須要對咱們發佈的APK文件進行惟一簽名,保證咱們每次發佈的版本的一致性(如自動更新不會由於版本不一致而沒法安裝)。模塊化
3、apk簽名好處
應用程序升級:若是你但願用戶無縫升級到新的版本,那麼你必須用同一個證書進行簽名。這是因爲只有以同一個證書籤名,系統纔會容許安裝升級的應用程序。若是你採用了不一樣的證書,那麼系統會要求你的應用程序採用不一樣的包名稱,在這種狀況下至關於安裝了一個全新的應用程序。若是想升級應用程序,簽名證書要相同,包名稱要相同gradle
應用程序模塊化:Android系統能夠容許同一個證書籤名的多個應用程序在一個進程裏運行,系統實際把他們做爲一個單個的應用程序,此時就能夠把咱們的應用程序以模塊的方式進行部署,而用戶能夠獨立的升級其中的一個模塊。ui
代碼或者數據共享:Android提供了基於簽名的權限機制,那麼一個應用程序就能夠爲另外一個以相同證書籤名的應用程序公開本身的功能。以同一個證書對多個應用程序進行簽名,利用基於簽名的權限檢查,你就能夠在應用程序間以安全的方式共享代碼和數據了。.net
4、具體步驟:
AndroidStudio能夠同過如下方式進行簽名debug
若是沒有簽名文件,則須要建立一個新的簽名。點擊Create new… 例:調試
填寫完就會出現以下界面xml
這時候就會生成 簽名後的APK 與 簽名文件。
5、配置自動簽名
當咱們須要升級APK版本的時候,咱們須要再次對APK文件進行簽名,才能上傳到應用市場。每次簽名都須要從新輸入密碼與等待編譯時間,這看起來比較麻煩。因此咱們能夠經過配置build.gradle讓其自動生成簽名後的APK。
具體操做:
點擊OK,系統編譯後,會出現以下代碼
配置編譯方式
編譯後 會在build.gradle下自動生成
這時候你要運行的時候須要選擇發佈版運行
而後點擊編譯就好了
固然你若是想也給debug版配置簽名信息,這時候你須要在build.gradle下配置以下信息:
這樣也會自動生成簽名後的APK文件。
6、自動簽名安全性
若是你的項目是開源的,而你的簽名信息都寫在build.gradle,容易被人獲取:
這時候你須要把這些簽名信息寫到 local.properties
而你須要在.gitignore配置加入以下信息。這樣你的 local.properties就不會提交到開源項目中。
更改build.gradle的簽名信息
這樣就配置完成。
7、獲取SHA1和MD5值
(1)第一種方式
點擊androidStudio右邊Gradle
雙擊signingReport
(2)第二種方式