C#使用Xamarin開發可移植行動裝置 App進階篇(8.打包產生安卓APK並精簡大小),附源碼

來源:互聯網
上載者:User

標籤: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並精簡大小),附源碼

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.