1. 在添加任何第三方party之前,请三思:这真的是一个成熟的项目吗?

  2. 如果一个东西用户看不到,就不要绘制它

  3. 除非真的需要,否则别使用数据库;

  4. 达到65k方法数限制来的非常快,真的,非常快!不过 multidexing 可以拯救你;

  5. RxJava 是 AsyncTasks 以及其它杂碎的最佳替代者;

  6. Retrofit 可能是现在最佳的网络请求库;

  7. 使用 Retrolambda来简化你的代码;

  8. 把 RxJava 和 Retrofit 以及 Retrolambda 结合起来会让你酷炸天!

  9. 我使用 EventBus 而且它也很好,但是我并不会用太多,因为这样代码库会变得凌乱;

  10. 包名按照功能来,而不是按分层来;

  11. 把所有东西都移到 application thread之外;

  12. lint 可以帮助你优化布局与布局树,这样你就能识别出那些可能已经被移除的冗余的View;

  13. 如果你在使用gradle,使用一切可能的方式去加速它;

  14. 对builds做profile reports,以便知道什么占据了编译时间;

  15. 使用一个 有名的 架构;

  16. 测试时比较花时间,但是一旦你找到诀窍它可以比不使用测试更快、更健壮;

  17. 使用 依赖注入 让你的app更模块化,从而更易于测试;

  18. 收听 fragmented podcast 将会让你受益;

  19. 千万别用私人邮箱作为你安卓市场的发布者账号;

  20. 总是使用恰当的输入类型;

  21. Use analytics to find usage patterns and isolate bugs;

  22. 关注最新的 libraries(使用dryrun 来快速查看它们的的效果);

  23. 你的service应该做你所需的事情,并且尽快死去;

  24. 使用 Account Manager 来提示登录用户名和邮箱地址;

  25. 使用CI(持续集成)来构建和发布你的beta和产品apk;

  26. 不要运行自己的CI server,维护server是费时的事情,因为磁盘空间,安全问题,更新server以防止SSL攻击等等原因。使用circleci, travis 或者 shippable, 它们便宜,而且你也可以少担心一些事情;

  27. Automate your deployments to the playstore;

  28. 如果一个library很大而你只需要使用其中的一部分功能,你应该寻找一个更小的来替代(比如依靠proguard );

  29. 要使用多于实际需要的module。从零开始编译一个module或者仅仅是检查上个module是否最新所需要的时间几乎是加载 binary .jar/.aar依赖的4倍以上;

  30. 开始考虑用SVG来替代PNG

  31. Make library abstraction classes, it’ll be way easier to switch to a new library if you only need to switch in one place (e.g.AppLogger.d(“message”) can contain Log.d(TAG, message) and later realise that Timber.d(message) is a better option);

  32. 监控你的连接情况以及连接类型(wifi之下更新更多数据?);

  33. 监控你的电源和电量(在充电的时候更新更多的数据?电量低的时候暂停更新?);

  34. 一个用户界面就如一个笑话那样,如果你需要解释,那么证明它并不够好;

  35. Tests are great for performance: Write slow (but correct) implementation then verify optimizations don’t break anything with tests.

创建安卓app的30个经验教训的更多相关文章

  1. 创建Android Apps的30个经验教训

    这个世界上有两种人-从经验教训中学习的人以及听从别人建议的人.这里是我一路走来学到的一些东西,分享给大家: 在添加任何第三方party之前,请三思:这真的是一个成熟的项目吗? 如果一个东西用户看不到, ...

  2. 【软件配置】JDK+AndroidStudio4.1开发安卓APP环境安装和配置教程详细

    目录 一.专业名词 二.搭建前资源准备 2.1 JDK资源下载 2.2 AndroidStudio下载 三.安装 3.1 JDK安装配置 3.2 AndroidStudio安装 四.创建安卓APP工程 ...

  3. 安卓app设计规范整理和Android APP设计篇(转)

    随着安卓智能手机不停的更新换代.安卓手机系统越来越完美,屏幕尺寸也越来越大啦!比如最近小米的miui 6的发布和魅族手机系统的更新等等. 以小米MIUI6的安卓手机来说,MIUI6进行了全新设计,坚持 ...

  4. Apache Storm 的历史及经验教训——Nathan Marz【翻译】

    英文原文地址 中英文对照地址 History of Apache Storm and lessons learned --项目创建者 Nathan Marz Apache Storm 最近成为了ASF ...

  5. 从Apache Storm学到的经验教训 —— storm的由来(转)

    阅读目录 Storm来源 初探 再探 构建第一个版本 被Twitter收购 开源的Storm 发布之后 Storm的技术演进 构建开发者社区版 离开Twitter 提交到Apache Apache孵化 ...

  6. html+css+js+Hbuilder开发一款安卓APP,根本不用学Android开发!

    我们知道,要做一款安卓APP,咱们得先学安卓开发语言,例如java,前端后端.那么没有这些开发语言基础,咱们怎么做呢?其实现在有比较好的开发方案就是做webAPP,咱们可以用web前端知识构建安卓客户 ...

  7. 使用Flutter完成10个商业项目后的经验教训

    作者:Łukasz Kosman 和 Jakub Wojtczak 原文:https://medium.com/swlh/lessons-learned-after-making-the-first- ...

  8. 安卓APP测试验证点总结

    最近较懒,加之闺女出生后记忆没完全恢复,总是忘东忘西,关于安卓APP测试的验证点还是总结一下,方便设计测试用例时查阅,也给各位博友参考! 1.除APP的正常功能点外,还有以下验证点: 安装/卸载(考虑 ...

  9. 【转载】安卓APP架构

    注:本篇博文转载于 http://my.oschina.net/mengshuai/blog/541314?fromerr=z8tDxWUH 本文介绍了文章作者从事了几年android应用的开发,经历 ...

随机推荐

  1. android N刷机

    1. 打开开发者选项2. 在开发者选项页面打开 oem解锁3. 运行 adb reboot bootloader4. 运行 fastboot flashing unlock5. 解压你下载的刷机包 6 ...

  2. 不关闭seLinux解决vsftpd服务本地用户不能登录问题(500 OOPS: cannot change directory:/home/***

    这里不讲vsftpd的基本配置,网上教程已经太多了.这里只说seLinux的问题. 日前在CentOS6.5中安装了vsftpd,按照网上搜索的教程,配置好/etc/vsftpd/vsftpd.con ...

  3. ArrayList、Vector、LinkedList的区别及其优缺点? (转载)

    原文链接:http://blog.csdn.net/wangzff/article/details/7296648 ArrayList,LinkedList,Vestor这三个类都实现了java.ut ...

  4. .net链接Oracle数据操作类库

    public abstract class OracleHelper { public OracleHelper() { } /// <summary> /// 数据库连接字符串 /// ...

  5. 只有PD号的调起

    cicsterm-> CECI -> LI-> P -> TestQuery

  6. 九度OJ 1547 出入栈 -- 动态规划

    题目地址:http://ac.jobdu.com/problem.php?pid=1547 题目描述: 给定一个初始为空的栈,和n个操作组成的操作序列,每个操作只可能是出栈或者入栈. 要求在操作序列的 ...

  7. win7 64 安装Oracle 11G 、使用PLSQL进行连接 标准实践

    第一步: 安装oracle 服务,两个解压包,分别解压后 合并到一个文件夹,点击exe安装 (安装过程中如遇到PATH问题,直接忽略即可) 第二步:使用SQLPlus 测试是否成功 安装成功:CMD ...

  8. linux下tomcat的安装

    本文主要内容: (1)安装apr,这是 Apache 为了提升 Tomcat 的性能搞的一套本地化 Socket, Thread, IO 组件也就是说它有高级 IO 功能, 操作系统级别的功能调用, ...

  9. PHP开发圣经读书笔记01

    从今天开始,以“圣经”这本书为教材,系统的温习一下php,之前都是看视频学的. 1.访问表单变量--php变量名称必须与表单域的名称一致 例:$_POST['uname'];  //表示把表单域中na ...

  10. Python复杂多重排序

    1. cmp函数是python自带的函数,用于比较两个参数哪个大哪个小 print cmp(2, 3) # -1 如果第一个参数比第二个小,就返回-1,两个元素相等,返回0,否则返回1 2.所以就可以 ...