Android程序打包为APK
Andriod安装包文件(Android Package),简称APK,后缀名为.apk。
1、生成未签名的安装包
Build -> Build Bundle(s)/APK(s) -> Build APK(s) 会生成一个未签名的apk文件,默认为debug版,可以正常安装使用。
可以 Build -> Select Build Variant -> 选择生成的apk版本(debug、release),再 Build -> Build Bundle(s)/APK(s) -> Build APK(s) 生成对应版本的apk文件。
注意:
release版本的未签名的apk文件,在某些手机上无法安装,比如OPPO。
如果Build -> Select Build Variant 设置为release,之后再debug,debug config往往会报错,将Build -> Select Build Variant 设置为debug即可。
2、生成签名的安装包
Build -> Generate Signed Bundle/APK -> APK -> Create New 创建一个新的证书 (也可以选择一个已有的证书)->

ok -> 选择生成的APK文件所在目录、选择apk版本

点击finish即会在指定目录下生成一个签名的apk文件。
下次打包时,可以直接使用上面生成的签名: Choose existing 选择已存在的钥匙库文件,输入钥匙库密码、秘钥密码

debug版和release版的区别:
debug版包含调试信息,往往没有任何优化,适合程序调试。
release版是发布版,供用户使用,往往进行了各种优化。
Android程序打包为APK的更多相关文章
- android程序打包成APK
		1.下载ant(从官网上下载没有bin目录,可以直接在百度上搜APACHE-ANT-1.9.4-BIN.ZIP) 2.解压到C盘根目录(也可以是其他盘) 3.修改环境变量 ANT_HOME C: ... 
- Python:使用Kivy将python程序打包为apk文件
		1.概述 Kivy是一套Python下的跨平台开源应用开发框架,官网,我们可以用 它来将Python程序打包为安卓的apk安装文件.以下是在windows环境中使用. 安装和配置的过程中会下载很多东西 ... 
- eclipse 和 android studio 打包签名apk问题
		首先,我使用eclipse打包了一个签名apk 然后,我使用同一个签名文件在android studio 打包同一个项目 接下来,首先安装eclipse 打包的apk,然后安装android stud ... 
- uni-app&H5&Android混合开发二 || 使用Android Studio打包应用APK
		前言: 在上一章节我们已经讲了如何uni-app离线打包Android平台教程,这一章就该来讲讲如何使用Android Studio打包应用APK提供给Android手机安装使用了. 第一步.首先打开 ... 
- Android项目打包成APK文件
		第一步:右键单击该项目选择Export项目 显演示样例如以下界面:选择Exprot Android Application 第二步:输入项目名称,默认的情况下是原始的项目名称 下一步: 点击 Crea ... 
- 【Android Studio安装部署系列】十、Android studio打包发布apk安装包
		版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 使用Android studio发布apk安装包的操作步骤. 开始打包发布apk Build > Generate Signe ... 
- Android Studio 打包自定义apk文件名
		使用Android Studio打包的时候,我们有时候需要自定义apk的文件名,在此记录一下. 在app的build.gradle中,根节点下使用关键词def声明一个全局变量,用于获取打包的时间,格式 ... 
- android开发里跳过的坑——android studio打包的APK签名无效
		近期把一个项目从eclipse上移植到了android studio, 在打包发布APK的时候,应用上传到应用市场时提示取不到签名.但是,我确实使用了 做过签名了. 然后换了一种打包方式 build ... 
- Android 程序打包和安装过程
		APP程序打包与安装的流程: APP的安装过程: 
随机推荐
- react native  之页面跳转
			第一章 跳转的实现 1.component 中添加这行代码 <View style={styles.loginmain}> <Text style={styles.loginte ... 
- CodeForces - 55D Beautiful numbers —— 数位DP
			题目链接:https://vjudge.net/problem/CodeForces-55D D. Beautiful numbers time limit per test 4 seconds me ... 
- MYSQL进阶学习笔记七:MySQL触发器的创建,应用及管理!(视频序号:进阶_16,17)
			知识点八:MySQL触发器的应用(16,17) 触发器的定义: 什么是触发器: 触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据是触发执行,他比数据库本身标准的功能有更精细和更复杂的数据 ... 
- NIO与IO的区别
			nio是new io的简称,从jdk1.4就被引入了.现在的jdk已经到了1.6了,可以说不是什么新东西了.但其中的一些思想值得我来研究.这两天,我研究了下其中的套接字部分,有一些心得,在此分享. ... 
- javascript之表格节点操作
			<html> <div class='add'> 名字: <input type="" name=""&g ... 
- AutoIt获取Gridview中可以修改列的值
			有一个界面如上图:黑色框框部分是一个整体,也是一个gridview,如果我想把框框中右侧数据获取出来,该如何操作? 我尝试过了很多途径,都无法成功. 今天,我发现,当鼠标焦点在黑色框框左侧的部分的时候 ... 
- Linux Shell高级技巧(目录)
			为了方便我们每个人的学习,这里将给出Linux Shell高级技巧五篇系列博客的目录以供大家在需要时参阅和查找. Linux Shell高级技巧(一) http://www.cnblogs.com/s ... 
- 深入研究 Java Synchronize 和 Lock 的区别与用法
			在分布式开发中,锁是线程控制的重要途径.Java为此也提供了2种锁机制,synchronized和lock.做为Java爱好者,自然少不了对比一下这2种机制,也能从中学到些分布式开发需要注意的地方. ... 
- sharepoint服务器修改密码后出现HTTP Error 503
			HTTP Error 503 解决办法: 更改sharepoint 网站应用程序池标示后,更改标示重新输入管理员密码,问题解决! 
- rbenv更新ruby后rails命令无效的解决方案
			创建: 2017/11/02 更新: 2018/02/02 增加rbenv使用方法的链接 rbenv的使用: http://www.cnblogs.com/lancgg/p/8281739.h ... 
