Android客户端优化

网友投稿 225 2022-09-19

Android客户端优化

1切换界面卡。 2滑动列表卡。 3用户触发事件卡。

针对1.3,你只要把握以下几点: 1.异步加载(画在主thread中,准备数据在工作thread中) 2.分线程做事 3.避免遍历或者使用耗时很长的api(尽量用效率高的api替代) 4.缓存机制

耗时操作列举:

IO/SQL(不稳定时间开销) ListFile(消耗大量时间) Inflate View(跟View的复杂度成正比) 创建复杂对象(跟对象复杂度成正比) 全局刷新(Adapter.notifyDataSetChange) Bitmap decode Net操做

老生常谈: IO Write开销远大于Read,Read效率远低于内存访问 大量的并发IO会占满CPU 不好的习惯: onCreate里从文件做数据还原 onCreate里面做FileList动作 BindView里面创建Bitmap..等等

好的习惯 Main线程里必然不做Write 要Write则必须开独立线程 减少Read次数统一读取一次 需要文件检测时直接按文件名查询,不用FileList

传闻:用了数据库,所以很慢 问题1:Query是否真的耗时?  大量事实证明10-30ms能完事 问题2:Query可能引起的性能问题是?  Query之后往往伴随着ChangeCursor,引发BindView

事实:大量IO会让CPU和系统非常繁忙 问题:好的更新数据库习惯?    拒绝在Main线程插(删)    拒绝多线程插(删)  开启“事务”做批量插(删)

滑动卡顿:

优化方案 1.拆分大的xml为小xml,减少inflate的时间 重载newiew(), getItemViewType() 2.自己一套刷新机制,不用系统的触发adpter的刷新。全刷(不刷新,延时刷,实时刷)+块刷机制组合 3.布局文件尽量使用默认占位 4.图片缓存机制(但不能无限缓存,比如最大15个?)

5.ViewHolder 6.减少或者不做decodeImage 和 createBitmap 7.减少遍历操作 8.减少布局文件的层次结构(这个是最重要的!!!!)

ANR:Application Not Responding Log: /data/anr/traces.txt

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:阿里腾讯面试一二
下一篇:Given an array t[100] which contains numbers between 1..99. Return the duplicated value
相关文章

 发表评论

暂时没有评论,来抢沙发吧~