本机 Android 开发提供最高性能和对系统 API 的完全访问。以 Kotlin 作为官方语言和 Jetpack Compose 彻底改变界面,创建 Android 应用程序从未如此高效。本指南介绍了基础知识、工具和最佳实践。
为什么要开发原生
最高性能
代码编译为优化的字节码。无需中介即可直接访问硬件。
完整的API
所有 Android 功能均可用。发布当天的新功能。
本地体验
UI 遵循材料设计标准。用户感到熟悉。
谷歌支持
官方文档、专用工具、活跃的社区。
Kotlin:官方语言
为什么选择 Kotlin
Google 在 2019 年宣布 Kotlin 为首选语言。比 Java 更简洁、安全和现代。
优势
- 原生空安全
- 异步协程
- 扩展功能
- 数据类
- 与 Java 的互操作性
干净的语法
更少的样板。更具可读性和可维护性的代码。
开发环境
Android Studio
基于IntelliJ的官方IDE。一切都集成了:编辑器、模拟器、调试器、分析器。
SDK 管理器
管理 Android SDK 版本。下载目标 API 和工具。
模拟器
模拟 Android 设备。多种配置可供选择。
设备管理器
创建和管理虚拟模拟器。
项目结构
模块
主应用程序模块,共享代码的库模块。
###摇篮
构建系统。依赖性、配置、变体。
AndroidManifest.xml
应用声明:权限、活动、服务。
###资源
布局、字符串、绘图、值。支持多种配置。
Jetpack 组合
这是什么
用于声明式 UI 的现代工具包。替换 XML 布局。
优势
- 更少的代码
- 实时预览
- 智能重组
- 简化的主题
可组合项
描述 UI 的函数。用@Composable注释。
状态
状态管理变更。状态改变时自动重组。
推荐架构
MVVM
模型-视图-视图模型。明确的职责分离。
视图模型
在配置更改后仍然存在。将状态暴露给 UI。
存储库
摘要数据源。在本地和远程之间做出选择。
用例
孤立的业务逻辑。对于简单的应用程序是可选的。
Jetpack 库
###房间
SQLite 的 ORM。类型安全查询,自动迁移。
导航
屏幕之间的导航。类型化参数的安全参数。
###刀柄
依赖注入。与 ViewModel 集成。
###数据存储
偏好的持久性。覆盖共享首选项。
工作经理
后台任务。尊重打瞌睡模式和限制。
网络
改造
类型安全的 HTTP 客户端。与协程集成。
OkHttp
底层 HTTP 客户端。拦截器、缓存、日志记录。
Kotlin 序列化
JSON 解析。 Gson/Moshi 的替代品。
协程和流程
协程
异步编程变得简单。暂停功能。
###流
反应流。 RxJava 的替代方案。
状态流
可观察状态。非常适合 ViewModel。
范围
视图模型范围、生命周期范围。自动取消。
测试
单元测试
用于业务逻辑的 JUnit。嘲笑嘲笑。
仪器测试
它们在设备/模拟器上运行。用于 UI 的浓缩咖啡。
编写测试
用于测试可组合项的专用 API。
##性能
基线配置文件
热路径预编译。启动速度更快。
R8
缩小和混淆。减小 APK 大小。
应用程序启动
库的延迟初始化。
分析
适用于 CPU、内存、网络的 Android Studio 分析器。
出版
Google Play 管理中心
用于发布和管理应用程序的门户。
应用程序包
分发格式。 Play 商店生成优化的 APK。
签名
用于签名版本的密钥库。安全存放。
发行曲目
内部、封闭、开放、生产。逐步推出。
材料设计 3
设计系统
官方谷歌指南。组件、颜色、排版。
动态颜色
颜色适应用户的壁纸(Android 12+)。
###组件
按钮、卡片、对话框、底部表格准备就绪。
辅助功能
内容说明
屏幕阅读器的说明。
触摸目标
适当大小的可触摸区域。
对比
具有足够对比度的颜色。
语义属性
撰写语义以获取额外信息。
现代特色
小部件
浏览 Compose 中的小部件。
通知
渠道、动作、内容丰富。
快捷键
深层链接和快捷方式应用程序。
画中画
浮窗视频。
安全
加密的共享首选项
加密的敏感数据。
网络安全配置
安全连接的控制。
###密钥库
安全密钥存储。
ProGuard/R8
混淆使逆向工程变得困难。
结论
使用 Kotlin 和 Jetpack Compose 进行原生 Android 开发高效且强大。成熟的工具、优秀的文档和活跃的社区让旅程变得更加轻松。投资学习架构和最佳实践来创建高质量的应用程序。
##常见问题解答
1) 我应该在 Kotlin 之前学习 Java 吗? 没必要。 Kotlin 更加现代,推荐用于新项目。
2) Compose 完全取代了 XML 吗? 在新项目中,建议选择 yes。现有项目可以逐步迁移。
3) 使用哪种架构? MVVM是Google推荐的标准。使用 ViewModel 和存储库。
4) 如何测试 Android 应用程序? 逻辑单元测试、UI 的 Espresso 测试、可组合项的 Compose 测试。
5) 学习Android需要多长时间? 几周就能掌握基础,几个月就能熟练。不断的练习是必不可少的。
另请阅读
- 【Android原生开发:如何采取必要步骤0
- 【Play商店审批:如何成功发布你的Android应用1
- [原生 Android 开发:启动应用程序的快速指南2
- 【移动性能优化:完整指南3
- 【Play商店审批-实践中常见错误4
- 【Play商店批准-日常生活中常见错误5
