C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码

简介: 原文:C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.
原文: C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码

前言

系列目录

C#使用Xamarin开发可移植移动应用目录

源码地址: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代码

目录
相关文章
|
9月前
|
XML 测试技术 API
利用C#开发ONVIF客户端和集成RTSP播放功能
利用C#开发ONVIF客户端和集成RTSP播放功能
4697 123
|
存储 SQL 开发框架
c# erp源码(简单进销存)
c# erp源码(简单进销存)
709 1
|
物联网 数据处理 C#
C#实现上位机开发,串口通信,读写串口数据并处理16进制数据
C#实现上位机开发,串口通信,读写串口数据并处理16进制数据。在自动化、物联网以及工业控制行业中,上位机开发是一项重要的技能。本教程主要介绍使用C#进行上位机开发,重点在于串口通信和数据处理。
2886 82
|
开发框架 C# Android开发
C#一分钟浅谈:Xamarin 移动应用开发
随着移动设备的普及,Xamarin 成为跨平台移动应用开发的重要工具,允许开发者使用 C# 编写一次代码,即可在 iOS、Android 和 Windows Phone 上运行。本文介绍 Xamarin 的基本概念、开发环境搭建、常见问题及解决方案,并通过代码示例详细讲解。
431 0
|
前端开发 Java 开发工具
【03】完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例—-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈 章节内容【03】
【03】完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例—-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈 章节内容【03】
1598 18
【03】完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例—-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈 章节内容【03】
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
643 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
SQL 小程序 API
如何运用C#.NET技术快速开发一套掌上医院系统?
本方案基于C#.NET技术快速构建掌上医院系统,结合模块化开发理念与医院信息化需求。核心功能涵盖用户端的预约挂号、在线问诊、报告查询等,以及管理端的排班管理和数据统计。采用.NET Core Web API与uni-app实现前后端分离,支持跨平台小程序开发。数据库选用SQL Server 2012,并通过读写分离与索引优化提升性能。部署方案包括Windows Server与负载均衡设计,确保高可用性。同时针对API差异、数据库老化及高并发等问题制定应对措施,保障系统稳定运行。推荐使用Postman、Redgate等工具辅助开发,提升效率与质量。
594 0
|
缓存 算法 安全
精选10款C#/.NET开发必备类库(含使用教程),工作效率提升利器!
精选10款C#/.NET开发必备类库(含使用教程),工作效率提升利器!
733 12
|
开发框架 缓存 .NET
C# 一分钟浅谈:Blazor Server 端开发
Blazor Server 是基于 ASP.NET Core 的框架,允许使用 C# 和 Razor 语法构建交互式 Web 应用。本文介绍 Blazor Server 的基本概念、快速入门、常见问题及解决方案,帮助开发者快速上手。涵盖创建应用、基本组件、数据绑定、状态管理、跨组件通信、错误处理和性能优化等内容。
1079 1
|
开发工具 Android开发 iOS开发
使用xamarin开发Android、iOS报错failed to open directory: 系统找不到指定的文件
使用vs2019学习xamarin时,创建新程序。使用模拟器真机等测试都报错如下图错误: ![请在此添加图片描述](https://developer-private-1258344699.cos.ap-guangzhou.myqcloud.com/column/article/5877188/20231030-de8ce5fd.png?x-cos-security-token=r4KyZDEowPT0kGTL0LqE8EnwfN1Nzexadb05dcffed3939ff8d7591c528c01706nvpGSE93QwHpZM8NwhJNTZctNRQa0l3KDhEnqj8P7d8t
389 0
使用xamarin开发Android、iOS报错failed to open directory: 系统找不到指定的文件