0%

第一行代码-Android&源代码PDF下载

《第一行代码-Android&源代码》

链接:https://pan.baidu.com/s/1f1uJXr3aLiFPhh9FtuBJ7g 密码:bvqp

《第一行代码 Android 第3版》被Android开发者誉为“Android学习第一书”。全书系统全面、循序渐进地介绍了Android软件开发的必备知识、经验和技巧。

《第一行代码 Android 第3版》基于Android 10.0对第2版进行了全面更新,不仅将所有知识点都在Android 10.0系统上进行了重新适配,同时加入Kotlin语言的全面讲解,使用Kotlin对全书代码进行重写,而且还介绍了新系统特性以及Jetpack架构组件的使用,使本书更加实用。

《第一行代码 Android 第3版》内容通俗易懂,由浅入深,既是Android初学者的入门必备,也是Android开发者的进阶首要选择。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707

目录

第 1章 开始启程——你的第 一行

Android代码 1

1.1 了解全貌,Android王国简介 2

1.1.1 Android系统架构 2

1.1.2 Android已发布的版本 3

1.1.3 Android应用开发特色 4

1.2 手把手带你搭建开发环境 5

1.2.1 准备所需要的工具 5

1.2.2 搭建开发环境 5

1.3 创建你的第 一个Android项目 9

1.3.1 创建HelloWorld项目 9

1.3.2 启动模拟器 11

1.3.3 运行HelloWorld 14

1.3.4 分析你的第 一个Android程序 15

1.3.5 详解项目中的资源 20

1.3.6 详解build.gradle文件 22

1.4 前行必备:掌握日志工具的使用 25

1.4.1 使用Android的日志工具Log 25

1.4.2 为什么使用Log而不使用println() 26

1.5 小结与点评 28

第 2章 探究新语言,快速入门Kotlin

编程 30

2.1 Kotlin语言简介 31

2.2 如何运行Kotlin代码 32

2.3 编程之本:变量和函数 35

2.3.1 变量 35

2.3.2 函数 37

2.4 程序的逻辑控制 41

2.4.1 if条件语句 41

2.4.2 when条件语句 42

2.4.3 循环语句 45

2.5 面向对象编程 48

2.5.1 类与对象 49

2.5.2 继承与构造函数 50

2.5.3 接口 55

2.5.4 数据类与单例类 58

2.6 Lambda编程 61

2.6.1 集合的创建与遍历 61

2.6.2 集合的函数式API 65

2.6.3 Java函数式API的使用 69

2.7 空指针检查 71

2.7.1 可空类型系统 72

2.7.2 判空辅助工具 73

2.8 Kotlin中的小魔术 77

2.8.1 字符串内嵌表达式 77

2.8.2 函数的参数默认值 78

2.9 小结与点评 81

第3章 先从看得到的入手,探究

Activity 82

3.1 Activity是什么 82

3.2 Activity的基本用法 82

3.2.1 手动创建Activity 83

3.2.2 创建和加载布局 85

3.2.3 在AndroidManifest文件中

注册 88

3.2.4 在Activity中使用Toast 90

3.2.5 在Activity中使用Menu 92

3.2.6 销毁一个Activity 96

3.3 使用Intent在Activity之间穿梭 96

3.3.1 使用显式Intent 96

3.3.2 使用隐式Intent 99

3.3.3 更多隐式Intent的用法 101

3.3.4 向下一个Activity传递数据 105

3.3.5 返回数据给上一个Activity 106

3.4 Activity的生命周期 108

3.4.1 返回栈 108

3.4.2 Activity状态 109

3.4.3 Activity的生存期 110

3.4.4 体验Activity的生命周期 111

3.4.5 Activity被回收了怎么办 117

3.5 Activity的启动模式 118

3.5.1 standard 119

3.5.2 singleTop 120

3.5.3 singleTask 122

3.5.4 singleInstance 123

3.6 Activity的最佳实践 126

3.6.1 知晓当前是在哪一个Activity 126

3.6.2 随时随地退出程序 127

3.6.3 启动Activity的最佳写法 129

3.7 Kotlin课堂:标准函数和静态方法 130

3.7.1 标准函数with、run和apply 130

3.7.2 定义静态方法 133

3.8 小结与点评 137

第4章 软件也要拼脸蛋,UI开发的

点点滴滴 138

4.1 该如何编写程序界面 138

4.2 常用控件的使用方法 139

4.2.1 TextView 139

4.2.2 Button 142

4.2.3 EditText 144

4.2.4 ImageView 149

4.2.5 ProgressBar 151

4.2.6 AlertDialog 154

4.3 详解3种基本布局 156

4.3.1 LinearLayout 156

4.3.2 RelativeLayout 163

4.3.3 FrameLayout 166

4.4 系统控件不够用?创建自定义控件 169

4.4.1 引入布局 169

4.4.2 创建自定义控件 172

4.5 最常用和最难用的控件:ListView 174

4.5.1 ListView的简单用法 174

4.5.2 定制ListView的界面 176

4.5.3 提升ListView的运行效率 179

4.5.4 ListView的点击事件 180

4.6 更强大的滚动控件:RecyclerView 182

4.6.1 RecyclerView的基本用法 183

4.6.2 实现横向滚动和瀑布流布局 186

4.6.3 RecyclerView的点击事件 191

4.7 编写界面的最佳实践 193

4.7.1 制作9-Patch图片 193

4.7.2 编写精美的聊天界面 196

4.8 Kotlin课堂:延迟初始化和密封类 201

4.8.1 对变量延迟初始化 201

4.8.2 使用密封类优化代码 204

4.9 小结与点评 206

第5章 手机平板要兼顾,探究

Fragment 207

5.1 Fragment是什么 207

5.2 Fragment的使用方式 209

5.2.1 Fragment的简单用法 210

5.2.2 动态添加Fragment 212

5.2.3 在Fragment中实现返回栈 215

5.2.4 Fragment和Activity之间的

交互 216

5.3 Fragment的生命周期 217

5.3.1 Fragment的状态和回调 217

5.3.2 体验Fragment的生命周期 219

5.4 动态加载布局的技巧 221

5.4.1 使用限定符 221

5.4.2 使用最小宽度限定符 224

5.5 Fragment的最佳实践:一个简易

版的新闻应用 225

5.6 Kotlin课堂:扩展函数和运算符

重载 234

5.6.1 大有用途的扩展函数 234

5.6.2 有趣的运算符重载 236

5.7 小结与点评 240

第6章 全局大喇叭,详解广播机制 242

6.1 广播机制简介 242

6.2 接收系统广播 243

6.2.1 动态注册监听时间变化 243

6.2.2 静态注册实现开机启动 245

6.3 发送自定义广播 249

6.3.1 发送标准广播 249

6.3.2 发送有序广播 252

6.4 广播的最佳实践:实现强制下线功能 255

6.5 Kotlin课堂:高阶函数详解 261

6.5.1 定义高阶函数 261

6.5.2 内联函数的作用 265

6.5.3 noinline与crossinline 268

6.6 Git时间:初识版本控制工具 271

6.6.1 安装Git 271

6.6.2 创建代码仓库 272

6.6.3 提交本地代码 274

6.7 小结与点评 274

第7章 数据存储全方案,详解

持久化技术 275

7.1 持久化技术简介 275

7.2 文件存储 276

7.2.1 将数据存储到文件中 276

7.2.2 从文件中读取数据 279

7.3 SharedPreferences存储 281

7.3.1 将数据存储到SharedPre-

ferences中 282

7.3.2 从SharedPreferences中读取

数据 284

7.3.3 实现记住密码功能 285

7.4 SQLite数据库存储 288

7.4.1 创建数据库 289

7.4.2 升级数据库 295

7.4.3 添加数据 297

7.4.4 更新数据 300

7.4.5 删除数据 302

7.4.6 查询数据 304

7.4.7 使用SQL操作数据库 307

7.5 SQLite数据库的最佳实践 307

7.5.1 使用事务 308

7.5.2 升级数据库的最佳写法 309

7.6 Kotlin课堂:高阶函数的应用 312

7.6.1 简化SharedPreferences的用法 312

7.6.2 简化ContentValues的用法 314

7.7 小结与点评 317

第8章 跨程序共享数据,探究ContentProvider 318

8.1 ContentProvider简介 318

8.2 运行时权限 319

8.2.1 Android权限机制详解 319

8.2.2 在程序运行时申请权限 322

8.3 访问其他程序中的数据 326

8.3.1 ContentResolver的基本用法 326

8.3.2 读取系统联系人 329

8.4 创建自己的ContentProvider 332

8.4.1 创建ContentProvider的步骤 332

8.4.2 实现跨程序数据共享 336

8.5 Kotlin课堂:泛型和委托 345

8.5.1 泛型的基本用法 345

8.5.2 类委托和委托属性 347

8.5.3 实现一个自己的lazy函数 350

8.6 小结与点评 352

第9章 丰富你的程序,运用手机

多媒体 353

9.1 将程序运行到手机上 353

9.2 使用通知 355

9.2.1 创建通知渠道 355

9.2.2 通知的基本用法 357

9.2.3 通知的进阶技巧 362

9.3 调用摄像头和相册 367

9.3.1 调用摄像头拍照 367

9.3.2 从相册中选择图片 371

9.4 播放多媒体文件 374

9.4.1 播放音频 374

9.4.2 播放视频 377

9.5 Kotlin课堂:使用infix函数构建

更可读的语法 381

9.6 Git时间:版本控制工具进阶 383

9.6.1 忽略文件 384

9.6.2 查看修改内容 385

9.6.3 撤销未提交的修改 387

9.6.4 查看提交记录 388

9.7 小结与点评 389

第 10章 后台默默的劳动者,探究

Service 390

10.1 Service是什么 390

10.2 Android多线程编程 391

10.2.1 线程的基本用法 391

10.2.2 在子线程中更新UI 392

10.2.3 解析异步消息处理机制 395

10.2.4 使用AsyncTask 396

10.3 Service的基本用法 399

10.3.1 定义一个Service 399

10.3.2 启动和停止Service 401

10.3.3 Activity和Service进行

通信 404

10.4 Service的生命周期 408

10.5 Service的更多技巧 408

10.5.1 使用前台Service 409

10.5.2 使用IntentService 411

10.6 Kotlin课堂:泛型的高级特性 415

10.6.1 对泛型进行实化 415

10.6.2 泛型实化的应用 417

10.6.3 泛型的协变 418

10.6.3 泛型的逆变 422

10.7 小结与点评 425

第 11章 看看精彩的世界,使用网络

技术 427

11.1 WebView的用法 427

11.2 使用HTTP访问网络 429

11.2.1 使用HttpURLConnection 430

11.2.2 使用OkHttp 433

11.3 解析XML格式数据 436

11.3.1 Pull解析方式 438

11.3.2 SAX解析方式 441

11.4 解析JSON格式数据 444

11.4.1 使用JSONObject 445

11.4.2 使用GSON 446

11.5 网络请求回调的实现方式 448

11.6 最好用的网络库:Retrofit 451

11.6.1 Retrofit的基本用法 452

11.6.2 处理复杂的接口地址类型 456

11.6.3 Retrofit构建器的最佳写法 459

11.7 Kotlin课堂:使用协程编写高效的

并发程序 461

11.7.1 协程的基本用法 461

11.7.2 更多的作用域构建器 467

11.7.3 使用协程简化回调的写法 471

11.8 小结与点评 474

第 12章 最佳的UI体验,Material

Design实战 475

12.1 什么是Material Design 475

12.2 Toolbar 476

12.3 滑动菜单 483

12.3.1 DrawerLayout 483

12.3.2 NavigationView 486

12.4 悬浮按钮和可交互提示 491

12.4.1 FloatingActionButton 491

12.4.2 Snackbar 494

12.4.3 CoordinatorLayout 496

12.5 卡片式布局 498

12.5.1 MaterialCardView 498

12.5.2 AppBarLayout 504

12.6 下拉刷新 507

12.7 可折叠式标题栏 510

12.7.1 CollapsingToolbarLayout 510

12.7.2 充分利用系统状态栏空间 519

12.8 Kotlin课堂:编写好用的工具方法 522

12.8.1 求N个数的最大最小值 522

12.8.2 简化Toast的用法 524

12.8.3 简化Snackbar的用法 526

12.9 Git时间:版本控制工具的高级

用法 528

12.9.1 分支的用法 528

12.9.2 与远程版本库协作 530

12.10 小结与点评 532

第 13章 高级程序开发组件,探究

Jetpack 533

13.1 Jetpack简介 533

13.2 ViewModel 534

13.2.1 ViewModel的基本用法 536

13.2.2 向ViewModel传递参数 539

13.3 Lifecycles 541

13.4 LiveData 545

13.4.1 LiveData的基本用法 545

13.4.2 map和switchMap 549

13.5 Room 554

13.5.1 使用Room进行増删改查 555

13.5.2 Room的数据库升级 562

13.6 WorkManager 565

13.6.1 WorkManager的基本用法 566

13.6.2 使用WorkManager处理

复杂的任务 568

13.7 Kotlin课堂:使用DSL构建专有的

语法结构 571

13.8 小结与点评 577

第 14章 继续进阶,你还应该掌握的

高级技巧 579

14.1 全局获取Context的技巧 579

14.2 使用Intent传递对象 582

14.2.1 Serializable方式 582

14.2.2 Parcelable方式 583

14.3 定制自己的日志工具 584

14.4 调试Android程序 586

14.5 深色主题 589

14.6 Kotlin课堂:Java与Kotlin代码

之间的转换 596

14.7 总结 600

第 15章 进入实战,开发一个天气

预报App 601

15.1 功能需求及技术可行性分析 601

15.2 Git时间:将代码托管到GitHub上 605

15.3 搭建MVVM项目架构 612

15.4 搜索全球城市数据 615

15.4.1 实现逻辑层代码 615

15.4.2 实现UI层代码 620

15.5 显示天气信息 626

15.5.1 实现逻辑层代码 626

15.5.2 实现UI层代码 631

15.5.3 记录选中的城市 645

15.6 手动刷新天气和切换城市 647

15.6.1 手动刷新天气 648

15.6.2 切换城市 650

15.7 制作App的图标 654

15.8 生成正式签名的APK文件 659

15.8.1 使用Android Studio生成 660

15.8.2 使用Gradle生成 663

15.9 你还可以做的事情 666

第 16章 编写并发布一个开源库,PermissionX 669

16.1 开发前的准备工作 669

16.2 实现PermissionX开源库 673

16.3 对开源库进行测试 678

16.4 将开源库发布到jcenter仓库 681

16.5 体验我们的成果 688

16.6 结束语 691


最后,这里为大家准备了几百本的互联网电子书,有需要的过来取吧。点击获取

本页书籍均来自网络,如有侵权,请联系我立即删除。我的邮箱:yaojianguolq@163.com

------ 全文结束------