书籍详情
《Android编程*威指南第4四版代码android开发入门到*通安卓手机APP移动开发kotlin》[25M]百度网盘|亲测有效|pdf下载
  • Android编程*威指南第4四版代码android开发入门到*通安卓手机APP移动开发kotlin

  • 出版社:荣桢图书专营店
  • 出版时间:2021-03
  • 热度:12899
  • 上架时间:2024-06-30 09:38:03
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

内容介绍
Big Nerd Ranch是美国一家专业的移动开发技术培训机构。本书主要以其Android训练营教学课程为基础,融合了几位作者多年的心得体会,是一本完全面向实战的Android 编程*威指南。全书共32章,详细介绍了七个Android应用的开发过程。通过这些精心设计的应用,读者可掌握很多重要的理论知识和开发技巧,获得宝贵的开发经验。第4版较之前版本做了重大更新,每一章的内容都做了修改;同时,开发语言从Java换成了Kotlin,全面引入了Android Jetpack组件库并开始使用第三方库。
目录
第 1 章 Android开发初体验 1
1.1Android开发基础2
1.2创建Android项目2
1.3Android Studio使用导航6
1.4用户界面设计7
1.4.1视图层级结构12
1.4.2部件属性12
1.4.3创建字符串资源13
1.4.4预览布局14
1.5从布局XML到视图对象16
1.6部件的实际应用19
1.6.1引用部件20
1.6.2设置器20
1.7创建提示消息22
1.8使用模拟器运行应用24
1.9深入学习:Android编译过程26
1.10关于挑战练习28
1.11挑战练习:定制toast消息28
第2 章 Android与MVC设计模式29
2.1创建新类30
2.2Android与MVC设计模式31
2.3更新视图层33
2.4更新控制器层35
2.5添加图标资源38
2.5.1向项目中添加资源39
2.5.2在XML文件中引用资源41
2.6屏幕像素密度41
2.7在物理设备上运行应用43
2.8挑战练习:为TextView添加器45
2.9挑战练习:添加后退按钮45
2.10挑战练习:从按钮到图标按钮46
第3 章 activity的生命周期48
3.1旋转GeoQuiz应用48
3.2activity状态与生命周期回调49
3.3日志跟踪理解activity生命周期51
3.3.1输出日志信息51
3.3.2使用LogCat53
3.4activity生命周期如何响应用户操作54
3.4.1暂时离开activity54
3.4.2结束使用activity57
3.4.3旋转activity58
3.5设备配置改变与activity生命周期58
3.6深入学习:UI刷新与多窗口模式62
3.7深入学习:日志记录的级别与函数62
3.8挑战练习:禁止一题多答63
3.9挑战练习:答题评分63
第4 章 UI状态的保存与恢复64
4.1引入ViewModel依赖64
4.2添加ViewModel65
4.2.1ViewModel生命周期与ViewModelProvider67
4.2.2向ViewModel添加数据69
4.3进程销毁时保存数据72
4.3.1覆盖onSaveInstanceState(Bundle)函数73
4.3.2保留实例状态与activity记录76
4.4ViewModel与保存实例状态77
4.5深入学习:Jetpack、AndroidX与架构组件78
4.6深入学习:解决问题要彻底79
第5 章 Android应用的调试81
5.1异常与栈跟踪82
5.1.1诊断应用异常83
5.1.2记录栈跟踪日志84
5.1.3设置断点85
5.2Android特有的调试工具88
5.2.1使用Android Lint88
5.2.2R类的问题91
5.3挑战练习:探索布局检查器92
5.4挑战练习:探索Android性能分析器92
第6 章 *二个activity93
6.1创建*二个activity94
6.1.1创建新的activity95
6.1.2创建新的activity子类98
6.1.3在manifest配置文件中声明activity98
6.1.4为MainActivity添加CHEAT!按钮99
6.2启动activity100
6.3activity间的数据传递102
6.3.1使用intent extra102
6.3.2从子activity 获取返回结果105
6.4activity的使用与管理110
6.5挑战练习:堵住作弊漏洞112
6.6挑战练习:按题记录作弊状态112
第7 章 Android SDK版本与兼容113
7.1Android SDK版本113
7.2Android编程与兼容性问题114
7.2.1比较合理的版本114
7.2.2SDK*低版本115
7.2.3SDK目标版本116
7.2.4SDK编译版本116
7.2.5安全添加新版本API中的代码116
7.2.6JETPACK库119
7.3使用Android*发者文档120
7.4挑战练习:报告编译版本122
7.5挑战练习:限制作弊次数122
第8 章 UI fragment与fragment管理器123
8.1UI设计的灵活性需求124
8.2引入fragment124
8.3着手开发CriminalIntent125
8.4创建Crime数据类128
8.5创建UI fragment129
8.5.1定义CrimeFragment的布局129
8.5.2创建CrimeFragment类131
8.6托管UI fragment137
8.6.1定义容器视图138
8.6.2向FragmentManager中添加UI fragment139
8.7采用fragment的应用架构143
第9 章 使用RecyclerView显示列表145
9.1添加新Fragment和ViewModel146
9.2添加RecyclerView149
9.3创建列表项视图布局151
9.4ViewHolder实现153
9.5使用Adapter填充RecyclerView155
9.6循环使用视图159
9.7清理绑定159
9.8响应点击160
9.9深入学习:ListView与GridView161
9.10挑战练习:RecyclerView的ViewType162
第10 章 使用布局与部件创建用户界面163
10.1初识ConstraintLayout布局164
10.2图形布局编辑器165
10.3使用ConstraintLayout168
10.3.1腾出空间169
10.3.2添加部件171
10.3.3约束的工作原理174
10.3.4编辑属性175
10.3.5动态设置列表项179
10.4深入学习布局属性180
10.5深入学习:边距与内边距182
10.6深入学习:ConstraintLayout的发展动态183
10.7挑战练习:日期格式化183
第11 章 数据库与Room库185
11.1Room架构组建库186
11.2创建数据库187
11.2.1定义实体187
11.2.2创建数据库类187
11.3定义数据库访问对象189
11.4使用仓库模式访问数据库191
11.5测试数据库访问193
11.6应用线程196
11.7使用LiveData198
11.8挑战练习:解决Schema警告203
11.9深入学习:单例204
第12 章 Fragment Navigation206
12.1单Activity多Fragment206
12.1.1Fragment回调接口207
12.1.2替换fragment209
12.2Fragment argument211
12.2.1将argument附加到fragment212
12.2.2获取argument213
12.3使用LiveData数据转换214
12.4更新数据库217
12.4.1使用executor218
12.4.2数据库写入与fragment生命周期219
12.5深入学习:为何要用Fragment Argument220
12.6深入学习:Navigation架构组件库221
12.7挑战练习:实现高效的RecyclerView刷新222
第13 章 对话框223
13.1创建DialogFragment224
13.2fragment间的数据传递227
13.2.1传递数据给DatePickerFragment228
13.2.2返回数据给CrimeFragment230
13.3挑战练习:时间选择对话框232
第14 章 应用栏233
14.1AppCompat默认应用栏234
14.2应用栏菜单235
14.2.1在XML文件中定义菜单235
14.2.2创建菜单237
14.2.3响应菜单项选择240
14.3使用Android Asset Studio242
14.4深入学习:应用栏、操作栏与工具栏244
14.5深入学习:AppCompat版应用栏246
14.6挑战练习:RecyclerView空视图246
第15 章 隐式intent247
15.1添加按钮部件248
15.2添加嫌疑人信息到模型层249
15.3使用格式化字符串250
15.4使用隐式intent251
15.4.1隐式intent的组成252
15.4.2发送消息253
15.4.3获取联系人信息256
15.4.4检查可响应任务的activity261
15.5挑战练习:又一个隐式intent263
第16 章 使用intent拍照264
16.1布置照片264
16.2文件存储267
16.2.1使用FileProvider268
16.2.2指定照片存放位置269
16.3使用相机intent270
16.4缩放和显示位图273
16.5功能声明277
16.6挑战练习:优化照片显示278
16.7挑战练习:优化缩略图加载278
第17 章 应用本地化279
17.1资源本地化279
17.1.1默认资源282
17.1.2检查资源本地化完成情况283
17.1.3区域修饰符284
17.2配置修饰符285
17.2.1可用资源优先级排定286
17.2.2多重配置修饰符288
17.2.3寻找*匹配的资源289
17.3测试备选资源290
17.4深入学习:确定设备屏幕尺寸290
17.5挑战练习:日期显示本地化291
第18 章 Android辅助功能292
18.1TalkBack292
18.1.1点击浏览294
18.1.2线性浏览295
18.2实现非文字型元素可读297
18.2.1添加内容描述297
18.2.2实现部件可聚焦300
18.3提升辅助体验301
18.4深入学习:使用辅助功能扫描器302
18.5挑战练习:优化列表项305
18.6挑战练习:补全上下文信息305
18.7挑战练习:事件主动通知306
第19 章 数据绑定与MVVM307
19.1为何要用MVVM架构308
19.2MVVM View Model与Jetpack ViewModel308
19.3创建BeatBox应用308
19.4实现简单的数据绑定309
19.5导入assets312
19.6处理assets314
19.7使用assets316
19.8绑定数据318
19.8.1创建视图模型320
19.8.2绑定到视图模型321
19.8.3绑定数据观察323
19.9深入学习:数据绑定再探325
19.9.1lambda表达式325
19.9.2更多语法糖326
19.9.3BindingAdapter326
19.10深入学习:LiveData和数据绑定327
第20 章 音频播放与单元测试329
20.1创建SoundPool329
20.2访问Assets330
20.3加载音频文件330
20.4播放音频332
20.5测试依赖332
20.6创建测试类333
20.7配置测试类335
20.8编写测试函数336
20.9数据绑定回调341
20.10释放音频342
20.11深入学习:整合测试343
20.12深入学习:模拟对象与测试344
20.13挑战练习:播放进度控制345
20.14挑战练习:设备旋转问题346
第21 章 样式与主题347
21.1颜色资源348
21.2样式348
21.3主题351
21.4添加主题颜色353
21.5覆盖主题属性354
21.6修改按钮属性358
21.7深入学习:样式继承拾遗361
21.8深入学习:引用主题属性362
第22 章 XML drawable363
22.1统一按钮样式364
22.2shape drawable365
22.3state list drawable367
22.4layer list drawable368
22.5深入学习:为什么要用XML drawable370
22.6深入学习:使用mipmap图像370
22.7深入学习:使用9-patch图像371
22.8挑战练习:按钮主题377
第23 章 深入学习intent和任务378
23.1创建NerdLauncher项目379
23.2解析隐式intent380
23.3在运行时创建显式intent385
23.4任务与回退栈386
23.4.1在任务间切换387
23.4.2启动新任务388
23.5用NerdLauncher当主屏幕391
23.6深入学习:进程与任务392
23.7深入学习:并发文档394
23.8挑战练习:应用图标397
第24 章 HTTP 与后台任务398
24.1创建PhotoGallery应用399
24.2Retrofit网络连接基本402
24.2.1定义Retrofit API接口403
24.2.2构建Retrofit对象并创建API实例403
24.2.3执行网络请求405
24.2.4获取网络使用权限407
24.2.5使用仓库模式联网408
24.3从Flickr 获取JSON数据411
24.4应对设备配置改变418
24.5在RecyclerView里显示结果421
24.6深入学习:其他JSON数据解析器和数据格式423
24.7深入学习:撤销网络请求423
24.8深入学习:管理依赖424
24.9挑战练习:自定义Gson反序列化器425
24.10挑战练习:分页426
24.11挑战练习:动态调整网格列426
第25 章 Looper、Handler和HandlerThread427
25.1配置RecyclerView以显示图片427
25.2准备下载数据430
25.3批量下载缩略图431
25.4创建后台线程431
25.4.1创建生命周期感知线程432
25.4.2启停HandlerThread435
25.5Message与message handler436
25.5.1剖析Message438
25.5.2剖析Handler438
25.5.3使用handler440
25.5.4传递handler443
25.6观察视图的生命周期446
25.7保留fragment450
25.7.1设备旋转与保留fragment450
25.7.2是否保留fragment452
25.8深入学习:解决图片下载问题452
25.9深入学习:StrictMode453
25.10挑战练习:观察视图LifecycleOwner的LiveData454
25.11挑战练习:优化ThumbnailDownloader454
25.12挑战练习:预加载以及缓存454
第26 章 搜索456
26.1搜索Flickr网站457
26.2使用SearchView460
26.3使用sharedpreferences实现轻量级数据存储464
26.4优化应用467
26.5用Android KTX编辑SharedPreferences468
26.6挑战练习:优化PhotoGallery应用469
第27 章 WorkManager470
27.1创建Worker类470
27.2调度工作471
27.3检查新图片473
27.4通知用户476
27.5服务的用户控制481
第28 章 broadcast intent486
28.1普通intent与broadcast intent486
28.2过滤前台通知487
28.2.1发送broadcast intent487
28.2.2创建并登记standalone receiver488
28.2.3使用私有权限限制broadcast489
28.2.4创建并登记动态receiver491
28.2.5使用有序broadcast收发数据493
28.3receiver与长时运行任务497
28.4深入学习:本地事件497
28.4.1使用EventBus498
28.4.2使用RxJava499
28.5深入学习:受限的Broadcast Receiver499
28.6深入学习:探测fragment的状态500
第29 章 网页浏览501
29.1*后一段Flickr数据501
29.2简单方式:使用隐式intent503
29.3较难的方式:使用WebView504
29.4处理WebView的设备旋转问题511
29.5WebView与定制UI512
29.6深入学习:注入JavaScript对象512
29.7深入学习:WebView升级513
29.8深入学习:Chrome Custom Tabs513
29.9挑战练习:使用回退键浏览历史网页514
第30 章 定制视图与触摸事件515
30.1创建DragAndDraw项目515
30.2创建定制视图516
30.3处理触摸事件518
30.4onDraw(Canvas)函数内的图形绘制521
30.5深入学习:GestureDetector523
30.6挑战练习:设备旋转问题523
30.7挑战练习:旋转矩形框524
30.8挑战练习:辅助功能支持524
第31 章 属性动画525
31.1建立场景525
31.2简单属性动画527
31.2.1视图转换属性530
31.2.2使用不同的interpolator531
31.2.3色彩渐变532
31.3播放多个动画534
31.4深入学习:其他动画API536
31.4.1传统动画工具536
31.4.2转场536
31.5挑战练习536
第32 章 编后语537
32.1终*挑战537
32.2插个广告537
32.3致谢538
作者介绍
克莉丝汀·马西卡诺(Kristin Marsicano),Big Nerd Ranch*级工程经理、讲师、Android*发者。她对学习、应用开发以及二者的交集充满热情。闲暇时,克莉丝汀喜欢跑步、弹尤克里里,或与孩子一起搭乐高积木。 布赖恩·加德纳(Brian Gardner),Big Nerd Ranch讲师、Android*发者。他是个学习狂,目前正在深入研究*新的Android库,此外还在攻读佐治亚理工学院的机器学习硕士学位。闲暇时,布赖恩喜欢绘画、烘焙和旅行。 比尔·菲利普斯(Bill Phillips),Instagram软件工程师,前Big Nerd Ranch讲师。他与人合作开发了广受好评的Android训练营培训课程,并为之编写教材(包括本书的*1版和*2版)。比尔非常懂得生活的平衡之道,能把工作、音乐创作和音频硬件项目这些事安排得井井有条。 克里斯·斯图尔特(Chris Stewart),Big Nerd Ranch工程副总裁,前Android训练营讲师。他致力于不断取得进步和精进技能。工作之余,克里斯喜欢远足和旅行。 【译者简介】 毕业于华东理工大学。软件开发及项目管理者,拥有十余年软件开发及项目管理经验。除了翻译本书前三版之外,另译有《Kotlin编程*威指南》。
关联推荐
Android开发入门与进阶不二之选