在为Android编程时是否存在陷阱或要记住的要点?我认为该列表将包括有关多线程,持久存储等的主题。
答案 0 :(得分:12)
这里可以说很多事情。
来自Google I / O 2009的Android视频涵盖了在Android上进行编程时应牢记的大多数方面。事实上,http://android-developers.blogspot.com/文章是这些演示文稿扩展的来源,并且从一些最好的Google工程师那里看到它们的解释(作为奖励,您将获得Q& A部分)是必须的每个Android开发人员,IMO。
可以提到的一些事情:
当你可以用整数获得类似的结果时,不要使用浮点数,因为Android没有对浮点值的本机支持。
广泛使用调试工具,优化性能和可维护性,避免常见的陷阱,如UI设计中的ViewGroup冗余,或者对较重方法的不必要的多次调用(View.inflate(),findViewById(),setImageResource ())。
捆绑您的后台服务电话,否则您不必要地经常唤醒操作系统,同时冒着其他服务捎带您的呼叫(这会导致电池寿命大幅缩短)
首选SAX解析器而不是DOM解析器,您在实现它们时会浪费时间,但是您在应用程序的性能(以及设备的可用性)中赢得了时间
在UI线程上保持UI操作,因为界面工具包不是线程安全的
请记住,方向更改会再次破坏并创建您的活动(我了解到这种困难和痛苦的方式 - 这就是我开始关注Android开发者博客的方式)
......还有很多其他人。
答案 1 :(得分:5)
由于保留了上下文引用,Android开发者有关于avoiding memory leaks的好帖子。那里还有很多其他有趣的帖子。
答案 2 :(得分:2)
我本不打算把它们称为陷阱,但要记住要记住,这不是插在墙上的计算机,只能以各种方式进行升级。您的升级周期大约每2年(这些天是标准移动合同的长度),硬件是(A)不是最快的,(B)在此期间是静态的。
需要考虑的事项:
1)您的应用程序如何影响电池续航时间?你是否在整个地方泼着明亮的图形?在后台运行很多线程?服务?
2)您的应用需要多少空间才能占用设备?信息是否可以保存在服务器上并传输到设备以便仅在需要时临时使用?
3)关于#2,您的应用是否容忍错误/不存在的网络/移动连接?它在EDGE网络上的表现与3G相比如何?
我相信你能提出更多,但这是我在编写应用程序时所记住的。