图书目录

目录

第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.1animateAsState157

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.animate177

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