在android studio导出的apk分为4种,一种是未签名调试版apk,一种是未签名发行版apk,一种是已签名调试版apk,还有一种是已签名发行版apk。以下将介绍这4种apk如何导出。
一、调试版apk与发行版apk区别
Debug通常称为调试版本,通过一系列编译选项的配合,编译的结果通常包含调试信息,而且不做任何优化,以为开发 人员提供强大的应用程序调试能力。
Release通常称为发布版本,是为用户使用的,一般客户不允许在发布版本上进行调试。所以不保存调试信 息,同时,它往往进行了各种优化,以期达到代码最小和速度最优。为用户的使用提供便利。
(1) debug程序通常比release程序要慢,尤其是处理视频方便release要比debug快很多。在release模式对程序进行调试的时候经常会遇到变量虽然初始化了,但是在查看其值的时候却发现是一个随机的数并不是初始化的值,有时候在对变量进行监视的时候了,会出现找不到变量的情况。
(2) debug跟release在初始化变量时所做的操作是不同的,debug是将每个字节位都赋成0xcc, 而release的赋值近似于随机。在声明变量后马上对其初始化一个默认的值是最简单有效的办法,否则项目大了你找都没地方找。代码存在错误在debug方式下可能会忽略而不被察觉到。debug方式下数组越界也大多不会出错,在release中就暴露出来了,这个找起来就比较难了。
(3) 只有DEBUG版的程序才能设置断点、单步执行、使用 TRACE/ASSERT等调试输出语句。REALEASE不包含任何调试信息,所以体积小、运行速度快。
以上内容来自:https://zhidao.baidu.com/question/620939843767120332.html
二、签名的意义
为了保证每个应用程序开发商合法ID,防止部分开发商可能通过使用相同的包名(pakage name)来混淆替换已经安装的程序,我们需要对发布的APK文件进行签名。每一次所发布的APK应保证所用的签名文件的一致性,否则可能出现无法安装的情况。
三、导出调试版apk
导出调试版apk方法有两种,第一种:
选择菜单Build→ Build APK,点击便可生成调试版apk,等待生成成功,可在模块目录的build/outputs/apk目录下找到xxx-debug.apk的文件,此文件便是调试版apk。
第二种方法:
点击视图右上角的Gradle,弹出以上界面,双击模块目录下Tasks/build目录下的assembleDebug,便可在生成调试版apk,等待生成成功,可在模块目录的build/outputs/apk目录下找到xxx-debug.apk的文件,此文件便是调试版apk。
四、导出未签名发行版apk
点击视图右上角的Gradle,弹出以上界面,双击模块目录下Tasks/build目录下的assembleRelease,便可在生成未签名发行版apk,等待生成成功,可在模块目录的build/outputs/apk目录下找到xxx-release-unsigned.apk的文件,此文件便是未签名发行版apk。
五、生成已签名发行版或调试版apk
选择菜单Build→Generate Signed APK...并点击,出现如下界面
情况一:如果要使用已有的签名文件,那么点击Choose existing...按钮,选择已有的签名文件的路径,在Key store password输入框填写上签名文件的密码,在Key alias输入框填写上别名,在Key password输入框填写上该别名对应的密码,而后点击Next按钮,出现如下界面
Build Type类型中选择release,然后点击Finish按钮即可生成已签名发行版apk。等待生成成功,可在模块目录下找到xxx-release.apk的文件,此文件便是已签名发行版apk。
Build Type类型中选择debug,然后点击Finish按钮即可生成已签名调试版apk。等待生成成功,可在模块目录下找到xxx-debug.apk的文件,此文件便是已签名调试版apk。
情况二:如果还没有签名文件,需要使用新创建的签名文件,则点击Create new...按钮,点击后出现如下界面
箭头指出的部分填写上信息,点击OK,即可生成签名文件。
其余生成签名apk的步骤同情况一。