具体描述
编辑推荐
Android操作系统是目前1流行、1热门的三大(Android、iOS、Windows Phone)移动设备操作系统之一,随着Android平台移动设备的广泛使用和用户对其上运行应用程序需求的多元化,Android应用开发技术成为市场求职的新宠。
本书共分为14章,由浅入深地讲解了Android 5开发的各个方面。本书在讲解过程中穿插了大量的实例,希望借此帮助读者更好地理解和掌握Android 5应用开发技巧,并提高编程能力。
本书在编写时综合考虑了自学和教学两方面需求,使它既适合高校教学、而且也适合读者自学,以及有一定开发经验的程序员作为参考书使用。
内容简介
Android系统是目前*为流行的智能手机操作系统。为了帮助开发人员快速掌握 Android开发技术,获取更好的就业机会,作者基于 Android SDK 5.1(API Level 22)编写了本书。 本书分为 14章,主要包括 Android 5系统发展历史、系统架构、应用程序框架、界面开发、电话短信应用、多媒体开发、数据存储、网络编程、位置服务、绘图与计算、国际化、企业应用以及应用程序发布等内容。本书在讲解过程中穿插大量的实例,以帮助读者更好地理解 Android开发方法和技巧,使读者进一步巩固所学的知识,提高综合实战能力。 本书适合 Android移动应用开发初学者,也可以作为高等院校和培训学校相关专业的师生教学参考书。
目录
第1章 Android系统概述 1
1.1 智能手机 1
1.1.1 什么是智能手机 1
1.1.2 智能手机操作系统 2
1.2 什么是Android 4
1.2.1 Android的历史 4
1.2.2 Android的发展 5
1.2.3 Android的优点 6
1.3 Android系统架构 7
1.3.1 应用程序层(Applications) 8
1.3.2 应用程序框架层(Application Framework) 8
1.3.3 系统库(Libraries) 8
1.3.4 Android运行环境(Android Runtime) 9
1.3.5 Linux内核(Linux Kernel) 9
1.4 Android5新特性介绍 9
1.4.1 全新的Material design设计 10
1.4.2 支持64位ART虚拟机 10
1.4.3 全新的通知设计 11
1.4.4 以大屏幕呈现 11
1.4.5 以文档为中心 12
1.4.6 改进连接性能 12
1.4.7 高性能图形 12
1.4.8 功能更强的音频处理 13
1.4.9 进一步完善的摄像头和视频处理 14
1.4.10 配置文件 14
1.4.11 屏幕截图和共享 15
1.4.12 新型传感器 15
1.4.13 Chromium WebView 15
1.4.14 辅助功能和输入 16
1.4.15 可构建低电耗应用 16
1.5 小结 16
1.6 思考题 17
第2章 搭建Android开发环境 18
2.1 系统需求 18
2.2 软件安装 18
2.2.1 JDK的安装 18
2.2.2 Android SDK 19
2.2.3 Eclipse 和 ADT 20
2.2.4 创建AVD 24
2.2.5 AVD与真机的区别 24
2.3 Android SDK介绍 25
2.3.1 Android SDK目录结构 25
2.3.2 Android.jar 27
2.3.3 Android API核心包 27
2.3.4 Android API扩展包 28
2.4 创建第一个Android应用程序 28
2.4.1 创建HelloAndroid工程 28
2.4.2 编写代码 29
2.4.3 运行应用程序 30
2.4.4 工程文件结构解析 31
2.5 调试程序 32
2.5.1 设置断点 32
2.5.2 调试 33
2.6 小结 34
2.7 思考题 34
第3章 Android应用程序结构 35
3.1 应用程序基本组成 35
3.1.1 Activity 35
3.1.2 Service 35
3.1.3 BroadcastReceiver 36
3.1.4 ContentProvider 36
3.1.5 Intent 36
3.2 Activity 36
3.2.1 Activity的生命周期 37
3.2.2 Activity的创建 39
3.2.3 启动Activity 40
3.2.4 关闭Activity 41
3.2.5 Activity数据传递 41
3.3 资源 43
3.4 Manifest文件 43
3.5 App Widgets 46
3.5.1 基础知识 46
3.5.2 在Manifest文件中声明App Widget 47
3.5.3 增加AppWidgetProviderInfo元数据 47
3.5.4 创建App Widget布局 48
3.5.5 为App Widget添加边界 49
3.5.6 使用AppWidgetProvider类 49
3.5.7 接收App Widget的广播 51
3.5.8 创建App Widget的配置Activity 51
3.5.9 使用配置Activity对App Widget进行更新 52
3.6 进程和线程 53
3.6.1 进程(Processes) 53
3.6.2 线程(Threads) 55
3.6.3 线程安全方法 58
3.6.4 进程间的通信 58
3.7 小结 59
3.8 思考题 59
第4章 Android GUI开发 60
4.1 View和ViewGroup 60
4.2 使用XML定义视图 61
4.3 布局 64
4.3.1 FrameLayout 65
4.3.2 LinearLayout 67
4.3.3 RelativeLayout 70
4.3.4 TableLayout 72
4.3.5 AbsoluteLayout 74
4.3.6 WebView 76
4.4 常用Widget组件 78
4.4.1 创建Widget组件实例 78
4.4.2 按钮(Button) 80
4.4.3 文本框(TextView) 82
4.4.4 编辑框(EditText) 83
4.4.5 多项选择按钮(CheckBox) 85
4.4.6 单项选择按钮组(RadioGroup) 89
4.4.7 下拉列表(Spinner) 92
4.4.8 自动完成文本(AutoCompleteTextView) 96
4.4.9 日期选择器和时间选择器(DatePicker和TimePicker) 99
4.4.10 进度条(ProgressBar) 103
4.4.11 滚动视图(ScrollView) 105
4.4.12 拖动条(SeekBar) 107
4.4.13 评价条(RatingBar) 109
4.4.14 图片视图(ImageView)和图片按钮(ImageButton) 112
4.4.15 图片切换器ImageSwitcher和图库Gallery 115
4.4.16 网格视图(GridView) 120
4.4.17 标签(Tab) 123
4.5 Menu和ActionBar 127
4.5.1 Options Menu 127
4.5.2 Context Menu 132
4.5.3 SubMenu 133
4.6 Bitmap 136
4.7 对话框(Dialog) 138
4.7.1 AlertDialog 139
4.7.2 ProgressDialog 142
4.8 Toast和Notification 143
4.8.1 Toast 143
4.8.2 Notification 145
4.9 界面事件响应 148
4.9.1 事件监听器 148
4.9.2 回调事件响应 149
4.9.3 界面事件响应实例 150
4.10 小结 154
4.11 思考题 154
第5章 电话和短信应用程序开发 155
5.1 Intent 155
5.1.1 显式Intent和隐式Intent 157
5.1.2 IntentFilter 157
5.2 拨号程序 158
5.3 短信程序 161
5.3.1 SMS简介 161
5.3.2 接收短信 162
5.3.3 接收短信实例 162
5.3.4 发送短信 165
5.3.5 短信发送实例 165
5.4 照相机程序 169
5.5 小结 172
5.6 思考题 172
第6章 多媒体开发 173
6.1 Service 173
6.1.1 Service的作用 173
6.1.2 Service的生命周期 173
6.1.3 启动Service 173
6.2 BroadcastReceiver 175
6.3 音频 178
6.3.1 Android4.0支持的音频格式 179
6.3.2 音频播放器 179
6.3.3 后台播放音频 184
6.3.4 录音程序 187
6.3.5 后台录制音频 194
6.4 视频 197
6.4.1 Android4.0 支持的视频文件 197
6.4.2 视频播放器 197
6.4.3 拍照程序 205
6.4.4 录制视频 213
6.5 小结 222
6.6 思考题 222
第7章 数据存储 223
7.1 SharedPreferences 223
7.1.1 SharedPreferences简介 223
7.1.2 使用SharedPreferences 224
7.2 文件存储 227
7.2.1 文件存储方式简介 227
7.2.2 使用文件存储功能 229
7.3 SQLite 232
7.3.1 SQLite数据库简介 232
7.3.2 SQLite数据库操作 234
7.3.3 SQLite数据库操作实例 236
7.4 ContentProvider 246
7.4.1 ContentProvider简介 246
7.4.2 UriMatcher 249
7.4.3 访问系统提供的ContentProvider 249
7.4.4 自定义ContentProvider 253
7.4.5 访问自定义ContentProvider 258
7.5 数据同步到云端 264
7.5.1 App Engine简介 264
7.5.2 创建可相互通信的Android和App Engine应用程序 265
7.6 数据备份与恢复 272
7.6.1 Android数据备份与恢复简介 272
7.6.2 实现备份代理的步骤 273
7.6.3 通过BackupAgent实现备份与恢复 274
7.6.4 通过BackupAgentHelper实现备份与恢复 279
7.7 小结 282
7.8 思考题 283
第8章 网络编程 284
8.1 HTTP通信 284
8.1.1 访问URL指定资源 288
8.1.2 使用GET方式获取网络服务 292
8.1.3 使用POST方式获取网络服务 296
8.2 Socket通信 299
8.2.1 Socket简介 300
8.2.2 Socket使用方法 300
8.2.3 Socket编程实例 302
8.3 Bluetooth通信 306
8.3.1 Bluetooth简介 306
8.3.2 Android系统的蓝牙通信功能 307
8.3.3 蓝牙通信实例 312
8.4 WIFI通信 332
8.4.1 WIFI简介 332
8.4.2 WIFI实例 333
8.4.3 WIFI Direct 339
8.4.4 创建WIFI Direct应用程序的步骤 341
8.4.5 WIFI Direct编程实例 346
8.5 NFC 361
8.5.1 NFC简介 361
8.5.2 Android NFC技术 362
8.5.3 使用前台发布系统 364
8.6 USB 366
8.6.1 USB简介 366
8.6.2 USB附件 367
8.6.3 USB主机 373
8.7 SIP 378
8.7.1 SIP简介 378
8.7.2 相关API 379
8.7.3 Manifest文件配置 379
8.7.4 创建SipManager对象 380
8.7.5 注册SIP服务器 380
8.7.6 拨打音频电话 382
8.7.7 接收呼叫 383
8.8 小结 385
8.9 思考题 385
第9章 智能传感器 386
9.1 获取位置信息 386
9.1.1 LocationManager介绍 387
9.1.2 LocationProvider介绍 387
9.1.3 使用GPS获取当前位置信息 389
9.2 使用Google地图服务 393
9.2.1 Google Map API简介 393
9.2.2 申请Android Map API Key 394
9.2.3 使用Google Map显示当前位置 396
9.3 传感器 402
9.3.1 Android传感器简介 402
9.3.2 标识传感器 404
9.3.3 传感器事件处理 405
9.4 运动传感器 406
9.4.1 加速度传感器 407
9.4.2 重力传感器 407
9.4.3 陀螺仪 407
9.4.4 线性加速传感器 409
9.4.5 旋转向量传感器 409
9.5 位置传感器 409
9.5.1 磁场传感器 410
9.5.2 方位传感器 410
9.5.3 距离传感器 411
9.6 环境传感器 412
9.7 小结 414
9.8 思考题 414
第10章 绘 图 415
10.1 2D绘图 415
10.1.1 获取Canvas对象 415
10.1.2 使用自定义View绘图 416
10.1.3 使用Bitmap绘图 419
10.1.4 使用SurfaceView绘制静态图像 422
10.1.5 使用SurfaceView绘制动态图像 425
10.2 Drawable 431
10.2.1 从资源文件中创建Drawable对象 431
10.2.2 从XML文件中创建Drawable对象 431
10.2.3 使用构造方法创建Drawable对象 432
10.3 3D绘图 433
10.3.1 OpenGL ES简介 433
10.3.2 绘制3D图像实例 433
10.4 硬件加速 438
10.4.1 启用硬件加速 438
10.4.2 Android绘图模型 439
10.5 RenderScript 440
10.5.1 RenderScript综述 441
10.5.2 使用动态分配的内存 442
10.5.3 使用静态分配的内存 445
10.6 小结 448
10.7 思考题 448
第11章 APP的本地化 449
11.1 国际化与本地化 449
11.2 手机区域设置 449
11.3 未本地化的应用程序 451
11.4 本地化的应用程序 455
11.5 小结 461
11.6 思考题 461
第12章 文本与输入 462
12.1 剪贴板框架(Clipboard Framework) 462
12.2 剪贴板类(Clipboard Classes) 463
12.3 将剪贴板内数据强制转换为文本 464
12.4 复制到剪贴板 466
12.5 从剪贴板中粘贴 467
12.6 利用Content Provider复制复杂数据 471
12.7 设计有效的复制/粘贴功能 476
12.8 综合实例 477
12.9 小结 487
第13章 企业应用开发 488
第14章 应用程序发布 520
前言/序言
Android 5 从入门到精通 书籍简介 本书是一本面向广大 Android 开发初学者和有一定基础的开发者的全面技术指南。它旨在帮助读者从零开始,逐步掌握 Android 5(Lollipop)平台的核心概念、关键技术以及实际开发方法,直至能够独立完成具有一定复杂度的 Android 应用项目。本书内容详实,理论与实践相结合,注重培养读者的编程思维和解决问题的能力。 第一部分:Android 基础入门 第一章:Android 开发环境搭建与初识 Android 1.1 认识 Android 操作系统 Android 的起源与发展历程 Android 的开放性与生态系统 Android 版本概览,重点介绍 Android 5.0 (Lollipop) 的里程碑式特性(如 Material Design、ART 运行时等) 1.2 Android 开发必备工具 Java Development Kit (JDK) 的安装与配置 Android Studio 的下载、安装与基本设置 Android SDK 的管理与更新 Android 虚拟设备 (AVD) 的创建与管理 模拟器和真机调试的设置与使用 1.3 第一个 Android 应用:Hello, World! 创建新的 Android 项目 项目结构解析:`manifest` 文件、`java` 目录、`res` 目录(`drawable`、`layout`、`values` 等) `Activity` 的概念与生命周期 XML 布局文件的编写与控件的添加(`TextView`) 运行与调试应用,在 Logcat 中查看输出 1.4 Android 应用组件详解 四大组件:`Activity`、`Service`、`BroadcastReceiver`、`ContentProvider` 的基本概念与作用 `AndroidManifest.xml` 的核心作用与配置项(如权限声明、组件注册) 第二章:UI 布局与控件 2.1 布局容器的理解与应用 `LinearLayout`:线性布局,权重与方向 `RelativeLayout`:相对布局,元素间的相对定位 `FrameLayout`:帧布局,层叠元素 `ConstraintLayout`:约束布局,灵活高效的布局方式(作为 Android 5 后推荐的布局方式进行深入讲解) `TableLayout`:表格布局 布局嵌套的优缺点与性能考量 2.2 常用 UI 控件 文本类控件: `TextView`:文本显示,样式与属性 `EditText`:文本输入,输入类型、提示信息、监听事件 `Button`:按钮,点击事件监听 选择类控件: `CheckBox`:复选框,状态监听 `RadioButton`:单选按钮,`RadioGroup` 的配合使用 `ToggleButton`:开关按钮 列表类控件: `ListView`:列表视图,`Adapter` 的概念与实现(`BaseAdapter`) `GridView`:网格视图 其他常用控件: `ImageView`:图片显示,`ImageSwitcher` `ProgressBar`:进度条,圆形与水平 `SeekBar`:滑动条 `Toast`:简短提示信息 `AlertDialog`:对话框,标准对话框、列表对话框、多选/单选对话框 2.3 响应用户交互 事件监听器 (`OnClickListener`, `OnLongClickListener`, `OnFocusChangeListener` 等) 事件处理机制 使用匿名内部类与 Lambda 表达式处理事件 第三章:Activity 与 Intent 3.1 Activity 生命周期深入 `onCreate()`, `onStart()`, `onResume()`, `onPause()`, `onStop()`, `onDestroy()` `onRestart()` Activity 状态的保存与恢复 (`onSaveInstanceState()`, `onRestoreInstanceState()`) Activity 导航与栈管理(Task、Back Stack) 3.2 Intent 的使用 Intent 的类型:显式 Intent 与隐式 Intent 使用 Intent 启动 Activity 在 Activity 间传递数据 (`putExtra()`, `getExtra()`) 启动 Activity 并获取返回结果 (`startActivityForResult()`, `onActivityResult()`) Intent Filter 的配置与匹配规则 3.3 Activity 的启动模式 `standard`:标准模式 `singleTop`:栈顶复用模式 `singleTask`:栈内复用模式 `singleInstance`:单实例模式 不同启动模式的适用场景与注意事项 3.4 Activity 的生命周期与 Task 关联 Task 概念的详细讲解 Activity 导航对 Task 栈的影响 第二部分:Android 核心技术 第四章:Fragment 4.1 Fragment 的概念与优势 为什么需要 Fragment?(模块化、复用性、响应不同屏幕尺寸) Fragment 的生命周期与 Activity 生命周期对比 4.2 Fragment 的创建与管理 创建 Fragment 类(继承 `Fragment` 或 `DialogFragment`) Fragment 的静态添加(XML 布局中) Fragment 的动态添加、替换、移除 `FragmentManager` 和 `FragmentTransaction` 的使用 `Fragment` 与 `Activity` 之间的通信 (`setFragmentResultListener`, `getParentFragmentManager`) 4.3 Fragment 的回退栈 `addToBackStack()` 的作用 回退栈的管理与使用 4.4DialogFragment 的应用 创建自定义对话框 展示系统预设对话框 第五章:数据存储 5.1 SharedPreferences 轻量级数据存储,适用于存储少量键值对数据 创建、读取、修改、删除 SharedPreferences 数据 在不同线程中使用 SharedPreferences 的注意事项 5.2 文件存储 内部存储与外部存储 `File` 类的使用,文件的创建、读写、删除 `Context` 提供的文件操作方法(`getFilesDir()`, `getCacheDir()`, `getExternalFilesDir()` 等) 文件权限的申请与管理 5.3 SQLite 数据库 Android 内置的 SQLite 数据库 `SQLiteOpenHelper` 的使用,数据库的创建与版本管理 执行 SQL 语句(增、删、改、查) `SQLiteDatabase` 对象的获取与操作 `Cursor` 对象的遍历与数据提取 5.4 ContentProvider 跨应用共享数据的机制 ContentProvider 的基本概念与作用 自定义 ContentProvider(定义 URI、匹配规则、实现 CRUD 操作) 使用 ContentResolver 查询其他应用的数据 Android 系统提供的 ContentProvider(如 `ContactsContract`, `MediaStore`) 5.5 Room Persistence Library Google 官方推荐的 SQLite 抽象层 Room 的核心组件:`Database`, `DAO`, `Entity` 声明 Entity 类,定义数据库表结构 编写 DAO 接口,定义数据访问方法 创建 Room 数据库实例 Room 的优势(类型安全、编译时检查、简化数据库操作) 第六章:网络编程 6.1 HTTP 协议基础 GET、POST 请求 请求头与响应头 状态码 6.2 Android 网络请求库 Volley: Google 官方提供的网络请求库,易于使用,功能强大 构建 RequestQueue 发送 StringRequest, ImageRequest, JsonObjectRequest 等 缓存机制 监听网络请求生命周期 Retrofit: Square 公司开发的 RESTful 网络请求客户端,类型安全,集成 RxJava 定义 API 接口 创建 Retrofit 实例 处理响应数据(JSON 解析,如 Gson, Jackson) 同步与异步请求 OkHttp: Square 公司开发的 HTTP 客户端,性能优越,是 Retrofit 的底层实现 构建 OkHttpClient 发送请求与处理响应 拦截器机制 6.3 JSON 数据解析 `JSONObject` 和 `JSONArray` 的手动解析 使用 Gson 库进行 JSON 序列化与反序列化 使用 Jackson 库进行 JSON 解析 6.4 网络权限与注意事项 `android.permission.INTERNET` 网络连接状态的检测与处理 后台网络请求的优化与用户体验 第七章:多线程与异步处理 7.1 Android UI 线程 UI 线程(主线程)的概念与职责 为什么不能在 UI 线程执行耗时操作?(ANR 异常) 7.2 线程的创建与管理 `Thread` 类的使用 `Runnable` 接口 线程池 (`ExecutorService`) 7.3 Android 提供的异步处理机制 AsyncTask: 简单易用的异步任务类,用于在后台执行操作,并将结果发布到 UI 线程。 `doInBackground()`:后台任务 `onProgressUpdate()`:更新 UI `onPostExecute()`:任务完成后 `onCancelled()`:任务取消 AsyncTask 的局限性与使用注意事项 Handler 与 Looper: `Looper`:消息循环器,为线程创建消息队列 `Handler`:消息发送器,用于将消息或 `Runnable` 对象发送到消息队列,并在 UI 线程处理 `Message`:消息对象 `post()` 和 `sendMessage()` 方法 创建自定义的 Looper 线程 RxJava: 响应式编程,强大的异步处理和事件流管理工具。 Observable, Observer, Subscriber Schedulers(用于线程切换) 操作符(`map`, `filter`, `subscribeOn`, `observeOn` 等) 在 Android 中的集成与优势 7.4 线程安全与同步 共享资源的访问问题 `synchronized` 关键字 `Lock` 接口 第三部分:Android 进阶与高级特性 第八章:Material Design 与 UI 优化 8.1 Material Design 理念 物理世界为灵感,提供一致的用户体验 核心原则:响应、层次、动效、意义 8.2 Android 5.0 (Lollipop) 引入的 Material Design 特性 卡片式布局 (`CardView`): 统一的卡片视觉风格 浮动操作按钮 (`FloatingActionButton`): 突出主要操作 theming 与 coloring: 主题色、强调色、状态栏、导航栏颜色 Elevation 与 Shadows: 模拟阴影,创建层次感 Ripple Effect: 点击反馈动画 Transitions & Animations: 页面切换动画,共享元素动画 8.3 使用 Material Components for Android 引入 Material Components 库 使用 `TextInputLayout`, `BottomNavigationView`, `NavigationView`, `TabLayout` 等组件 自定义主题与样式,实现品牌一致性 8.4 UI 性能优化 布局优化:避免过度嵌套,使用 `ConstraintLayout` 图片优化:压缩、缓存、使用 `Glide` 或 `Picasso` 列表优化:`RecyclerView` 的使用与性能调优(`ViewHolder` 模式) 内存优化:识别内存泄漏,使用 Profiler 卡顿优化:分析 ANR,优化耗时操作 第九章:服务 (Service) 与后台任务 9.1 Service 的概念与类型 前台 Service、后台 Service、绑定 Service Service 的生命周期 (`onCreate()`, `onStartCommand()`, `onBind()`, `onDestroy()`) 9.2 启动与停止 Service `startService()` 和 `stopService()` `bindService()` 和 `unbindService()` 9.3 Service 与 Activity 的通信 通过 `Binder` 实现绑定 Service 使用 `Messenger` 实现跨进程通信 9.4 后台任务的最佳实践 `WorkManager`:Google 推荐的用于延迟、可靠执行后台任务的解决方案,可处理各种约束条件。 JobScheduler (API 21+) AlarmManager 避免滥用后台服务,注意电量消耗 第十章:广播接收器 (BroadcastReceiver) 10.1 广播的分类 全局广播(系统广播,如网络状态改变、电量低) 有序广播 粘性广播 (已废弃,建议使用 `LocalBroadcastManager`) 10.2 注册广播接收器 静态注册(在 `AndroidManifest.xml` 中) 动态注册(在代码中使用 `registerReceiver()`) 10.3 发送广播 `sendBroadcast()` `sendOrderedBroadcast()` 10.4 `LocalBroadcastManager` 高效、安全的局部广播通信,避免全局广播的性能和安全问题 10.5 广播接收器的生命周期 `onReceive()` 方法的执行 注意:在 `onReceive()` 中执行耗时操作是不可取的,应使用其他异步机制。 第十一章:权限管理与安全 11.1 Android 权限系统 正常权限与危险权限 权限组 11.2 运行时权限 (Android 6.0+ API 23+) 用户在运行时授予或拒绝权限 如何检测权限 (`checkSelfPermission()`) 如何请求权限 (`requestPermissions()`) 处理权限请求结果 (`onRequestPermissionsResult()`) 解释为什么需要某项权限 (`shouldShowRequestPermissionRationale()`) 11.3 文件读写权限 `READ_EXTERNAL_STORAGE`, `WRITE_EXTERNAL_STORAGE` 11.4 其他重要权限 `ACCESS_FINE_LOCATION`, `CAMERA`, `RECORD_AUDIO` 等 11.5 应用签名与加密 应用签名的作用 数据加密的基本概念 Android Keystore System 第十二章:其他重要 Android API 12.1 通知 (Notification) 创建和显示通知 通知的重要属性(标题、内容、图标、优先级) 通知渠道 (Notification Channels, Android 8.0+) 通知的点击事件处理 使用 `NotificationCompat.Builder` 12.2 资源管理 字符串资源 (`strings.xml`) 颜色资源 (`colors.xml`) 尺寸资源 (`dimens.xml`) 样式与主题 (`styles.xml`) 图片资源 (`drawable`) 布局资源 (`layout`) 可配置字符串 (`plurals.xml`) 尺寸适配(`swdp` 布局,`drawable-`) 12.3 传感器 (Sensor) 各种传感器类型(加速度计、陀螺仪、光线传感器等) `SensorManager` 的使用 注册和注销传感器监听器 传感器事件的处理 12.4 位置服务 (Location Services) 获取用户当前位置 GPS、Wi-Fi、基站定位 `LocationManager` 和 `FusedLocationProviderClient` (Google Play Services) 位置更新监听 定位权限 (`ACCESS_FINE_LOCATION`, `ACCESS_COARSE_LOCATION`) 第四部分:实战项目与开发流程 第十三章:构建一个简单的应用(例如:一个待办事项列表) 13.1 项目需求分析与设计 功能模块划分 UI 界面设计 数据模型设计 13.2 使用 `RecyclerView` 构建列表 实现 `RecyclerView.Adapter` 定义 `ViewHolder` 添加、删除、编辑待办事项 13.3 数据持久化 选择 Room 数据库存储待办事项 定义 Entity, DAO, Database 13.4 添加用户交互 添加新待办事项的界面 点击条目进入编辑界面 滑动删除待办事项 13.5 界面与逻辑分离 使用 MVP(Model-View-Presenter)或 MVVM(Model-View-ViewModel)模式(根据读者基础选择介绍,可能需要简单提及) 13.6 完善用户体验 添加加载动画 处理空列表情况 第十四章:调试、测试与发布 14.1 Android Studio 调试工具 断点设置与条件断点 单步执行(Step Over, Step Into, Step Out) 变量查看与修改 Logcat 的深入使用 Android Profiler (CPU, Memory, Network, Energy) 14.2 单元测试与集成测试 JUnit Mockito 框架 AndroidX Test 库 Espresso (UI 测试) 14.3 应用签名与打包 生成签名密钥 (Keystore) 创建 Release APK 或 App Bundle 构建变体 (Build Variants) 14.4 上架 Google Play Store 开发者账号注册 应用商店列表信息(标题、描述、截图、图标) 上传应用 发布流程与审核 附录 附录 A:常用 Android SDK 工具命令 附录 B:XML 属性速查表 附录 C:Java 基础回顾(针对 Android 开发) 附录 D:Android 5.0 (Lollipop) 重点新特性总结 本书将带领您一步步踏入 Android 开发的精彩世界,通过大量的代码示例和详细的讲解,帮助您真正理解 Android 开发的核心原理,掌握实用的开发技巧,最终成为一名合格的 Android 开发者。