内容提要
本文是Android应用从零到Google Play上架的完整指南:使用Jetpack Compose、Room、ViewModel和Navigation 3构建笔记应用,讲解分层架构、状态提升与测试;发布部分涵盖R8混淆、上传密钥签名、AAB打包、Play Console账号验证、隐私政策与数据安全声明、商店素材,以及个人账号须完成12名测试者14天封闭测试后才能申请生产发布。
延伸解读
从开发到上架:被忽视的“后半程”
文章指出,多数教程止步于模拟器运行,而真实上架涉及签名密钥、AAB打包、商店列表、政策表单以及新开发者账号的强制测试期。这些环节分散且易变,本文将其整合为一条完整路径,帮助读者避免因遗漏发布步骤而卡在最后阶段。
技术栈已更新:Compose、Kotlin与Navigation 3
文章强调Jetpack Compose已成为默认UI工具包,XML布局属于遗留方案,官方模板仅使用Kotlin。同时介绍了Navigation 3以“开发者拥有返回栈列表”为核心的设计,与旧版Navigation Compose不同。读者需注意这些变化,避免参考过时教程。
分层架构与状态管理的关键实践
示例应用采用UI、ViewModel、数据层三层结构,依赖方向向下。文章详细说明了状态提升、StateFlow与WhileSubscribed的5秒宽限期、以及用Application类创建单例数据库。这些模式有助于构建可测试、可维护的应用,并避免旋转屏幕等配置变更导致的状态丢失。
发布前的必要准备与账号限制
文章提到发布需配置R8混淆、上传密钥签名、生成AAB,并在Play Console完成账号验证、隐私政策与数据安全声明。特别指出个人开发者账号须先完成12名测试者14天的封闭测试才能申请生产发布。读者应提前规划测试周期,并确保targetSdk符合当年要求。
Q&A
2026年构建Android应用,Jetpack Compose和XML布局哪个是主流?
Jetpack Compose现在是默认的UI工具包,XML布局属于旧版遗留方式,官方模板只使用Kotlin语言。
新开发者账号在Google Play发布应用前必须完成什么测试?
个人开发者账号必须完成封闭测试,至少12名测试者连续测试14天,之后才能申请生产发布。
用Room做本地存储时,DAO方法返回Flow有什么好处?
Flow是协程流,当底层数据变化时会自动发出新值,Room会自动重新执行查询并发出最新列表,无需手动刷新即可让列表界面保持同步。
ViewModel在屏幕旋转时如何避免数据重新加载?
ViewModel在配置变更(如旋转)时存活于内存中,Activity被销毁重建但ViewModel保留,因此笔记列表无需重新加载。
Navigation 3和旧的Navigation Compose在回退栈管理上有什么不同?
Navigation 3把回退栈作为开发者自己拥有的普通列表,导航就是向列表添加或移除项,库观察列表并显示栈顶键对应的屏幕;而旧库将回退栈视为内部拥有。
发布Android应用时如何创建上传密钥并打包AAB?
文章涵盖创建上传密钥并签名应用,以及构建Android App Bundle(AAB)的步骤,用于上传到Google Play。
在Compose中,remember和rememberSaveable有什么区别?
remember在重组间保持值,但配置变更(如旋转)时不会保留;rememberSaveable可以跨配置变更保存简单值。