C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码
系列目录
源码地址: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代码

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
C#使用Xamarin开发可移植移动应用进阶篇(6.使用渲染器针对单个平台自定义控件..很很很很重要..),附源码
原文: C#使用Xamarin开发可移植移动应用进阶篇(6.使用渲染器针对单个平台自定义控件..很很很很重要..),附源码 前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 说点什么.. 本篇..基本可以算是Xamarin在应用开发过程中的核心了..真的很很很重要.. 想学习的..想用的..建议仔细阅读..嗯..打酱油的 ..快速滑倒下面点个推荐 - - 哈哈哈... 今天的学习内容? 只讲一个,关于Xamarin.Forms针对各个平台如何进行可定制化的控件操作. 也就是针对某个平台的细颗粒化操作. 废话不多说,我们直接开始. 正文 1.什么是渲染器 自定义渲染器提供了一种强大的方法来定制Xamarin.Forms控件的外观和行为。它们可用于一些微小的样式更改或复杂的平台特定布局和行为定制。 2.为什么需要自定义渲染器 因为在不使用自定义渲染器的情况下更改Xamarin.Forms控件的外观是颗粒度较粗的. 因为Xamarin.Forms为了支持多个平台同时...
-
下一篇
Xamarin 学习笔记 - 配置环境(Windows & iOS)
原文: Xamarin 学习笔记 - 配置环境(Windows & iOS) 本文翻译自CodeProject文章:https://www.codeproject.com/Articles/1223980/Xamarin-Notes-Set-up-the-environment-Windows-and-I 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 背景介绍 一直以来,做为一名Web以及桌面开发人员,我一直在使用.NET框架和C#语言,而在某些项目中,Angular会在前端占有主导地位。 最近,我们总是谈论移动应用程序开发的未来,但我本身实在没有天赋转向另一种语言。最近几年,针对我的社交项目,我尝试使用Hybrid框架和AngularJS以及Ionic,Cordova一起构建一个示例……但一切并不像我想象得那样容易。此后微软于2016年2月份收购了Xamarin并在之后不久宣布了将Xamarin开源。自此微软生成用C#开发的软件将不仅仅能够运行在Windows上,而是可以在任何设备上运行。继微软收购Xamarin之后,对可以将C#...
相关文章
文章评论
共有0条评论来说两句吧...