内容简介:
今天的Android应用开发者经常要想尽办法来提升程序性能。由于应用越来越复杂,这个问题也变得越来越棘手。本书主要介绍如何快速高效地优化应用,让应用变得稳定高效。你将学会利用Android SDK和NDK来混合或单独使用Java、C/C++来开发应用。书中还特别讲解了如下内容:
• 一些OpenGL的优化技术以及RenderScript(Android的新特性)的基础知识;
• 利用SDK来优化应用的Java代码的技巧;
• 通过高效使用内存来提升性能的技巧;
• 延长电池使用时间的技巧;
• 使用多线程的时机及技巧;
• 评测剖析代码的技巧。
把本书的内容学以致用,你的编程技术就会得到关键性的提升,写出的应用就会更为健壮高效,从而广受用户好评,并最终获得成功。
目 录
第1章 Java代码优化1
1.1 Android如何执行代码1
1.2 优化斐波纳契数列4
1.2.1 从递归到迭代4
1.2.2 BigInteger6
1.3 缓存结果10
1.4 API等级12
1.5 数据结构14
1.6 响应能力17
1.6.1 推迟初始化19
1.6.2 StrictMode19
1.7 SQLite21
1.7.1 SQLite语句21
1.7.2 事务25
1.7.3 查询26
1.8 总结27
第2章 NDK入门28
2.1 NDK里有什么28
2.2 混合使用Java和C/C++代码31
2.2.1 声明本地方法31
2.2.2 实现JNI粘合层32
2.2.3 创建Makefile33
2.2.4 实现本地函数35
2.2.5 编译本地库36
2.2.6 加载本地库37
2.3 Application.mk37
2.3.1 为(几乎)所有设备优化39
2.3.2 支持所有设备40
2.4 Android.mk43
2.5 使用C/C++改进性能45
2.6 本地Acitivity52
2.6.1 构建缺失的库54
2.6.2 替代方案59
2.7 总结60
第3章 NDK进阶61
3.1 汇编61
3.1.1 最大公约数62
3.1.2 色彩转换66
3.1.3 并行计算平均值70
3.1.4 ARM指令74
3.1.5 ARM NEON79
3.1.6 CPU特性80
3.2 C扩展81
3.2.1 内置函数82
3.2.2 向量指令82
3.3 技巧86
3.3.1 内联函数87
3.3.2 循环展开87
3.3.3 内存预读取87
3.3.4 用LDM/STM替换LDR/STD89
3.4 总结89
第4章 高效使用内存90
4.1 说说内存90
4.2 数据类型91
4.2.1 值的比较93
4.2.2 其他算法95
4.2.3 数组排序96
4.2.4 定义自己的类97
4.3 访问内存98
4.4 排布数据100
4.5 垃圾收集104
4.5.1 内存泄漏105
4.5.2 引用106
4.6 API109
4.7 内存少的时候110
4.8 总结111
第5章 多线程和同步112
5.1 线程112
5.2 AsyncTask115
5.3 Handler和Looper118
5.3.1 Handler118
5.3.2 Looper120
5.4 数据类型120
5.5 并发124
5.6 多核125
5.6.1 为多核修改算法126
5.6.2 使用并发缓存129
5.7 Activity生命周期131
5.7.1 传递信息132
5.7.2 记住状态134
5.8 总结137
第6章 性能评测和剖析138
6.1 时间测量138
6.1.1 System.nanoTime()139
6.1.2 Debug.threadCpuTimeNanos()140
6.2 方法调用跟踪141
6.2.1 Debug.startMethodTracing()141
6.2.2 使用Traceview工具142
6.2.3 DDMS中的Traceview144
6.2.4 本地方法跟踪145
6.3 日志147
6.4 总结148
第7章 延长电池续航时间150
7.1 电池150
7.2 禁用广播接收器155
7.3 网络159
7.3.1 后台数据159
7.3.2 数据传输160
7.4 位置162
7.4.1 注销监听器163
7.4.2 更新频率164
7.4.3 多种位置服务164
7.4.4 筛选定位服务166
7.4.5 最后已知位置168
7.5 传感器169
7.6 图形170
7.7 提醒171
7.8 WakeLock173
7.9 总结175
第8章 图形176
8.1 布局优化176
8.1.1 相对布局178
8.1.2 合并布局181
8.1.3 重用布局183
8.1.4 ViewStub184
8.2 布局工具185
8.2.1 层级视图186
8.2.2 layoutopt186
8.3 OpenGL ES186
8.3.1 扩展187
8.3.2 纹理压缩189
8.3.3 Mipmap193
8.3.4 多APK194
8.3.5 着色195
8.3.6 场景复杂性195
8.3.7 消隐195
8.3.8 渲染模式195
8.3.9 功耗管理195
8.4 总结196
第9章 RenderScript197
9.1 概览197
9.2 Hello World199
9.3 Hello Rendering202
9.3.1 创建渲染脚本202
9.3.2 创建RenderScriptGL Context203
9.3.3 展开RSSurfaceView204
9.3.4 设置内容视图204
9.4 在脚本中添加变量205
9.5 HelloCompute208
9.5.1 Allocation209
9.5.2 rsForEach210
9.5.3 性能213
9.6 自带的RenderScript API214
9.6.1 rs_types.rsh215
9.6.2 rs_core.rsh217
9.6.3 rs_cl.rsh219
9.6.4 rs_math.rsh222
9.6.5 rs_graphics.rsh223
9.6.6 rs_time.rsh224
9.6.7 rs_atomic.rsh225
9.7 RenderScript与NDK对比225
9.8 总结226
NLPdescribesinsimpletermswhatthesepeopledodifferentlyandenablesyoutolearnthesepa...
《Mentor高速电路板设计与仿真》以MentorEE2005SP3为基础,以具体电路为范例,详尽讲解元器件建库、原理图设计、布局、布线、仿真
《零基础学C语言》的特点是内容全面、翔实,通俗易懂,循序渐进地介绍了C语言各方面的知识,重点突出。《零基础学C语言》含有大量
"HackosandRedishwiselyofferusthethreethingswemostneedaboutuserandtaskanalysis:pr...
《人力资源经理成长手记:主管以上,总监未满》内容简介:本书是《人力资源新手成长手记》故事的续篇,乐乐从懵懂入行到遇到好师傅
《智能手机维修大全(实例精华版)》内容简介:为维修类工具书,本书以理论结合实际的方式,着重讲解智能手机的维修技巧,同时配以
《再造农业》内容简介:近年来,我国规模农业发展速度惊人。这一过程到底是市场自发作用的结果,还是政府干预的结果?皖南河镇的实
《信息图表设计入门》是一本信息图表制作的实用入门书。信息视觉化是一种潮流,无论是商业宣传活动、专业设计领域还是制作供非专
《ExtJS源码分析与开发实例宝典》从ExtJS实现的基本功能开始讲解,从两个方面对ExtJS进行整体上的概述,让读者从宏观上去把握Ext
"HeadFirstObjectOrientedAnalysisandDesign"isarefreshinglookatsubjectofOOAD.Whats...
中文版PhotoshopCS6技术大全-(附光盘) 本书特色 (1)技术全面,全面细致讲解了photoshop全部的功能命令。(2)即查即学,强大的检索功能,可...
《丝绸之路:从蓬莱到罗马》内容简介:山东蓬莱是古代海上丝绸之路的一个起点,也是陆上丝绸之路的东部起点;而罗马作为西欧文明的
《史记八讲》内容简介:本书稿是日本东洋文化研究所访问学者史杰鹏为所开《史记》网课撰写的讲稿的结集。分为“刺客”“游侠”“战
推荐系统技术.评估及高效算法 本书特色 本书主要介绍了国际市场营销环境、国际市场营销战略和国际市场营销策略。本书在第2版的基础上进行更新,具有如下特点:一是采取...
《中国与世界经济》内容简介:2015年世界经济的整体形势基本延续了2010年以来缓慢复苏的势头,但是增长状况已低于预期。同时,世界
中文版3dsMAX8实训教程-影视片头动画(赠光盘一张) 本书特色 本书是快速学习和掌握3ds MAX 8动画制作的指导书,*大的特点在于将知识点与实例相结合,...
《学设计,非去不可》收录了王千睿、胡佑宗、周育如、施令红、甘泰来、高弘树、赖雨农、黄怡儒、林国基、林怡芬、史明辉、庞铫13位
《行云集》内容简介:《行云集》为周瘦鹃先生随笔集,包括“新西湖”“秋栖霞”“万古飞不去的燕子”“南湖的颂歌”“双洞江南第一
《老昆明》内容简介:本书图文并茂,内容丰富,全面展示了民国老昆明的名胜古迹、风土人情、美味珍馐、文化百态、烽火岁月、娱乐休
CorelDRAW服装结构设计实用教程-(附光盘) 本书特色 本书简单介绍了corelDRAW 11的基本功能,与服装设计制图相关的工具与功能;介绍了服装原型的...