目录
第1章Android简介1
1.1手机操作系统1
1.2Android的发展史5
1.2.1起源5
1.2.2开放手机联盟5
1.2.3Android的版本7
1.3Android的特征14
1.4Android的体系结构15
1.5Android的开发趋势16
1.5.1Kotlin17
1.5.2Jetpack Compose18
1.5.3Jetpack19
习题120
第2章Android的开发环境21
2.1Android Studio简介21
2.2下载和安装22
2.3开发工具28
2.3.1Android模拟器28
2.3.2Android调试桥31
2.3.3Android Profiler32
2.3.4Logcat33
2.3.5其他工具34
习题235
第3章第一个Android程序36
3.1创建应用程序36
3.2创建Android虚拟设备40
3.3Android项目结构44
3.3.1视图44
3.3.2目录和文件47
3.4核心代码文件50
3.4.1AndroidManifest.xml50
3.4.2MainActivity.tk53
习题356
第4章Kotlin语言57
4.1Kotlin简介57
4.1.1什么是Kotlin57
4.1.2Android开发中的地位58
4.1.3Kotlin特性58
4.1.4Kotlin开发工具61
4.2变量与数据类型61
4.2.1变量62
4.2.2数据类型62
4.2.3类型推断63
4.2.4集合64
4.3控制流66
4.3.1条件语句if66
4.3.2条件语句when67
4.3.3循环for69
4.3.4循环while70
4.3.5循环控制语句71
4.4函数73
4.4.1定义函数73
4.4.2具名参数和默认参数74
4.4.3可变参数74
4.4.4单表达式函数74
4.5面向对象编程75
4.5.1类与对象75
4.5.2继承与多态78
4.5.3接口与抽象类80
4.5.4数据类82
4.5.5枚举类84
4.5.6单例类86
4.6Kotlin 进阶特性88
4.6.1空安全88
4.6.2Lambda表达式90
4.6.3集合操作91
4.6.4扩展函数93
4.6.5高阶函数95
习题498第5章Android用户界面99
5.1Jetpack Compose概述99
5.2基本概念100
5.2.1Composable函数100
5.2.2重组机制101
5.2.3状态管理102
5.2.4状态提升104
5.2.5Composable的生命周期105
5.2.6副作用函数106
5.3Modifier修饰符113
5.3.1作用和概念113
5.3.2链式调用机制113
5.3.3示例114
5.4基础UI组件120
5.4.1Text120
5.4.2Icon122
5.4.3Image123
5.4.4TextField124
5.4.5Button125
5.4.6IconButton126
5.4.7CheckBox127
5.4.8RadioButton128
5.4.9Switch129
5.4.10Slider130
5.4.11ProgressIndicator130
5.5布局组件132
5.5.1Box132
5.5.2Row133
5.5.3Column135
5.5.4Spacer136
5.6高级组件137
5.6.1Surface137
5.6.2Card139
5.6.3Dialog140
5.6.4DropdownMenu141
5.6.5Scaffold142
5.6.6LazyColumn148
5.6.7LazyRow151
5.6.8TabRow153
5.6.9ScrollableTabRow154
习题5155
第6章动画与手势156
6.1动画分类156
6.2基础动画API157
6.2.1animateAsState157
6.2.2updateTransition160
6.2.3InfiniteTransition162
6.2.4Animatable163
6.3动画规格166
6.3.1spring167
6.3.2tween168
6.3.3keyframes170
6.3.4repeatable170
6.3.5infiniteRepeatable172
6.3.6snap173
6.4高级动画API174
6.4.1AnimatedVisibility174
6.4.2AnimatedContent176
6.4.3Modifier.animate177
6.5手势系统179
6.5.1单击179
6.5.2拖动180
6.5.3多点触控183
6.5.4滚动184
6.5.5指针输入186
习题6190
第7章Android系统的生命周期191
7.1Android组件191
7.2进程和优先级192
7.3Activity生命周期194
7.3.14种状态194
7.3.2Activity栈194
7.3.3回调函数195
7.3.4状态保存和恢复197
7.3.5执行顺序198
7.4组件生命周期199
7.4.1Service199
7.4.2Broadcast Receiver199
7.4.3Content Provider199
7.5ActivityLifeCycle示例200
7.5.1UI代码200
7.5.2日志代码200
7.5.3生命周期代码202
习题7206
第8章组件通信与广播消息207
8.1Intent简介207
8.1.1启动Activity207
8.1.2Activity数据传递210
8.2Intent过滤器213
8.3广播消息217
8.3.1广播类型217
8.3.2Broadcast Receiver218
8.3.3静态注册219
8.3.4动态注册220
习题8221
第9章后台服务222
9.1Service简介222
9.2启动服务222
9.2.1生命周期222
9.2.2注册和启动224
9.2.3示例225
9.3绑定服务227
9.3.1生命周期227
9.3.2注册和绑定229
9.3.3示例231
9.4协程233
9.4.1耗时操作233
9.4.2使用协程234
9.4.3注意事项235
9.4.4示例236
9.5远程服务237
9.5.1进程间通信237
9.5.2AIDL238
9.5.3Parcel240
9.5.4远程服务示例241
9.5.5远程调用示例245
习题9247
第10章数据存储与访问248
10.1简单存储248
10.1.1SharedPreferences248
10.1.2示例249
10.2文件存储252
10.2.1内部存储252
10.2.2资源文件256
10.3数据库存储258
10.3.1SQLite数据库258
10.3.2创建数据库259
10.3.3数据操作262
10.4数据共享266
10.4.1简介266
10.4.2ContentProvider267
10.4.3ContentResolver274
10.4.4示例276
习题10278
第11章Jetpack开发组件280
11.1Navigation280
11.1.1简介280
11.1.2使用方法281
11.1.3示例1282
11.2ViewModel286
11.2.1简介286
11.2.2生命周期287
11.2.3使用方法289
11.2.4示例2290
11.3Ktor Client292
11.3.1简介292
11.3.2引擎292
11.3.3使用方法294
11.3.4示例3296
11.4StateFlow297
11.4.1简介297
11.4.2使用方法298
11.4.3示例4299
11.5LifecycleScope300
11.5.1简介300
11.5.2使用方法300
11.5.3示例5304
11.6ViewModelScope305
11.6.1简介305
11.6.2使用方法306
11.6.3示例6306
习题11309
第12章综合示例设计与开发310
12.1需求分析310
12.2程序设计311
12.2.1用户界面设计311
12.2.2数据存储设计312
12.2.3程序模块设计313
12.3程序开发314
12.3.1工程结构314
12.3.2数据库适配器316
12.3.3网络数据获取320
12.3.4Activity和导航325
12.3.5用户界面330
附录AUI组件函数签名341
A.1Text341
A.2Icon342
A.3Image342
A.4TextField343
A.5Button345
A.6IconButton346
A.7CheckBox346
A.8RadioButton347
A.9Switch348
A.10Slider348
A.11ProgressIndicator349
附录B351
B.1Box351
B.2Row351
B.3Column352
B.4Spacer352
附录C354
C.1Surface354
C.2Card355
C.3Dialog356
C.4DropdownMenu357
C.5Scaffold359
C.6LazyColumn362
C.7LazyRow363
C.8ScrollableTabRow364
附录DADB命令365
附录EAndroidManifest.xml文件367
