《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图
按第四版实际32章与六个项目建立Android组件、生命周期、状态、线程、持久化、外部合同和版本迁移路线
《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图
本页依据第四版实际出版电子目录独立重构,不复制原文。InformIT商品页仍显示36章旧结构;O'Reilly收录的第四版电子书和第四版勘误增补确认实际正文以32章结束。本课程保留出版时Android 5.0至8.1及后续兼容语境,并把现代目标SDK变化放入明确迁移层。
学习目标
- 能沿“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”的用户事件解释Android组件、状态所有者、线程与销毁边界。
- 能围绕“按第四版实际32章与六个项目建立Android组件、生命周期、状态、线程、持久化、外部合同和版本迁移路线”改出一个可运行结果,并用前后状态而非组件数量验收。
- 能在旋转、进程重建、拒权、离线或无效输入中选择适用反例,定位首个状态分叉。
- 能用构建指纹、用户操作、状态快照、原始日志和行为断言独立重放结论,并标明第四版机制与现代targetSdk政策的边界。
“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”不使用未获授权的纸书正文;InformIT出版信息与授权电子版完整目录只用于确认第四版32章、269个正式目录节点和时代语境,第四版官方勘误用于识别工具链变更。下列中文解释、图示、交互、代码与练习均为独立教学重写,平台行为再以Android Developers的一手文档复核。
为什么“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”必须回到可观察状态
“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”的学习结果不是记住类名,而是能预测“按第四版实际32章与六个项目建立Android组件、生命周期、状态、线程、持久化、外部合同和版本迁移路线”在一次输入、一次重建和一次失败中的不同状态,并指出哪条Android合同产生差异。
第四版机制逐项深读
第1章 Your First Android Application
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第1章 Your First Android Application”把源码、资源、清单和Gradle配置变成可安装APK;验证要从干净构建开始,保存variant、SDK、依赖与安装后的首帧,而不是只看IDE绿色三角。
第2章 Android and Model-View-Controller
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第2章 Android and Model-View-Controller”服务于“按第四版实际32章与六个项目建立Android组件、生命周期、状态、线程、持久化、外部合同和版本迁移路线”;解释要落到用户事件、Android所有者、状态变化、线程和可观察结果,并给出一个会推翻实现的反例。
第3章 The Activity Lifecycle
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,分析“第3章 The Activity Lifecycle”要把用户动作映射到onPause/onStop/onDestroy与新实例创建,onDestroy并不是持久化成功的承诺。
第4章 Persisting UI State
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第4章 Persisting UI State”要求把临时UI状态、配置期状态与进程死亡后需恢复的最小事实分层;ViewModel跨配置但不跨进程,saved state必须小且可序列化。
第5章 Debugging Android Apps
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,验证“第5章 Debugging Android Apps”先让测试稳定失败,再改变一个原因并重跑;只删除日志或捕获异常不算修复。
第6章 Your Second Activity
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第6章 Your Second Activity”通过显式Intent启动目标并以extras/result交换最小数据;发送方、接收方和进程重建都必须验证缺失、类型错误和重复返回。
第7章 Android SDK Versions and Compatibility
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第7章 Android SDK Versions and Compatibility”区分minSdk、targetSdk、compileSdk与运行设备版本;可调用性、行为变化和兼容库回退要分别验证,不能只凭编译通过。
第8章 UI Fragments and the Fragment Manager
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第8章 UI Fragments and the Fragment Manager”由FragmentManager保存结构和返回栈,而Fragment实例与其View拥有不同生命周期;视图绑定必须在onDestroyView前释放。
第9章 Displaying Lists with RecyclerView
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第9章 Displaying Lists with RecyclerView”只为可见项创建和绑定ViewHolder,回收时旧状态必须被新数据完整覆盖;稳定标识不能用易变位置冒充。
第10章 Creating User Interfaces with Layouts and Widgets
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第10章 Creating User Interfaces with Layouts and Widgets”把约束、测量与布局落实为View树几何;用小屏、长文本与大字体验证,不能用单一模拟器截图证明适配。
第11章 Databases and the Room Library
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第11章 Databases and the Room Library”把Entity模式、DAO合同和SQLite文件连接成单一事实源;编译期SQL校验不能替代迁移和真实数据反例。
第12章 Fragment Navigation
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第12章 Fragment Navigation”的容器替换不是简单换画面;状态保存后提交、重复tag与嵌套管理器都会改变恢复结果。
第13章 Dialogs
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第13章 Dialogs”的容器替换不是简单换画面;状态保存后提交、重复tag与嵌套管理器都会改变恢复结果。
第14章 The App Bar
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第14章 The App Bar”把顶层动作、导航和溢出菜单接入当前界面状态;菜单创建与选择回调要在窄屏、无数据和权限受限时仍有可理解反馈。
第15章 Implicit Intents
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,验证“第15章 Implicit Intents”覆盖零个、一个和多个响应者,以及深链重复到达、目标被杀和无权限数据。
第16章 Taking Pictures with Intents
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第16章 Taking Pictures with Intents”通过FileProvider URI把写入能力临时交给相机应用,再按目标尺寸解码;验证要覆盖无相机、取消、零字节文件、旋转和内存上限。
第17章 Localization
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第17章 Localization”让资源匹配器根据locale与配置选择候选;字符串参数、复数、日期、RTL和回退链必须由目标locale实测,不能拼接英语语序。
第18章 Accessibility
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,分析“第18章 Accessibility”按TalkBack线性焦点顺序走完整任务,检查自定义控件是否暴露可执行action与状态变化。
第19章 Data Binding and MVVM
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第19章 Data Binding and MVVM”按事实、界面表示和用户事件拆责任;状态所有者不能持有已销毁View,界面也不能绕过边界直接改持久数据。
第20章 Unit Testing and Audio Playback
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第20章 Unit Testing and Audio Playback”分离音频资源加载、播放ID、释放和可测试回调;单元测试验证状态与协作,设备测试再验证真实SoundPool时序和旋转后不重复播放。
第21章 Styles and Themes
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第21章 Styles and Themes”通过资源限定符和主题属性把内容与设备配置解耦;最终值由资源匹配和主题继承共同决定。
第22章 XML Drawables
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,验证“第22章 XML Drawables”在日夜主题、不同密度和字体缩放下比较像素边界、对比度与状态反馈。
第23章 More About Intents and Tasks
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,分析“第23章 More About Intents and Tasks”要区分Activity返回栈、系统task与进程,flags改变栈行为但不会自动提供业务幂等。
第24章 HTTP and Background Tasks
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第24章 HTTP and Background Tasks”跨应用边界时只授予完成任务所需的URI与组件权限,并在日志中移除联系人等个人信息。
第25章 Loopers, Handlers, and HandlerThread
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,分析“第25章 Loopers, Handlers, and HandlerThread”记录post线程、执行线程、队列时刻和回传目标,后台线程不能直接触碰已销毁View。
第26章 SearchView and SharedPreferences
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第26章 SearchView and SharedPreferences”把查询输入、提交事件和轻量偏好持久化分开;防抖、空查询、进程重建与旧响应竞争都要用可重放事件序列验证。
第27章 WorkManager
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第27章 WorkManager”不是精确定时器,也不适合立即UI工作;用户关闭轮询后必须取消唯一工作并验证队列为空。
第28章 Broadcast Intents
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第28章 Broadcast Intents”把事件发送给匹配Receiver;静态与动态注册、导出权限和接收器短生命周期决定可达性,长任务应转交受约束后台工作。
第29章 Browsing the Web and WebView
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,分析“第29章 Browsing the Web and WebView”区分WebView历史、Activity返回栈和配置重建,旋转保留页面不能靠吞掉所有configurationChanges。
第30章 Custom Views and Touch Events
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第30章 Custom Views and Touch Events”必须只失效需要重绘的区域并避免每帧分配;正确图形还要有等价键盘/读屏操作。
第31章 Property Animation
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,分析“第31章 Property Animation”区分View实际属性和仅绘制变换,动画结束后的点击区域与无障碍边界必须对齐视觉位置。
第32章 Afterword
在“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”中,“第32章 Afterword”把六个示例应用收束为独立项目:学习者要自行定义用户任务、状态所有者、外部合同、测试矩阵与发布证据,而非再照抄步骤。
“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”验收回顾
“《Android Programming: The Big Nerd Ranch Guide(第4版)》权威学习地图”只有在构建指纹、用户操作、状态快照、原始日志和行为断言能够从相同基线再次得到相同断言时才通过;第四版机制与现代平台政策分别记录,不用新API名称掩盖旧行为。
练习
问题 1:怎样证明32章不是一张只有标题的目录?
问题 2:六条项目线怎样共享状态原则而不共享通用模板?
问题 3:第四版代码迁移到现代targetSdk时怎样避免同时改坏多个变量?