• Android高级进阶 9787121298455 顾浩鑫 电子工业出版社
21年品牌 40万+商家 超1.5亿件商品

Android高级进阶 9787121298455 顾浩鑫 电子工业出版社

当天发货,正版二手书,品相一般都没问题。

31.9 3.6折 89 九品

库存5件

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

作者顾浩鑫

出版社电子工业出版社

ISBN9787121298455

出版时间2016-10

装帧平装

开本其他

定价89元

货号972048055153573894

上书时间2024-10-31

白湘云书社

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

   商品详情   

品相描述:九品
商品描述
前言

Android 应用开发发展到今天,已经成为一个非常成熟的技术方向,市面上涌现了大量关于Android 开发的图书,总的来说可以分为以下几类。

 

入门实战类:这类图书是市面上占比最多的,也是初中级开发者比较青睐的一类图书,基本上介绍的都是Android的基础知识,例如界面开发、数据存储、网络通信、数据库操作、传感器使用等,最后附上一两个简单实战项目的介绍。建议读者在入门的时候买一本评价还不错的这类图书学习一遍,然后结合实际项目进行知识巩固即可,之后这类书基本上扮演的是工具书的角色,就是在忘记某个知识点的时候到书中查一查重新温习一遍。

 

源码分析类:这类图书又可以分为Framework层源码分析类和Native层源码分析类两种,这类图书主要针对从事Android系统开发的读者。当然,从事应用开发的读者如果对Android Framework等底层的实现原理有所了解的话那也是大有裨益的,而且相对而言更有优势。

 

安全和逆向分析类:这类图书主要介绍的是Android平台的软件安全、逆向分析及加解密技术等,主要涉及Android软件的静态分析、动态调试、破解及反破解等技术。这个方向的知识既有Android应用开发者所需要的,也有Android系统开发者所需要的,市场上也有专门的Android系统安全相关的职位。

 

系统移植和驱动类:这类图书主要介绍的是Android内核、移植和驱动开发的整个底层嵌入式开发知识,这一类知识点其实并不能算作移动端开发,本质上属于传统的嵌入式开发领域,毕竟Android底层就是一个Linux系统。

 

以上便是目前笔者所看到的Android 图书市场所覆盖的内容,可以说是大而全。但事实上在笔者看来,还有一类图书是目前没有出现的,那就是体现一线互联网公司工程实践中涉及的重要知识点,笔者将之归类为第5 类:工程实践类。希望本书能够弥补这个空白,并期待能够看到更多此类图书的出现。

 

本书内容

 

本书从结构上分为8 篇,共50 个知识点。

 

基础篇:这是占比最大的一个篇章,虽然名为基础篇,但你应该理解为是高级进阶里面的基础知识,而不是Android开发入门的基础知识。本篇主要包含Android View、动画、Support Library、Gradle、NDK、ANR、异步技术、注解、数据序列化和Hybrid等知识点。

 

系统架构篇:本篇侧重介绍架构和项目整体的相关知识,主要包括UI架构、事件总线、编码规范和技术堆栈等知识点。

 

经验总结篇:本篇侧重介绍Android工程实践中得出的经验,主要包括64K方法数限制、插件框架、推送原理、APP瘦身、Crash统计等知识点。

 

新技术篇:本篇侧重介绍新近出现的技术点,当然可能本书出版时已经没那么新了,但并不妨碍其重要性,主要包括函数式编程思想简介、依赖注入、Kotlin、React Native、在线热修复、AOP和Facebook Buck等知识点。

 

性能优化篇:本篇侧重介绍目前Android平台常见的性能优化相关知识,主要包括代码优化、图片优化、电量优化、布局优化和网络优化等知识点。

 

移动安全篇:本篇侧重介绍很多应用中经常会忽略的安全知识,主要包括混淆、反编译、密钥隐藏、加固和如何编写安全的代码等知识点。

 

工具篇:本篇介绍了Android开发中会用到的几个工具,主要包括Android Studio、Stetho、LeakCanary和Redex等知识点。

 

测试篇:本篇介绍了测试相关的知识,这部分是很多开发人员经常容易忽略的内容,本质上属于测试领域,但开发人员需要有所了解,主要包括Android单元测试、UI自动化测试、静态代码分析和自动化构建等工具。

 

读者对象

 

本书的读者对象如下。

 

Android应用研发工程师

 

计算机相关专业的学生

 

致谢

 

感谢董英编辑找到我并建议我出一本关于Android 开发相关的图书,不然也不会有这本书的存在;感谢妻子恋恋对我的写作和生活的鼓励和陪伴;感谢父母和老师对我的培养;感谢我曾经就职的公司:华为、百度、平安科技,以及现在所在的平安金融科技;感谢华为PTN、华为推送、百度文库、百度导航、百度打车、Hyperion、任意门、银行一账通等项目的兄弟姐妹们,是过往的这些公司和团队磨砺了我。

 

勘误与互动

 

读者如果发现本书文字、代码和图片等信息存在错误或者纰漏,欢迎反馈给我。对书中内容或者Android 应用开发中有什么疑问,也可以与我互动,届时将在微信公众号定期发布本书的勘误信息,并解答大家的疑问。我的相关信息如下。

 

微信公众号:ASCE1885

 

微博:http://weibo.com/asce885?is_all=1

 

GitHub:https://github.com/ASCE1885



作者简介

顾浩鑫,网络 ID:ASCE1885,平安金融科技移动研发工程师,目前主要从事 Android & React Native 相关研发工作,毕业于华中科技大学图像识别与人工智能研究所,曾先后就职于华为、百度、平安科技。



目录
第1篇 基础篇 

第1章 Android触摸事件传递机制 

1.1 触摸事件的类型 

1.2 事件传递的三个阶段 

1.3 View的事件传递机制 

1.4 ViewGroup的事件传递机制 

第2章 Android View的绘制流程 

2.1 绘制的整体流程 

2.2 MeasureSpec 

2.3 Measure 

2.4 Layout 

2.5 Draw 

第3章 Android 动画机制 

3.1 逐帧动画(Frame Animation) 

3.1.1 XML 资源文件方式 

3.1.2 代码方式 

3.2 补间动画(Tween Animation) 

3.2.1 插值器 Interpolator 

3.2.2 AlphaAnimation 

3.2.3 ScaleAnimation 

3.2.4 TranslateAnimation 

3.2.5 RotateAnimation 

3.2.6 自定义补间动画 

3.3 属性动画(Property Animation) 

3.3.1 Evaluator 

3.3.2 AnimatorSet 

3.3.3 ValueAnimator 

3.3.4 ObjectAnimator 

3.4 过渡动画(Transition Animation) 

第4章 Support Annotation Library 使用详解 

4.1 Nullness 注解 

4.2 资源类型注解 

4.3 类型定义注解 

4.4 线程注解 

4.5 RGB 颜色值注解 

4.6 值范围注解 

4.7 权限注解 

4.8 重写函数注解 

4.9 返回值注解 

4.10 @VisibleForTesting 

4.11 @Keep 

第5章 Percent Support Library使用详解 

第6章 Design Support Library使用详解 

6.1 Snackbar 

6.2 TextInputLayout 

6.3 TabLayout 

6.4 NavigationView 

6.4.1 导航菜单 

6.4.2 导航头部 

6.5 FloatingActionButton 

6.5.1 使用浮动操作按钮 

6.5.2 其他选项 

6.5.3 点击事件 

6.6 CoordinatorLayout 

6.7 CollapsingToolbarLayout 

6.8 BottomSheetBehavior 

第7章 Android Studio中的NDK开发 

7.1 ABI的基本概念 

7.2 引入预编译的二进制 C/C++ 函数库 

7.3 直接从 C/C++ 源码编译 

7.3.1 配置 ndk.dir 变量 

7.3.2 在 Gradle 中配置 NDK 模块 

7.3.3 添加 C/C++ 文件到指定的目录 

7.4 使用 .so 文件的注意事项 

7.4.1 使用高平台版本编译的 .so 文件运行在低版本的设备上 

7.4.2 混合使用不同的C++ 运行时编译的 .so 文件 

7.4.3 没有为每个支持的 CPU 架构提供对应的 .so 文件 

7.4.4 将 .so 文件放在错误的地方 

7.4.5 只提供 armeabi 架构的 .so 文件而忽略其他 ABIs 的 

第8章 Gradle 必知必会 

8.1 共享变量的定义 

8.2 通用配置 

8.3 aar 函数库的引用 

8.4 签名和混淆的配置 

第9章 通过Gradle打包发布函数库到JCenter和Maven Central 

9.1 Maven Central 和 JCenter 

9.1.1 Maven Central 

9.1.2 JCenter 

9.2 Android Studio 获取函数库的原理 

9.3 上传函数库到 JCenter 

9.3.1 步骤一:在 Bintray 网站上注册一个账号 

9.3.2 步骤二:创建一个 Sonatype 账号 

9.3.3 步骤三:在 Bintray 网站使能自动签名 

9.3.4 步骤四:生成 POM 相关的信息 

9.3.5 步骤五:上传函数库到 Bintray 

9.3.6 步骤六:发布 Bintray 用户仓库到 JCenter 

9.3.7 步骤七:同步函数库到 Maven Central 

第10章 Builder模式详解 

10.1 经典的 Builder 模式 

10.2 Builder 模式的变种 

10.3 变种 Builder 模式的自动化生成 

10.4 开源函数库的例子 

第11章 注解在 Android 中的应用 

11.1 注解的定义 

11.2 标准注解 

11.2.1 编译相关注解 

11.2.2 资源相关注解 

11.2.3 元注解 

11.3 运行时注解 

11.4 编译时注解 

11.4.1 定义注解处理器 

11.4.2 注册注解处理器 

11.4.3 android-apt插件 

第12章 ANR产生的原因及其定位分析 

12.1 ANR 产生的原因 

12.2 典型的 ANR 问题场景 

12.3 ANR 的定位和分析 

12.3.1 Logcat 日志信息 

12.3.2 traces.txt 日志信息 

12.4 ANR的避免和检测 

12.4.1 StrictMode 

12.4.2 BlockCanary 

第13章 Android异步处理技术 

13.1 Thread 

13.2 HandlerThread 

13.3 AsyncQueryHandler 

13.4 IntentService 

13.5 Executor Framework 

13.6 AsyncTask 

13.7 Loader 

13.8 总结 

第14章 Android数据序列化方案研究 

14.1 Serializable 

14.2 Parcelable 

14.3 SQLiteDatabase 

14.4 SharedPreferences 

14.5 JSON 

14.6 Protocol Buffers及Nano-Proto-Buffers 

14.7 FlatBuffers 

第15章 Android WebView Java 和 JavaScript 交互详解 

15.1 Java 调用 JavaScript 

15.2 JavaScript 调用 Java 

第2篇 系统架构篇 

第16章 MVP模式及其在Android中的实践 

16.1 MVP 的基本概念 

16.2 MVP 与 MVC 的区别 

16.3 MVP 的开源实现 

16.3.1 Android-Architecture 

16.3.2 TODO-MVP 

16.3.3 TODO-MVP-Loaders 

16.3.4 TODO-MVP-Clean 

16.3.5 TODO-Databinding 

16.3.6 其他开源参考实现 

16.4 MVP 的好处 

16.5 MVP 存在的问题 

第17章 MVVM模式及Android DataBinding实战 

17.1 Data Binding 表达式 

17.2 数据对象 

17.3 数据绑定 

17.4 事件绑定 

第18章 观察者模式的拓展:事件总线 

18.1 为何要使用 

18.2 原理 

18.3 开源实现 

18.3.1 EventBus 

18.3.2 otto 

18.4 与观察者模式及 Android 广播的区别 

第19章 书写简洁规范的代码 

19.1 Java 编码规范 

19.1.1 源代码文件的定义 

19.1.2 源代码文件的结构 

19.1.3 遵循的格式 

19.1.4 命名约定 

19.1.5 Javadoc 

19.2 Android 命名规范 

19.2.1 布局文件的命名 

19.2.2 资源文件的命名 

19.2.3 类的命名 

19.3 CheckStyle 的使用 

第20章 基于开源项目搭建属于自己的技术堆栈 

20.1 APP 的整体架构 

20.2 技术选型的考量点 

20.3 日志记录能力 

20.4 JSON 解析能力 

20.4.1 gson 

20.4.2 jackson 

20.4.3 Fastjson 

20.4.4 LoganSquare 

20.5 数据库操作能力 

20.5.1 ActiveAndroid 

20.5.2 ormlite 

20.5.3 greenDAO 

20.5.4 Realm 

20.6 网络通信能力 

20.6.1 android-async-http 

20.6.2 OkHttp 

20.6.3 Volley 

20.6.4 Retrofit 

20.7 图片缓存和显示能力 

20.7.1 BitmapFun 

20.7.2 Picasso 

20.7.3 Glide 

20.7.4 Fresco 

20.7.5 Android-Universal-Image-Loader 

第3篇 经验总结篇 

第21章 64K方法数限制原理与解决方案 

21.1 64K 限制的原因 

21.2 使用 MultiDex 解决 64K 限制的问题 

21.2.1 Android 5.0 之前的版本 

21.2.2 Android 5.0 及之后的版本 

21.3 如何避免出现 64K 限制 

21.4 配置 MultiDex 

21.5 MultiDex Support Library 的局限性 

21.6 在开发阶段优化 MultiDex 的构建 

第22章 Android 插件框架机制研究与实践 

22.1 基本概念 

22.1.1 宿主和插件 

22.1.2 ClassLoader 机制 

22.2 开源框架 

22.2.1 android-pluginmgr 

22.2.2 dynamic-load-apk 

22.2.3 DynamicAPK 

22.2.4 DroidPlugin 

22.2.5 Small 

第23章 推送机制实现原理详解 

23.1 推送的开源实现方案 

23.1.1 基于 XMPP 协议 

23.1.2 基于 MQTT 协议 

23.2 推送的第三方平台 

23.3 自己实现推送功能 

23.3.1 长连接的建立(TCPConnectThread) 

23.3.2 数据的发送(TCPSendThread) 

23.3.3 数据的接收(TCPReceiveThread) 

23.3.4 心跳包的实现(TCPHeartBeatThread) 

第24章 APP 瘦身经验总结 

24.1 APP 为什么变胖了 

24.2 从 APK 文件的结构说起 

24.3 优化图片资源占用的空间 

24.3.1 无损压缩 [ImageOptim] 

24.3.2 有损压缩 [ImageAlpha] 

24.3.3 有损压缩 [TinyPNG] 

24.3.4 PNG/JPEG 转换为 WebP 

24.3.5 尽量使用 NinePatch 格式的 PNG 图 

24.4 使用 Lint 删除无用资源 

24.5 利用 Android Gradle 配置 

24.5.1 minifyEnable 

24.5.2 shrinkResources 

24.5.3 resConfigs 

24.5.4 ndk.abiFilters 

24.6 重构和优化代码 

24.7 资源混淆 

24.8 插件化 

第25章 Android Crash 日志收集原理与实践 

25.1 Java 层 Crash 捕获机制 

25.1.1 基本原理 

25.1.2 线程信息 

25.1.3 SharedPreference 信息 

25.1.4 系统设置 

21.1.5 Logcat 中的日志记录 

25.1.6 自定义 Log 文件中的内容 

25.1.7 MemInfo 信息 

25.2 Native 层 Crash 捕获机制 

25.3 Crash 的上报 

第4篇 新技术篇 

第26章 函数式编程思想及其在Android中的应用 

26.1 代码的简化 

26.2 Operators 简介 

第27章 依赖注入及其在Android中的应用 

27.1 基本概念 

27.1.1 构造函数注入 

27.1.2 Setter 函数注入 

27.1.3 接口注入 

27.2 为何需要框架 

27.3 开源框架的选择 

27.3.1 ButterKnife 

27.3.2 RoboGuice 

27.3.3 Dagger 

27.3.4 Dagger2 

27.3.5 框架的对比 

第28章 Android世界的Swift:Kotlin在Android中的应用 

28.1 选择 Kotlin 的原因 

28.2 Kotlin 的安装和配置 

28.3 Kotlin 语言的特性 

28.3.1 可表达性 

28.3.2 空类型安全 

28.3.3 扩展函数 

28.4 Kotlin 的 Gradle 配置 

28.5 将 Java 类转换成 Kotlin 类 

28.6 相关资料 

第29章 React Native For Android入门指南 

29.1 环境配置 

29.1.1 Homebrew 

29.1.2 nvm 

29.1.3 Node.js 

29.1.4 watchman 

29.1.5 flow 

29.2 Android 开发环境的要求 

29.3 React Native 工程配置 

29.3.1 安装react-native 

29.3.2 生成工程 

29.4 Android Studio 工程概览 

29.5 React Native 依赖库修改为本地 

29.5.1 下载 react-native.aar 

29.5.2 react-native.aar 的文件内容 

29.5.3 Gradle 本地依赖 

29.5.4 将 node_modules 上传到 svn/git 

29.6 React Native 学习建议 

第30章 Android在线热修复方案研究 

30.1 在线热修复的基本流程 

30.2 Dexposed 

30.2.1 如何集成 

30.2.2 基本用法 

30.2.3 在线热修复 

30.2.4 平台的限制 

30.3 AndFix 

30.3.1 如何集成 

30.3.2 补丁包生成工具 

30.3.3 平台的限制 

30.4 Nuwa 

30.4.1 基本原理 

30.4.2 如何集成 

30.4.3 补丁生成工具 

30.4.4 平台的限制 

30.5 总结 

第31章 面向切面编程及其在Android中的应用 

31.1 AOP 的基本概念 

31.2 代码织入的时机 

31.3 基于 AspectJ 实现 Android 平台的 AOP 

31.3.1 Hugo 的用法简介 

31.3.2 Hugo 的实现原理 

31.4 其他 AOP 开源框架 

第32章 基于Facebook Buck改造Android构建系统 

32.1 Buck环境配置 

32.1.1 Homebrew 方式 
<

   相关推荐   

—  没有更多了  —

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

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