1.IDE的选择
大多数Android开发是在Eclipse中进行的,其实IntelliJ IDEA的社区版也挺不错,我用它非常顺畅地编写了一些应用程序。就个人而言,我对于Eclipse的UI拖放接口并不怎么在乎。不过它确实令人印象深刻,很多工作需要在这里完成。
2.为多数人开发应用
我们都喜欢使用最新的Android版本,因为上面会出来一些新的很酷的玩意儿。但是,目前市场上的Android智能手机还跟不上新版本发布的速 度。所以在投入到编码之前,应该先做一个初步的调查。看看旧版本编写的应用程序是否还是主流。如果答案是肯定的,那么想用新版本,你可能就还需要再等一段 时间。
3.不要模拟器,直接上真家伙
模拟器不但非常的慢,而且测试的东西很有限。我一般只用它来测试我的应用程序放到更大尺寸的屏幕上时,看上去怎么样,并且仅此而已。我的建议是,如 果你想要节省时间,使用通过USB连接到真实设备。不过实际上你需要配备两台设备,因为有些东西你需要做设备对设备的通信测试,比如说SMS、蓝牙等。当 然如果第二个设备的屏幕尺寸与第一个不一样就更好了。设备越不同,应用程序的测试效果就越好。
4.不喜欢XML?那悲剧了
所有Android的UI都是基于XML的,这一开始的时候让我头大无比。虽然也有其他工具可以完成UI的某些方面,比如Action Bar生成器(如Sherlock),但是目前我还不知道其他全面化的GUI生成工具。所有可视化的编辑工具,不是测试起来有bug就是不全面。所以,如 果你知道什么好的工具,请让我们这些XML狗知道。
5.使用模块化的UI结构
打造一个像样的UI所需要的XML数量会变得迅速…令人望而生畏。因此,可以使用includes和fragments尽可能多地构建在不同布局中都能重用的组件。fragments是在3.0版本中引入的,不过如果你用早期版本开发,那么也可以下载支持库。
6.你需要一个设计师
或者你自己成为一个设计师。有一些在线工具,如Android Asset Studio,可以添加常见的GUI元素至你的应用程序。如果这样还不能满足你的要求,那你就需要自己设计以适应不同的屏幕。此外,请务必阅读正式的Android Design指导方针。
7.使用适合的Android特定的解决方案
Android特定的解决方案通常更简单,性能更好。以多线程和异步处理为例,在打开java.util.concurrent包之前考虑使用IntentService或AsyncTask。不过在某些情况下,这种做法可能会显得绕远路。
8.谷歌仍然是我们的好朋友
虽然Android开发的官网上也有很多文档,但是谷歌搜索的速度更快。举个具体的例子,关于删除SMS消息,用谷歌搜索到的在stackoverflow上面的真知灼见比官方文档要多得多。
9.注意“神奇的工具”
具体就不点名了,不过一定要警惕那种宣称可以全面简化智能手机开发(包括Android、iOS和Blackberry RIM多种系统)的产品。我并不是说这些产品就一定都是垃圾,但首先应该确保通过开发一个简单但有意义的应用程序来测试它们,在它们上面进行部署。每一个 都应该看上去像OS上的本机应用程序一样。当然,如果你只需要为移动设备开发一款Web应用,那么可忽略此条。
10.所有好的软件实践仍然适用
广泛的测试(比如说使用Monkey),设计国际化和本地化,使用设计模式等,都是很好的软件开发实践。
如果你觉得过于繁琐,那么最少最少也应该将UI代码从业务逻辑中分离出来,即使是最小的应用。否则在不久的将来,当各种问题接踵而至的时候,你就追悔莫及了。
Android开发是一个令人兴奋的体验,让我们一起加油吧。