热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C语言性能优化书籍,Android应用性能优化(埃尔韦)中文PDF扫描版

《android应用性能优化》主要介绍如何调优android应用,以使应用更健壮并提高其执行速度。内容包括用java、ndk优化应用,充分利用内存以使性

《android应用性能优化》主要介绍如何调优android 应用,以使应用更健壮并提高其执行速度。内容包括用java、ndk 优化应用,充分利用内存以使性能最大化,尽最大可能节省电量,何时及如何使用多线程,如何使用基准问题测试代码,如何优化opengl 代码和使用renderscript 等。

《android应用性能优化》面向熟悉java 和android sdk 的想要进一步学习如何用本地代码优化应用性能的android 开发人员。

android应用性能优化目录:

第1章  java代码优化  1

1.1  android如何执行代码  1

1.2  优化斐波纳契数列  4

1.2.1  从递归到迭代  4

1.2.2  biginteger  6

1.3  缓存结果  10

1.4  api等级  12

1.5  数据结构  14

1.6  响应能力  17

1.6.1  推迟初始化  19

1.6.2  strictmode  19

1.7  sqlite  21

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  创建makefile  33

2.2.4  实现本地函数  35

2.2.5  编译本地库  36

2.2.6  加载本地库  37

2.3  application.mk  37

2.3.1  为(几乎)所有设备优化  39

2.3.2  支持所有设备  40

2.4  android.mk  43

2.5  使用c/c++改进性能  45

2.6  本地acitivity  52

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 neon  79

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/std  89

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  api  109

4.7  内存少的时候  110

4.8  总结  111

第5章  多线程和同步  112

5.1  线程  112

5.2  asynctask  115

5.3  handler和looper  118

5.3.1  handler  118

5.3.2  looper  120

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中的traceview  144

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  wakelock  173

7.9  总结  175

第8章  图形  176

8.1  布局优化  176

8.1.1  相对布局  178

8.1.2  合并布局  181

8.1.3  重用布局  183

8.1.4  viewstub  184

8.2  布局工具  185

8.2.1  层级视图  186

8.2.2  layoutopt  186

8.3  opengl es  186

8.3.1  扩展  187

8.3.2  纹理压缩  189

8.3.3  mipmap  193

8.3.4  多apk  194

8.3.5  着色  195

8.3.6  场景复杂性  195

8.3.7  消隐  195

8.3.8  渲染模式  195

8.3.9  功耗管理  195

8.4  总结  196

第9章  renderscript  197

9.1  概览  197

9.2  hello world  199

9.3  hello rendering  202

9.3.1  创建渲染脚本  202

9.3.2  创建renderscriptgl context  203

9.3.3  展开rssurfaceview  204

9.3.4  设置内容视图  204

9.4  在脚本中添加变量  205

9.5  hellocompute  208

9.5.1  allocation  209

9.5.2  rsforeach  210

9.5.3  性能  213

9.6  自带的renderscript api  214

9.6.1  rs_types.rsh  215

9.6.2  rs_core.rsh  217

9.6.3  rs_cl.rsh  219

9.6.4  rs_math.rsh  222

9.6.5  rs_graphics.rsh  223

9.6.6  rs_time.rsh  224

9.6.7  rs_atomic.rsh  225

9.7  renderscript与ndk对比  225

9.8  总结  226

858241479a553f32e6bdb7367921833b.gif



推荐阅读
  • C语言常量与变量的深入理解及其影响
    本文深入讲解了C语言中常量与变量的概念及其深入实质,强调了对常量和变量的理解对于学习指针等后续内容的重要性。详细介绍了常量的分类和特点,以及变量的定义和分类。同时指出了常量和变量在程序中的作用及其对内存空间的影响,类似于const关键字的只读属性。此外,还提及了常量和变量在实际应用中可能出现的问题,如段错误和野指针。 ... [详细]
  • 使用eclipse创建一个Java项目的步骤
    本文介绍了使用eclipse创建一个Java项目的步骤,包括启动eclipse、选择New Project命令、在对话框中输入项目名称等。同时还介绍了Java Settings对话框中的一些选项,以及如何修改Java程序的输出目录。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • C语言判断正整数能否被整除的程序
    本文介绍了使用C语言编写的判断正整数能否被整除的程序,包括输入一个三位正整数,判断是否能被3整除且至少包含数字3的方法。同时还介绍了使用qsort函数进行快速排序的算法。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • HashMap的相关问题及其底层数据结构和操作流程
    本文介绍了关于HashMap的相关问题,包括其底层数据结构、JDK1.7和JDK1.8的差异、红黑树的使用、扩容和树化的条件、退化为链表的情况、索引的计算方法、hashcode和hash()方法的作用、数组容量的选择、Put方法的流程以及并发问题下的操作。文章还提到了扩容死链和数据错乱的问题,并探讨了key的设计要求。对于对Java面试中的HashMap问题感兴趣的读者,本文将为您提供一些有用的技术和经验。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 本文介绍了GTK+中的GObject对象系统,该系统是基于GLib和C语言完成的面向对象的框架,提供了灵活、可扩展且易于映射到其他语言的特性。其中最重要的是GType,它是GLib运行时类型认证和管理系统的基础,通过注册和管理基本数据类型、用户定义对象和界面类型来实现对象的继承。文章详细解释了GObject系统中对象的三个部分:唯一的ID标识、类结构和实例结构。 ... [详细]
  • 深入理解Java虚拟机的并发编程与性能优化
    本文主要介绍了Java内存模型与线程的相关概念,探讨了并发编程在服务端应用中的重要性。同时,介绍了Java语言和虚拟机提供的工具,帮助开发人员处理并发方面的问题,提高程序的并发能力和性能优化。文章指出,充分利用计算机处理器的能力和协调线程之间的并发操作是提高服务端程序性能的关键。 ... [详细]
  • 1Lock与ReadWriteLock1.1LockpublicinterfaceLock{voidlock();voidlockInterruptibl ... [详细]
author-avatar
雨里漾_968
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有