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版本,可能会因为签名冲突导致安装失败。
相关推荐
小程故事多_806 小时前
从 Tokenizer 到 Next Token,穿透数据流,完整理解 Transformer 底层逻辑
android·深度学习·transformer
星恒随风9 小时前
Linux线程概念详解:从分页存储、页表、MMU与TLB,深入理解线程和进程的区别与联系
linux·运维·笔记·学习·状态模式
qq_284274059 小时前
数控机床编程基础与坐标系:编程六步流程、程序号/程序段/程序字格式,与右手定则下车床铣床XYZ轴判定(含考点)
笔记·学习·自动化·制造
德林恩宝9 小时前
On-Policy Distillation(OPD)学习文档
人工智能·学习·机器学习·大模型·llm·大模型微调
xxwl5859 小时前
区域赛分类题解
c++·笔记·学习·算法
三少爷的鞋9 小时前
Android 协程实践:为什么不应将 `supervisorScope` 作为常规方案
android
承渊政道11 小时前
【从零开始大模型开发与微调:基于PyTorch与ChatGLM】(从ChatGLM本地化到LoRA、PEFT的高级微调)
android·人工智能·pytorch·chatglm·本地化部署·大模型开发与微调
2601_9628857213 小时前
如何用 Python 判断一只股票“追涨”还是“抄底”更有效?
android·开发语言·python
素师良码13 小时前
第10篇:屏ESD Check内核逻辑驱动代码完整拆解
android
高晶13 小时前
Android 短信收发模块从零到实战:权限配置、界面设计、发送接收与兼容性适配全攻略
android·程序员