不要排斥新技术和新工具。
代码设计方面的问题,大部分都能在Android系统源码里找到解决方案。
理解Android和Java内存管理方式,至少要理解垃圾回收和Java的引用。
ContentProvider并不是只有在跨进程共享数据的才有用,把数据库表映射到一个独立的uri是Google鼓励的实现方式。
理解Activity任务栈。
对于一些奇葩的第三方ROM,调用其非主流api的时候,可以使用反射。
SQLite的锁,是数据库级别的锁,也就是说同一个数据库的写操作无法并发执行。所以,在数据库设计的时候,如果表太多,尽量将没有关联的表拆到多个数据库文件中。
Bitmap的内存占用问题。
为Activity声明系统配置变更事件
尽量使用Android的API,多转语音开发很头疼的,
要考虑到Activity和进程被杀掉的情况,有时莫名其妙的闪退。
不要用四大组件去实现接口
用getApplication()来取Context当参数,直接转换,
主线程只做UI控制和Frameworks回调相关的事。附属线程只做费时的后台操作。交互只通过Handler。这样就可以避免大量的线程问题。
Frameworks的回调不要做太多事情仅做必要的初始化,其他不是很重要的事情可以放到其他线程中去做,或者用Handler Schedule到稍后再做。
要考虑多分辨率至少为hdpi, mdpi, ldpi准备图片和布局。元素的单位也尽可能的使用dip而不要用px。
空指针异常,反正java编程中常见的问题,这里面也有