译者序

人是一种两栖动物,同时生活在两个世界里;已有的和自己建造的世界——物质、生命和意识的世界以及符号的世界。 ——奥尔德斯•赫胥黎

现在Android智能手机和平板是普及率很高,它们极大地改变了我们的生活,从摸索世界的孩童到安度晚年的老人,都在享受智能移动设备和移动网络带给他们的乐趣,享受那些织有梦想感觉的程序,这是另一个世界,但不是梦。这一切都是我们这些平凡而又有激情的程序员带来的,或许你会带来更多?这本书会帮上忙的。

现在市面上讲Android的书实在是汗牛充栋,但以优化为主题的几乎没有。如果只讲某部分优化,可能很多人都可以写出几篇文章,难得的是照顾到 Android的方方面面,这得需要一定广度和深度的知识。本书从性能的视角,带着大家重新审视了Android平台和SDK,把Android中的宝藏都给挖掘出来了。本书也不是大全式的著作,很多地方并没特别深入,不过日常应用基本够用。稍微有点缺憾的就是网络方面着墨不多,如果能再补充成为一章就好了, 当然这部分资料其实也挺多,大家可以自行寻找。 稍微啰嗦点其他的,要想提高性能其实还得要懂点反编译知识,原因你懂的。

了解了这么多性能优化的手段,可能你会迫不及待地想大显身手,但作者也泼了点冷水,以下几个注意事项反复提醒了很多遍。

  • 确定:请确定这个是问题;请确定这个是你(开发者)的问题。换句话说,搞清需求,有数据佐证,和其他同事(包括产品美工等)沟通确定过。
  • 确保:请确保优化后进行充分测试,确保有效果,没问题。某种意义上讲应用程序就是靠评价吃饭的,切记不要搞砸。

这两点其实就是规范和流程的问题。在我看来性能优化其实大体上分为两类,一种是非常规使用的优化,另一种是常规使用的非劣化的方式(包括正确的算法,了解并合理使用各种辅助工具以及API等),很多人往往在没有了解后一种的情况下就匆忙使用第一种方式,结果导致很多问题,其实后一种才是首先要做的,这步应该叫修正而不是优化。作者说优化像是门艺术,可我觉得其实就是经验,还没那么神秘,不管怎样它们都需要大量实践。

翻译本书其实还有些奇妙的缘分,在动笔翻译后才注意到作者居然是前公司的同事,记忆中有见过一面。感谢图灵社区这个大家一起学习的平台,感谢图灵的傅志红老师、李鑫老师在翻译过程中的大力帮助和指导。感谢同事郑珂帮忙审稿。感谢大胖老师帮忙推敲其中的几句译文,耐心地回答我在使用图灵社区Markdown编辑器时碰到的菜鸟问题,他翻译的《番茄工作法图解》是工作的性能优化,值得阅读。感谢我的妻子钱茹,谢谢她一直以来的支持,还有我的儿子,我希望以后能够有更多的时间陪你们。 ——白龙

目录