android studio导出apk
在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的步骤同情况一。
android studio导出apk的更多相关文章
- Android Studio 导出APK
(1)Android Studio菜单Build->Generate Signed APK (2)弹出窗口 (3)创建密钥库及密钥,创建后会自动选择刚创建的密钥库和密钥(已拥有密 ...
- Android tips(八)-->Android Studio打包apk,aar,jar包
文本我们将讲解android studio打包apk,aar,jar包的相关知识.apk包就是android系统的安装包,这里没什么好说的,aar包是android中独有的类库包,而jar包是java ...
- Android Studio打包apk,aar,jar包
转载请标明出处:一片枫叶的专栏 文本我们将讲解android studio打包apk,aar,jar包的相关知识.apk包就是android系统的安装包,这里没什么好说的,aar包是android中独 ...
- Android Studio导出Jar包
这篇博客将介绍一下如何用Android Studio导出jar包,希望能给大家带来帮助. 首先需要修改build.gradle文件,在Android Studio中会显示多个build.gradle文 ...
- Android Studio 打包APK时,出现3个或多个APK
Android Studio 打包APK时,原来只会出现一个apk,结果现在出现3个apk,仔细检查了一下项目文件发现: Android Studio 的 buid.gradle文件里有个配置项被更改 ...
- Android Studio Analyze APK 一直显示 Parsing Manifest探因及解决
一.背景 大家都知道,Android Studio开发工具自带了Analyze Apk,可以很方便的分析Apk文件.具体位于菜单build >> Analyze APK...路径下,点击后 ...
- 用Android Studio导出jar给Unity3D用
1.新建一个Android Studio工程,选择空Activity 2.创建一个Module 3.将Unity的依赖jar包拷贝到工程的libs下 4.增加Java代码 内容修改如下 package ...
- Android Studio导出Jar包并混淆
在Android Studio中,自带反编译查看class文件,如果没有混淆的话,class文件跟java文件基本没有区别了,为了保护,还是混淆的好. 网上看了不少资料,都是直接下载proguard额 ...
- Android studio打包APK混淆配置
要在打包APK时加入混淆需要在Module中的buid.gradle中加入如下信息 buildTypes { release { minifyEnabled true shrinkResources ...
随机推荐
- Dirichlet's Theorem on Arithmetic Progressions POJ - 3006 线性欧拉筛
题意 给出a d n 给出数列 a,a+d,a+2d,a+3d......a+kd 问第n个数是几 保证答案不溢出 直接线性筛模拟即可 #include<cstdio> #inclu ...
- Appium环境的安装以及一路上的坑
Appium环境的安装以及一路上的坑 第一步环境的安装 l javaJDK的安装以及环境变量的配置这个我就不说了网上的教程全都是,搜一个安装一下吧 l AndroidSDK的安装也是如此我是直接安 ...
- 使用IDEA部署项目到远程服务器
1.选择Tools -> Deployment -> Configuration... 2.配置连接信息,Linux服务器一般都选择SFTP 3.配置本地上传文件路径.远程上传文件路径 4 ...
- jquery扩展写法
如何制作自己的Jquery插件,内容参考学习了网上的讲解,如下 使用这两个方法 jQuery.fn.extend(object) jQuery.extend(object) jQuery.extend ...
- cf1088E Ehab and a component choosing problem (树形dp)
题意(考试时看错了对着样例wa了好久..):从树上选k个连通块,使得权值的平均值最大的基础上,选的块数最多 如果不考虑块数最多的限制,肯定是只选一个权值最大的块是最好的 然后只要看这个权值最大的块有多 ...
- NOIP2018凉凉记
首先声明一下,我去不了TG,因为我太菜了GD的某教授把我打到PJ了…… 虽然就我这实力普及都不一定1= 不管了,这次是普及,就当扎实基础了.反正HF的 $\text{hhz}$ 也考PJ,见个面多好啊 ...
- KMP 求最小循环节
转载自:https://www.cnblogs.com/chenxiwenruo/p/3546457.html KMP模板,最小循环节 下面是有关学习KMP的参考网站 http://blog.cs ...
- Ocean的游戏(前缀和)
题目链接:http://oj.ismdeep.com/contest/Problem?id=1284&pid=1 B: Ocean的游戏 Time Limit: 1 s Memory ...
- JavaScript ES6 核心功能一览
JavaScript 在过去几年里发生了很大的变化.这里介绍 12 个你马上就能用的新功能. JavaScript 历史 新的语言规范被称作 ECMAScript 6.也称为 ES6 或 ES2015 ...
- (六)Oracle 的 oracle表查询关键字
参考:http://www.hechaku.com/Oracle/oracle_tables2.html 1.使用逻辑操作符号问题:查询工资高于500或者是岗位为manager的雇员,同时还要满足他们 ...