原文:点这里
有两种人-一种人自己摸索着前进,另一种听着别人的意见前行。下面是我这一路上学习到的东西,我希望可以与你一起分享:
1.当你添加第三方包的时候,慎重考虑。
2.不要让你的布局超出屏幕。
3.除非必要不要使用数据库。
4.你会非常快的触碰到65k方法数量限制的!不过不要慌,multidexing可以帮助你。
5.你要处理异步任务的话RxJava是最好的选择。
6.Retrofit是最好的网络连接库。
7.学会使用Retrolambda缩短你的代码。
8.结合使用RxJava with Retrofit and Retrolambda你会爱上他的。
9.EventBus是非常棒的,我虽然用但是不常用,用多了代码结构会变得非常的乱。
10.按照功能分包,而不是布局。
11.把所有的操作移除application线程。
12.通过lint工具检查你的视图,优化布局以及布局层次,并且你可以确定那些冗长并且重复的代码予以删除。
13.如果你在使用gradle,用任何手段保持它的更新。
14.实时关注你的项目构建的profile reports看看浪费了多少时间。
15.使用一些众所周知的架构。
16.测试代码虽然比较花时间,但是他比没有测试过的代码更快更强,谁测谁知道。
17.使用依赖注入,可以让你的程序更加模块化,这样比较容易测试。
18.多听听fragmented podcast对你的好处大大滴哟。
19.绝对不要使用你私人的账户去市场上提交应用。
20.键盘输入类型要选好。
21.多多使用分析工具来查找一些潜在的八阿哥。
22.新添加的类库优先放在最上面(你可以使用dryrun来测试它们)。
23.你的服务在做完该做的事情之后应该尽快的销毁它。
24.使用Account Manager来推荐登录名和邮箱。
25.使用CI(Continuous Integration)来构建你的应用和分发你的测试版以及正式版应用。
26.不要运行您自己的CI服务器,维护服务器是耗时的,因为磁盘空间/安全问题/更新服务器以防止SSL攻击等。使用circleci,travis或shippable,他们非常的便宜,并且省心。
27.自动化您的部署到谷歌应用市场。
28.如果一个库是巨大的,你只使用它的函数的一小部分,你应该找到一个替代的更小的选项(例如依靠proguard或者阉割版)。
29.不要使用比实际需要的更多的模块。 如果这些模块不是经常修改,重要的是要考虑从头开始编译它们所需的时间(CI构建是一个很好的例子),或者甚至检查先前的单独模块构建是否是最新的, 最多几乎是将该依赖性作为二进制文件.jar / .aar加载的大约4倍。
30.开始学会把PNG格式的图片转换成SVG吧。
31.封装你的第三方类库,这样下次更换类库的时候你会很爽的(例如:AppLogger.d(“message”)可以包含Log.d(TAG,message),后来意识到Timber.d(message)是一个更好的选择)。
32.监控数据连接和数据连接类型(在WIFI网络的时候才做大数据请求的操作)。
33.监控电池电量状态(充电的时候更新数据?电池电量低时暂停更新?)。
34.界面交互就像一个笑话。 如果你要解释它,这不是那么好。
35.测试对性能很有用:虽然比较慢(但正确)实现,然后验证优化不会因测试而破坏任何东西。
。。。
如果你有任何问题给原作者发一个tweet@cesarmcferreira!或者给我发微博@lekenny_cn!