性能优化与测试
2023-09-27 14:23:52 时间
一、UI性能优化
1. 由于View会不断刷新、变化,所以应尽量减少不必要的onMeasure、onDraw调用。
2. 对于ListView、GridView等需要Adapter加载数据的控件,在getView方法中应尽量减少访问耗资源的资源,例如,大量的写入文件操作,访问网络等。否则这些控件会出 现不时的停顿现象。如果非要访问这些资源,应将这些操作放到线程中。
public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { final LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(R.layout.list_item_icon_text, null); holder = new ViewHolder(); holder.icon = (ImageView) convertView.findViewById(R.id.icon); holder.text = (TextView) convertView.findViewById(R.id.text); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.icon.setImageResource(R.drawable.icon); holder.text.setText(mData[position]); return convertView; }
在getView方法中应convertView参数,而不要一味地创建新的视图对象,并且可以使用convertView.setTag和convertView.getTag保
存和获取视图对象.
二、避免ANR
ANR(Application Not Responding):有时程序会出现ANR现象,解决方法是将耗资源的操作(如下载文件、复杂算法等)放到其他线程中。
三、执行时间测试
long start = System.currentTimeMillis(); ... ... long end = System.currentTimeMillis(); long time = end – start;
四、内存消耗测试
// 获取系统内存总数 long total = Runtime.getRuntime().totalMemory(); // 获取剩余内存 long free = Runtime.getRuntime().freeMemory(); // 返回已使用的内容 long used = total - free;
五、性能分析共工具:traceview
Traceview 是android平台配备一个很好的性能分析的工具。它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到method。
Debug.startMethodTracing("activity_trace"); // 执行test1方法 test1(); // 执行test2方法 test2(); // 停止监视方法 Debug.stopMethodTracing();
会在SD卡的根目录生成一个activity_trace.trace文件。
六、自动化测试工具:Monkey
Monkey 是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。
monkey -p com.android.calculator2 -v 5000 其中-p表示对象包 –v 表示事件数量,表示打开计算器进行5000个随机事件操作。
相关文章
- PHP单元测试与数据库测试
- 性能测试知识科普(五):能力分层
- 性能测试从零开始实施指南——测试报告篇
- 性能测试基本知识
- springcloud3 Seata客户端的编写测试事务的性能2
- 别做重复低质的工作内容摸鱼了,18k强者分享自动化测试秘籍
- 自动化测试—selenium+python实现基本自动化测试
- 测试架构师: 软件测试架构师应该做和不该做的事情
- 测试月入30K,Soeasy?测试这一行涨薪机制被我摸透了...
- 微信小程序如何性能测试? —— 华为云性能测试服务(CPTS)压测到服务后端,并完成性能评估
- 神操作,资深测试开发已经不用postman测试接口了...
- 只会简单功能测试?一文6个步骤带你系统进阶接口自动化测试技术
- 一文2500字带你了解性能测试的那些基础知识
- OCP+Docker牛刀小试,轻松完成“百万并发”压力测试
- 【OpenStack】OpenStack系列12之OpenStack自动化测试详解
- Linux 下用 superpi 测试 CPU 性能
- Linux测试硬盘读性能的常用工具-hdparm
- 优化无限列表性能vue-virtual-scroll-list【测试90w条数据】
- 各大主流.Net的IOC框架性能测试比较
- 美团四年,字节三年这七年测试之路希望能让正在迷茫的你少走弯路
- 通过自动化测试发现缺陷
- Auty自动化测试框架第五篇——框架内部的调用支持、自动化安装库与配置说明
- 使用 Xcode 的 Scheme 来跑不同的测试集合
- 测试HAPROXY的文件分流办法
- OpenERP7测试手记之 - EMail配置 转
- 【Android Protobuf 序列化】Protobuf 性能测试 ( fastjson 序列化与反序列化 | gson 序列化与反序列化 | 三种序列化与反序列化性能对比 )
- Web 攻防之业务安全:Session会话注销测试.