1. 程式人生 > >android數字簽證及釋出版本準備工作

android數字簽證及釋出版本準備工作

怎麼說好呢,開發時候沒在意這些,現在需要釋出版本了,開始滿哪找如何做數字簽證及使用android zipalign工具優化apk檔案。

首先發布版本第一點要做的就是要生成帶數字簽證的apk檔案。用eclipse很快很簡單,但是要記住你生成過程中的密碼等引數,而且要保管好生成的key檔案。

下次釋出版本的時候直接選擇之前生成的key檔案就可以簽證了。

轉載:{

Android SDK Tools在升級到Version22之後,原來的ant自動編譯指令碼執行出現錯誤,導致為Jenkins配置的批處理指令碼無法執行,一直髮送錯誤郵件,經過調查後發現,Android SDK Tools升級後文件和目錄結構發生了變化,主要包括以下
1.Android SDK Tools 22之後的版本中tools目錄中將不包含

  • tools\zipalign.exe
  • tools\sqlite3.exe

以上兩個檔案,但是檔案對應移動到了各自的platform-tool和build-tools下面,對應路徑如下

  • build-tools\android-xx\zipalign.exe
  • platform-tools\sqlite3.exe

如果需要使用時,需要手動複製到tools下,或者放到PATH變數中去。

Windows

1
2
3
4
set PATH=c:\android-sdk-windows
set ANDROID_VER=android-13
set PATH=%PATH%;%ANDROID_HOME%\build-tools\%ANDROID_VER%\;
set PATH=%PATH%;%ANDROID_HOME%\platform-tools\;

Linux/MacOS

1
2
3
4
export ANDROID_HOME=/var/share/android-sdk-macosx;
export ANDROID_VER=android-13
export PATH=${PATH}:${ANDROID_HOME}/build-tools/${ANDROID_VER}/;
export PATH=${PATH}:${ANDROID_HOME}/platform-tools;

另外,中tools\lib不包含EMMA覆蓋率相關的以下三個檔案

  • tools\lib\emma.jar
  • tools\lib\emma_device.jar
  • tools\lib\emma_ant.jar
    • 導致以下錯誤
Could not load definitions from resource emma_ant.properties. It cou
ld not be found.

Problem: failed to create task or type emma
Cause: The name is undefined.

需要匯入以上3個jar包到tools\lib下,如果有可能,建議同時放到ant的lib下

}

在eclipse下點選專案右鍵----Android Tools----Export Signed Application Package...


點選next,選擇creat new keyStore,選擇儲存路徑及輸入密碼:


點選next,輸入keyStore詳細資訊:


點選next,選擇生成有簽證的apk儲存路徑,點選finish就算成功了。

下一步就是需要使用 zipalign 來優化了,zipalign.exe在sdk目錄中的tool目錄下,使用方法是到tool目錄下,執行:

zipalign.exe -v 4 目錄/yourName.apk new.apk

此時在tool目錄下就會生成優化後的apk檔案,可以執行檢查優化:

zipalign.exe -c  -v 4 new.apk

這樣就OK了....

最後來一段話,拷貝過來的...感謝作者

4.簽名之後,用zipalign(壓縮對齊)優化你的APK檔案。
  未簽名的apk不能使用,也不能優化。簽名之後的apk谷歌推薦使用zipalign.exe(位於android-sdk-windows\tools目錄下)工具對其優化:

D:\>zipalign -v 4 demo_signed.apk final.apk

  如上,zipalign能夠使apk檔案中未壓縮的資料在4個位元組邊界上對齊(4個位元組是一個性能很好的值),這樣android系統就可以使用mmap()(請自行查閱這個函式的用途)函式讀取檔案,可以在讀取資源上獲得較高的效能,
  PS:1.在4個位元組邊界上對齊的意思就是,一般來說,是指編譯器吧4個位元組作為一個單位來進行讀取的結果,這樣的話,CPU能夠對變數進行高效、快速的訪問(較之前不對齊)。
          2.對齊的根源:android系統中的Davlik虛擬機器使用自己專有的格式DEX,DEX的結構是緊湊的,為了讓執行時的效能更好,可以進一步用"對齊"進一步優化,但是大小一般會有所增加。

5.簽名對你的App的影響。
   你不可能只做一個APP,你可能有一個巨集偉的戰略工程,想要在生活,服務,遊戲,系統各個領域都想插足的話,你不可能只做一個APP,谷歌建議你把你所有的APP都使用同一個簽名證書。
   使用你自己的同一個簽名證書,就沒有人能夠覆蓋你的應用程式,即使包名相同,所以影響有:
  1) App升級。 使用相同簽名的升級軟體可以正常覆蓋老版本的軟體,否則系統比較發現新版本的簽名證書和老版本的簽名證書不一致,不會允許新版本安裝成功的。
  2) App模組化。android系統允許具有相同的App執行在同一個程序中,如果執行在同一個程序中,則他們相當於同一個App,但是你可以單獨對他們升級更新,這是一種App級別的模組化思路。
  3) 允許程式碼和資料共享。android中提供了一個基於簽名的Permission標籤。通過允許的設定,我們可以實現對不同App之間的訪問和共享,如下:

?
AndroidManifest.xml:<permission android:protectionLevel="normal" />

其中protectionLevel標籤有4種值:normal(預設值),dangerous, signature,signatureOrSystem。簡單來說,normal是低風險的,所有的App不能訪問和共享此App。dangerous是高風險的,所有的App都能訪問和共享此App。signature是指具有相同簽名的App可以訪問和共享此App。signatureOrSystem是指系統image中App和具有相同簽名的App可以訪問和共享此App,谷歌建議不要使用這個選項,因為簽名就足夠了,一般這個許可會被用在在一個image中需要共享一些特定的功能的情況下。
  最後,請一定要記得保管好你的簽名證書的兩個密碼,兩個密碼都不要告訴任何人,也不要把你的金鑰庫拷貝給別人,包括我! 


相關推薦

android數字簽證釋出版本準備工作

怎麼說好呢,開發時候沒在意這些,現在需要釋出版本了,開始滿哪找如何做數字簽證及使用android zipalign工具優化apk檔案。 首先發布版本第一點要做的就是要生成帶數字簽證的apk檔案。用eclipse很快很簡單,但是要記住你生成過程中的密碼等引數,而且要保管好生成

Android Studio Jcenter釋出自己的開源庫

轉載:https://blog.csdn.net/u013231041/article/details/70174354 AS從哪裡獲取到開源庫 首先我們在使用第三方開源庫時,直接在專案的 gradle 檔案中新增這樣一行程式碼: compile 'com.jakewharton:

Unity在Android 6.0以上版本彈出許可權申請視窗的問題

Android 版本大於等於6.0(SDK版本大於等於23),許可權需要應用自主申請,動態申請許可權。 如果Unity做為Android的子模組,除了應用本身會有申請許可權的彈窗之外,Unity也會自動彈出許可權申請視窗。 網路許可權(普通許可權)、手機震動許

Android 6.0以上版本定位許可權開發問題

在開發APP過程中,發現Android 6.0版本的百度定位無法使用,查閱資料後發現android 6.0及以上系統 許可權管理變了,定位屬於隱私許可權,需要在執行時手動申請 關於Android5.0和Android6.0在許可權方面的區別: And

Android 4.4以上版本實現狀態列透明

參考了網上的很多方法,實現了狀態列透明,即狀態列和標題欄顏色一致。特此總結一下,以下方法適用於佈局裡沒有EditText控制元件的情況下: 1、values/styles中定義app基本主題AppTheme,適配4.4以下非透明狀態列 &

android系統版本程式碼的下載、編譯釋出

不積跬步無以至千里 一、程式碼的下載 1、建立資料夾 在伺服器的個人賬戶下建立一個此係統版本的專用資料夾(F9)(事先宣告這是Q9的專案) mkdir F9 2、設定git資訊 git config –global user.email

Android NFC近場通信02----讀寫卡的準備工作

是否 即將 oid win wrap img pac 適配器 style Android NFC近場通信02----讀寫卡的準備工作 因為公司接了一個聽上去感覺比較NB的項目。給某油田做派工系統 。並由

Android TV開發相關準備工作

準備工作 android tps cnblogs detail tails .net targe tar https://www.cnblogs.com/JerryXin/p/4271166.html http://blog.csdn.net/wzlas111/articl

一小時精通SVN版本控制 之 準備工作

java svn 代碼管理 版本控制 團隊協作 為什麽使用svn:軟件系統通常由團隊協作完成,各開發人員如何協作並行開發?我們希望團隊成員可以並行開發,彼此的修改不會沖突,保留工作過程中產生的所有內容的所有版本. 什麽是svn:Subversion(SVN) 是一個開源的版本控制系統, 它

Android SDK目錄版本號區別

今天又有人問Tools,Build-Tools,Platform-tools有什麼區別,是幹嘛的? 現在對SDK目錄做一下總結闡述! SDK目錄 add-ones add-ones:裡面儲存著一些附加的庫,第三方公司為Android平臺開發的附加功能系統。比如GoogleMaps 。(一

Hadoop建設工具Ambari的安裝部署完整使用(二)——準備工作

二.準備工作   關於linux環境建立,yum源配置等基礎系統搭建過程就不在此贅述了。以下內容完全是基於centos7環境,root使用者。   1.安裝JAVA環境 1) 下載jdk套件,此處作者使用的是:jdk1.8.0_111 (選擇合適的穩定版本即可

Android camera fw學習(二)-open camera操作過程&準備工作分析。

備註:本文基於Android5.1、Camera hal3學習,預設情況下參考程式碼都是5.1的,如有其它版本的原始碼,我會標出來的。博文是看程式碼分析和一些工作經驗的總結,如有疑問,大家可以相互討論,共同進步。   當前博文主要是為後續的StartPreview,takepictu

Android M以上版本系統 懸浮窗許可權 的解決方案

Android M及以上版本系統 懸浮窗許可權 的解決方案   Android的視窗體系中,WindowManager佔有非常重要的地位,平時我們使用懸浮窗會遇到一些許可權的問題。 當 Android工程在targetSdkVersion 23 編譯,Android6.0及其以上版

Android版本號,API level,NDK號CM版本號對應關係

Android版本號與API level對應關係表及CM版本 ———–Code name ———— Version ———— API level CM O

Electron 4.0.0 釋出,不再支援 macOS 10.9 以下版本

   Electron 4.0.0 已釋出,Electron 是 GitHub 釋出的跨平臺桌面應用開發工具,支援 Web 技術開發桌面應用,其本身是基於 C++ 開發的,GUI 核心來自於 Chrome,而 JavaScript 引擎使用 V8。 此版本主

DynamicData for Asp.net Mvc留言本例項 上篇 準備工作顯示文章列表

DynamicDataMVC出現也有一段時間了,一直沒有正視它,今天抽一點時間瞭解了一下感覺還算不錯。 本身下載時自帶一個部落格的例子,但例子略顯複雜,不容易理清思路 附:本文初稿某兄入手先讀,提出諸多疑問想必其它朋友可能也會有類似問題,故藍字註明,當然大多朋友可以省去不看 下載及新建工程 本文環

Android Library的依賴方式釋出

最近釋出一個專案,發現以前釋出到 JCenter 的步驟都忘光了,又得到處翻資料,真是尷尬….. 還是那句老話,好記性不然爛筆頭,在此整理 Android Studio 依賴相關 以及 如何釋出專案到 JCenter Android Studio

Android N以上版本應用安裝包下載完成自動彈出安裝介面的適配方法

Android N及以上版本應用安裝包下載完成自動彈出安裝介面的適配方法   在實現下載和安裝APP功能的時候在Android較高版本可能會遇到如下的問題: 安裝Apk時報錯:android.os.FileUriExposedException: file:///storag

【RabbitMQ】3.工作佇列釋出訂閱

一、工作佇列 (一個任務只發給一個消費者,根據設定,若消費者異常,才可轉發給另一個消費者) 當有的消費者(Consumer)需要大量的運算時,RabbitMQ Server需要一定的分發機制來balance(平衡)每個Consumer(生產者)的load,即負載均衡。通過建立一個工作佇列用來

安裝軟體包的三種方法RPM準備工作

前言 在Windows系統下安裝軟體很簡單,只要雙擊字尾為.exe的檔案,然後根據提示連續單擊”下一步”按鈕即可。然而在Linux系統下安裝軟體就沒那麼容易了,因為我們不是在圖形介面下,所以,必須學會如何在Linux下安裝軟體。 一,安裝軟體包的三種方法