linux怎么查看本机内存大小
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~