使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
check_circle
欢迎学习第 4 单元
ondemand_video
视频
可选
欢迎学习第 4 单元!本单元将介绍在构建具有更多逻辑和更多屏幕的应用时需要考虑的重要主题。该单元包括应用架构、应用内不同屏幕之间的导航以及自适应布局。
check_circle
activity 生命周期的阶段
emoji_objects
Codelab
在此 Codelab 中,您将了解 activity 生命周期和日志记录。
check_circle
应用架构简介
ondemand_video
视频
可选
了解如何使用 Android 应用开发所采用的设计模式、技术和最佳实践来构建 Android 应用。
check_circle
架构:界面层
ondemand_video
视频
可选
在本视频中,您将了解界面层以及如何使用单向数据流处理界面状态。
check_circle
Compose 中的 ViewModel 和状态
emoji_objects
Codelab
在此 Codelab 中,您将学习如何使用 ViewModel(架构组件之一)。您将实现 ViewModel 以在配置更改期间保留应用状态。
check_circle
编写单元测试以测试 ViewModel
emoji_objects
Codelab
了解如何测试 ViewModel 以验证应用的正确性、功能行为和易用性。
check_circle
练习:向 Dessert Clicker 添加 ViewModel
emoji_objects
Codelab
练习向应用添加 ViewModel 并将逻辑从 activity 中提取出来。
check_circle
后续操作
ondemand_video
视频
可选
恭喜您完成第 4 单元中的开发者在线课程 1!您的应用开发之旅取得了惊人的进展。在本在线课程中,您构建了 Dessert Clicker 应用和 Unscramble 应用,并学习了应用生命周期、处理配置变更以及应用架构方面的知识。
测验
测试您的知识掌握情况,赢取“架构组件”徽章。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"没有我需要的信息"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"太复杂/步骤太多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"内容需要更新"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/代码问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{}