• Android进阶指北 刘望舒 9787121393754 电子工业出版社
21年品牌 40万+商家 超1.5亿件商品

Android进阶指北 刘望舒 9787121393754 电子工业出版社

当天发货,全新正版书。

74.8 6.9折 109 全新

库存8件

北京通州
认证卖家担保交易快速发货售后保障

作者刘望舒

出版社电子工业出版社

ISBN9787121393754

出版时间2020-09

装帧平装

开本16开

定价109元

货号1202129679

上书时间2024-06-01

湘云书店

十六年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
刘望舒,Android技术专家,Android进阶三部曲《Android进阶之光》《Android进阶解密》《Android进阶指北》作者,电子工业出版社博文视点2017年度、2018年度、2019年度很好作者。CSDN知名博主,荣获CSDN2018年度博客之星称号。GDG Devfest、Droidcon、安卓巴士开发者大会、优选移动开发者大会的特邀演讲嘉宾或出品人。曾在多个知名大厂任职,目前就职于某大型互联网公司,担任技术负责人,负责管理和架构相关工作。

目录
Android进阶三部曲知识体系1

章 系统源码的下载、编译、调试5

1.1 使用VirtualBox安装Ubuntu5

1.1.1 安装Ubuntu的步骤6

1.1.2 安装增强工具12

1.2 AOSP源码下载14

1.2.1 AOSP简介14

1.2.2 下载repo15

1.2.3 下载源码15

1.3 内核源码下载16

1.4 系统源码的整编和单编18

1.4.1 编译系统概述18

1.4.2 编译源码的方式20

1.4.3 准备编译环境20

1.4.4 源码整编21

1.4.5 源码单编24

1.5 Source Insight导入系统源码25

1.5.1 新建源码项目25

1.5.2 定位文件27

1.5.3 全局搜索28

1.6 Android Studio导入系统源码29

1.7 Android Studio调试系统源码33

1.7.1 AOSP源码项目调试34

1.7.2 导入部分源码调试38

1.7.3 新建Android项目调试39

1.8 本章小结40

第2章 理解包管理机制和PMS41

2.1 PackageInstaller的初始化41

2.1.1 PackageManager简介42

2.1.2 APK的文件结构和安装方式42

2.1.3 寻找PackageInstaller入口43

2.1.4 PackageInstallerActivity解析47

2.1.5 PackageInstaller初始化的过程51

2.2 PackageInstaller安装APK过程52

2.2.1 PackageInstaller中的处理52

2.2.2 Java框架层的处理57

2.2.3 PackageInstaller安装APK的过程59

2.3 PMS处理APK的安装过程59

2.3.1 PackageHandler处理安装消息60

2.3.2 复制APK的处理66

2.3.3 PMS处理APK安装70

2.3.4 PMS处理APK安装的步骤76

2.4 PMS的创建过程77

2.4.1 SystemServer处理部分77

2.4.2 PMS构造方法80

2.5 APK解析过程91

2.5.1 引入PackageParser91

2.5.2 PackageParser解析APK92

2.5.3 Package的数据结构99

2.6 本章小结100

第3章 理解输入系统和IMS102

3.1 输入事件传递流程的组成部分103

3.2 IMS的诞生105

3.2.1 SystemServer处理部分105

3.2.2 InputManagerService构造方法107

3.3 IMS的启动过程110

3.4 InputDispatcher的启动过程112

3.5 InputReader处理事件的过程113

3.6 输入事件的处理总结119

3.7 InputReader的加工类型120

3.8 InputDispatcher的分发过程123

3.8.1 唤醒InputDispatcherThread123

3.8.2 InputDispatcher进行分发124

3.9 事件分发到目标窗口的过程128

3.9.1 为事件寻找合适的分发目标128

3.9.2 处理点击形式的事件132

3.9.3 向目标窗口发送事件135

3.9.4 Motion事件分发过程总结136

3.10 本章小结138

第4章 IPC机制139

4.1 Linux和Android的IPC机制139

4.1.1 Linux中的IPC机制139

4.1.2 Android中的IPC机制141

4.2 开启多进程142

4.2.1 开启多进程举例142

4.2.2 开启多进程引出的问题144

4.3 用Messenger进行进程间通信146

4.4 使用AIDL实现跨进程方法调用150

4.4.1 创建AIDL文件150

4.4.2 创建服务端152

4.4.3 客户端调用153

4.5 用ContentProvider进行进程间通信155

4.5.1 建立数据库,方便ContentProvider使用155

4.5.2 使用ContentProvider对数据库进行操作156

4.5.3 在Activity中调用另一个进程的GameProvider方法158

4.6 用Socket实现跨进程聊天程序160

4.7 本章小结167

第5章 Native Binder原理168

5.1 学习Binder的前置知识点168

5.1.1 Linux和Binder的IPC通信原理169

5.1.2 使用Binder的原因173

5.1.3 学习Binder的原因174

5.2 ServiceManager中的Binder机制175

5.2.1 基于Binder通信的C/S架构175

5.2.2 MediaServer的main函数176

5.2.3 每个进程唯一的ProcessState实例177

5.2.4 解析ServiceManager中的Binder机制180

5.2.5 小结187

5.3 系统服务的注册过程187

5.3.1 从调用链角度说明MediaPlayerService的注册过程187

5.3.2 从进程角度说明MediaPlayerService的注册过程195

5.3.3 小结196

5.4 ServiceManager的启动过程196

5.4.1 打开binder设备198

5.4.2 注册成为Binder机制的上下文管理者201

5.4.3 循环等待和处理客户端发来的请求203

5.5 系统服务的获取过程206

5.5.1 客户端MediaPlayerService请求获取服务206

5.5.2 服务端ServiceManager处理请求212

5.6 本章小结218

第6章 Java Binder原理219

6.1 Java Binder的JNI注册219

6.1.1 Binder类的注册223

6.1.2 BinderInternal类的注册224

6.2 Java Binder中系统服务的注册过程225

6.2.1 将AMS注册到ServiceManager226

6.2.2 引出JavaBBinder230

6.2.3 解析JavaBBinder232

6.2.4 Java Binder架构234

6.3 本章小结235

第7章 Groovy基础236

7.1 Groovy概述236

7.2 Groovy编写和调试237

7.3 变量237

7.4 方法237

7.5 类238

7.6 语句239

7.6.1 断言239

7.6.2 for循环239

7.6.3 switch语句240

7.7 数据类型241

7.7.1 字符串241

7.7.2 List242

7.7.3 Map242

7.7.4 闭包(Closure)243

7.8 I/O操作244

7.8.1 文件读取244

7.8.2 文件写入244

7.9 其他245

7.9.1 asType245

7.9.2 判断是否为真245

7.9.3 安全取值245

7.9.4 with操作符246

7.10 本章小结246

第8章 Gradle核心思想247

8.1 Gradle概述247

8.1.1 项目自动化248

8.1.2 构建工具248

8.1.3 Gradle的特性253

8.2 Gradle基础知识255

8.2.1 配置Gradle环境255

8.2.2 实现Hello World257

8.2.3 Gradle的任务258

8.2.4 Gradle日志级别260

8.2.5 Gradle 命令行261

8.3 被忽视的Gradle Wrapper263

8.3.1 为什么需要Gradle Wrapper263

8.3.2 构建Gradle Wrapper264

8.3.3 配置Gradle Wrapper265

8.3.4 使用Gradle Wrapper266

8.3.5 升级Gradle Wrapper267

8.3.6 自定义Gradle Wrapper268

8.4 Gradle插件基础268

8.4.1 Gradle插件概述268

8.4.2 应用Gradle插件270

8.4.3 插件DSL272

8.4.4 自定义对象插件273

8.4.5 Gradle插件的作用和优点274

8.5 自定义Gradle插件274

8.5.1 在build.gradle中编写275

8.5.2 在buildSrc工程项目中编写277

8.5.3 在独立项目中编写278

8.6 本章小结281

第9章 Gradle的Android插件282

9.1 什么是Gradle的Android插件282

9.2 Android Studio的模块类型和项目视图283

9.3 项目build.gradle284

9.4 模块build.gradle285

9.4.1 Gradle的Android插件类型286

9.4.2 Android块286

9.4.3 dependencies块291

9.5 Android签名文件配置292

9.5.1 自定义签名信息文件292

9.5.2 本地添加签名信息文件293

9.6 Gradle的库依赖294

9.7 Gradle的库依赖管理295

9.7.1 Gradle的依赖传递296

9.7.2 Gradle的依赖检查296

9.7.3 Gradle的依赖冲突299

9.8 本章小结301

0章 Android Jetpack架构组件302

10.1 Android Jetpack简介303

10.2 Android Jetpack分类303

10.2.1 Architecture304

10.2.2 Foundationy305

10.2.3 Behavior306

10.2.4 UI307

10.3 在应用中引入Jetpack相关组件307

10.4 使用Lifecycle307

10.4.1 为什么需要Lifecycle307

10.4.2 如何使用Lifecycle309

10.4.3 Lifecycle应用举例312

10.4.4 自定义LifecycleOwner315

10.5 Lifecycle的原理316

10.5.1 Lifecycle的生命周期状态事件和状态316

10.5.2 Lifecycle如何观察Activity和Fragment的生命周期317

10.5.3 Lifecycle关联类327

10.6 使用LiveData328

10.6.1 什么是LiveData328

10.6.2 LiveData的基本用法329

10.6.3 更改LiveData中的数据330

10.6.4 合并多个LiveData数据源332

10.6.5 拓展LiveData对象333

10.7 LiveData的原理335

10.7.1 LiveData如何观察组件生命周期变化335

10.7.2 LiveData的observe方法回调336

10.7.3 postValue/setValue方法分析339

10.7.4 Transformations.map方法分析341

10.7.5 LiveData关联类343

10.8 使用ViewModel344

10.8.1 什么是ViewModel345

10.8.2 ViewModel的基本使用方法345

10.8.3 ViewModel的生命周期347

10.9 ViewModel的原理348

10.10 本章小结351

1章 跨平台技术演进352

11.1 Web App353

11.2 Hybrid App353

11.2.1 Cordova354

11.2.2 Ionic355

11.2.3 VasSonic355

11.2.4 微信小程序356

11.3 语言编译转换357

11.4 原生渲染358

11.4.1 React Native358

11.4.2 Weex358

11.4.3 快应用359

11.5 自绘UI360

11.5.1 Qt360

11.5.2 Flutter361

11.6 本章小结362

2章 Dart基础363

12.1 Dart开发环境搭建363

12.2 Dart概述364

12.3 Dart的特性和重要概念365

12.4 Dart关键字366

12.5 变量367

12.6 基本数据类型367

12.6.1 Number367

12.6.2 String368

12.6.3 Boolean368

12.6.4 List368

12.6.5 Set369

12.6.6 Map369

12.7 函数369

12.7.1 可选参数370

12.7.2 默认参数值370

12.7.3 main函数371

12.7.4 匿名函数371

12.8 流程控制语句371

12.8.1 for循环372

12.8.2 switch和case372

12.9 捕获异常373

12.10 为类添加新的功能373

12.11 库的使用方法374

12.12 异步支持375

12.13 使类可调用376

12.14 创建实例376

12.15 本章小结376

3章 Flutter基础377

13.1 Flutter开发环境搭建和Hello World377

13.1.1 Flutter概述378

13.1.2 Flutter开发环境搭建378

13.1.3 运行一个Flutter Demo383

13.1.4 Hello World385

13.2 Widget基础386

13.2.1 Widget概述387

13.2.2 Widget的分类387

13.2.3 Widget的状态分类388

13.2.4 根Widget的种类388

13.3 Basic Widget389

13.3.1 代码模板和主题389

13.3.2 文本390

13.3.3 图片391

13.3.4 凸起按钮394

13.3.5 其他Widget395

13.4 Material组件397

13.4.1 MaterialApp398

13.4.2 Scaffold401

13.4.3 AppBar403

13.4.4 BottomNavigationBar405

13.4.5 TabBar407

13.4.6 Drawer411

13.5 Scrolling Widget413

13.5.1 ListView413

13.5.2 GridView418

13.5.3 PageView419

13.6 手势相关Widget421

13.6.1 指针事件421

13.6.2 手势422

13.6.3 使用GestureDetector423

13.6.4 使用Dismissible424

13.7 资源和图片426

13.7.1 指定asset426

13.7.2 加载文本427

13.7.3 加载图片430

13.8 布局Widget433

13.8.1 线性布局Widget433

13.8.2 流式布局Widget434

13.8.3 层式布局Widget436

13.8.4 弹性布局Widget438

13.9 网络请求库Dio440

13.9.1 Dio的使用入门440

13.9.2 Dio访问网络441

13.10 JSON数据解析443

13.10.1 使用json.decode方法443

13.10.2 手动编写实体类444

13.10.3 自动生成实体类445

13.11 路由与数据传递447

13.11.1 新建路由447

13.11.2 使用注册路由450

13.11.3 路由间数据传递451

13.12 Flutter与Android的相互通信456

13.12.1 PlatformChannel概述456

13.12.2 Flutter调用Android458

13.12.3 Android调用Flutter461

13.13 本章小结465

内容摘要
本书是一本Android进阶图书,结合《Android进阶之光》和《Android进阶解密》两本书介绍的知识,一同建立起Android应用开发进阶知识体系。全书共分13章,主要从3个方面来组织内容:(1)Android应用开发所需要掌握的系统源码知识,包括系统源码的下载、编译、调试,包管理机制,输入系统,Native Binder,Java Binder;(2)应用开发必需的知识点,包括Groovy基础、Gradle核心思想、Gradle的Android插件、Android Jetpack架构组件;(3)与跨平台开发相关的知识点,包括跨平台技术演进、Dart基础、Flutter基础。

主编推荐
"1.Android进阶三部曲是专门为应用开发进阶和面试打造的系列图书,共同构建Android进阶三部曲知识体系。
2.本书是Android进阶三部曲第三部,畅销书《Android进阶之光》《Android进阶解密》 作者又一力作!
3.本书主要内容:系统源码的下载、编译、调试 ,Binder原理,PMS/IMS,Gradle核心思想,Jetpack架构组件,Flutter等。
4.本书适合有一定基础的Android应用开发工程师和对Android系统源码感兴趣的读者阅读。"

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP