本书旨在为Android开发者指明提高应用程序性能的方向。第1章就什么是高性能,为什么需要高性能展开讨论。第2章为读者展示了一些用于调试应用程序的工具,方案以及技巧。第3-8章,围绕着布局,内存,多线程,网络,安全,电量消耗,等多个方面,阐述如何打造高性能应用程序。第9章相对独立,介绍的是原生开发。第10章与前面章节的关系也不大,涵盖了一些琐碎,但对性能至关重要的提示,例如,图像处理,序列化,优化APK文件等等。
序言
应用程序在移动世界中能否成功,性能是其中一个关键的因素。如果一个应用程序运行缓慢,用户可能会放弃继续使用它。学习如何创建一个应用程序,让程序在速度、性能,以及功能交互之间达到平衡,将会是一个挑战。做到这点比以往任何时候都更重要。
《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.NoBackground”parent=”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.com/authors。
客服支持
很高兴您成为Packt系列丛书的拥有者,为此,我们会为您提供一系列服务。
下载示例代码
可以到http://www.packtpub.com登录账户,下载本书的示例代码文件。如果你从别处购买本书,可以访问http://www.packtpub.com/support并注册,我们会通过邮件直接将文件发送给你。
你可以通过下列步骤下载代码文件。
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.com/PacktPublishing/ Android-High-Performance-Programming。
同时,我们也有其他丰富的代码、书本目录、视频等可以提供给你。
https://github.com/PacktPublishing/。
欢迎下载它们!
下载本书的彩图
我们也为你提供了本书所用到的截屏和图表。这些彩图更利于你理解和区别代码结果的变化。你可以在以下网址中下载这些文件
http://www.packtpub.com/sites/default/files/downloads/AndroidHighPerformanceProgramming_ColorImages.pdf。
勘误
尽管我们已经非常仔细,以确保书本内容的准确性,但是错误难免还是会发生。如果你在书中遇到一个错误(可能是一个文本错误或者代码错误),如果你能报告给我们,我们不甚感激。这样做能够减少对其他读者的困扰并能帮助我们在后续版本中改进这些问题。如果你遇到任何错误,请访问http://www.packtpub.com/submit-errata,选择你要报告的图书中,点击Errata Submission Form链接,输入你所遇到错误的详细信息,发送给我们。一旦错误被确认,你所提交的内容会被接受,并且更新到我们网站中,或者添加到要报告的图书中已有的相应章节下的勘误表中。
通过访问https://www.packtpub.com/books/content/support并输入图书名进行搜索,可以查看之前已经提交的勘误。相关的信息将会出现在Errata部分中。
版权保护
对互联网上所有的媒体资源来说,版权保护一直以来都是一个问题。Packt出版社十分重视对版权和许可证的保护。如果你在互联网上遇到以任何形式非法盗版我们内容的情况,请立刻为我们提供地址或网站名,以便我们及时补救。
请将涉嫌盗版的材料的链接地址发送到copyright@packtpub.com。
非常感谢您对维护我们作者的权益、打击盗版,并使得我们能为用户带来更好的内容所给予的帮助。
问题
如果有任何关于这本书的问题,可以通过questions@packtpub.com联系我们,我们将会尽可能为你解答。
我是一名Android开发新手,之前一直觉得Android开发很难入门,特别是那些涉及到底层原理的东西,更是让我望而却步。偶然的机会,我听朋友推荐了这本《Android高性能编程》,抱着试试看的心态就买了下来。刚拿到书的时候,我还有点担心自己看不懂,毕竟“高性能编程”听起来就很学术。但是,当我翻开它之后,我发现我的担心是多余的。作者的语言非常通俗易懂,即使是一些复杂的概念,也能用非常形象的比喻来解释。而且,这本书的结构安排也非常合理,从最基础的内存管理讲起,然后循序渐进地深入到多线程、网络通信、UI优化等各个方面。我特别喜欢它在讲解每一个知识点的时候,都会给出相应的代码示例,并且对代码进行详细的解读,这让我可以一边看书,一边跟着敲代码,加深对知识的理解。更重要的是,这本书不仅仅是教你如何实现功能,更注重教你如何写出“好”的代码,如何写出“高性能”的代码。它让我明白,写代码不仅仅是实现需求,更是要考虑效率、考虑用户体验。这本书让我对Android开发有了更深的认识,也更有信心去迎接未来的挑战了。
评分这本《Android高性能编程》对我来说,不仅仅是一本书,更像是一位经验丰富的导师。我之前在开发中遇到的很多性能问题,都觉得无从下手,只能靠“感觉”或者“试错”。但读了这本书之后,我才意识到,很多时候我们看似棘手的问题,其实都有迹可循,都有其内在的逻辑。作者在书中对Android系统中一些关键的性能瓶颈进行了深入的剖析,比如JVM的内存模型、GC的原理,以及Native内存的管理。这让我对Android应用的内存消耗有了全新的认识。而且,他在讲解多线程并发的时候,不仅仅是介绍了Thread、Handler、AsyncTask这些基础的API,还深入探讨了Lock、Semaphore、Volatile等并发控制原语的作用和适用场景,这让我在编写复杂的并发逻辑时,心里更有底了。此外,书中对于Android应用的启动速度优化、网络请求的效率提升、以及UI的流畅度保证,都有非常详尽的讲解和实践建议。我发现,很多之前觉得是“黑魔法”的优化技巧,在这本书里都能找到其背后的科学原理。这本书真的让我从“知其然”上升到了“知其所以然”的层面,对我今后的开发工作有着深远的指导意义。
评分我是一名有几年Android开发经验的开发者,一直以来都觉得自己在性能优化方面做得不够好,很多时候只是停留在表面,用一些通用的优化方法,但效果并不理想。偶然看到这本书的介绍,感觉内容很吸引我,就入手了。拿到书之后,翻了一下,发现内容确实很扎实,不是那种泛泛而谈的书。它深入到了Android应用的各个层面,从JVM到Native层,从UI渲染到后台服务,都有非常详细的介绍。我特别喜欢书中关于内存泄漏检测和优化的部分,作者不仅介绍了各种检测工具的使用,还深入分析了内存泄漏产生的常见原因和解决方案,这让我之前很多模糊不清的内存问题,一下子茅塞顿开。而且,书中对于多线程和并发编程的讲解,也让我受益匪浅。之前很多时候,我对于多线程的使用都比较谨慎,担心出现线程安全问题。但读了这本书之后,我对各种并发工具的使用有了更清晰的认识,也敢于在合适的场景下使用它们来提升应用的效率。这本书让我对Android性能优化的理解上升了一个新的台阶,也让我对自己今后的开发方向有了更明确的规划。
评分老实说,我一开始对这本书是抱着一种试试看的心态去购买的,因为市面上关于Android性能优化的书太多了,质量参差不齐,很多都雷同。但是,当我真正开始阅读这本书的时候,我被它的深度和广度所震撼了。它不仅仅是教你如何写出“快”的代码,更是让你理解“为什么”快。它从Android系统的架构入手,一点点地剖析了各个组件是如何协同工作的,以及在哪些环节可能出现性能瓶颈。我印象最深的是关于UI渲染那一章节,作者花了大量的篇幅去讲解View的绘制流程,包括Measure、Layout、Draw的每一个细节,还穿插了硬件加速、GPU渲染这些高级概念。这让我之前那些模糊的认知一下子变得清晰起来。而且,作者在讲解一些疑难杂症的时候,会给出非常具体的排查思路和工具使用方法,比如如何利用Systrace、Profiler来定位问题,这对于我们在实际开发中遇到性能问题时,提供了非常有效的指导。这本书让我明白了,性能优化不是一蹴而就的,而是一个系统性的工程,需要从架构设计到代码实现,再到工具的运用,都有深入的理解。我感觉这本会是我未来相当长一段时间的案头必备书。
评分这本书,我真的是拿到手里就爱不释手。封面设计就很扎实,不像有些书花里胡哨的,一看就感觉内容很实在。拿到手的时候,沉甸甸的,厚度也适中,拿在手里有分量感,这让我对它充满了期待。我刚翻开几页,就被它排版和字体所吸引,读起来非常舒服,不会出现那种密密麻麻的文字带来的压迫感。而且,我发现它在一些关键概念的解释上,用了很多图示和流程图,这对于我这种需要通过视觉来加深理解的人来说,简直是福音。我之前也看过一些关于Android的书,但很多都停留在表面,讲的都是一些基础控件的使用,或者一些简单的API调用。这本书不一样,它深入到了一些底层的机制,比如内存管理、多线程、渲染流程等等。我特别喜欢它在讲到性能优化的时候,不是简单地罗列一些技巧,而是从原理出发,让你明白为什么这样做能提升性能,这样做又可能带来什么问题。这种循序渐进、由浅入深的学习方式,让我觉得非常有成就感。即使遇到一些比较晦涩的概念,作者也能用相对形象的比喻来解释,让我这种非科班出身的开发者也能理解。我已经迫不及待地想把我遇到的实际问题,结合书中的知识来解决了。
评分超级棒的书,先屯着,慢慢研究。
评分买了,还没空看,有空要看看
评分还不错,书的质量还是可以的
评分这是本翻译过来的“说明书”,很多地方只提了个名词没有像进阶之光讲的那么透彻,后悔买了
评分Android工程师开发,进阶的参考,内容不错
评分一如既往支持京东,好评
评分很好的一本高级工程师进阶书,学习了
评分还不错,书的质量还是可以的
评分超级棒的书,先屯着,慢慢研究。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.teaonline.club All Rights Reserved. 图书大百科 版权所有