C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码
我記得,之前在寫安卓方面的文章的時候,有人就問過我.Xamarin.Android為什么打包出來這么大?隨便一個HelloWord就20-30MB?
嗯..今天我們就來解決這個問題..
我們先從指定一個應用程序圖標開始..
1.指定應用程序圖標
我們直接右鍵Android項目,屬性.選擇安卓清單.如下:
在Application Icon選項中,我們可以任意選擇一個已有的圖片資源文件,并設置為應用程序的圖標.
就完成了 - - 是不是很簡單..
?
2.設置應用程序版本和名稱
VS2017里面已經翻譯的比較完善了,我就不多解釋了..直接如下圖:
?
3.精簡和收縮APK(重點)
? ?3.1取消快速部署
首先我們進入
然后,我們將打包屬性中的如下兩項勾選取消:(注意:這里是取消!!)
?
3.2設置連接器,精簡Xamarin的引用
然后,我們向下滑,找到鏈接器屬性,設置如下:
連接選擇,僅SDK程序集.(默認為無)
Xamarin.Android中的鏈接器采用靜態(tài)分析來確定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字節(jié)碼,這就會讓生成的應用程序更小。
一般,在小型Xamarin.Android應用程序上使用ProGuard通??梢詼p少大約24%的大小
如果,在具有多個庫依賴性的較大應用程序上使用ProGuard通??梢詫崿F(xiàn)更大的尺寸縮小。
ProGuard不是Xamarin.Android連接器的替代品。Xamarin.Android鏈接器鏈接托管代碼,而ProGuard鏈接Java字節(jié)碼。
生成過程是首先使用Xamarin.Android鏈接器來優(yōu)化應用程序中的托管(C#)代碼,然后使用ProGuard(如果啟用)在Java字節(jié)碼級別優(yōu)化APK。
當啟用ProGuard的檢查,Xamarin.Android上運行所產生的APK ProGuard的工具。ProGuard配置文件在構建時由ProGuard生成和使用。
Xamarin.Android還支持自定義ProguardConfiguration構建操作。您可以將自定義ProGuard配置文件添加到項目中,右鍵單擊它,并將其作為構建操作選擇.
這里,我們直接用默認的操作.也就是勾選它就可以了 如圖:
?
?
?
4.存檔并發(fā)布生成APK
嗯..這就是我們的最后一步了,
第三步的內容設置完成后,我們就可以存檔了.
操作如圖:
這樣,就會跳轉到存檔界面,如下:
我們等待它打包完成.完成后,后面的齒輪會有個綠色的勾,如下圖:
點擊分發(fā),來完成最后的發(fā)布操作,如下圖:
我們可以選擇谷歌play的證書,也可以自己創(chuàng)建一個臨時的證書.
這里我們創(chuàng)建一個臨時的證書.如下圖:
點擊+號,創(chuàng)建證書.并填寫如下圖的信息,請牢記你這里輸入的密碼.
完成創(chuàng)建后,我們直接選擇剛剛創(chuàng)建的證書,來進行分發(fā).
選中證書后,選擇另存為.然后選擇APK文件的存放路徑.
點擊保存,會讓你輸入證書的密碼.,我們填寫剛剛輸入的密碼.
等待生成完成,就好了.
至此,我們就完成了整個APP的打包 精簡壓縮和發(fā)布流程.?
寫在最后
本篇只是講解了APP的打包流程,作為一個發(fā)布的應用,當然不是這么簡單就完事了.
為了保證安全性,我們雖然用ProGuard混淆了JAVA代碼,但是我們的.NET代碼并沒有混淆.通過解壓APK程序反編譯我們的dll,源碼就會很輕易的暴露..
下篇我們就來講解,如何混淆我們的.NET代碼
相關文章:?
C#使用Xamarin開發(fā)可移植移動應用(1.入門與Xamarin.Forms頁面),附源碼
.NET Standard@Xamarin.Forms
C#使用Xamarin開發(fā)可移植移動應用(2.Xamarin.Forms布局,本篇很長,注意)附源碼
C#使用Xamarin開發(fā)可移植移動應用(3.Xamarin.Views控件)附源碼
C#使用Xamarin開發(fā)可移植移動應用(4.進階篇MVVM雙向綁定和命令綁定)附源碼
C#使用Xamarin開發(fā)可移植移動應用(5.進階篇顯示彈出窗口與通訊中心)附源碼
C#使用Xamarin開發(fā)可移植移動應用進階篇(6.使用渲染器針對單個平臺自定義控件),附源碼
C#使用Xamarin開發(fā)可移植移動應用進階篇(7.使用布局渲染器,修改默認布局),附源碼
原文地址:http://www.cnblogs.com/GuZhenYin/p/7457412.html
.NET社區(qū)新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注
總結
以上是生活随笔為你收集整理的C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oleans集群之Consul再解释
- 下一篇: 一个还算简单的微信消息SDK(基于.Ne