Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

Java1234 VIP课程

Java毕业设计指导(联系锋哥)

Java毕业设计指导(联系锋哥)         Java1234至尊VIP(特价活动)
当前位置: 主页 > Java文档 > 安卓技术相关 >

Android高级编程(第4版) PDF 下载


分享到:
时间:2022-09-20 09:58来源:http://www.java1234.com 作者:转载  侵权举报
主要特色 ● 涵盖Android*的API,包括Job Scheduler、Android架构组件(包括Live Data和Room)和数据绑定 ● 提供Android Studio IDE的详细说明以及Kotlin的介绍 ● 详细介绍材料设计原则、设计指南
失效链接处理
Android高级编程(第4版)  PDF 下载


下载地址:
版权归出版社和原作者所有,链接已删除,请购买正版

用户下载说明:

电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:
http://product.dangdang.com/28495126.html
 

相关截图:



资料简介:
主要特色
 
● 涵盖Android*的API,包括Job Scheduler、Android架构组件(包括Live Data和Room)和数据绑定
 
● 提供Android Studio IDE的详细说明以及Kotlin的介绍
 
● 详细介绍材料设计原则、设计指南、导航模式和UI的更佳实践
 
● 演示如何为所有形式的Android设备创建引人注目的UI
 
● 探索Firebase和Google Play服务的API库,包括地图、基于位置的服务以及Awareness API
 
● 掌握为将来的Android开发项目提供坚实支持的技能

资料目录:

第1章  你好,Android   1
1.1  Android应用开发   1
1.2  小背景   2
1.2.1  不远的过去   2
1.2.2  未来的发展   2
1.3  Android生态系统   3
1.4  Android的预安装应用   3
1.5  Android SDK的特性   4
1.6  Android在哪里运行   4
1.7  为什么要为移动设备开发应用   5
1.8  为什么要进行Android开发   5
1.9  Android开发框架介绍   5
1.9.1  Android SDK中都包含什么   5
1.9.2  了解Android软件堆层   6
1.9.3  Android运行时   7
1.9.4  Android应用架构   8
1.9.5  Android库   8
第2章  入门   9
2.1  Android应用开发入门   9
2.2  Android开发   10
2.2.1  准备工作   11
2.2.2  创建首个Android应用   14
2.2.3  开始使用Kotlin编写Android应用   23
2.2.4  使用Android Support Library包   24
2.3  进行移动和嵌入式设备开发   25
2.3.1  硬件设计考虑因素   25
2.3.2  考虑用户环境   28
2.3.3  进行Android开发   28
2.4  Android开发工具   31
2.4.1  Android Studio   32
2.4.2  Android虚拟机管理器   33
2.4.3  Android模拟器   34
2.4.4  Android Profiler   34
2.4.5  Android 调试桥   35
2.4.6  APK分析器   35
2.4.7  Lint检查工具   36
2.4.8  Monkey、Monkey Runner和Espresso UI测试   36
2.4.9  Gradle   37
第3章  应用、Activity和Fragment   38
3.1  应用、Activity和Fragment   38
3.2  Android应用的组件   39
3.3  Android应用的生命周期、优先级和进程状态   39
3.4  Android的Application类   41
3.5  进一步了解Android的Activity   41
3.5.1  创建Activity   41
3.5.2  使用AppCompatActivity   42
3.5.3  Activity的生命周期   42
3.5.4  响应内存压力   47
3.6  Fragment   48
3.6.1  创建新的Fragment   49
3.6.2  Fragment的生命周期   49
3.6.3  Fragment Manager介绍   52
3.6.4  添加Fragment到Activity中   52
3.6.5  Fragment与Activity之间的通信   57
3.6.6  没有UI的Fragment   57
3.7  构建Earthquake Viewer应用   58
第4章  定义Android配置清单和Gradle构建文件,并外部化资源   64
4.1  配置清单、构建文件和资源   64
4.2  Android配置清单   64
4.3  配置Gradle构建文件   68
4.3.1  settings.gradle 文件   68
4.3.2  项目的build.gradle文件   68
4.3.3  模块级build.gradle文件   69
4.4  外部化资源   72
4.4.1  创建资源   72
4.4.2  使用资源   79
4.4.3  为不同的语言和硬件创建资源   82
4.4.4  运行时配置更改   84
第5章  构建用户界面   87
5.1  Android设计基础   87
5.2  密度无关设计   88
5.3  Android UI基础   88
5.4  布局介绍   89
5.4.1  定义布局   91
5.4.2  使用布局创建设备无关的用户界面   91
5.4.3  优化布局   94
5.5  Android小部件工具箱   97
5.6  使用列表和网格   97
5.6.1  RecyclerView和Layout Manager   98
5.6.2  关于适配器   98
5.6.3  返回到Earthquake Viewer应用   101
5.7  关于数据绑定   102
5.7.1  使用数据绑定   102
5.7.2  数据绑定中的变量   103
5.7.3  数据绑定在Earthquake Viewer中的应用   103
5.8  创建新的View   105
5.8.1  修改现有的View   105
5.8.2  创建复合控件   108
5.8.3  创建作为布局的简单复合控件   109
5.8.4  创建自定义View   110
5.8.5  使用自定义控件   119
第6章  Intent与Broadcast Receiver   121
6.1  使用Intent和Broadcast Receiver   121
6.2  使用Intent启动Activity   122
6.2.1  显式启动新的Activity   122
6.2.2  隐式Intent与后期运行时绑定   123
6.2.3  确定Intent是否会被解析   123
6.2.4  返回Activity结果   124
6.2.5  使用平台本地动作启动Activity   126
6.3  创建Intent Filter以接收隐式Intent   127
6.3.1  定义Intent Filter   127
6.3.2  使用Intent Filter实现插件和扩展性   133
6.4  介绍Linkify   135
6.4.1  原生Linkify链接类型   136
6.4.2  创建自定义的链接字符串   136
6.4.3  使用MatchFilter接口   136
6.4.4  使用TransformFilter接口   137
6.5  使用Intent广播事件   137
6.5.1  使用Intent广播事件   137
6.5.2  使用Broadcast Receiver监听Intent广播   138
6.5.3  使用代码注册Broadcast Receiver   139
6.5.4  在应用配置清单中注册Broadcast Receiver   139
6.5.5  在运行时管理配置清单中注册的Receiver   140
6.5.6  通过广播Intent监听设备状态的变化   140
6.6  介绍Local Broadcast Manager   142
6.7  Pending Intent介绍   143
第7章  使用网络资源   144
7.1  连接网络   144
7.2  连接、下载和解析网络资源   145
7.2.1  为何要创建原生网络应用   145
7.2.2  连接到网络资源   145
7.2.3  使用View Model、Live Data和Asynchronous Task在后台线程中执行网络操作   146
7.2.4  使用XML Pull Parser解析XML   149
7.2.5  将Earthquake Viewer连接到网络   150
7.2.6  使用JSON Reader解析JSON   156
7.3  使用Download Manager   159
7.3.1  下载文件   160
7.3.2  自定义Download Manager通知   161
7.3.3  指定下载位置   162
7.3.4  取消和移除下载   163
7.3.5  查询Download Manager   163
7.4  下载数据而不损耗电池的实践   165
7.5  网络服务及云计算简介   166
第8章  文件、存储状态和用户偏好   167
8.1  存储文件、状态和偏好   167
8.2  通过生命周期处理程序保存并恢复Activity和Fragment的实例状态   168
8.3  使用Headless Fragment和View Model保存实例状态   169
8.3.1  View Model和Live Data   169
8.3.2  Headless Fragment   171
8.4  创建和保存Shared Preference   172
8.5  获取Shared Preference   173
8.6  关于Shared Preference Change Listener的介绍   173
8.7  配置应用文件和Shared Preference的自动备份   173
8.8  构建偏好UI   174
8.8.1  使用Preference Support Library   175
8.8.2  使用XML定义Preference Screen的布局   175
8.8.3  Preference Fragment介绍   177
8.9  为Earthquake Monitor创建设置Activity   178
8.10  包含静态文件作为资源   182
8.11  使用文件系统   183
8.11.1  文件管理工具   183
8.11.2  在特定于应用的内部存储上创建文件   183
8.11.3  在特定于应用的外部存储上创建文件   183
8.11.4  使用范围化目录访问权限访问公共目录   184
8.12  使用File Provider共享文件   187
8.12.1  创建File Provider   187
8.12.2  使用File Provider共享文件   188
8.12.3  从File Provider接收文件   188
8.13  使用Storage Access Framework访问来自其他应用的文件   188
8.13.1  请求临时访问文件   189
8.13.2  请求对文件的持久访问   189
8.13.3  请求访问目录   189
8.13.4  创建新文件   190
8.14  使用基于URI的权限   190
第9章  创建和使用数据库   192
9.1  在Android中引入结构化数据存储   192
9.2  使用Room持久化库存储数据   193
9.2.1  添加Room持久化库   193
9.2.2  定义Room Database   194
9.2.3  使用类型转换器持久化复杂对象   196
9.2.4  使用DAO定义Room Database交互   196
9.2.5  执行Room Database交互   199
9.2.6  使用Live Data监控查询结果的变化   200
9.3  使用Room将地震数据持久化到数据库中   201
9.4  使用SQLite数据库   203
9.4.1  输入验证和SQL注入   204
9.4.2  Cursor与Content Values   204
9.4.3  定义数据库合约类   205
9.4.4  SQLiteOpenHelper介绍   205
9.4.5  使用SQLiteOpenHelper打开数据库   206
9.4.6  在没有SQLiteOpenHelper的情况下打开和创建数据库   207
9.4.7  添加、更新和删除行   207
9.4.8  从Cursor中提取值   209
9.5  Firebase Realtime Database介绍   210
9.5.1  将Firebase Realtime Database添加到应用中   211
9.5.2  定义Firebase Realtime Database并定义访问规则   213
9.5.3  添加、修改、删除和查询Firebase Realtime Database中的数据   214
第10章  Content Provider与搜索   216
10.1  Content Provider介绍   216
10.2  使用Content Provider的原因   217
10.3  创建Content Provider   217
10.3.1  创建Content Provider的数据库   218
10.3.2  注册Content Provider   218
10.3.3  公开Content Provider的URI地址   219
10.3.4  实现Content Provider查询   219
10.3.5  Content Provider事务   221
10.3.6  使用Content Provider共享文件   222
10.3.7  向Content Provider添加权限要求   223
10.4  使用Content Resolver访问Content Provider   224
10.4.1  查询Content Provider   225
10.4.2  取消查询   226
10.4.3  使用Cursor Loader异步查询内容   227
10.4.4  添加、删除和更新内容   229
10.4.5  访问存储在Content Provider中的文件   230
10.4.6  访问权限受限的Content Provider   231
10.5  使用Android原生Content Provider   232
10.5.1  访问Call Log Content Provider   232
10.5.2  使用Media Store Content Provider   233
10.5.3  使用联系人Content Provider   234
10.5.4  使用日历Content Provider   238
10.6  在应用中添加搜索   241
10.6.1  定义搜索元数据   241
10.6.2  创建搜索结果Activity   241
10.6.3  搜索Content Provider   242
10.6.4  使用Search View小部件   245
10.6.5  使用Content Provider提供搜索建议   246
10.6.6  搜索地震监测数据库   249
第11章  工作在后台   257
11.1  为什么要工作在后台   257
11.2  使用后台线程   258
11.2.1  使用AsyncTask异步运行任务   258
11.2.2  使用Handler Thread手动创建线程   261
11.3  调度后台作业   262
11.3.1  为Job Scheduler创建Job Service   263
11.3.2  使用Job Scheduler调度作业   265
11.3.3  使用Firebase Job Dispatcher计划作业   266
11.3.4  使用Work Manager计划作业   268
11.3.5  Job Service在Earthquake示例中的应用   270
11.4  使用Notification通知用户   273
11.4.1  Notification Manager简介   273
11.4.2  使用通知渠道   274
11.4.3  创建通知   274
11.4.4  设置通知的优先级   277
11.4.5  添加通知动作   280
11.4.6  添加直接回复动作   280
11.4.7  分组多个通知   281
11.4.8  通知在Earthquake示例中的应用   283
11.5  使用Firebase Cloud Messaging   285
11.5.1  使用Firebase Notification远程触发通知   285
11.5.2  使用Firebase Cloud Messaging接收数据   288
11.6  使用闹钟   288
11.6.1  创建、设置和取消闹钟   289
11.6.2  设置闹钟   289
11.7  服务介绍   290
11.7.1  使用绑定服务   290
11.7.2  创建启动服务   291
11.7.3  创建服务   292
11.7.4  启动和停止服务   292
11.7.5  控制服务重启行为   293
11.7.6  自终止服务   294
11.7.7  创建前台服务   294
第12章  贯彻Android设计理念   295
12.1  Android设计理念介绍   295
12.2  为每个屏幕进行设计   296
12.2.1  分辨率独立性   296
12.2.2  支持和优化不同的屏幕尺寸   297
12.2.3  创建可缩放的图像资源   299
12.3  Material Design介绍   303
12.3.1  从纸和墨水的角度思考   303
12.3.2  使用颜色和基准线(Keyline)作为指导   304
12.3.3  运动带来的连贯性   306
12.4  Material Design UI元素   308
12.4.1  应用栏   308
12.4.2  Material Design在Earthquake示例中的应用   310
12.4.3  使用Card显示内容   311
12.4.4  悬浮按钮   313
第13章  实现现代Android用户体验   315
13.1  现代Android UI   315
13.2  使用AppCompat创建外观一致的现代用户界面   316
13.2.1  使用AppCompat创建并应用主题   316
13.2.2  为特定视图创建Theme Overlay   317
13.3  向应用栏添加菜单和动作   317
13.3.1  定义菜单资源   317
13.3.2  向Activity添加菜单   318
13.3.3  向Fragment添加菜单   319
13.3.4  动态更新菜单项   319
13.3.5  处理菜单选择   319
13.3.6  添加Action View和Action Provider   320
13.4  不仅限于默认应用栏   321
13.4.1  用工具栏替换应用栏   321
13.4.2  工具栏的高级滚动技术   322
13.4.3  如何不用应用栏添加菜单   324
13.5  改进Earthquake示例的应用栏   324
13.6  应用的导航模式   326
13.6.1  使用选项卡导航   326
13.6.2  实现底部导航栏   328
13.6.3  使用导航抽屉   330
13.6.4  组合导航模式   334
13.7  向Earthquake示例添加选项卡   334
13.8  选择正确的提示等级   337
13.8.1  初始化对话框   337
13.8.2  生成一条Toast消息   338
13.8.3  使用Snackbar的内联中断   339
第14章  用户界面的高级定制   341
14.1  拓展用户体验   341
14.2  支持无障碍访问性   342
14.2.1  支持无触摸屏的导航   342
14.2.2  为每个视图提供文本描述   342
14.3  Android文本语音转换介绍   342
14.4  使用语音识别   344
14.4.1  使用语音识别进行语音输入   345
14.4.2  使用语音识别进行搜索   345
14.5  控制设备振动   346
14.6  全屏模式   346
14.7  使用属性动画   347
14.7.1  创建属性动画   348
14.7.2  创建属性动画集   349
14.7.3  使用动画监听器   349
14.8  增强你的视图   350
14.9  高级Canvas绘图   350
14.9.1  能绘制什么   350
14.9.2  充分利用Paint   351
14.9.3  通过抗锯齿提高Paint绘图质量   354
14.9.4  Canvas绘图实践   354
14.9.5  高级罗盘面板示例   355
14.9.6  创建交互式控件   361
14.9.7  使用设备键、按钮和十字键   364
14.10  复合Drawable资源   365
14.10.1  可变形的Drawable资源   365
14.10.2  Layer Drawable   366
14.10.3  State List Drawable   366
14.10.4  Level List Drawable   367
14.11  复制、粘贴和剪贴板   367
14.11.1  将数据复制到剪贴板   368
14.11.2  粘贴剪贴板数据   368
第15章  位置、情境感知和地图   369
15.1  向应用添加位置、地图和情境感知   369
15.2  Google Play服务介绍   370
15.2.1  向应用添加Google Play服务   370
15.2.2  确定Google Play服务的可用性   372
15.3  使用Google位置信息服务查找设备位置   372
15.3.1  使用模拟器测试基于位置的功能   373
15.3.2  查找后的位置   374
15.3.3  Where Am I示例   375
15.3.4  请求位置更改更新   378
15.3.5  通过Pending Intent接收位置更新   380
15.3.6  定义更新的过期条件   381
15.3.7  后台位置更新限制   381
15.3.8  更改设备位置设置   382
15.3.9  在Where Am I示例中更新位置   384
15.3.10  使用位置时的实践   386
15.4  设置和管理地理围栏   387
15.5  使用传统平台的LBS   389
15.5.1  选择Location Provider   390
15.5.2  查找后位置   391
15.5.3  请求位置更改更新   392
15.5.4  使用传统LBS的实践   393
15.6  使用Geocoder   396
15.6.1  逆向地理编码   396
15.6.2  正向地理编码   397
15.6.3  地理编码在Where Am I项目中的应用   398
15.7  创建基于地图的Activity   399
15.7.1  获取Google Maps API密钥   399
15.7.2  创建基于地图的Activity   400
15.7.3  配置Google地图   401
15.7.4  通过CameraUpdate更改相机位置   402
15.7.5  地图在Where Am I项目中的应用   404
15.7.6  使用My Location层显示当前位置   407
15.7.7  显示交互式地图标记   407
15.7.8  向Google地图添加形状   409
15.7.9  向Google地图添加图像叠加层   411
15.7.10  向Where Am I项目添加标记和形状   412
15.8  地图在Earthquake示例中的应用   414
15.9  添加情境感知   417
15.9.1  连接到Google Play服务API客户端并获取API密钥   417
15.9.2  使用感知快照   418
15.9.3  设置和监控感知围栏   419
15.9.4  Awareness实践   422
第16章  硬件传感器   423
16.1  Android传感器介绍   423
16.1.1  使用Sensor Manager   424
16.1.2  理解Android传感器   424
16.1.3  发现和识别传感器   426
16.1.4  确定传感器的功能   427
16.1.5  Wakeup和非Wakeup传感器   428
16.1.6  监测传感器结果   428
16.1.7  读取传感器值   431
16.2  使用Android虚拟设备和模拟器测试传感器   433
16.3  使用传感器的实践   434
16.4  监控设备的移动和朝向   434
16.4.1  确定设备的自然朝向   435
16.4.2  加速度计介绍   435
16.4.3  检测加速度变化   436
16.4.4  创建重力仪   437
16.4.5  确定设备的朝向   439
16.4.6  创建指南针和人工地平线   443
16.5  使用环境传感器   445
16.5.1  使用气压计传感器   445
16.5.2  创建气象站   446
16.6  使用身体传感器   449
16.7  用户活动识别   451
第17章  音频、视频和使用摄像头   453
17.1  播放音频和视频,以及使用摄像头   453
17.2  播放音频和视频   454
17.2.1  媒体播放器简介   454
17.2.2  使用Media Play播放视频   456
17.2.3  使用ExoPlayer播放视频   458
17.2.4  请求和管理音频焦点   459
17.2.5  输出改变时暂停播放   461
17.2.6  响应音量按键   461
17.2.7  使用Media Session   462
17.3  使用Media Router和Cast Application框架   464
17.4  后台音频播放   467
17.4.1  构建音频播放服务   468
17.4.2  将Activity连接到Media Browser服务   469
17.4.3  Media Browser服务的生命周期   470
17.5  在前台服务中播放音频   471
17.6  使用Media Recorder录制音频   473
17.7  使用摄像头拍照   475
17.7.1  使用Intent拍照   475
17.7.2  直接控制摄像头   476
17.7.3  读取和写入JPEG EXIF图像详情   480
17.8  录制视频   481
17.8.1  使用Intent录制视频   481
17.8.2  使用Media Recorder录制视频   482
17.9  将媒体添加到Media Store   483
17.9.1  使用Media Scanner插入新的媒体   484
17.9.2  手动插入媒体   484
第18章  使用蓝牙、NFC和Wi-Fi点对点进行通信   486
18.1  网络和点对点通信   486
18.2  使用蓝牙API传输数据   486
18.2.1  管理本地蓝牙设备适配器   487
18.2.2  可被发现和远程设备发现   488
18.2.3  蓝牙通信   491
18.2.4  蓝牙配置文件   494
18.2.5  低功耗蓝牙   495
18.3  使用Wi-Fi点对点协议传输数据   497
18.3.1  初始化Wi-Fi点对点框架   497
18.3.2  发现节点   498
18.3.3  连接节点设备   499
18.3.4  在节点间传输数据   500
18.4  使用近场通信   501
18.4.1  读取NFC标签   501
18.4.2  使用前台分派系统   502
18.5  使用Android Beam   504
18.5.1  创建Android Beam消息   504
18.5.2  分配Android Beam负载数据   505
18.5.3  接收Android Beam消息   506
第19章  使用主屏   507
19.1  自定义主屏   507
19.2  主屏小部件介绍   507
19.2.1  定义小部件的布局   509
19.2.2  定义小部件的尺寸和其他元数据   510
19.2.3  实现小部件   511
19.2.4  使用App Widget Manager和Remote View更新Widget UI   512
19.2.5  强制刷新小部件的数据和UI   514
19.2.6  创建和使用小部件Configuration Activity   516
19.3  创建地震小部件   517
19.4  Collection View小部件介绍   521
19.4.1  创建Collection View小部件的布局   522
19.4.2  使用Remote Views Factory更新Collection View   523
19.4.3  使用Remote Views Service更新Collection View   524
19.4.4  使用Remote Views Service填充Collection View小部件   525
19.4.5  为Collection View小部件中的条目添加交互性   526
19.4.6  刷新Collection View小部件   526
19.4.7  创建地震Collection View小部件   526
19.5  创建Live Wallpaper   531
19.5.1  创建Live Wallpaper定义资源   532
19.5.2  创建Wallpaper Service Engine   532
19.5.3  创建Wallpaper Service   533
19.6  创建App快捷方式   534
19.6.1  静态快捷方式   535
19.6.2  动态快捷方式   535
19.6.3  追踪App快捷方式的使用   537
第20章  高级Android开发   538
20.1  高级Android   538
20.2  偏执的Android   539
20.2.1  Linux内核安全性   539
20.2.2  再述权限   539
20.2.3  在Android Keystore中存储密钥   541
20.2.4  使用指纹传感器   541
20.3  处理不同的软硬件可用性   542
20.3.1  指定所需的硬件   542
20.3.2  确认硬件的可用性   543
20.3.3  构建向后兼容的应用   543
20.4  使用严格模式优化UI性能   544
20.5  电话和短信   545 
20.5.1  电话   546
20.5.2  收发短信   550
第21章  应用的发布、分发和监控   564
21.1  准备发布应用   564
21.1.1  准备发布材料   565
21.1.2  准备代码以进行发布构建   565
21.2  在应用清单文件中更新应用元数据   566
21.2.1  检查应用安装限制   566
21.2.2  应用的版本管理   567
21.3  给应用的生产构建版本签名   567
21.3.1  使用Android Studio创建Keystore和签名密钥   568
21.3.2  获取基于私有发布密钥的API密钥   569
21.3.3  构建生产发布版本并签名   569
21.4  在Google Play商店中发布应用   570
21.4.1  Google Play商店简介   571
21.4.2  Google Play 商店初体验   571
21.4.3  在Google Play商店中创建应用   572
21.4.4  发布应用   577
21.4.5  监控生产环境中的应用   579
21.5  应用变现介绍   582
21.6  App营销、促销和分发策略   583
21.6.1  应用上线策略   583
21.6.2  国际化   584
21.7  使用Firebase监控应用   584
21.7.1  把Firebase添加到应用中   585
21.7.2  使用Firebase Analytics   585
21.7.3  Firebase Performance Monitoring   587
 
------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐