Contents

编译Android APP---30条经验帮你提升

Contents
  1. 添加任何第三方库时都要三思而后行,因为这是一个非常严肃的决定。
  2. 如何用户无法看到它,不要去绘制它!
  3. 除非你真的需要,否则不要使用数据库。
  4. 65k方法限制非常容易遇到,你可以通过multidexing 来修复它。
  5. RxJava 是用来取代异步操作AsyncTasks 的最佳替代方案。
  6. Retrofit 是最佳的网络库。
  7. 通过Retrolambda 缩短你的代码
  8. 组合RxJava、Retrofit和Retrolambda 以实现最大化利用。
  9. 我使用EventBus ,它非常伟大!但是我并没有大量使用,因为大量使用会导致代码复杂度提高。
  10. 通过功能分包,而不是层次。
  11. 把任何事情都从应用的线程中移除。
  12. lint 你的视图去帮助你优化布局和布局的层次,以便于你辨认哪些视图是多余的、可移除的。
  13. 如果你使用gradle你可以加速它!
  14. 生成你的编译报告 ,看看花费的构建时间;
  15. 使用一个众所周知的架构;
  16. 测试需要花费时间,但是一旦你掌握了它之后,将会获得比未测试更加快速和健壮的代码。 ;
  17. 使用依赖注入 ,让你的应用更模块化并且更容易测试;
  18. 收听fragmented podcast 对你来说是有用的。
  19. 不要使用你的个人电子邮件作为你的android市场出版商账户;
  20. 总是使用适当的 输入类型;
  21. 使用分析来找出使用平台和隔离缺陷;
  22. 掌握新 的状态(可以通过使用dryrun 来快速测试)
  23. 你的底层服务应该做它们需要做的事情,并且尽快的销毁。
  24. 使用Account Manager 去建议登录用户名和邮箱地址。
  25. 使用CI(持续集成)去编译和分发你的betaproduction的apk。
  26. 不要经营你自己的CI服务器,因为维护服务器包含磁盘空间/安全问题/更新服务器以免受到SSL攻击等等。应该使用circleci,travis或者shippable。它们便宜并且少一点担心。
  27. 自动化部署到playstore
  28. 如果一个库非常大而你只需要使用其中一个小功能子集。你应该找到一个更小的替代方案。(例如依赖proguard )
  29. 除非实际需要,不要使用更多的模块。如果模块不是经常修改,需要考虑到的重要问题是:从头编译它们所需要的时间(CI 的编译是一个很好的例子),甚至检查以前的各个模块的构建是否最新的,比起简单的加载.jar/.aar库时间要增加几乎4倍。
  30. 开始考虑为了svg格式放弃png格式;
  31. 为库创建抽象类,如果你仅仅需要一个开关去简单的切换到一个新的库(例如AppLogger.d(“message”) 能够包含 Log.d(TAG, message)),而后意识到Timber.d(message) 是一个更好的选择。)
  32. 监视活跃连接和连接类型(当处于WIFI时有更多的数据更新?)
  33. 监控电源和电池(充电时更多的数据更新?当电池电量低时暂停更新?);
  34. 用户界面就像是一个笑话。如果需要去解释它,它不是那么好;

译自:https://medium.com/@cesarmcferreira/building-android-apps-30-things-that-experience-made-me-learn-the-hard-way-313680430bf9#.1lb3hoh97