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下安裝軟體。 一,安裝軟體包的三種方法