1. 為什麼要簽名?
發送者的身份認證
由于開發商可能通過使用相同的 Package Name 來混淆替換已經安裝的程式,以此保證簽名不同的包不被替換
保證資訊傳輸的完整性
簽名對于包中的每個檔案進行處理,以此確定包中内容不被替換
防止交易中的抵賴發生, Market 對軟體的要求
-
2. 簽名的說明
所有的應用程式都必須有數字證書, Android 系統不會安裝一個沒有數字證書的應用程式
Android 程式包使用的數字證書可以是自簽名的,不需要一個權威的數字證書機構簽名認證
如果要正式釋出一個 Android 應用,必須使用一個合适的私鑰生成的數字證書來給程式簽名,而不能使用 adt 插件或者 ant 工具生成的調試證書來釋出
數字證書都是有有效期的, Android 隻是在應用程式安裝的時候才會檢查證書的有效期。如果程式已經安裝在系統中,即使證書過期也不會影響程式的正常功能
簽名後需使用 zipalign 優化程式
Android 将數字證書用來辨別應用程式的作者和在應用程式之間建立信任關系,而不是用來決定最終使用者可以安裝哪些應用程式
3. AndroidStudio 對APP的簽名
AndroidStudio 對APP的簽名 的方式至少有兩種(我所知道的),下面重點 講一下這兩種簽名的操作
第一種:最簡單的方式就是讓AndroidStudio自己生成簽名并且實作項目打包
操作:
1.點選菜單欄的build/Grenerate Signed APK這裡寫圖檔描述

之前沒有使用過,在Key store path會是空白的,需要我們建立一個簽名檔案,有兩種生成方法,一種是使用指令行生成,另外一種是使用androidStudio直接生成。這就是androidstudio的強大之處。簡單說一下androidStudio上生成簽名檔案,單擊Create new Key Store,
跳轉到下面頁面:這裡寫圖檔描述
點選确認後會出現下面的頁面
這裡寫圖檔描述
點選next,進入項目簽名
點選finish之後,執行項目簽名,執行完之後可以在項目裡找到相對應生成的項目APK檔案
檢視簽名資訊
打開Terminal指令行視窗,輸入以下指令行:keytool -list -v -keystore “C:\Users\Mr.C\AttendenceSystem.jks” 會得到以下資訊:
這裡寫圖檔描述
注釋:後面引号的路徑是之前生成的簽名檔案的路徑
第二種:前提是你已經有簽名檔案了
操作如下:
打開app 的build.gradle可以看到如下代碼:
接下來,做如下操作:
在回去看 app 的build.gradle檔案,可以看到增加如下代碼:
下次再對百度地圖SDK的使用協定簽總結,感覺坑挺多的
————————————————