2018/2/12
Android系統(tǒng)在安裝APK的時(shí)候怒详,首先會(huì)檢驗(yàn)APK的簽名,如果發(fā)現(xiàn)簽名文件不存在或者校驗(yàn)簽名失敗烙懦,則會(huì)拒絕安裝驱入,所以應(yīng)用程序在發(fā)布之前一定要進(jìn)行簽名。給APK簽名可以帶來(lái)以下好處:
應(yīng)用程序升級(jí)
如果想無(wú)縫升級(jí)一個(gè)應(yīng)用,Android系統(tǒng)要求應(yīng)用程序的新版本與老版本具有相同的簽名與包名沧侥。若包名相同而簽名不同可霎,系統(tǒng)會(huì)拒絕安裝新版應(yīng)用。
應(yīng)用程序模塊化
Android系統(tǒng)可以允許同一個(gè)證書簽名的多個(gè)應(yīng)用程序在一個(gè)進(jìn)程里運(yùn)行宴杀,系統(tǒng)實(shí)際把他們作為一個(gè)單個(gè)的應(yīng)用程序癣朗。此時(shí)就可以把我們的應(yīng)用程序以模塊的方式進(jìn)行部署,而用戶可以獨(dú)立的升級(jí)其中的一個(gè)模塊旺罢。
代碼或數(shù)據(jù)共享
Android提供了基于簽名的權(quán)限機(jī)制旷余,一個(gè)應(yīng)用程序可以為另一個(gè)以相同證書簽名的應(yīng)用程序公開自己的功能與數(shù)據(jù),同時(shí)其它具有不同簽名的應(yīng)用程序不可訪問相應(yīng)的功能與數(shù)據(jù)扁达。
應(yīng)用程序的可認(rèn)定性正卧。
簽名信息中包含有開發(fā)者信息,在一定程度上可以防止應(yīng)用被偽造跪解。例如網(wǎng)易云加密對(duì)Android APK加殼保護(hù)中使用的“校驗(yàn)簽名(防二次打包)”功能就是利用了這一點(diǎn)炉旷。