標籤:color 常用 guard 運行 反編譯 介面 UI c# 內容
前言系列目錄
C#使用Xamarin開發可移植行動裝置 App目錄
源碼地址: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連結器連結Managed 程式碼,而ProGuard連結Java位元組碼。
產生過程是首先使用Xamarin.Android連結器來最佳化應用程式中的託管(C#)代碼,然後使用ProGuard(如果啟用)在Java位元組碼層級最佳化APK。
當啟用ProGuard的檢查,Xamarin.Android上運行所產生的APK ProGuard的工具。ProGuard設定檔在構建時由ProGuard產生和使用。
Xamarin.Android還支援自訂ProguardConfiguration構建操作。您可以將自訂ProGuard設定檔添加到項目中,按右鍵它,並將其作為構建操作選擇.
這裡,我們直接用預設的操作.也就是勾選它就可以了 :
4.存檔並發布產生APK
嗯..這就是我們的最後一步了,
第三步的內容設定完成後,我們就可以存檔了.
操作:
這樣,就會跳轉到存檔介面,如下:
我們等待它打包完成.完成後,後面的齒輪會有個綠色的勾,如:
點擊分發,來完成最後的發佈動作,如:
我們可以選擇Googleplay的認證,也可以自己建立一個臨時的認證.
這裡我們建立一個臨時的認證.如:
點擊+號,建立認證.並填寫如的資訊,請牢記你這裡輸入的密碼.
完成建立後,我們直接選擇剛剛建立的認證,來進行分發.
選中認證後,選擇另存新檔.然後選擇APK檔案的存放路徑.
點擊儲存,會讓你輸入認證的密碼.,我們填寫剛剛輸入的密碼.
等待產生完成,就好了.
至此,我們就完成了整個APP的打包 精簡壓縮和發布流程.
寫在最後
本篇只是講解了APP的打包流程,作為一個發布的應用,當然不是這麼簡單就完事了.
為了保證安全性,我們雖然用ProGuard混淆了JAVA代碼,但是我們的.NET代碼並沒有混淆.通過解壓APK程式反編譯我們的dll,源碼就會很輕易的暴露..
下篇我們就來講解,如何混淆我們的.NET代碼
C#使用Xamarin開發可移植行動裝置 App進階篇(8.打包產生安卓APK並精簡大小),附源碼