世上有两类人,一类是埋头苦学之人,另一类则是善于吸取他人经验之人。我这里就有些东西想分享给大家。
1.在添加任何一个第三方库前请三思一下,因为这是一个很重要的决定。
2.如果用户不能看见他,那就不要绘制它。
3.不要使用数据库,除非真的有必要。
4.65k很快就会超出,真的很快,multidex应该可以帮你一下。
5.RxJava是对AsyncTask最好的替代,而且还有好多惊喜之处。
6.Retrofit是目前最好的网络库啦。
7.可以使用Retrolambda来减少你的代码量。(Kotlin都有啦,此库就没用啦撒)
8.结合RxJava,Retrofit和Retrolambda,会有大惊喜。(Kotlin都有啦,此库就没用啦撒)
9.我用过EventBus,它很好,但是不会用的太多,因为它使代码变得凌乱。
10.按照特性(Feature)分包,而不是层级。
11.尽量让一切远离Application Thread。
12.使用lint来检查你的view来优化布局和层级从而识别出一些可以去掉的重复的view。
13.如果你使用gradle,那么请尽量想办法提升它的速度。
14.使用构建的规格报告来那些占用啦构建时间。
15.使用一些出名的架构。
16.测试耗时,但是一旦你掌握它后,你的编码将会比没有测试时更快更健壮。
17.使用依赖注入可以使你的应用变得模块化从而更易于测试。
18.收听fragmented podcast将会对你有好处。
19.不要使用自己的私人邮箱来作为应用市场发布账号。
20.使用合适的输入法类型。
21.使用analytics来发现使用行为模式和隔离bug。
22.利用新的第三方库。
23.使用CI来构建和发布你的beta和生产apk.
24.service应该干一些它应该做的事,而且尽快死去。
25.如果一个第三方库很大,你却只用啦其中一小部分功能,那么想想有木有小一些的库来替代。
26.可以想想用svg替代png啊。
27.写一些使用库的抽象类吧,这样便于你切换新的第三方库。(就是再封装一下咯)
28.用户界面就好比一个笑话,如果你需要解释它,那说明不是那么好笑。
翻译自:Building Android Apps — 30 things that experience made me learn the hard way