文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android性能优化方法

2022-06-06 09:26

关注

GPU过度绘制

 •打开开发者选型,“调试GPU过度绘制”,蓝、绿、粉红、红,过度绘制依次加深
 •粉红色尽量优化,界面尽量保持蓝绿颜色
 •红色肯定是有问题的,不能忍受

使用HierarchyView分析布局层级

 •删除多个全屏背景:应用中不可见的背景,将其删除掉
 •优化ImageView:对于先绘制了一个背景,然后在其上绘制了图片的,9-patch格式的背景图中间拉伸部分设置为透明的,Android 2D渲染引擎会优化9-patch图中的透明像素。这个简单的修改可以消除头像上的过度绘制。
 •缩短View层级结构 •删除非必须View,不仅仅能提高帧率还能降低对内存的消耗、同时还能加速应用的启动
 •TextView组合图标,代替LinearLayout+TextView+ImageView
 •使用mearge标签
 •使用RelativeLayout扁平化布局
 •特别是ListView item布局,一定要扁平化

不要吝啬发现Android Device Monitor的功能

 •Start Method Profiling •可以观察每个线程的方法调用情况,
 •可以通过观察,方法的调用次数、每次方法执行时间
 •找到有是否死循环,是否为耗时操作

使用LeakCanary发现内存溢出

 •在开发阶段一定要集成LeakCanary,而且非常容易集成
 •及时发现Activity页面内存溢出地方法
 •详细的内存溢出方法跟踪,便于定位异常点

使用lint工具给APK包减肥

使用OneAPM监控App性能

使用SVG代替图片

 •需要和设计配合

使用xml代替图片

代码规范制定并遵守

 •一致的代码风格,有利于代码维护、查看和发现问题所在

下面在给大家分享Android性能优化一些方法

1.采用硬件加速,在androidmanifest.xml中application添加 android:hardwareAccelerated=”true”。不过这个需要在android 3.0才可以使用。
2.View 中设置缓存属性.setDrawingCache为true。
3.优化你的布局。通过Android sdk中tools目录下的layoutopt 命令查看你的布局是否需要优化。
4.动态加载View.采用ViewStub 避免一些不经常的视图长期握住引用。
5.将Acitivity 中的Window 的背景图设置为空。getWindow().setBackgroundDrawable(null);android的默认背景是不是为空。
6.采用 优化布局层数。 采用来共享布局。
7.查看Heap 的大小。
8.利用TraceView查看跟踪函数调用。有的放矢的优化。
9.cursor 的使用。不过要注意管理好cursor,不要每次打开关闭cursor。因为打开关闭Cursor非常耗时。Cursor.require用于刷新cursor。
10.采用环形Buffer(可以采用链表数据结构实现)。可以设置一个链表长度的上限,根据手势的变化来不断地更新环形Buffer的内容。
11.采用SurfaceView在子线程刷新UI, 避免手势的处理和绘制在同一UI线程(普通View都这样做)。
12.采用JNI,将耗时间的处理放到c/c++层来处理。
13.有些能用文件操作的,尽量采用文件操作,文件操作的速度比数据库的操作要快10倍左右。
14.懒加载和缓存机制。访问网络的耗时操作启动一个新线程来做,而不要再UI线程来做。
15.消息缓存通过handler.obtainMessage复用之前的message。

16.文件IO缓存,使用具有缓存策略的输入流,BufferedInputStream替代InputStream,BufferedReader替代 Reader,BufferedReader替代BufferedInputStream.对文件、网络IO皆适用。例如:
HttpURLConnection con=(HttpURLConnection)url.openConnection();BufferedReader input =newBufferedReader(new InputStreamReader(con.getInputStream()));
Strings;
while((s = input.readLine()) != null) {

}

17.Layout优化:使用抽象布局标签(include,viewstub,merge)、去除不必要的嵌套和View节点、减少不必要的infalte及其他Layout方面可调优点,顺带提及布局调优相关工具 (hierarchy viewer和lint)。
18.TextView属性优化:TextView的android:ellipsize=”marquee”跑马灯效果极耗性能。
19.使用hashMap代替arrayList,时间复杂度降低一个数量级。


您可能感兴趣的文章:Android布局性能优化之按需加载View浅析安卓(Android)的性能优化Android高级开发之性能优化典范Android性能优化以及数据优化方法Android中SparseArray性能优化的使用方法浅谈Android开发中ListView控件性能的一些优化方法Android编程开发之性能优化技巧总结Android开发性能优化总结


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯