Android系統在安裝APK的時候,首先會檢驗APK的簽名,若是發現簽名文件不存在或者校驗簽名失敗,則會拒絕安裝,因此應用程序在發佈以前必定要進行簽名。給APK簽名能夠帶來如下好處:算法
簽名原理模塊化
MANIFEST.MF NETEASE.RSA NETEASE.SF
.RSA文件還多是.DSA文件,RSA與SF文件的文件名能夠更改,可是它們的命名必須同樣。
MANIFEST.MF中保存了APK裏全部文件的SHA1校驗值的BASE64編碼,格式以下(一個文件對應一條記錄):編碼
Name: res/anim/abc_fade_in.xml SHA1-Digest: ohPEA4mboaFUu9LZMUwk7FmjbPI= Name: res/anim/abc_fade_out.xml SHA1-Digest: MTJWZc22b5LNeBboqBhxcQh5xHQ=
SF文件裏保存了MANIFEST.MF文件的SHA1校驗值的BASE64編碼,同時還保存了MANIFEST.MF中每一條記錄的SHA1檢驗值BASE64編碼,格式以下:加密
SHA1-Digest-Manifest: ZRhh1HuaoEKMn6o21W1as0sMlaU= Name: res/anim/abc_fade_in.xml SHA1-Digest: wE1QEZhFkLBWMw4TRtxPdsiMRtA= Name: res/anim/abc_fade_out.xml SHA1-Digest: MfCV1efdxSKtesRMF81I08Zyvvo=
Android系統就是根據這三個文件的內容對APK文件進行簽名檢驗的。