赞
踩
Android的而设计思路
Android的设计思路(1)
一个声明解释一些对Android开发者有用的技术思想和观点。通过阅读这一页,你将了解如何写出在嵌入式设备(比如,手机)上性能良好,并且与系统其他部分协作出色的应用。
设计思想
学习如何在一个新的API上创建应用的过程都是类似的,即便平台本身存在很大差异性。通常,有两个步骤:首先,你学习如何使用API来做你想做的事情;然后,你学习平台的细微差别。还句话说,你首先要学习如何才能够构建应用,然后再学习应该如何来构建它们。
第二个步骤——学习如何正确构建应用——通常需要花费更长的时间,并且通常意味着犯错误并从错误中学习。那不是一个高效率的过程,所以本页和下面的链接就是立足于为你提供相关帮助。
在我们开始之前,还要简短说几句。成功地应用会提供出色的终端用户体验。尽管Android团队已经构造了一个强健的内核系统,但用户更多的体验是来自于与你应用的交互。因此,我们鼓励你花时间来构造出色的用户体验。
出色的用户体验有三个特征:速度快;响应及时以及无缝。当然从早期计算机到现在的计算机,每个平台都曾不只一次地引用过这三个特征。然而,每个平台实现它们的方法不同;下面的信息解释了你的应用如何能够在Android上实现这些特征。
速度快
Android应用应该是快速的。更准确的说他应该是高效的。现在,在计算界中有一个趋势,该趋势假设摩尔定律可以最终解决所有问题。然而对于嵌入式应用而言,Moor定律会变得有些复杂。
摩尔定律没有如同应用于桌面和服务器应用一样真正地应用于移动设备。摩尔定律实际上是关于晶体管密度的定律,它是说每隔一段时间后,你可以在给定的芯片上部署更多电路。对于转面和服务器应用而言,由于性能的提高,这意味着你可以在一块差不多大小的芯片中得到更高的速度。对于类似手机这样的嵌入式应用而言,摩尔定律通常被用于造出更小的芯片。在嵌入式界的趋势是利用这种晶体管密度的增加来造出更小、更节能的芯片,从而使手机更小,电池待机时间更长。象手机这样的嵌入式设备在不断增加,速度远远要慢于桌面系统。对于嵌入式设备而言,摩尔定律意味着更多特性和更好的电池寿命;而速度则是次要因素。
这就是为什么需要写高效的代码:你不能假设手机与桌面系统和服务器一样提速。一般来讲,写快速的代码意味着要是内存分配最小化,代码紧凑,并且避免可能影响性能的语言和编程习惯。在面向对象的术语中,很多类似情况都是发生在方法级,关于实际的代码顺序,循环等。
关于如何写高效的Android代码的文章将会给你提供写快速、高效Android代码的所有信息。
编写高效的Android代码
虽然如此说,但似乎并没有什么好的办法:Android设备是嵌入式设备。现代的手持设备,与其说是电话,更像一台拿在手中的电脑。但是,即使是“最快”的手持设备,其性能也赶不上一台普通的台式电脑。
这就是为什么我们在书写Android应用程序的时候要格外关注效率。这些设备并没有那么快,并且受电池电量的制约。这意味着,设备没有更多的能力,我们必须把程序写的尽量有效。
本章讨论了很多能让开发者使他们的程序运行更有效的方法,遵照这些方法,你可以使你的程序发挥最大的效力。
简介
对于占用资源的系统,有两条基本原则:
不要做不必要的事
不要分配不必要的内存
所有下面的内容都遵照这两个原则。
有些人可能马上会跳出来,把本节的大部分内容归于“草率的优化”(xing:参见[The Root of All Evil]),不可否认微优化(micro-optimization。xing:代码优化,相对于结构优化)的确会带来很多问题,诸如无法使用更有效的数据结构和算法。但是在手持设备上,你别无选择。假如你认为Android虚拟机的性能与台式机相当,你的程序很有可能一开始就占用了系统的全部内存(xing:内存很小),这会让你的程序慢得像蜗牛一样,更遑论做其他的操作了。
Android的成功依赖于你的程序提供的用户体验。而这种用户体验,部分依赖于你的程序是响应快速而灵活的,还是响应缓慢而僵化的。因为所有的程序都运行在同一个设备之上,都在一起,这就如果在同一条路上行驶的汽车。而这篇文档就相当于你在取得驾照之前必须要学习的交通规则。如果大家都按照这些规则去做,驾驶就会很顺畅,但是如果你不这样做,你可能会车毁人亡。这就是为什么这些原则十分重要。
当我们开门见山、直击主题之前,还必须要提醒大家一点:不管VM是否支持实时(JIT)编译器(xing:它允许实时地将Java解释型程序自动编译成本机机器语言,以使程序执行的速度更快。有些JVM包含JIT编译器。),下面提到的这些原则都是成立的。假如我们有目标完全相同的两个方法,在解释执行时foo()比bar
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。