Android Studio学习记录1

Android Studio打包APK

本文为个人学习记录,仅供参考,如有错误请指出。本文主要记录在Android Studio中开发时遇到的问题和回答。


随着学习的深入,项目完成并通过测试之后免不了需要进入打包环节。这篇文章主要记录一下尝试打包APK的过程。我将使用Mac系统进行开发,同时参考了些许其他博主的文章。

1.在Android Studio中打开需要打包的项目,在顶部找到"Build"按钮,选择"Build->Generate Signed App Bundle or APK..."。

2.点击之后,选择"APK"按钮,然后点击"Next"。

3.接下来分成两种情况,如果是第一次打包而且没有密钥文件则点击"Create new..."进行详细的密钥配置,如果有密钥文件则点击"Choose existing..."使用现成的文件即可进行下一步。此处的"Remember passwords"根据需要勾选即可,勾选上下次打包可以方便一点。

如果是第一次打包,点击"Create new..."之后的具体内容如下,根据实际要求填写吧,其中Validity(years)表示密钥的有效年限,填写好之后点击"OK"即可回到上图页面:

4.上述编写好密钥文件之后,会进入到这个页面,可以选择需要包的版本,如果用于调试,可以选择debug版本;如果用于发布,可以选择release版本;此处的jenkins好像是一个自动化打包的选项,需要通过插件实现,可以忽略。我选择的是release版本。选择好之后点击"Create"即可进行打包,等待编译完成。

  • 区别:

    debug版本:该版本主要用于调试,是未发行的。

    release版本:release版本有"签名"的概念,就是以包名作为唯一标识,如果两个App的包名相同(若无签名),则后来安装的App就会对其进行覆盖安装。但Android要求App发布都需要"签名",正因"签名"的存在,则不会覆盖安装。

  • "签名"的作用:

    确定发布者的身份;确保App的完整性,防止文件内容被替换。

显示以下提示,说明打包成功。

此时,文件列表中应该会出现一个新的文件夹,左上角切换到"Project"显示模式,可以找一找刚才创建时的路径下有一个名为你选择的版本的文件夹,我选择了"release"版本,所以出现了"release"文件夹,其中的.apk文件就是打包好的文件,可以理解为安装包。

或者点击上述"打包成功提示"中的"locate"按钮,可以快速找到apk文件。

5.接下来就是将apk文件安装至模拟器中即可进行测试,或者发送至真实的安卓手机上也可以进行安装测试。我使用的是Android Studio自带的模拟器,使用其他模拟器也完全可以。直接将刚才打包好的文件拖至模拟器显示器中即可自动安装你的项目。整体还是比较简单的,根据实际需要打包即可。

点击软件页面右侧功能栏中的这个"手机"图标,即可打开设备管理器或者模拟器,点击左上角的"+"按钮可以创建新的模拟器,可以添加你需要的类型的模拟器。

注意⚠️:

  • App只能升级不能降级,如果设备上已经有一个版本,需要安装一个更低版本,会出现安装失败的提示,可以尝试删除之前安装的版本,或在build.gradle.kts文件中的"versionCode"对版本进行修改。
  • App签名不一致也会导致安装失败。例如之前安装了debug版本,又需要安装release版本,可能会因为签名冲突导致安装失败。
相关推荐
遇见尚硅谷6 小时前
C语言:*p++与p++有何区别
c语言·开发语言·笔记·学习·算法
艾莉丝努力练剑7 小时前
【数据结构与算法】数据结构初阶:详解排序(二)——交换排序中的快速排序
c语言·开发语言·数据结构·学习·算法·链表·排序算法
jz_ddk7 小时前
[HarmonyOS] 鸿蒙LiteOS-A内核深度解析 —— 面向 IoT 与智能终端的“小而强大”内核
物联网·学习·华为·harmonyos
试着7 小时前
零基础学习性能测试第五章:Tomcat的性能分析与调优-Tomcat原理,核心配置项,性能瓶颈分析,调优
学习·零基础·tomcat·性能测试
老虎06277 小时前
JavaWeb(苍穹外卖)--学习笔记13(微信小程序开发,缓存菜品,Spring Cache)
笔记·学习·微信小程序
@蓝莓果粒茶9 小时前
LeetCode第350题_两个数组的交集II
c++·python·学习·算法·leetcode·职场和发展·c#
无名工程师9 小时前
AI 学习过程中各阶段的学习重点、时间规划以及不同方向的选择与建议等内容
人工智能·学习
试着9 小时前
零基础学习性能测试第五章:JVM性能分析与调优-垃圾回收器的分类与回收
jvm·学习·零基础·性能测试·垃圾回收器
livemetee9 小时前
Flink2.0学习笔记:Stream API 常用转换算子
大数据·学习·flink
WXX_s9 小时前
【OpenCV篇】OpenCV——03day.图像预处理(2)
人工智能·python·opencv·学习·计算机视觉