Android高级进阶顾浩鑫9787121298455电子工业出版社
¥
0.5
0.1折
¥
89
八五品
仅1件
作者顾浩鑫
出版社电子工业出版社
ISBN9787121298455
出版时间2016-10
装帧其他
开本其他
定价89元
货号9787121298455
上书时间2024-12-28
商品详情
- 品相描述:八五品
- 商品描述
-
作者简介
顾浩鑫,网络ID:ASCEl885,平安金融科技移动研发工程师,目前主要从事Android&ReactNative丰目关研发工作,毕业于华中科技大学图像识别与人工智能研究所,曾先后就职于华为、百度、平安科技。
目录
第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 方式
32.1.2 手动构建方式
32.1.3 安装 Watchman
32.1.4 安装 Android SDK 和 Android NDK
32.2 快速创建基于 Buck 构建的 Android 工程
32.3 Buck 的基本概念
32.3.1 构建规则(Build Rule)
32.3.2 构建目标(Build Target)
32.3.3 构建文件
— 没有更多了 —
以下为对购买帮助不大的评价