Android開發之給應用簽名打包

來源:互聯網
上載者:User

標籤:開發   應用   系統   數字   android   

Android開發之給應用簽名打包什麼是簽名打包?

在Android 系統中,所有安裝到系統的應用程式都必有一個數位憑證,此數位憑證用於標識應用程式的作者和在應用程式之間建立信任關係,如果一個 permission的protectionLevel為signature,那麼就只有那些跟該permission所在的程式擁有同一個數位憑證的應 用程式才能取得該許可權。Android使用Java的數位憑證相關的機制來 給apk加蓋數位憑證。

Android系統要求每一個安裝進系 統的應用程式都是經過數位憑證簽名的,數位憑證的私密金鑰則儲存在程式開發人員的手中。Android將數位憑證用來標識應用程式的作者和在應用程式之間建立信 任關係,不是用來決定終端使用者可以安裝哪些應用程式。這個數位憑證並不需要權威的數位憑證簽名機構認證,它只是用來讓應用程式套件組合自我認證的。

Note:看官朋友們可能會有疑問了?我們平時寫的一些小程式,安裝在模擬器上或者在真機上,也沒有簽名啊!咋能夠安裝上的呢?

其實是我們的開發工具為我們的應用預設產生了一個debug.keystore

  • 預設的產生路徑:C:\Users\你的使用者名稱\.android

  • key的密碼:android

我們不妨來開啟這個debug.keystore,開啟cmd,進入該檔案的目錄下,嘗試以下步驟:

1.輸入命令:keytool -list -keystore debug.keystore

2.輸入密碼:android

為什麼要給應用簽名打包?

假設說,當我們手機上已經安裝一個app,當我們再次安裝一個app,並且這個app的包名和之前安裝的app包名又恰好相同的話,後安裝的app便會將前一個app覆蓋掉。

這種情況就非常危險了!

簽名原因:為了防止別人的應用將自己的應用程式覆蓋,給應用簽名能夠很好的解決這一問題。

形象的說:就是給你的app裝了一把鎖,而這把鎖的鑰匙只有你一個人有。

如何給應用程式打包簽名?首次打包簽名

1.在你的項目上右鍵->Android Tools->Export Signed Application Package

2.next:

注意:要妥善保管好keystore檔案,並且記住密碼

3.相關參數

注意:紅框中都是必選項,其他可不必填寫

4.next

5.點擊finish,我們看到控制台列印如下:

並且,在我們選擇的路徑下,打包簽名的apk和keystore檔案成功產生:

應用升級覆蓋

當我們對應用再次升級時,這個時候我們無需再次產生keystore檔案,引用之前已產生好的keystore檔案即可:

1.在你的項目上右鍵->Android Tools->Export Signed Application Package

2.next:

再次輸入密碼;

4.產生版本2apk,finish:

5.可以看到,apk檔案成功產生,這樣就可以覆蓋掉之前的應用了

總結

Android系統中的每個應用程式都是經過數位簽章的,數位憑證的私密金鑰則儲存在應用所有人手中,Android將數位憑證用來標識應用程式的作者和在應用程式之間建立信任關係,也就是不允許別人隨意覆蓋他人應用啦!

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

Android開發之給應用簽名打包

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.