Android知識體系總結之實戰經驗部分之Android多渠道打包與apk簽名篇
1.基礎知識
1.1 什麼是打包?
打包就是根據簽名和其它標識生成安裝包。
1.2 簽名是什麼?
在Android中,簽名就是apk中儲存的一串特別的字串。它是用來標識不同的應用開發者,為什麼取名為簽名,就好像一個作家一樣,它完成的小說都要加上署名。因此為了保證產品的開發者出處,簽名是必須的。一個應用開發者開發的多款應用應該使用同一個簽名,這個應用開發者可以是個人,公司,或者團隊。
1.3 為什麼要簽名?
為什麼要簽名?理由有2點
1.最簡單直接的原因:Android系統要求的。
你也許會問,平時開發真機測試的時候,不是可以直接進行安裝和測試嗎?沒有簽名啊,其實啊,我們的Eclipse或者Android Studio為我們的當前應用新增一個預設簽名,這個預設簽名是跟你當前的開發環境的系統有關,因此當然可以在真機上安裝測試啦!
2.不同程式設計師開發的應用包名可能會相同,如果不加簽名,包名一樣的apk後者就會覆蓋前者,顯然這非常不好。
那麼這個時候簽名的作用就體現的淋漓盡致了,如果Android系統完全憑藉包名來判斷這是否為同一個應用,這顯然是不合理!而實際上當使用者安裝了A應用,如果B應用的包名和A應用一樣,那麼在安裝B應用的時候Android系統就會提示存在包名一致的應用,當A應用和B應用的簽名不一樣的時候,系統就會提示包名一樣但簽名不一樣,從而導致失敗。
2.如何為apk簽名?
3.在程式碼中如何獲取應用的簽名?
4.使用者安裝apk時出現的有關簽名&包名情況分析
Android程式設計師不僅僅負責開發的任務,更應該懂得Android系統的安裝機制,因為你在公司團隊開發出來了一個apk,而不懂包名和簽名跟Android系統關係,導致使用者從市場下載下來安裝失敗,這樣的情況顯然對團隊打擊很大,所以作為一名合格的Android程式設計師,理解apk包名和簽名和Android系統的關係非常重要,因為這涉及到很多情況,比如你升級apk時,應該作那些準備才能讓使用者完美的完成升級等,接下來,我們就來聊聊4種使用者安裝apk時出現的情況:
情況1:包名一樣&簽名也一樣
失敗的原因:當我們打包的時候,我們會為apk指定一個版本號和版本名,由於低版本不能覆蓋高版本。
成功原因:安裝的apk版本號大於或者等於當前系統已安裝的apk版本號,這可以被看作是升級操作。
情況2:包名一樣&簽名不一樣
肯定會失敗,並且會提示包名一致但簽名不一致,如果是公司自己的簽名檔案弄丟了,那麼只能讓使用者解除安裝重新安裝啦。
情況3:包名不一樣&簽名一樣
這種情況,毫無疑問,是可以安裝成功的,因為在開篇就提過,簽名一樣,包名不一樣的apk是可以存在的,那隻能說明開發者在開發不同的apk,當然可以安裝啊。
情況4:包名不一樣&簽名不一樣
聰明的你應該知道這種情況吧!筆者不囉嗦了。
5.多渠道打包
6.釋出應用程式的流程
主要流程:開發過程–>打包之前(apk版本&版本名&程式碼混淆規則)–>apk簽名&多渠道打包 -->釋出到各應用市場 -->稽核提審 -->提審通過,使用者下載安裝
比較注意的: