C#-Xamarin的Android项目开发(三)——发布、部署、打包
前言
部署,通常的情况下,它其实也是项目开发的一个难点。
为什么这么说呢?因为,它不是代码开发,所以很多开发者本能的拒绝学习它。
并且一个项目配置好一次以后,部署的步骤和部署的人通常很固定,所以大部分开发者也没机会去学习它。
就算学会了部署的开发者,如果长期不使用,也是很容易忘记部署的方法的。
所以,我们需要一篇文章来记录下部署的方法,哈哈O(∩_∩)O。
部署准备
在部署Xamarin的Android项目前,我们先做一些准备工作。
首先,我们先打开项目属性,选择配置最重要的选项——Android选项。
下图为开发调试阶段Android选项的设置图:
Xamarin很贴心,在每个选项上都做了注释,当我们鼠标放到属性上时,就会提示该属性的作用。
现在我们简单翻译一下图中的几个重要属性。
打包属性
使用共享运行时:在开发调试阶段需要将该选项勾选上,不然会出现无法部署到Emulator模拟器上的情况。
——使用快速部署(仅调试模式):在开发调试阶段这个选项也要勾选上,不然也会出现无法部署到Emulator模拟器上的情况。
针对每个选择的ABI生成一个包(.apk):发布apk时会针对每个cpu会生成不同的apk,cpu的选择在高级中,所以,当勾选上这个选项,发布apk时,会为各个CPU都创建一个单独的apk。
启用ProGuard:勾选上会使生成的apk变小。
启用Multi-Dex:是一个配套ProGuard的配置,不太常用,鼠标放到该选项上有解释。
启用开发者检测(调试和分析):该属性不勾选【使用快速部署(仅调试模式)】属性就不可以被勾选,所以,也意味着,该属性不勾选,会出现无法部署到Emulator模拟器上的情况。
高级:主要用于设置apk支持的CPU,虽然他还有其他设置功能,不过比较少用。
开始部署——存档
了解了打包属性后,我们开始进行正式部署。
----------------------------------------------------------------------------------------------------
首先,在Android项目中发布apk叫做存档;而部署的作用约等于使用Release调试代码。
现在我们点击存档进行发布apk,如下所示:
在存档前,我们先修改项目属性,让他可以被存档。取消这三个选项的勾选【使用共享运行时】【使用快速部署(仅调试模式)】【启用开发者检测(调试和分析)】。
然后勾选上【启用ProGuard】
接下来,重新生成项目。注意:这里一定要重新生成一下,不然也会存档失败。
存档后,项目会为我们打开如下界面:
如上图所示,我们存档成功了,并且在存档信息中,我们还看到他的版本号。(版本号修改项目—Properties—AndroidManifest.xml中修改)
接下来我们选择要发布的存档,然后点击下方的【分发】,然后项目会我们打开分发界面。(这里的分发就是部署的意思)
这里我们需要把项目发布到本地磁盘,所以我们选择【临时】。
然后界面跳转如下图:
如上图所示,界面中要我们选择签名。
在界面中,我们可以搜索已有的签名,也可以导入签名。
不过,由于我们的项目是刚刚创建的,所以没有可用的签名,所以我们需要自己创建一个签名。
现在,我们点击图中的加号,开始创建签名。
点击加号后弹出如上界面,在界面中,我们输入相关信息,然后点击创建。
创建完证书后,回到选择签名的界面,会自动导入我们刚刚创建的签名;如下图:
如果我们刚刚创建的签名没有自动加载,那么我们可以到C盘找到这个签名,然后手动导入。
签名默认地址:C:\Users\Administrator\AppData\Local\Xamarin\Mono for Android\Keystore\KibaXamarin
拥有了签名后,我们点击【另存为】,将apk保存到指定的路径地址。
选择完路径后,点击确定,会弹出让我们输入签名密码的界面;如下图:
在文本框里输入我们签名的密码,点击确定即可。
到此,我们的apk就成功的发布完了。
现在我们可以把apk传到安卓市场或者发给朋友运行了,O(∩_∩)O。
----------------------------------------------------------------------------------------------------
应用程序包大小处理参考网址:
https://docs.microsoft.com/zh-cn/xamarin/android/deploy-test/app-package-size
----------------------------------------------------------------------------------------------------
相关文章:
C#-Xamarin的Android项目开发(二)——控件应用
C#-Xamarin的Android项目开发(一)——创建项目
代码已经传到Github上了,欢迎大家下载。
Github地址:https://github.com/kiba518/KibaXamarin_Android
----------------------------------------------------------------------------------------------------
注:此文章为原创,欢迎转载,请在文章页面明显位置给出此文链接!
若您觉得这篇文章还不错,请点击下右下角的【推荐】,非常感谢!
C#-Xamarin的Android项目开发(三)——发布、部署、打包的更多相关文章
- C#-Xamarin的Android项目开发(二)——控件应用
相信我,这不是一篇吐槽文章.... 基础控件 Android的控件和控件样式非常特别,它是一种内联特别高的设计模式,换句话说,它是非常烂的设计.... 但在这种特别的关系里还是有一定的规律的,下面我们 ...
- C#-Xamarin的Android项目开发(一)——创建项目
创建项目 使用Xamarin开发安卓项目,首先需要安装VS2017以上版本.因为VS2017以上的版本,可以直接创建Xamarin项目. 另外用Xamarin开发安卓项目,还需要使用Intel的CPU ...
- Android项目开发三
微博客户端开发 本周学习计划 运用OAuth相关知识,解决上周出现的微博验证问题. 看懂微博客户端登录.用户主页等功能代码. 将程序中存在的问题解决. 实际完成情况 本周继续研究了OAuth相关知识, ...
- Android项目开发全程(三)-- 项目的前期搭建、网络请求封装是怎样实现的
在前两篇博文中已经做了铺垫,下面咱们就可以用前面介绍过的内容开始做一个小项目了(项目中会用到Afinal框架,不会用Afinal的童鞋可以先看一下上一篇博文),正所谓麻雀虽小,五脏俱全,这在里我会尽量 ...
- Android项目开发填坑记-so文件引发的攻坚战
故事的最初 我负责的项目A要求有播放在线视频的功能,当时从别人的聊天记录的一瞥中发现百度有相关的SDK,当时找到的是Baidu-T5Player-SDK-Android-1.4s,项目中Demo的so ...
- Android项目开发一
Android项目开发一 进度计划 1.第一周 开源中国注册账号:http://my.oschina.net/u/2511208,并上传Android HelloWorld程序代码 搭建Andro ...
- Android项目开发全程(四)-- 将网络返回的json字符串轻松转换成listview列表
前面几篇博文介绍了从项目搭建到获取网络字符串,对一个项目的前期整体工作进行了详细的介绍,本篇接着上篇介绍一下怎么样优雅将网络返回的json字符串轻松转换成listview列表. 先上图,看一下效果. ...
- Android项目开发全程(二)--Afinal用法简单介绍
本篇博文接上篇的<Android项目开发全程(一)--创建工程>,主要介绍一下在本项目中用到的一个很重要的框架-Afinal,由于本系列博文重点是项目开发全程,所以在这里就先介绍一下本项目 ...
- uni-app&H5&Android混合开发三 || uni-app调用Android原生方法的三种方式
前言: 关于H5的调用Android原生方法的方式有很多,在该片文章中我主要简单介绍三种与Android原生方法交互的方式. 一.H5+方法调用android原生方法 H5+ Android开发规范官 ...
随机推荐
- 学HTTP协议所要知道的基础知识(微总结)
1.网络本质 进行资源共享和信息传输. 2.基于网络的应用程序的本质 就是获取数据和传输数据给用户使用. 3.TCP/IP协议栈工作流程 实体层是不属于TCP/IP协议栈的一层.也就是说TCP/IP协 ...
- Lua读取CSV文件到table中
创建Lua函数载入CSV文件并保存到表中的函数: function GetLines(fileName) indx = 0 myLines ={} for line in io.line(string ...
- Flask入门之自定义过滤器(匹配器)
1. 动态路由的匹配器? 不知道这种叫啥名,啥用法,暂且叫做匹配器吧. Flask自带的匹配器可以说有四种吧(保守数字,就我学到的) 动态路由本身,可以传任何参数字符串或者数字,如:<user ...
- 用shell处理以下内容 1、按单词出现频率降序排序! 2、按字母出现频率降序排序! the squid project provides a number of resources toassist users design,implement and support squid installations. Please browsethe documentation and support
此题目有多种解法,sed.awk.tr等等,都可以解决此题,命令运用灵活多变. 编写shell脚本no_20.sh 解法1: #!/bin/bash ###-------------CopyRight ...
- 设置ActiveMQ的访问密码
1.设置ActiveMQ的访问密码,以提高ActiveMQ的安全性 2.在ActiveMQ的conf目录的activemq.xml中添加账号密码 2.1 添加的代码如下 <!-- 添加访问Ac ...
- java.util.BitSet 详细分析 学习笔记
1,BitSet类 大小可动态改变, 取值为true或false的位集合.用于表示一组布尔标志. 此类实现了一个按需增长的位向量.位 set 的每个组件都有一个 boolean 值.用非负的 ...
- 使用Docker镜像和仓库
https://www.rhel.cc/2014/11/50/ 学习目标: 什么是镜像 docker镜像是由文件系统折叠加而成的,最低端是一个引导文件系统,即bootfs: 如何对镜像进行管理 使 ...
- genymotion的安装及运行
一.下载工具 安装genymontion一共需要下载三个东西,分别是genymotion.虚拟机virtualbox和ova 笔者提供百度云下载:mac版虚拟机 mac上genymotion.wind ...
- 18.app后端如何实现LBS
移动互联网,除了一直在线这个特点外,还有一个重要特点,能定位到手机的位置.查找附近的人,附近的餐馆等服务,以及大量的o2o应用, 都需要使用LBS(Location Based Services).那 ...
- 十九. 想快速开发app,需要找外包吗?
健生干货分享:第19篇 摘要:最近和两位准备开发app的创业者聊天,他们之前没有移动互联网的相关经验,有的是想法和资金.他们在纠结:想快速开发app,需要找外包吗? 最近和两位想开发app的创业者聊天 ...