Android进阶指北
9.3评分 收藏
¥53.40豆瓣价格

Android进阶指北

作者:刘望舒 译者:
更新时间:2021-06-08 11:43:45
《Android进阶指北》是一本Android进阶图书,结合《Android进阶之光》和《Android进阶解密》两本书介绍的知识,一同建立起Android应用开发进阶知识体系。全书共分13章,主要从3个方面来组织内容:(1)Android应用开发所需要掌握的系统源码知识,包括系统源码的下载、编译、调试,包管理机制,输入系统,Native Binder,Java Binder;(2)应用开发必需的知识点,包括Groovy基础、Gradle核心思想、Gradle的Android插件、Android Jetpack架构组件;(3)与跨平台开发相关的知识点,包括跨平台技术演进、Dart基础、Flutter基础。 本书适合有一定基础的Android应用开发工程师和对Android系统源码感兴趣的读者阅读。

所属分类

豆瓣价格
¥53.40

京东价格
¥109.00

当当价格
¥109.00

出版信息

  • 书  名Android进阶指北
  • 出版社电子工业出版社
  • 出品方
  • 出版日期2020-09-01
  • 页  数484页
  • 定  价109.00元
  • 装  帧 平装
  • I S B N9787121393754
  • 豆瓣关注99
  • 京东评价99
  • 当当评分99.8

同作家书籍

  • 西周史

    作者:杨宽

    西周时代是指公元前十一世纪末叶周武王克商,创建周朝,建都于镐,直到公元前七七一年周幽王被杀和周平王迁都洛邑,前后约二百八十年的这一段时间。西周是继夏、商二代建立的王朝,西周的政治文化在两代的基础上有了光辉灿烂的发展,对整个中国历史与文化的发

  • 春秋史

    作者:顾德融

    本书对文献材料和考古资料进行梳理扒剔,通过对大量史料的条分缕析、删繁就简,全面系统地论述了春秋时期的政治、军事、经济、思想、文化、社会阶层等状况,通过对这段看似纷乱的历史的透析,明晰地反映出春秋时代社会各方面的变化对中国历史的发展所产生的深

  • 人对抗自己

    作者:〔美〕卡尔·门林格尔

    本书是人类自我毁灭倾向研究的里程碑。卡尔·门林格尔在书中开创性地探讨了生死本能与人类疾病、绝望甚至自杀行为的关系,对死亡本能和自我毁灭倾向做了全面的考察和分析。他认为,人性中固有的破坏性冲动总是要竭力寻求宣泄的。这种冲动其本质是由于受到生本

  • 坎特伯雷故事

    作者:(英)杰弗雷·乔叟

    杰弗雷·乔叟(1343-1400),英国文学之父,中世纪最伟大的英国诗人之一,同时还是哲学家、炼金术士和天文学家,做过官员、侍臣和外交家。乔叟在促进和中世纪英语白话的正统方面起着举足轻重的作用。《坎特伯雷故事集》是一部诗体短篇小说集,讲述了

  • 拜占庭帝国史

    作者:[美]A.A.瓦西列夫

    研究拜占庭的权威之作,拜占庭的历史百科全书。 本书作者亚历山大·亚历山德罗维奇·瓦西列夫是国际历史学界公认的、20世纪中期以来最权威的拜占庭历史和文化研究者之一。他所著的《拜占庭帝国史》(1928年初版)至今仍然是与爱德华·吉本和弗奥多尔·

  • 印度:受伤的文明

    作者:[英] V.S.奈保尔

    【诺贝尔文学奖得主V.S.奈保尔代表作“印度三部曲”第二部、非虚构文学典范之作】 【印度吞噬了自己的文明,在垃圾中生产垃圾,在废墟中制造废墟,人民居然能心安理得地生活。】 ★ V.S.奈保尔将深具洞察力的叙述和不受世俗侵蚀的探索融为一体,迫

  • 爱因斯坦的梦

    作者:[美]艾伦·莱特曼

    一九○五年,历史上重大的一年,在瑞士专利局工作的爱因斯坦即将要创造出惊天动地的理论,却陷入了一段又一段的梦中……在梦里,时间是一个圆,反覆循环;或者,时间静止不动;有时,时间是一只夜莺,人们想捉而捉不到;但捉到时鸟却立时死亡…… 三十个各自

  • 中国史学入门

    作者:顾颉刚 著

    编辑推荐: 顾颉刚生前200册读书笔记记载着他的学术历程、学术遗产和治学精神,值得史学界认真继承,同时也值得从事古代文学和古代哲学的研究人士认真继承。 首届向全国推荐中华优秀传统文化普及图书。 内容简介: 这部书自从初版以来,曾有日文译本在

  • 时间的女儿

    作者:[英] 约瑟芬·铁伊

    理查三世,金雀花王朝的末代君王,背负着令人发指的罪行,被钉在历史的耻辱柱上。四百年后,一幅画像,将改变历史的可能,交到了受伤的探长手里。曾经对兄长无限忠诚的少年,为何会残忍杀害兄长的两个孩子?因正直而被后世尊崇的大法官,是勇敢的揭露者,抑或

  • 傅雷与傅聪

    作者:叶永烈

    《傅雷家书》发行了100多万册,在广大读者之中产生了广泛的影响。然而,傅雷与傅聪是怎样的一对父子?傅雷为什么呕心沥血写作了《傅雷家书》?这本《傅雷与傅聪》对此作了最详尽的解读。 傅雷被打成“右派分子”之后,导致了傅聪的出走英国,而傅聪的出走

本书特色

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

目录

Android进阶三部曲知识体系 1 第1章 系统源码的下载、编译、调试 5 1.1 使用VirtualBox安装Ubuntu 5 1.1.1 安装Ubuntu的步骤 6 1.1.2 安装增强工具 12 1.2 AOSP源码下载 14 1.2.1 AOSP简介 14 1.2.2 下载repo 15 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章 理解包管理机制和PMS 41 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 引入PackageParser 91 2.5.2 PackageParser解析APK 92 2.5.3 Package的数据结构 99 2.6 本章小结 100 第3章 理解输入系统和IMS 102 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 唤醒InputDispatcherThread 123 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注册到ServiceManager 226 6.2.2 引出JavaBBinder 230 6.2.3 解析JavaBBinder 232 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 List 242 7.7.3 Map 242 7.7.4 闭包(Closure) 243 7.8 I/O操作 244 7.8.1 文件读取 244 7.8.2 文件写入 244 7.9 其他 245 7.9.1 asType 245 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 World 257 8.2.3 Gradle的任务 258 8.2.4 Gradle日志级别 260 8.2.5 Gradle 命令行 261 8.3 被忽视的Gradle Wrapper 263 8.3.1 为什么需要Gradle Wrapper 263 8.3.2 构建Gradle Wrapper 264 8.3.3 配置Gradle Wrapper 265 8.3.4 使用Gradle Wrapper 266 8.3.5 升级Gradle Wrapper 267 8.3.6 自定义Gradle Wrapper 268 8.4 Gradle插件基础 268 8.4.1 Gradle插件概述 268 8.4.2 应用Gradle插件 270 8.4.3 插件DSL 272 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.gradle 284 9.4 模块build.gradle 285 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 第10章 Android Jetpack架构组件 302 10.1 Android Jetpack简介 303 10.2 Android Jetpack分类 303 10.2.1 Architecture 304 10.2.2 Foundationy 305 10.2.3 Behavior 306 10.2.4 UI 307 10.3 在应用中引入Jetpack相关组件 307 10.4 使用Lifecycle 307 10.4.1 为什么需要Lifecycle 307 10.4.2 如何使用Lifecycle 309 10.4.3 Lifecycle应用举例 312 10.4.4 自定义LifecycleOwner 315 10.5 Lifecycle的原理 316 10.5.1 Lifecycle的生命周期状态事件和状态 316 10.5.2 Lifecycle如何观察Activity和Fragment的生命周期 317 10.5.3 Lifecycle关联类 327 10.6 使用LiveData 328 10.6.1 什么是LiveData 328 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 使用ViewModel 344 10.8.1 什么是ViewModel 345 10.8.2 ViewModel的基本使用方法 345 10.8.3 ViewModel的生命周期 347 10.9 ViewModel的原理 348 10.10 本章小结 351 第11章 跨平台技术演进 352 11.1 Web App 353 11.2 Hybrid App 353 11.2.1 Cordova 354 11.2.2 Ionic 355 11.2.3 VasSonic 355 11.2.4 微信小程序 356 11.3 语言编译转换 357 11.4 原生渲染 358 11.4.1 React Native 358 11.4.2 Weex 358 11.4.3 快应用 359 11.5 自绘UI 360 11.5.1 Qt 360 11.5.2 Flutter 361 11.6 本章小结 362 第12章 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 Number 367 12.6.2 String 368 12.6.3 Boolean 368 12.6.4 List 368 12.6.5 Set 369 12.6.6 Map 369 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和case 372 12.9 捕获异常 373 12.10 为类添加新的功能 373 12.11 库的使用方法 374 12.12 异步支持 375 12.13 使类可调用 376 12.14 创建实例 376 12.15 本章小结 376 第13章 Flutter基础 377 13.1 Flutter开发环境搭建和Hello World 377 13.1.1 Flutter概述 378 13.1.2 Flutter开发环境搭建 378 13.1.3 运行一个Flutter Demo 383 13.1.4 Hello World 385 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 Widget 389 13.3.1 代码模板和主题 389 13.3.2 文本 390 13.3.3 图片 391 13.3.4 凸起按钮 394 13.3.5 其他Widget 395 13.4 Material组件 397 13.4.1 MaterialApp 398 13.4.2 Scaffold 401 13.4.3 AppBar 403 13.4.4 BottomNavigationBar 405 13.4.5 TabBar 407 13.4.6 Drawer 411 13.5 Scrolling Widget 413 13.5.1 ListView 413 13.5.2 GridView 418 13.5.3 PageView 419 13.6 手势相关Widget 421 13.6.1 指针事件 421 13.6.2 手势 422 13.6.3 使用GestureDetector 423 13.6.4 使用Dismissible 424 13.7 资源和图片 426 13.7.1 指定asset 426 13.7.2 加载文本 427 13.7.3 加载图片 430 13.8 布局Widget 433 13.8.1 线性布局Widget 433 13.8.2 流式布局Widget 434 13.8.3 层式布局Widget 436 13.8.4 弹性布局Widget 438 13.9 网络请求库Dio 440 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调用Android 458 13.12.3 Android调用Flutter 461 13.13 本章小结 465

刘望舒作家介绍

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

热门推荐

  • 三国演义(全二册)

    作者:[明] 罗贯中 豆瓣评分:9.3 豆瓣价格:¥39.50

    《三国演义》又名《三国志演义》、《三国志通俗演义》,是我国小说史上最著名最杰出的长篇章回体历史小说。 《三国演义》的作者是元末明初人罗贯中,由毛纶,毛宗岗父子批改。在其成书前,“三国故事”已经历了数百年的历史发展过程。在唐代,三国故事已广为

  • 力量的进化

    作者:[美]西蒙·莱尔沃克斯 豆瓣评分:8.6 豆瓣价格:¥79.00

    ★ 为什么鱼能逆流而上,蛇可以轻松滑行,猎豹跑得如此之快? 为什么人类进化出了拳头,男人也有乳头,足球场上有假摔? ★ 动物世界的奥林匹克运动会8亿年未曾中断,解密神奇动物行为背后的运行机制,看动物为了生存与繁殖可以有多拼 ★ 科普作家花蚀

  • 马未都:国宝100.第三卷

    作者:马未都 豆瓣评分:8.6 豆瓣价格:¥68.00

    用文物讲述历史,是了解历史的一种特殊欣赏方式。《国宝100》中,马未都从全世界的博物馆中遴选出100件中国文物,详细讲述。本套书共包括4本,分别涉及青铜、陶瓷、玉器、漆器、家具、法书、碑帖、绘画。它们有的得到无数赞誉,被国内精心收藏,有的在

  • 剑来10:他乡遇故知

    作者:烽火戏诸侯 豆瓣评分:8.4 豆瓣价格:¥43.00

    ★烽火戏诸侯全新长篇力作,一剑进入古典仙侠新世界 ★独家网络修订珍藏版 ★精致装帧,赠送精美海报、书签、明信片 ★大千世界,无奇不有。我陈平安,唯有一剑,可搬山,断江,倒海,降妖,镇魔,敕神,摘星,摧城,开天!我叫陈平安,平平安安的平安,我

  • 阿里云天池大赛赛题解析——机器学习篇

    作者:天池平台 豆瓣评分:6.4 豆瓣价格:¥109.00

    《阿里云天池大赛赛题解析——机器学习篇》聚焦机器学习算法建模及相关技术,以工业蒸汽量预测、天猫用户重复购买预测、O2O优惠券预测和阿里云安全恶意程序检测等四个天池经典赛题作为实战案例,针对实际赛题按照赛题理解、数据探索、特征工程、模型训练、

  • 因子投资:方法与实践

    作者:石川 豆瓣评分:9.1 豆瓣价格:¥108.00

    《因子投资:方法与实践》在统一视角下,体系化地介绍了因子投资中的重要研究方法,并针对中国A 股市场给出了独立的、可复制的、高质量的因子实证分析结果,是一本真正可操作、可上手的因子投资手册。本书主要内容包括:因子投资基础、因子投资方法论、主流

  • 增长飞轮:亚马逊跨境电商运营精要

    作者:老魏 豆瓣评分:7.9 豆瓣价格:¥79.00

    作者老魏有 10 余年的跨境电商从业经历,他编写的前一本关于亚马逊运营的图书,印量近 50000 册 ,得到了读者的良好反馈。作者参考前一本书读者的反馈意见,结合亚马逊跨境电商新的商业环境写成本书。 本书围绕亚马逊的平台知识和运营技巧展开,

  • 数据中台实战:手把手教你搭建数据中台

    作者:董超华 豆瓣评分:5.6 豆瓣价格:¥69.00

    自从2015 年阿里巴巴提出中台的概念后,数据中台的概念就火遍了整个互联网圈。数据中台是实现企业数据智能的重要手段,但是数据中台是什么、为什么要搭建数据中台、数据中台究竟应该怎么搭建,这些问题的答案却很少有人知道。 《数据中台实战:手把手教

  • 全球创新投资

    作者:[韩]睦大均 豆瓣评分:6.9 豆瓣价格:¥62.00

    全球大变局下的投资市场和创新趋势有哪些新变化? 是投资“创新型企业”,还是投资“经济护城河企业”? 如何寻找明日的创新型产业? 如何做好投资头寸和风险管理? 如何洞察未来的投资动向? 近年来,随着科技的发展,全球投资市场出现了新的趋势和特征

  • 认知觉醒

    作者:周岭 豆瓣评分:8.3 豆瓣价格:¥59.80

    这是一部可以穿透时间的个人成长方法论。通过“大脑构造、潜意识、元认知”等思维规律,你将真正看清自己;通过“深度学习、关联、反馈”事物规律,你将洞悉如何真正成事! 如果对自己不了解,我们就会被人的原始天性束缚,这往往会让我们感到很痛苦。然而,