源碼地址:https://github.com/l2999019/DemoAppandroid
能夠Star一下,隨意 - -git
嗯,前面講了那麼多,是時候生成一個APK在真機上玩玩了.github
也只講一個,如何打包生成安卓可安裝的APK並精簡大小.安全
我記得,以前在寫安卓方面的文章的時候,有人就問過我.Xamarin.Android爲何打包出來這麼大?隨便一個HelloWord就20-30MB?併發
嗯..今天咱們就來解決這個問題..ide
咱們先從指定一個應用程序圖標開始..工具
咱們直接右鍵Android項目,屬性.選擇安卓清單.以下:post
在Application Icon選項中,咱們能夠任意選擇一個已有的圖片資源文件,並設置爲應用程序的圖標.學習
就完成了 - - 是否是很簡單..
VS2017裏面已經翻譯的比較完善了,我就很少解釋了..直接以下圖:
首先咱們進入
而後,咱們將打包屬性中的以下兩項勾選取消:(注意:這裏是取消!!)
而後,咱們向下滑,找到連接器屬性,設置以下:
鏈接選擇,僅SDK程序集.(默認爲無)
Xamarin.Android中的連接器採用靜態分析來肯定Xamarin.Android應用程序使用或引用了哪些程序集,類型和類型成員。而後,連接器將丟棄未使用(或引用)的全部未使用的程序集,類型和成員。這就使得咱們最終的應用大小獲得了顯着的下降。例如,微軟官方的 HelloWorld例子,其APK的最終大小減小了83%:
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配置文件添加到項目中,右鍵單擊它,並將其做爲構建操做選擇.
這裏,咱們直接用默認的操做.也就是勾選它就能夠了 如圖:
嗯..這就是咱們的最後一步了,
第三步的內容設置完成後,咱們就能夠存檔了.
操做如圖:
這樣,就會跳轉到存檔界面,以下:
咱們等待它打包完成.完成後,後面的齒輪會有個綠色的勾,以下圖:
點擊分發,來完成最後的發佈操做,以下圖:
咱們能夠選擇谷歌play的證書,也能夠本身建立一個臨時的證書.
這裏咱們建立一個臨時的證書.以下圖:
點擊+號,建立證書.並填寫以下圖的信息,請牢記你這裏輸入的密碼.
完成建立後,咱們直接選擇剛剛建立的證書,來進行分發.
選中證書後,選擇另存爲.而後選擇APK文件的存放路徑.
點擊保存,會讓你輸入證書的密碼.,咱們填寫剛剛輸入的密碼.
等待生成完成,就行了.
至此,咱們就完成了整個APP的打包 精簡壓縮和發佈流程.
本篇只是講解了APP的打包流程,做爲一個發佈的應用,固然不是這麼簡單就完事了.
爲了保證安全性,咱們雖然用ProGuard混淆了JAVA代碼,可是咱們的.NET代碼並無混淆.經過解壓APK程序反編譯咱們的dll,源碼就會很輕易的暴露..
下篇咱們就來說解,如何混淆咱們的.NET代碼