Android项目开发注意事项

| 分类 android  | 标签 Android  总结 

  • 1、建议把项目一分为二,第一部分是作为Libarary的项目,第二部分是相应的App项目。

其中App项目引用Libarary的项目;Libarary项目作为一个公共的库,主要是一些工具类,或者自定义的一些控件,这些工具类和控件与App项目分离,可以供以后其他的项目使用。

Libarary的项目和App项目共存:

img

App的目录,把与本应用相关的内容放到这个项目中:

img

Libarary的项目:

img

好处:管理方便、逻辑和界面可以更好的分离、App的项目目录冗余减少、有利于积累一些公共的代码;

可以从引用的库中引用资源

img

如果使用这种方式来创建应用,那么在svn中也需要在对应的应用目录中创建这对应的两个目录。

  • 2、在项目中要用到的文本,尽量在xml里面定义,然后在java代码中引用。

在xml文件修改比在java中去寻找然后修改方便。

  • 3、要考虑到Activity和进程被杀掉的情况;除了正常退出Activity外,还有可能是:Activity因其他原因被杀,比如系统内存过低,系统配置变更,有异常等等,要考虑和测试这种情况,特别是Activity处理重要的数据时,做好的数据的保存。

  • 4、Activity间传数据,要用Intent传数据,避免用静态变量传递数据。

  • 5、不要用四大组件去实现接口;一是组件的对象都比较大,实现接口比较浪费,而且让代码更不易读和理解;另外更重要的是导致多方引用,可能会引发内存泄露。

浪费:引用时传入一个大对象,调用接口方法时也是调用这个大对象的方法;

易读性:使得对象的方法增多,增加复杂,并且没有明显表明实现的是哪个接口的方法;

内存泄露:一旦某个可能会常驻内存的对象引用了这个对象,就会造成内存泄漏;

  • 6、用getApplication()来取Context当参数;对于需要使用Context对象作为参数的函数,要使用getApplication()获取Context对象当参数,而不要使用this,除非你需要特定的组件实例!getApplication()返回的Context是属于Application的,它会在整个应用的生命周期内存在,远大于某个组件的生命周期,所以即使某个引用长期持有Context对象也不会引发内存泄露。

  • 7、Android程序员应该要学会使用draw9patch.bat工具进行.9格式图片的绘制。

  • 8、当线程空闲的时候,应该要让线程阻塞。

线程阻塞可以让更多的时间交回给主线程,这样子使得主线程绘制界面的时候更流畅;

img img

  • 9、wifi,3G,2G处理规范。

网速不一样;根据不同的网速做不同的超时处理;

  • 10、SDCard的情况

当有使用SDCard时,先检测是否存在,以及空间是否满了

  • 11、令牌失效的处理。

一般情况下,令牌失效会返回一个规定好的负的code值,如-200;

令牌失效一般处理为跳到重新登录的界面,进行登录;

  • 12、Json数据的解析,改为使用opt类的方法。

img

  • 13、如果一个View是使用了图片资源,那么最好不要设置wrap_content;

除非你的这个图在各种设备上都有对应的资源

img

  • 14、每个应用务必做好本地缓存,支持离线浏览。

  • 15、尽量要支持离线操作。

断网的情况下,也可以发表状态、上传图片等,并且可以立即显示上传后的效果;等到下次有网络连接时,再在后台进行http请求。

  • 16、有需要的,应该要实现上传队列。

在后台进行图片的上传操作,这些操作对用户的其他的操作没有任何影响;

  • 17、处理应用的重要异常和错误,将异常和错误以某种形式发送给服务端。

本地做好错误的log日志;

调用服务器接口,发送错误信息;

以邮件形式发送服务器;

  • 18、刚打开应用程序就会进行检测版本的更新。

上一篇     下一篇