序言应用程序在移动世界中能否成功,性能是其中一个关键的因素。如果一个应用程序运行缓慢,用户可能会放弃继续使用它。学习如何创建一个应用程序,让程序在速度、性能,以及功能交互之间达到平衡,将会是一个挑战。做到这点比以往任何时候都更重要。《Android高性能编程》将让你学习到如何让程序能够运行到尽可能多的硬件设备上,使得应用程序覆盖更多用户。这本书首先简要地介绍了Android开发中一些最先进的技术,以及性能对Android应用程序的重要性。接着,介绍了使用Android SDK工具,对Android应用程序进行调试和分析的常规做法。本书将讨论一些先进的主题,例如,打造布局、多线程、网络以及安全。电池电量是应用程序的最大瓶颈之一,本书将通过典型的代码,阐释如何减少电量消耗,以及在不同情形下如何测量电量的消耗。本书探讨的技术,是为打造一个优化高效的系统。这是一个不会消耗大量电量,或引起内存泄露,随着时间的推移,运行越来越慢的系统。这本书涵盖了什么第1章,引言:为什么需要高性能?对主题进行概要介绍,简要分析了Android平台的现状,以及高性能对Android应用程序的重要性。第2章,高效调试。涵盖了调试和分析Android应用程序常用的一些工具, 不仅限于Android SDK 所提供的,还包括一些第三方的。第3章,打造布局。展示优化Android程序的相关技术,编写内存高效的应用程序,并介绍内存分配以及垃圾回收的相关概念。第4章,内存。提供了许多UI设计方面的见解,通过学习这些内容,打造加载迅速,更新高效,不会令用户察觉到延迟的UI界面。第5章,多线程。介绍了Android应用程序中可供使用的各种线程,以及它们特定的使用场景。一些先进的技术,例如IPC,将会通过代码示例来展示。第6章,网络。介绍了高效操作网络的相关技术,以及从服务端获取数据的一些技术,例如指数退避算法或避免轮询。第7章,安全。涵盖了确保Android应用程序安全的相关技术,如何利用Android自带的安全加密机制,以及如何获取关于连接的信息,或者只是在连接变化的时候得到通知。第8章,优化电量消耗。通过典型的代码,演示如何耗尽电池的电量,如何阻止它,以及在各种情形下如何权衡电量的消耗;许多开发者不知道,开发一个拍照或录制视频的应用程序时,任何处理预览以及保存数据。第9章,Android中的原生代码。这一章节将全部用于介绍Android中的原生代码和C以及它们的用法。第10章,性能提示。帮助开发者在平时的开发中,避开影响效率的方案;这是前面章节中未涉及的一个最佳实践指南。你需要准备什么?你需要准备以下硬件设备。?运行环境为Windows、Linux,或者Mac OS X 的PC笔记本电脑。?Android手机。最好是高端一点的,并且系统版本高于Android5.0。这本书为谁而写?这本书是为那些已经拥有丰富Android知识,想要进一步巩固和学习技术,来提高应用程序性能的开发者而写的。我假设他们已经熟悉整个Android SDK,且为此工作了多年。他们也熟悉Android框架,比如,能使用NDK编写原生代码,NDK对性能来说至关重要。约定本书会涉及几种不同的文本样式,分别代表不同类型的信息。下面展示了其中一些样式及它们代表的意思。代码文本、数据库表名、文件名、文件扩展名、路径、URLs、用户输入,以及推特账号名的文本样式如下。If you go to this folder and call the command adb, you will see on the screen a list of available options.代码块的格式如下。<resources> <style name=Theme.NoBackgroundparent=android:Theme><item name=android:windowBackground>@null<item><style><resources>任何命令行输入输出的格式如下。adb shell dumbsys gfxinfo <PACKAGE_NAME>新条款以及重要的词会以黑体展示。屏幕上显示的单词,例如菜单或者对话框内出现的文本格式类似这样:To debug the overdraw on the device,Android provides a helpful tool that can be enabled inside the Developer options.
警告或重要提示或出现这样一个框框中。
提示及小技巧会以这样的形式出现。读者反馈欢迎读者反馈。你对这本书的看法喜欢或者不喜欢。读者的反馈对我们来说非常重要,它能最大程度地帮助我们写出读者需要的内容。发送邮件到feedback@packtpub.com,并在邮件的标题中附上书名,即可给我们反馈。如果你对某个主题有丰富的经验并且有兴趣写作或者参与对某本书的编写,可以查看我们的作者引导页面www.packtpub.comauthors。客服支持很高兴您成为Packt系列丛书的拥有者,为此,我们会为您提供一系列服务。下载示例代码可以到http:www.packtpub.com登录账户,下载本书的示例代码文件。如果你从别处购买本书,可以访问http:www.packtpub.comsupport并注册,我们会通过邮件直接将文件发送给你。你可以通过下列步骤下载代码文件。1.到我们的网站登录或注册。2.点击网站顶部的SUPPORT tab页面。3.点击Code Downloads & Errata。4.在搜索框中输入书本的名字。5.选中你要下载代码的对应的图书。6.在下拉菜单中选择图书的购买地。7.点击Code Download。可以在Packt 出版社网站对应的书本页面,点击Code Files按钮来下载本书的代码文件。书本页面可以通过搜索框中输入书本名进入。注意,前提是你需要登录你的Packt账户。文件下载好后,请确使用的解压工具是最新版本。?Windows使用WinRAR 7-Zip?Mac 使用 Zipeg iZip?Linux 使用 7-Zip PeaZip这本书的代码也存放在GitHub上https:github.comPacktPublishing Android-High-Performance-Programming。同时,我们也有其他丰富的代码、书本目录、视频等可以提供给你。https:github.comPacktPublishing。欢迎下载它们!下载本书的彩图我们也为你提供了本书所用到的截屏和图表。这些彩图更利于你理解和区别代码结果的变化。你可以在以下网址中下载这些文件http:www.packtpub.comsitesdefaultfilesdownloadsAndroidHighPerformanceProgramming_ColorImages.pdf。勘误尽管我们已经非常仔细,以确保书本内容的准确性,但是错误难免还是会发生。如果你在书中遇到一个错误(可能是一个文本错误或者代码错误),如果你能报告给我们,我们不甚感激。这样做能够减少对其他读者的困扰并能帮助我们在后续版本中改进这些问题。如果你遇到任何错误,请访问http:www.packtpub.comsubmit-errata,选择你要报告的图书中,点击Errata Submission Form链接,输入你所遇到错误的详细信息,发送给我们。一旦错误被确认,你所提交的内容会被接受,并且更新到我们网站中,或者添加到要报告的图书中已有的相应章节下的勘误表中。通过访问https:www.packtpub.combookscontentsupport并输入图书名进行搜索,可以查看之前已经提交的勘误。相关的信息将会出现在Errata部分中。版权保护对互联网上所有的媒体资源来说,版权保护一直以来都是一个问题。Packt出版社十分重视对版权和许可证的保护。如果你在互联网上遇到以任何形式非法盗版我们内容的情况,请立刻为我们提供地址或网站名,以便我们及时补救。请将涉嫌盗版的材料的链接地址发送到copyright@packtpub.com。非常感谢您对维护我们作者的权益、打击盗版,并使得我们能为用户带来更好的内容所给予的帮助。问题如果有任何关于这本书的问题,可以通过questions@packtpub.com联系我们,我们将会尽可能为你解答。