Android高级进阶

Android高级进阶

作者:顾浩鑫

出版社:电子工业

出版年:2016年10月

ISBN:9787121298455

所属分类:经济金融

书刊介绍

《Android高级进阶》内容简介

《Android高级进阶》是Android的进阶学习指南,主要为Android初中级开发者进阶所需的知识,高级开发者也可以从本书中发现很多共鸣点。《Android高级进阶》从8个方面对50个知识点进行分类讲解,包括基础篇、系统架构篇、经验总结篇、新技术篇、性能优化篇、移动安全篇、工具篇、测试篇。熟练掌握这些知识点后,应该就能够应付实际项目开发中的绝大部分问题了。
《Android高级进阶》的主要目的在于给读者一个完整的Android中高级开发者知识图谱。笔者希望通过《Android高级进阶》的系统讲解,能够帮助读者在面试和工作中收获自己满意的成绩。
顾浩鑫,网络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.2、补间动画(Tween
Animation)
3.3、属性动画(Property
Animation)
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.5、FloatingActionButton
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.4、使用.so文件的注意事项
第8章:Gradle必知必会
8.1、共享变量的定义
8.2、通用配置
8.3、aar函数库的引用
8.4、签名和混淆的配置
第9章:通过Gradle打包发布函数库到JCenter和Maven
Central
9.1、Maven
Central和JCenter
9.2、Android
Studio获取函数库的原理
9.3、上传函数库到JCenter
第10章:Builder模式详解
10.1、经典的Builder模式
10.2、Builder模式的变种
10.3、变种Builder模式的自动化生成
10.4、开源函数库的例子
第11章:注解在Android中的应用
11.1、注解的定义
11.2、标准注解
11.3、运行时注解
11.4、编译时注解
第12章:ANR产生的原因及其定位分析
12.1、ANR产生的原因
12.2、典型的ANR问题场景
12.3、ANR的定位和分析
12.4、ANR的避免和检测
第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.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.4、与观察者模式及Android广播的区别
第19章:书写简洁规范的代码
19.1、Java编码规范
19.2、Android命名规范
19.3、CheckStyle的使用
第20章:基于开源项目搭建属于自己的技术堆栈
20.1、APP的整体架构
20.2、技术选型的考量点
20.3、日志记录能力
20.4、JSON解析能力
20.5、数据库操作能力
20.6、网络通信能力
20.7、图片缓存和显示能力
第3篇
经验总结篇
第21章:64K方法数限制原理与解决方案
21.1、64K限制的原因
21.2、使用MultiDex解决64K限制的问题
21.3、如何避免出现64K限制
21.4、配置MultiDex
21.5、MultiDex
Support
Library的局限性
21.6、在开发阶段优化MultiDex的构建
第22章:Android插件框架机制研究与实践
22.1、基本概念
22.2、开源框架
第23章:推送机制实现原理详解
23.1、推送的开源实现方案
23.2、推送的第三方平台
23.3、自己实现推送功能
第24章:APP瘦身经验总结
24.1、APP为什么变胖了
24.2、从APK文件的结构说起
24.3、优化图片资源占用的空间
24.4、使用Lint删除无用资源
24.5、利用Android
Gradle配置
24.6、重构和优化代码
24.7、资源混淆
24.8、插件化
第25章:ndroid
Crash日志收集原理与实践
25.1、Java层Crash捕获机制
25.2、Native层Crash捕获机制
25.3、Crash的上报
第4篇
新技术篇
第26章:函数式编程思想及其在Android中的应用
26.1、代码的简化
26.2、Operators简介
第27章:依赖注入及其在Android中的应用
27.1、基本概念
27.2、为何需要框架
27.3、开源框架的选择
第28章:Android世界的Swift:Kotlin在Android中的应用
28.1、选择Kotlin的原因
28.2、Kotlin的安装和配置
28.3、Kotlin语言的特性
28.4、Kotlin的Gradle配置
28.5、将Java类转换成Kotlin类
28.6、相关资料
第29章:React
Native
For
Android入门指南
29.1、环境配置
29.2、Android开发环境的要求
29.3、React
Native工程配置
29.4、Android
Studio工程概览
29.5、React
Native依赖库修改为本地
29.6、React
Native学习建议
第30章:Android在线热修复方案研究
30.1、在线热修复的基本流程
30.2、Dexposed
30.3、AndFix
30.4、Nuwa
30.5、总结
第31章:面向切面编程及其在Android中的应用
31.1、AOP的基本概念
31.2、代码织入的时机
31.3、基于AspectJ实现Android平台的AOP
31.4、其他AOP开源框架
第32章:基于Facebook
Buck改造Android构建系统
32.1、Buck环境配置
32.2、快速创建基于Buck构建的Android工程
32.3、Buck的基本概念
32.4、项目改造实战
32.5、Buck的自动化改造
第5篇
性能优化篇
第33章:代码优化
33.1、数据结构的选择
33.2、Handler和内部类的正确用法
33.3、正确地使用Context
33.4、掌握Java的四种引用方式
33.5、其他代码微优化
第34章:图片优化
34.1、图片的格式
34.2、图片的压缩
34.3、图片的缓存
第35章:电量优化
35.1、BroadcastReceiver
35.2、数据传输
35.3、位置服务
35.4、AlarmManager
35.5、WakeLock
第36章:布局优化
36.1、include标签共享布局
36.2、ViewStub标签实现延迟加载
36.3、merge标签减少布局层次
36.4、尽量使用CompoundDrawable
36.5、使用Lint
第37章:网络优化
37.1、避免DNS解析
37.2、合并网络请求
37.3、预先获取数据
37.4、避免轮询
37.5、优化重连机制
37.6、离线缓存
37.7、压缩数据大小
37.8、不同的网络环境使用不同的超时策略
37.9、CDN的使用
第6篇
移动安全篇
第38章:Android混淆机制详解
38.1、Java代码的混淆
38.2、Native(C/C++)代码的混淆
38.3、资源文件的混淆
第39章:Android反编译机制详解
39.1、资源文件的反编译
39.2、Java代码的反编译
第40章:客户端敏感信息隐藏技术研究
40.1、敏感信息嵌套在strings.xml中
40.2、敏感信息隐藏在Java源代码中
40.3、敏感信息隐藏在BuildConfig中
40.4、使用DexGuard
40.5、对敏感信息进行伪装或者加密
40.6、敏感信息隐藏在原生函数库中(.so文件)
40.7、对APK进行加固处理
第41章:Android加固技术研究
41.1、爱加密的主要功能
41.2、常见APP漏洞及风险
41.3、Android程序反破解技术
41.4、加固技术研究知识储备
第42章:Android安全编码
42.1、WebView远程代码执行
42.2、WebView密码明文保存
42.3、Android本地拒绝服务
42.4、SharedPreference全局任意读写
42.5、密钥硬编码
42.6、AES/DES/RSA弱加密
42.7、随机函数使用错误
42.8、WebView忽略SSL证书
42.9、HTTPS证书弱校验
42.10、PendingIntent使用不当
第7篇
工具篇
第43章:Android调试工具Facebook
Stetho
43.1、视图布局监视
43.2、数据库监视
43.3、网络监视
43.4、dumpapp
43.5、Javascript控制台
43.6、最佳实践
第44章:内存泄漏检测函数库LeakCanary
44.1、基本概念
44.2、LeakCanary的集成
44.3、LeakCanary的原理
44.4、LeakCanary的定制
第45章:基于Facebook
Redex实现Android
APK的压缩和优化
45.1、转换的时机
45.2、管道的思想
45.3、减少字节码的意义
45.4、混淆和压缩
45.5、使用内联函数
45.6、无用代码的消除
45.7、Redex的集成和使用
第46章:Android
Studio你所需要知道的功能
46.1、Annotate
46.2、.ignore插件
46.3、Live
Templates
46.4、集成Bug管理系统
第8篇
测试篇
第47章:Android单元测试框架简介
47.1、Java单元测试框架JUnit
47.2、Android单元测试框架Robolectric
3.0、47.3、Java模拟测试框架Mockito
第48章:Android
UI自动化测试框架简介
48.1、Monkey
48.2、MonkeyRunner
48.3、UIAutomator
48.4、Robotium
48.5、Espresso
48.6、Appium
第49章:Android静态代码分析实战
49.1、Java代码规范检查工具CheckStyle
49.2、Java静态代码分析工具FindBugs
49.3、Java静态代码分析工具PMD
49.4、Android代码优化工具Lint
第50章:基于Jenkins+Gradle搭建Android持续集成编译环境
50.1、Tomcat的下载和启动
50.2、Jenkins的下载和运行
50.3、Jenkins插件的安装
50.4、Jenkins全局配置
50.5、JOB相关的操作
50.6、Jenkins预定义的环境变量

相关推荐

微信二维码