Android性能优化--代码优化/编程规范

常规原则

  • 将Acitivity 中的Window 的背景图设置为空。getWindow().setBackgroundDrawable(null)
  • 循环中不要使用声明临时临时变量
  • 合理选择数据结构/数据类型:根据数据结构的特性,比如查找功能比较多的使用,可以实现底层基于动态数组的ArrayList,但,移动,删除操作比较多的时候,可以使用底层基于链表实现的LinkedList
  • 熟悉常用的设计模式,并在代码中使用来合理的解耦
  • Cursor的打开关闭是非常耗时,注意对cursor的使用
  • 能用文件才做的就不要使用数据库(文件比数据库快10倍)
  • 使用<include><merge><viewstub>优化布局
  • 如果方法用不到成员变量,可以把方法申明为static,性能会提高到15%到20%
  • 避免使用getter/setter存取field,可以把field申明为public,直接访问
  • static的变量如果不需要修改,应该使用static final修饰符定义为常量
  • 对ListView进行优化

Pool & Cache

  • 在使用Handler进行异步通信的的时候使用Message.obtain()或者Handler.obtainMessage()方式而非new Message()。
  • 使用缓存:涉及到I/O操作使用BufferedInputStream替代InputStream。
  • 使用线程池而非单独去使用线程。
  • ListView进行缓存优化,复用ConvertView
  • 网络缓存:数据库缓存http response,根据http头信息中的Cache-Control域确定缓存过期时间。

工具

  • Inspect Code:静态代码检查工具:Android studio—Analyze—Inspect Code…/Code cleanup… ,用于检测代码中潜在的问题、存在效率问题的代码段并提供改善方案;
  • DDMS—TraceView,用于查找程序运行时具体耗时在哪;
  • StrictMode:用于查找程序运行时具体耗时在哪,需要集成到代码中;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,914评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,292评论 19 139
  • HereAndroid的内存优化是性能优化中很重要的一部分,而避免OOM又是内存优化中比较核心的一点。这是一篇关于...
    HarryXR阅读 9,217评论 1 24
  • 剩下的只有不开心和不甜蜜,我真的是想把心门关闭。一份看不见希望的感情,一个不信任的恋人,在这些都失去的时候,没想到...
    叫我李叫我旋阅读 1,150评论 0 0
  • 一直在考虑着做自己的公众号,将自己曾经记录的东西和一些想法分享给更多的人。这决定也来源于几个月前...
    Echo95阅读 3,255评论 0 0