系列目錄
源碼地址:https://github.com/l2999019/DemoApp
可以Star一下,隨意 - -
說點什么..
嗯,前面講了那么多,是時候生成一個APK在真機上玩玩了.
今天的學習內容?
也只講一個,如何打包生成安卓可安裝的APK並精簡大小.
我記得,之前在寫安卓方面的文章的時候,有人就問過我.Xamarin.Android為什么打包出來這么大?隨便一個HelloWord就20-30MB?
嗯..今天我們就來解決這個問題..
我們先從指定一個應用程序圖標開始..
1.指定應用程序圖標
我們直接右鍵Android項目,屬性.選擇安卓清單.如下:
在Application Icon選項中,我們可以任意選擇一個已有的圖片資源文件,並設置為應用程序的圖標.
就完成了 - - 是不是很簡單..
2.設置應用程序版本和名稱
VS2017里面已經翻譯的比較完善了,我就不多解釋了..直接如下圖:
3.精簡和收縮APK(重點)
3.1取消快速部署
首先我們進入
然后,我們將打包屬性中的如下兩項勾選取消:(注意:這里是取消!!)
3.2設置連接器,精簡Xamarin的引用
然后,我們向下滑,找到鏈接器屬性,設置如下:
連接選擇,僅SDK程序集.(默認為無)
Xamarin.Android中的鏈接器采用靜態分析來確定Xamarin.Android應用程序使用或引用了哪些程序集,類型和類型成員。然后,鏈接器將丟棄未使用(或引用)的所有未使用的程序集,類型和成員。這就使得我們最終的應用大小得到了顯着的降低。例如,微軟官方的 HelloWorld例子,其APK的最終大小減少了83%:
- 配置為:無 - Xamarin.Android 4.2.5大小= 17.4 MB
- 配置為:僅限SDK組件 - Xamarin.Android 4.2.5大小= 3.0 MB
3.3設置Android ProGuard
ProGuard是一個Android SDK工具,用於鏈接和模糊Java代碼。ProGuard通常用於減少APK中大型附加庫(如Google Play服務)的占用空間來獲得較小的應用程序。
ProGuard會刪除未使用的Java字節碼,這就會讓生成的應用程序更小。
一般,在小型Xamarin.Android應用程序上使用ProGuard通常可以減少大約24%的大小
如果,在具有多個庫依賴性的較大應用程序上使用ProGuard通常可以實現更大的尺寸縮小。
ProGuard不是Xamarin.Android連接器的替代品。Xamarin.Android鏈接器鏈接托管代碼,而ProGuard鏈接Java字節碼。
生成過程是首先使用Xamarin.Android鏈接器來優化應用程序中的托管(C#)代碼,然后使用ProGuard(如果啟用)在Java字節碼級別優化APK。
當啟用ProGuard的檢查,Xamarin.Android上運行所產生的APK ProGuard的工具。ProGuard配置文件在構建時由ProGuard生成和使用。
Xamarin.Android還支持自定義ProguardConfiguration構建操作。您可以將自定義ProGuard配置文件添加到項目中,右鍵單擊它,並將其作為構建操作選擇.
這里,我們直接用默認的操作.也就是勾選它就可以了 如圖:
4.存檔並發布生成APK
嗯..這就是我們的最后一步了,
第三步的內容設置完成后,我們就可以存檔了.
操作如圖:
這樣,就會跳轉到存檔界面,如下:
我們等待它打包完成.完成后,后面的齒輪會有個綠色的勾,如下圖:
點擊分發,來完成最后的發布操作,如下圖:
我們可以選擇谷歌play的證書,也可以自己創建一個臨時的證書.
這里我們創建一個臨時的證書.如下圖:
點擊+號,創建證書.並填寫如下圖的信息,請牢記你這里輸入的密碼.
完成創建后,我們直接選擇剛剛創建的證書,來進行分發.
選中證書后,選擇另存為.然后選擇APK文件的存放路徑.
點擊保存,會讓你輸入證書的密碼.,我們填寫剛剛輸入的密碼.
等待生成完成,就好了.
至此,我們就完成了整個APP的打包 精簡壓縮和發布流程.
本篇只是講解了APP的打包流程,作為一個發布的應用,當然不是這么簡單就完事了.
為了保證安全性,我們雖然用ProGuard混淆了JAVA代碼,但是我們的.NET代碼並沒有混淆.通過解壓APK程序反編譯我們的dll,源碼就會很輕易的暴露..
下篇我們就來講解,如何混淆我們的.NET代碼