直接从项目中运行生成的 app-debug.apk 是用一个临时的调试密钥签名的,很多手机会因为安全策略而拒绝安装,或者在安装时给出更强的安全警告。

为什么需要签名?

给App签名主要有三个目的:

  1. 身份验证:证明这个App确实是您(开发者)创建的,而不是其他人冒充的。
  2. 完整性保证:签名可以确保App在从您电脑生成后,到用户安装前,没有被任何人篡改过。
  3. 安全更新:当用户安装了您的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签名。

  • 如果您是第一次签名

    1. 点击 Create new... 按钮。
    2. 在弹出的 "New Key Store" 窗口中填写信息:
      • Key store path:选择一个位置来保存您的密钥库文件。这个文件通常以 .jks.keystore 结尾。请务必将这个文件保存在一个安全的地方,比如您的项目文件夹之外,并做好备份!
      • Password:为这个密钥库文件设置一个密码。
      • Key alias:给您的密钥起一个别名,例如 my-app-key
      • Password:为这个密钥本身设置一个密码(可以和密钥库密码相同)。
      • Validity (years):密钥的有效期。Google Play要求至少为25年,建议直接填25或更高。
      • Certificate:填写一些您的个人或公司信息,至少填写一项即可。
    3. 填写完毕后,点击 OK
  • 如果您已经有密钥库文件

    1. 点击 Choose existing...,找到您之前保存的 .jks 文件。
    2. 依次输入您的密钥库密码、密钥别名和密钥密码。

填写/选择完毕后,点击 Next

第 4 步:选择构建变体并完成

  1. Build Variants:选择 release。这会构建一个为发布而优化的版本。
  2. Signature Versions:请同时勾选 V1 (Jar Signature) 和 V2 (Full APK Signature)。这样可以确保您的App在所有新旧版本的安卓系统上都有最好的兼容性。
  3. 点击 Finish

Android Studio会开始构建您的应用。完成后,右下角会弹出一个通知。

第 5 步:找到并分享APK文件

在弹出的通知中,点击蓝色的 locate 链接,Android Studio会自动在您的文件浏览器中打开生成APK的文件夹(通常在 YourProject/app/release/ 目录下)。

您会找到一个名为 app-release.apk 的文件。这个就是最终带签名的、可以分享给任何人安装的APK文件了。

如何让其他人安装

  1. 将这个 app-release.apk 文件通过微信、QQ、邮件、钉钉或USB等任何方式发送给对方。
  2. 对方在手机上接收到文件后,点击打开。
  3. 如果对方的手机没有开启“允许安装来自未知来源的应用”选项,系统会弹出提示。他们需要根据提示去手机的“设置”中,为文件管理器或他们接收文件的App(如微信)开启这个权限。
  4. 开启权限后,返回并重新点击APK文件即可成功安装。

【极其重要!】

请务必妥善、安全地备份您的密钥库文件 (.jks) 及其所有密码。如果丢失,您将永远无法再发布使用相同签名的更新版本。Google Play也无法帮您找回。您需要像保管银行卡密码一样保管它!

密码:qianyuan

安卓APP导出的更多相关文章

  1. 安卓APP测试之使用Burp Suite实现HTTPS抓包方法

    APP的测试重点小部分在APP本身,大部分还是在网络通信上(单机版除外).所以在安卓APP测试过程中,网络抓包非常重要,一般来说,app开发会采用HTTP协议.Websocket.socket协议,一 ...

  2. 安卓APP和小程序渗透测试技巧总结

    安卓APP和小程序渗透测试技巧总结 免责声明: 安卓7以上抓取https流量包 证书信任 首先安装OpenSSL,此步骤不再赘述,可以参考百度. 然后安装模拟器(我使用的是夜神模拟器). 导出需要的证 ...

  3. 关于安卓APP的启动界面

    刚学安卓App开发的朋友们,可能会遇到一个问题,就是人家的App刚进入会有一个页面出现一会儿后消失,   这个页面可以用来打广告,也可以声明App的主题,所以说这个启动页面至关重要,接下来,我把我的代 ...

  4. 安卓APP测试验证点总结

    最近较懒,加之闺女出生后记忆没完全恢复,总是忘东忘西,关于安卓APP测试的验证点还是总结一下,方便设计测试用例时查阅,也给各位博友参考! 1.除APP的正常功能点外,还有以下验证点: 安装/卸载(考虑 ...

  5. 【转载】安卓APP架构

    注:本篇博文转载于 http://my.oschina.net/mengshuai/blog/541314?fromerr=z8tDxWUH 本文介绍了文章作者从事了几年android应用的开发,经历 ...

  6. 安卓app设计规范整理和Android APP设计篇(转)

    随着安卓智能手机不停的更新换代.安卓手机系统越来越完美,屏幕尺寸也越来越大啦!比如最近小米的miui 6的发布和魅族手机系统的更新等等. 以小米MIUI6的安卓手机来说,MIUI6进行了全新设计,坚持 ...

  7. 如何做个简单安卓App流程

    有同学做毕业设计,问怎样做个简单安卓App流程,我是做服务端的,也算是经常接触app,想着做app应该很简单吧,不就做个页面,会跳转,有数据不就行了,我解释了半天,人家始终没听懂,算了,我第二天问了下 ...

  8. 安卓App流量统计

    http://keepcleargas.bitbucket.org/2013/10/12/android-App-Traffic.html 安卓App流量统计 12 OCT 2013 android流 ...

  9. 当前主流的安卓APP开发IDE

    什么是主流的开发安卓APP的方式? 我是去年4月份接触的Android开发,因此特别有感触,可以明显的感受到安卓APP主流开发方式的改变. 去年,2015年年初,各大安卓开发群大部分大牛在用Eclip ...

  10. 仿春雨医生 安卓app(android)

    仿春雨医生 安卓app(android) 目前APP处与开发完善中,可过程序自下载更新,如有BUG报错,请联系QQ 131 065 1206 支持安卓(android) .IOS(IPHONE),PA ...

随机推荐

  1. Advanced pandas

    Advanced pandas import numpy as np import pandas as pd Categorical Data This section introduces the ...

  2. codeup之C语言10.15(指针

    Description 输入3个字符串,按从小到大的顺序输出.要求使用指针的方法进行处理. Input 3行,每行一个用字符串.保证每个字符串的长度不超过20. Output 按从小到大的顺序输出这3 ...

  3. E. Level Up

    E. Level Up 题意 玩家初始等级为 \(1\), 有 \(n\) 只怪物,每个怪物有一个等级 \(a_i\), 如果怪物等级高于你,则你们会战斗,战斗后经验加1,否则怪物会逃跑,你不会获得经 ...

  4. Hypermesh_LsDyna划分网格

    1.创建角点 2.创建单元(按F6) 3.划分网格(按F12) 4.清除临时节点(Geom → temp nodes → clear all) 5.设置单元集(PD单元)(*SET_SHELL_LIS ...

  5. CAN304 W4

    CAN304 W4 The public-key revolution 对称加密 (symmetric cryptograph) 带来了一系列安全问题: 如何安全地共享密钥?(The key-dist ...

  6. Linux系统split对tar文件进行分片和压缩

    一.简单说明 在实际的使用场景中,我们可能对压缩过的tar包上传到某个服务器或者应用,会涉及超出服务器限制的文件大小.这里我们可以对此文件进行压缩.分片.合并. 二.实际操作 2.1 压缩包分片 这里 ...

  7. 如何给 GitHub Copilot "洗脑”,让 AI 精准遵循指令产出高质量代码

    引子 最近在项目中使用 GitHub Copilot 的过程中,我发现了一个很有趣的现象. 当我让 Copilot 帮我写代码时,它总是热情满满地给出一大段实现.但当我仔细审视这些代码时,却经常会发现 ...

  8. snmp总结一:概述

    snmp总结一:概述 SNMP概述 SNMP是英文"Simple Network Management Protocol"的缩写,中文意思是"简单网络管理协议" ...

  9. ko在数栈中的应用

    ​ 引言 一项技术能得以广泛运用,其中的一个关键点在于工程化.前端从最开始的简单写写网页和样式,发展为需要处理复杂的逻辑,伴随而来的是问题是相关文件越来越多,简单在网页中引用已经解决不了问题,需要相关 ...

  10. 使用 certbot 通过 Let's Encrypt 申请免费证书,部署到 nginx 中,开启 https

    使用 certbot 可以很方便.快捷的通过 Let's Encrypt 申请免费的证书,并部署到 nginx 中,开启 https 在 Linux 通过命令安装 安装 Nginx sudo apt ...