微信号:ardays

介绍:android每日绝对干货

Android开发心得整理

2016-04-11 09:22 程大治

本文由Abderrazak Laanaya授权翻译并发布

转载需经过原作者同意

如果手机阅读体验较差可点击下方阅读原文进入我的博客。


在开发了几个项目之后我决定写篇文章分享一下一路走来的经验教训。


* 在使用任何第三方库之前都要三思,这件事非常严肃。

* 除非必须,不要使用数据库。

* 你可以尝试使用realm(第三方数据库),这个真的不错。

* 项目很快就会达到65k方法,真的很快。此时可以求助Multidex。

* RxJava是AsyncTask的最佳替代,而且它远不止于此。

* Retrofit是最好用的网络库。

* 不要自己写Http客户端,可以用Volley或OkHttp。

* 使用RetroLambda缩减代码。

* 我能想到人生最cool的事,就是把RxJava、Retrofit和RetroLambda绑在一起。

* EventBus挺好用,但我不会用太多,因为代码会变得很纠结。

* 通过功能分包,而不是通过层。

* 不要在UI线程中执行逻辑代码,不然可能会ANR。

* 使用Lint检查Layout层级可以帮你发现没用的View,兴许可以去掉。

* 使用Gradle以及默认项目结构。

* 把密码与敏感数据放在gradle.properties里。(译者注:或许更好的方式是把这些数据放在local.properties里,然后把这个文件加进.gitignore)

* 使用styles来避免在Layout文件中写重复代码。

* 不要让ViewGroup层级太多。(会过度绘制)

* 监控电量,充电时可以进行更多的数据更新,低电量时停止数据的自动更新。

* 可以尝试JobScheduler。

* 当系统缺少内存(而不是应用缺少内存)时,系统会调用onLowMemory()方法,所以OOM原则上无法避免。

* 使用Account Manager来提示登录所需的信息(用户名、邮箱、密码等)。

* 给方法一个明确的命名,要能顾名思义。

* 启动界面是应用带给用户的第一体验。

* 如果不需要启动界面,那不要无故添加。

* 保持colors.xml文件短而简单,只写基本颜色就行。

* 保持dimens.xml文件简单,之定义基本常量。

* 当要时常修改一个字符串时,使用StringBuffer或StringBuilder(后者不保证线程安全)。

* 为了避免内存泄露:

1. 不要在AsyncCallBack中保留View引用。

2. 不要让静态对象持有View引用。

3. 最好不要在集合框架中存储View,但你也可以使用WeakHashMap。

* FlatBuffers是一个高效的跨平台的序列化类库,建议使用。

* Serializable实现起来很方便,但性能是真的差。

先说这么多,希望对大家有所帮助。


原文链接:https://medium.com/@laanayabdrzak/android-development-some-of-the-best-practices-27722c685b6a#.x3b8wsvz9\

联系邮箱:chengdazhi971014@gmail.com


 
Android每日干货 更多文章 开源项目Philm的MVP架构分析 我是一个线程(修订版) Android开发人员必备的之正则表达式类 Android带你解析ScrollView--仿QQ空间标题栏渐变 七夕情人节快乐(特别篇)
猜您喜欢 好运来!你新年的第一份礼物就在这里哟~ 惹恼程序员的十件事 你的项目是否该升级ES版本啦?Elasticsearch 5.0新版本的特性与改进 身价30亿美金,扎克伯格的真“基友”,这个硅谷第一熊孩子折腾不止... 第七十二讲 队列(1)