移动平台开发书库 Android 系统优化从入门到精通 可复制文字版
作 者: 胡郁
出版时间:2015
内容简介
全书分为12章,第1章是Android概述,第2章是工欲善其事、必先利其器,第3章是为什么需要优化,第4章是UI布局优化,第5章是Android的内存系统,第6章是Android的内存优化,第7章是=代码优化,第8章是性能优化,第9章是系统优化,第10章是优化工具,第11-12章是综合实例部分,通过2个综合实例讲解了优化大型Androd程序的基本流程。
目录
前言
**篇 基础知识篇
第1章 Android系统介绍
1.1 智能手机系统介绍
1.1.1 什么是智能手机
1.1.2 主流智能系统的发展现状
1.2 Android系统的发展现状
1.2.1 Android系统的诞生和发展现状
1.2.2 常见的Android设备
1.2.3 Android系统的巨大优势
1.3 搭建Android应用开发环境
1.3.1 安装Android SDK的系统要求
1.3.2 安装JDK
1.3.3 获取并安装Eclipse和Android SDK
1.3.4 安装ADT
1.3.5 设定Android SDK Home
1.3.6 验证开发环境
1.3.7 创建Android虚拟设备(AVD)
1.3.8 启动AVD模拟器
1.4 创建**个Android程序
第2章 获取并编译Android源码
2.1 获取Android源码
2.1.1 在Linux系统获取Android源码
2.1.2 在Windows平台获取Android源码
2.2 分析Android源码结构
2.3 编译Android源码
2.3.1 搭建编译环境
2.3.2 开始编译
2.3.3 在模拟器中运行
2.3.4 常见的错误分析
2.3.5 实践演练——两种编译Android程序的方法演示
第二篇 核心技术篇
第3章 分析内存系统
3.1 分析Android的进程通信机制
3.1.1 Android的进程间通信(IPC)机制Binder
3.1.2 Binder机制的上下文管理者——Service Manager
3.1.3 Service Manager服务
3.2 匿名共享内存子系统详解
3.2.1 基础数据结构
3.2.2 初始化处理
3.2.3 打开匿名共享内存设备文件
3.2.4 内存映射
3.2.5 读写操作
3.2.6 锁定和解锁
3.2.7 回收内存块
3.3 C++访问接口层详解
3.3.1 接口MemoryHeapBase
3.3.2 接口MemoryBase
3.4 Java访问接口层详解
第4章 Android内存优化
4.1 Android内存优化的作用
4.2 查看Android内存和CPU使用情况
4.2.1 利用Android API函数查看内存
4.2.2 直接对Android文件进行解析查询
4.2.3 通过Runtime类实现
4.2.4 使用DDMS工具获取
4.2.5 其他方法
4.3 Android系统的内存泄露
4.3.1 什么是内存泄漏
4.3.2 为什么会发生内存泄露
4.3.3 shallow size和retained size
4.3.4 查看Android内存泄露的工具
4.3.5 查看Android内存泄露的方法
4.3.6 Android(Java)编码时的注意事项
4.4 常见的引起内存泄露的陋习
4.4.1 查询数据库时忘记关闭游标
4.4.2 构造Adapter时不习惯使用缓存的convertView
4.4.3 没有及时释放对象的引用
4.4.4 不在使用Bitmap对象时调用recycle()释放内存
4.5 演练解决内存泄露
4.5.1 使用MAT根据heap dump分析Java代码内存泄漏的根源
4.5.2 演练Android中内存泄露代码优化及检测
4.6 Android图片的内存优化
第5章 UI布局优化
5.1 和布局相关的组件
5.1.1 View视图组件
5.1.2 ViewGroup容器
5.2 Android中的五种布局方式
5.2.1 线性布局LinearLayout
5.2.2 框架布局FrameLayout
5.2.3 **布局AbsoluteLayout
5.2.4 相对布局RelativeLayout
5.2.5 表格布局TableLayout
5.3 使用标签优化UI界面
5.3.1 注意事项
5.3.2 具体实现
5.4 优化Bitmap图片
5.4.1 显示一副图片
5.4.2 获取图片的宽度和高度
5.5 FrameLayout布局优化
5.5.1 使用减少视图层级结构
5.5.2 使用重用layout代码
5.5.3 延迟加载
5.6 使用Android提供的优化工具
5.6.1 Layout Optimization工具
5.6.2 Hierarchy Viewer工具
5.6.3 联合使用和标签实现互补
第6章 优化代码性能
6.1 编写更高效的Android代码
6.1.1 避免建立对象
6.1.2 优化方法调用代码
6.1.3 优化代码变量
6.1.4 优化代码过程
6.1.5 提高Cursor查询数据的性能
6.1.6 编码中尽量使用ContentProvider共享数据
6.2 Android控件的性能优化
6.2.1 ListView控件的代码优化
6.2.2 Adapter(适配器)优化
6.2.3 ListView异步加载图片优化
6.3 优化Android图形
6.3.1 2D绘图的基本优化
6.3.2 触发屏幕图形触摸器的优化
6.3.3 SurfaceView 绘图覆盖刷新及脏矩形刷新方法
6.4 资源存储优化
6.4.1 Android文件存储
6.4.2 Android中的资源存储
6.4.3 Android资源的类型和命名
6.4.4 Android文件资源(raw/data/asset)的存取
6.4.5 Android对Drawable对象的优化
6.4.6 建议使用Drawable,而不是Bitmap
6.5 加载APK文件和DEX文件
6.5.1 APK文件介绍
6.5.2 DEX文件介绍和优化
6.5.3 Android类动态加载技术实现加密优化
第三篇 Dalvik 虚拟机优化篇
第7章 Dalvik虚拟机垃圾收集机制
7.1 引用计数算法
7.2 Mark Sweep算法
7.3 和垃圾收集算法有关的函数
7.4 垃圾回收的时机
7.5 调试信息
7.6 Dalvik 虚拟机和JVM垃圾收集机制的区别
第8章 Dalvik虚拟机内存优化机制
8.1 sp和wp简介
8.1.1 sp基础
8.1.2 wp基础
8.2 智能指针详解
8.2.1 智能指针基础
8.2.2 轻量级指针
8.2.3 强指针
8.2.4 弱指针
第9章 Dalvik虚拟机异常处理
9.1 Java异常处理机制
9.1.1 方法调用栈
9.1.2 Java提供的异常处理类
9.2 Java 虚拟机异常处理机制详解
9.2.1 Java语言及虚拟机的异常处理机制
9.2.2 COSIX虚拟机异常处理的设计与实现
9.3 分析Dalvik虚拟机异常处理的源码
9.3.1 初始化虚拟机使用的异常Java类库
9.3.2 抛出一个线程异常
9.3.3 持续抛出进程
9.3.4 找出异常原因
9.3.5 清除挂起的异常和等待初始化的异常
9.3.6 解决“现在等待”异常
9.3.7 输出跟踪当前异常的错误信息
9.3.8 搜索和当前异常相匹配的方法
9.3.9 获取匹配的捕获块
9.3.10 进行堆栈跟踪
9.3.11 生成堆栈跟踪元素
9.3.12 将内容添加到堆栈跟踪日志中
9.3.13 将异常日志信息输出为堆栈跟踪信息
9.4 常见异常的类型与原因
9.4.1 SQLException:操作数据库异常类
9.4.2 ClassCastException:数据类型转换异常
9.4.3 NumberFormatException:字符串转换为数字类型时抛出的异常
9.5 调用堆栈跟踪分析异常
9.5.1 解决段错误
9.5.2 跟踪Android Callback调用堆栈
第10章 JIT编译
10.1 JIT简介
10.1.1 JIT概述
10.1.2 Java虚拟机主要的优化技术
10.1.3 Dalvik中JIT的实现
10.2 Dalvik虚拟机对JIT的支持
10.3 汇编代码和改动
10.3.1 汇编部分代码
10.3.2 对C文件的改动
10.4 Dalvik虚拟机中的JIT源码
10.4.1 入口文件
10.4.2 核心函数
10.4.3 编译文件
10.4.4 BasicBlock处理
10.4.5 内存初始化
10.4.6 对JIT源码的总结
第11章 ART优化之启动过程
11.1 运行环境的转换
11.2 运行 app_process 进程
11.3 准备启动
11.4 创建运行实例
11.5 注册本地JNI函数
11.6 启动守护进程
11.7 解析参数
11.8 初始化类、方法和域
第12章 ART优化之执行主程序
12.1 进入main主函数
12.2 查找目标类
12.2.1 函数LookupClass()
12.2.2 函数DefineClass()
12.2.3 函数InsertClass()
12.2.4 函数LinkClass()
12.3 类操作
12.4 实现托管操作
第13章 ART优化之安装APK准备
13.1 PackageManagerService概述
13.2 主函数main
13.3 调用初始化函数
13.4 创建PackageManagerService服务
13.5 扫描并解析
13.6 保存解析信息
第14章 ART优化之安装APK应用程序
14.1 Android安装APK概述
14.2 启动时安装
14.3 ART安装
14.4 实现dex2oat转换
14.4.1 参数解析
14.4.2 创建oat文件指针
14.4.3 dex2oat 准备工作
14.4.4 提取classes.dex文件
14.4.5 创建oat文件
14.5 APK 文件的转换
第15章 系统优化
15.1 基本系统优化
15.1.1 刷机重启
15.1.2 刷内核
15.1.3 精简内置应用
15.1.4 基本系统优化总结
15.2 进程管理
15.2.1 Android进程跟Windows进程是两回事
15.2.2 查看当前系统中正在运行的程序
15.2.3 枚举Android系统的进程、任务和服务的信息
15.2.4 研究Android进程管理器的实现
15.3 将Android软件从手机内存转移到存储卡
15.3.1 **步:准备工作
15.3.2 第二步:存储卡分区
15.3.3 第三步:将软件移动到SD卡
15.4 常用的系统优化工具
15.4.1 优化大师
15.4.2 360优化大师