前言

Android已经融入了寻常百姓的生活中。当今世界,手机正从功能时代进化到智能时代,同时又诞生了令人爱不释手的平板电脑。目前,应用程序开发者的可选择平台主要就是Android和iOS。Android降低了甚至可以说是打破了移动开发的门槛,应用程序开发者编写Android应用程序只需要一台计算机就够了(当然还要有一些编程知识)。工具都是免费的,几乎每个人都能写出数百万人会用的应用。Android可以运行在各种设备上,从平板到电视。开发者关键要做的就是保证应用可以顺利地在这些设备上运行,而且比竞争对手的还好。对应用程序开发人员而言,Android开发的门槛已经很低了,你会发现,在许多情况下,自己不过是想要在日益增长的Android应用程序市场上分一杯羹而已。赖以谋生、实现明星梦,或者只是想使世界变得更美好…无论你编写程序所为何求,性能问题都是其中的关键。

要想阅读本书,最好能事先对Android应用程序开发基础有所了解,由此方能利用本书的妙诀良方让程序跑得更快。尽管借助Android工具和在线文档可以很容易地创建应用程序,但性能优化(有时简直更像是一门艺术而不是科学)却无定法可循。不管要优化的程序是已有的,还是从头编写的。本书的目的就是要帮你找到简便的优化方法,以便使程序在几乎所有Android设备上都能取得不错的性能。Android允许开发人员使用Java、C/C++,甚至汇编语言,所以,无论是更好地利用CPU特性,还是针对特定问题使用合适的编程语言,相信你可以用多种不同的方法来优化性能。

第1章 优化Java代码。毫无疑问,你的第一个Android应用程序基本都是用Java开发的。在这一章,你会了解到,选择算法要比实现算法更重要。你还将学习如何利用简单的技术(如缓存和减少内存分配)来极大地优化应用程序。此外,你还将学习让应用程序随时能够保持响应的方法,这是一个非常重要的性能指标。此外还将介绍高效使用数据库的方法。

第2章 更进一步(或者说更底层,得看谈话对象)领略Android NDK。尽管自从Android 2.2以后Java代码可以即时编译为机器码,但某些方法用C代码实现可以获得更棒的结果。NDK还可以让你轻松地将现有代码移植到Android,而无需用Java重写一遍。

第3章 底层的汇编语言。大多数应用程序开发很少用到汇编语言,但汇编语言能充分利用各个平台的专有指令集。虽然这会增加复杂度和维护成本,但却是非常强大的优化秘诀。汇编代码通常仅限于应用程序的某些特定部分,但不应忽略它的优点,仔细而有针对性的优化可以取得巨大成效。

第4章 探讨如何使用更少的内存来提高性能。除了学习在代码中使用较少内存的简单方法,你还将了解到,由于CPU的设计方式,内存分配方式和内存访问也会对性能有直接影响。

第5章 如何在Android应用程序中使用多线程,以便保持随时响应,为越来越多可以同时运行多线程的Android设备提升性能。

第6章 测量应用程序性能的基础知识。除了可以用API来测量时间外,一些Android工具还可以方便地查看应用程序执行时间耗费的具体情况。

第7章 确保应用程序合理使用电量的一些方法。许多Android设备都由电池供电,因而节电非常重要,没人愿意使用过于耗电的应用。通过本章所述方法,可以不必牺牲Android程序的特性就能最大限度地减少功耗。

第8章 一些完善应用程序布局和优化OpenGL渲染的基本技术。

第9章 RenderScript。它是Honeycomb引入的一个相对较新的Android组件。RenderScript为性能而生,从首次发布以来已经有不少改进。本章介绍如何在应用程序中使用RenderScript,顺便学习RenderScript定义的许多API。

我希望你喜欢上这本书,并在里面找到许多有用的技巧。你会发现,很多技术不独适用于Android,还可以用在很多其他平台上,例如iOS。就个人而言,我偏好汇编语言,希望能借着Android平台的快速发展以及其对NDK汇编语言的支持,能使Android吸引到更多的开发者。至少,他们可以学到一门新技术。但是,良好的设计和算法常常可以满足所有性能优化的需求,这才是关键。祝你好运,我期待着你的Android应用程序!

目录