美文网首页
Android-性能注意点

Android-性能注意点

作者: A代码搬运工 | 来源:发表于2019-07-06 16:48 被阅读0次

I/O性能

检测工具

Systrace/Strace

STRICTMODE

建议

  • 避免主线程操作文件和数据库
  • 提前初始化Sharepreference,用apply代替commit
  • 减少从数据库读取的数据量
  • 数据库减少使用AUTOINCREMENT
  • 频繁查询的表使用索引
  • 避免无效索引
  • 批量更新数据库使用事务
  • ZIP压缩大量小文件建议使用ZipInputStream,普通使用ZipFile效率更高

内存

检测工具

Top

meminfo

DDMS

MAT

LeakCanary

Android Monitor

Chrome DevTool(H5)

建议

  • 避免Activity泄漏

  • 尽量使用RGB565

  • 避免内存重复

  • 将图片放在合适的资源文件

    (高密度的系统去使用低密度目录下的图片资源时,会将图片长宽自动放大以适应高密度的精度,当然图片占用的内存会变大.所以如果提供的图片资源有限,那么图片资源应该尽量放在高密度文件夹下,这样可以节省图片的内存)

网络

检测工具

Wireshark

fidder

tcpdump

建议

  • 避免重复上传/下载
  • JS/CSS/HTML需要进行压缩
  • 使用更优的图片压缩(webp)

CPU

检测工具

dumpsys cpuinfo

Android Monitor

建议

  • 能用int的不要用float
  • 使用缓存和批量预处理来提升算法效率

电池

建议

  • 锁屏/灭屏/程序放置后台时,释放或者停止Android涉及的耗电服务
  • 锁屏或者灭屏释放Wakelock
  • 程序后台CPU不能连续工作5分钟且平均超过5%

交互类性能

检测工具

systrace

TraceView

slickr

建议

  • 合理使用硬件加速

响应时延

建议

  • 启动速度小于2秒
  • 启动速度小于2秒
  • 避免黑屏

注:

  • 首选静态虚拟

    如果你不需要访问对象的字段,请将方法设为静态,调用速度会快15%-20%

  • 使用增强型for循环

    增强型for循环在没有JIT的设备上是最快的

  • 考虑包而不是私有内部类的私有访问

  • 了解并使用库

  • 避免过度创建对象

  • 不要过度使用枚举,枚举占用的内存空间要比整型大

  • 常用请使用static final修饰符

  • 使用一些Android特有的数据结构,比如SparseArray和Pair等

  • 适当使用软引用/弱引用

  • 采用内存缓存和磁盘缓存

  • 尽量采用静态内部类,这样可以避免潜在的由于内部类而导致的内存泄漏

  • 使用SurfaceView加载大帧率的动画

相关文章

网友评论

      本文标题:Android-性能注意点

      本文链接:https://www.haomeiwen.com/subject/rmtmhctx.html