安卓APP导出
直接从项目中运行生成的 app-debug.apk 是用一个临时的调试密钥签名的,很多手机会因为安全策略而拒绝安装,或者在安装时给出更强的安全警告。
为什么需要签名?
给App签名主要有三个目的:
- 身份验证:证明这个App确实是您(开发者)创建的,而不是其他人冒充的。
- 完整性保证:签名可以确保App在从您电脑生成后,到用户安装前,没有被任何人篡改过。
- 安全更新:当用户安装了您的App后,安卓系统只允许使用同一个签名密钥的新版本App来进行覆盖更新。这就防止了恶意应用伪装成您的App更新,窃取用户数据。
如何在 Android Studio 中导出带签名的APK (详细步骤)
以下是在现代Android Studio版本中生成签名APK的完整流程。
第 1 步:打开生成向导
在Android Studio的顶部菜单栏,选择 Build -> Generate Signed Bundle / APK...。
第 2 步:选择 APK 格式
弹出的窗口会让你选择是生成 Android App Bundle (.aab) 还是 APK (.apk)。
- App Bundle (
.aab):这是上传到 Google Play 商店的推荐格式,它能让Google Play为不同设备优化APK大小。 - APK (
.apk):这是传统的安装包文件,适合直接分享给他人进行安装测试。
根据您的需求,请选择 APK,然后点击 Next。
第 3 步:创建或选择您的数字签名 (密钥库)
这是最关键的一步。您需要一个“密钥库 (Key Store)”文件来给您的App签名。
如果您是第一次签名:
- 点击
Create new...按钮。 - 在弹出的 "New Key Store" 窗口中填写信息:
- Key store path:选择一个位置来保存您的密钥库文件。这个文件通常以
.jks或.keystore结尾。请务必将这个文件保存在一个安全的地方,比如您的项目文件夹之外,并做好备份! - Password:为这个密钥库文件设置一个密码。
- Key alias:给您的密钥起一个别名,例如
my-app-key。 - Password:为这个密钥本身设置一个密码(可以和密钥库密码相同)。
- Validity (years):密钥的有效期。Google Play要求至少为25年,建议直接填
25或更高。 - Certificate:填写一些您的个人或公司信息,至少填写一项即可。
- Key store path:选择一个位置来保存您的密钥库文件。这个文件通常以
- 填写完毕后,点击
OK。
- 点击
如果您已经有密钥库文件:
- 点击
Choose existing...,找到您之前保存的.jks文件。 - 依次输入您的密钥库密码、密钥别名和密钥密码。
- 点击
填写/选择完毕后,点击 Next。
第 4 步:选择构建变体并完成
- Build Variants:选择
release。这会构建一个为发布而优化的版本。 - Signature Versions:请同时勾选 V1 (Jar Signature) 和 V2 (Full APK Signature)。这样可以确保您的App在所有新旧版本的安卓系统上都有最好的兼容性。
- 点击
Finish。
Android Studio会开始构建您的应用。完成后,右下角会弹出一个通知。
第 5 步:找到并分享APK文件
在弹出的通知中,点击蓝色的 locate 链接,Android Studio会自动在您的文件浏览器中打开生成APK的文件夹(通常在 YourProject/app/release/ 目录下)。
您会找到一个名为 app-release.apk 的文件。这个就是最终带签名的、可以分享给任何人安装的APK文件了。
如何让其他人安装
- 将这个
app-release.apk文件通过微信、QQ、邮件、钉钉或USB等任何方式发送给对方。 - 对方在手机上接收到文件后,点击打开。
- 如果对方的手机没有开启“允许安装来自未知来源的应用”选项,系统会弹出提示。他们需要根据提示去手机的“设置”中,为文件管理器或他们接收文件的App(如微信)开启这个权限。
- 开启权限后,返回并重新点击APK文件即可成功安装。
【极其重要!】
请务必妥善、安全地备份您的密钥库文件 (.jks) 及其所有密码。如果丢失,您将永远无法再发布使用相同签名的更新版本。Google Play也无法帮您找回。您需要像保管银行卡密码一样保管它!
密码:qianyuan
安卓APP导出的更多相关文章
- 安卓APP测试之使用Burp Suite实现HTTPS抓包方法
APP的测试重点小部分在APP本身,大部分还是在网络通信上(单机版除外).所以在安卓APP测试过程中,网络抓包非常重要,一般来说,app开发会采用HTTP协议.Websocket.socket协议,一 ...
- 安卓APP和小程序渗透测试技巧总结
安卓APP和小程序渗透测试技巧总结 免责声明: 安卓7以上抓取https流量包 证书信任 首先安装OpenSSL,此步骤不再赘述,可以参考百度. 然后安装模拟器(我使用的是夜神模拟器). 导出需要的证 ...
- 关于安卓APP的启动界面
刚学安卓App开发的朋友们,可能会遇到一个问题,就是人家的App刚进入会有一个页面出现一会儿后消失, 这个页面可以用来打广告,也可以声明App的主题,所以说这个启动页面至关重要,接下来,我把我的代 ...
- 安卓APP测试验证点总结
最近较懒,加之闺女出生后记忆没完全恢复,总是忘东忘西,关于安卓APP测试的验证点还是总结一下,方便设计测试用例时查阅,也给各位博友参考! 1.除APP的正常功能点外,还有以下验证点: 安装/卸载(考虑 ...
- 【转载】安卓APP架构
注:本篇博文转载于 http://my.oschina.net/mengshuai/blog/541314?fromerr=z8tDxWUH 本文介绍了文章作者从事了几年android应用的开发,经历 ...
- 安卓app设计规范整理和Android APP设计篇(转)
随着安卓智能手机不停的更新换代.安卓手机系统越来越完美,屏幕尺寸也越来越大啦!比如最近小米的miui 6的发布和魅族手机系统的更新等等. 以小米MIUI6的安卓手机来说,MIUI6进行了全新设计,坚持 ...
- 如何做个简单安卓App流程
有同学做毕业设计,问怎样做个简单安卓App流程,我是做服务端的,也算是经常接触app,想着做app应该很简单吧,不就做个页面,会跳转,有数据不就行了,我解释了半天,人家始终没听懂,算了,我第二天问了下 ...
- 安卓App流量统计
http://keepcleargas.bitbucket.org/2013/10/12/android-App-Traffic.html 安卓App流量统计 12 OCT 2013 android流 ...
- 当前主流的安卓APP开发IDE
什么是主流的开发安卓APP的方式? 我是去年4月份接触的Android开发,因此特别有感触,可以明显的感受到安卓APP主流开发方式的改变. 去年,2015年年初,各大安卓开发群大部分大牛在用Eclip ...
- 仿春雨医生 安卓app(android)
仿春雨医生 安卓app(android) 目前APP处与开发完善中,可过程序自下载更新,如有BUG报错,请联系QQ 131 065 1206 支持安卓(android) .IOS(IPHONE),PA ...
随机推荐
- Advanced pandas
Advanced pandas import numpy as np import pandas as pd Categorical Data This section introduces the ...
- codeup之C语言10.15(指针
Description 输入3个字符串,按从小到大的顺序输出.要求使用指针的方法进行处理. Input 3行,每行一个用字符串.保证每个字符串的长度不超过20. Output 按从小到大的顺序输出这3 ...
- E. Level Up
E. Level Up 题意 玩家初始等级为 \(1\), 有 \(n\) 只怪物,每个怪物有一个等级 \(a_i\), 如果怪物等级高于你,则你们会战斗,战斗后经验加1,否则怪物会逃跑,你不会获得经 ...
- Hypermesh_LsDyna划分网格
1.创建角点 2.创建单元(按F6) 3.划分网格(按F12) 4.清除临时节点(Geom → temp nodes → clear all) 5.设置单元集(PD单元)(*SET_SHELL_LIS ...
- CAN304 W4
CAN304 W4 The public-key revolution 对称加密 (symmetric cryptograph) 带来了一系列安全问题: 如何安全地共享密钥?(The key-dist ...
- Linux系统split对tar文件进行分片和压缩
一.简单说明 在实际的使用场景中,我们可能对压缩过的tar包上传到某个服务器或者应用,会涉及超出服务器限制的文件大小.这里我们可以对此文件进行压缩.分片.合并. 二.实际操作 2.1 压缩包分片 这里 ...
- 如何给 GitHub Copilot "洗脑”,让 AI 精准遵循指令产出高质量代码
引子 最近在项目中使用 GitHub Copilot 的过程中,我发现了一个很有趣的现象. 当我让 Copilot 帮我写代码时,它总是热情满满地给出一大段实现.但当我仔细审视这些代码时,却经常会发现 ...
- snmp总结一:概述
snmp总结一:概述 SNMP概述 SNMP是英文"Simple Network Management Protocol"的缩写,中文意思是"简单网络管理协议" ...
- ko在数栈中的应用
引言 一项技术能得以广泛运用,其中的一个关键点在于工程化.前端从最开始的简单写写网页和样式,发展为需要处理复杂的逻辑,伴随而来的是问题是相关文件越来越多,简单在网页中引用已经解决不了问题,需要相关 ...
- 使用 certbot 通过 Let's Encrypt 申请免费证书,部署到 nginx 中,开启 https
使用 certbot 可以很方便.快捷的通过 Let's Encrypt 申请免费的证书,并部署到 nginx 中,开启 https 在 Linux 通过命令安装 安装 Nginx sudo apt ...