Android 应用性能测试方案一之 log 分析
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.e("AppStartTime","AppOnCreate"); ... } @Override protected void onResume() { super.onResume(); Log.e("AppStartTime","AppOnResume"); ... } |
publicvoidgetAppTrafficList(){ PackageManagerpm=getPackageManager(); List<PackageInfo>pinfos=pm .getInstalledPackages(PackageManager.GET_UNINSTALLED_PACKAGES |PackageManager.GET_PERMISSIONS); for(PackageInfoinfo:pinfos){ String[]premissions=info.requestedPermissions; if(premissions!=null&&premissions.length>0){ for(Stringpremission:premissions){ if("android.permission.INTERNET".equals(premission)){ intuId=info.applicationInfo.uid; longrx=TrafficStats.getUidRxBytes(uId); longtx=TrafficStats.getUidTxBytes(uId); if(rx<0||tx<0){ continue; }else{ Log.e("网络流量",info.applicationInfo.loadLabel(pm)+Formatter.formatFileSize(this,rx+tx) } } } } } } |
drawing = Drawing(500,300) lp = LinePlot() lp.x = 50 lp.y = 50 lp.height = 125 lp.width = 300 lp.data = [zip(times, list)] lp.lines[0].strokeColor = colors.blue lp.lines[1].strokeColor = colors.red lp.lines[2].strokeColor = colors.green drawing.add(lp) drawing.add(String(350,150, reportname,fontSize=14,fillColor=colors.red)) renderPDF.drawToFile(drawing,pdfname,reportname) #这里的times和list两个参数都是list,是时间和监控获取的数据一一对应的关系 这些我们都有了之后,我们来看下分析AppStartTime的方法: def analysisStartFile(list): totalcount =0 totaltime =0 time_list =[] totalcount_list = [] for i in range(len(list)): if 'AppStartTime' in list[i]: totalcount =totalcount+1 totalcount_list.append(totalcount) if float(list[i+4].split(' ')[1][-6:])-float(list[i].split(' ')[1][-6:])>0: totaltime=totaltime+float(list[i+4].split(' ')[1][-6:])-float(list[i].split(' ')[1][-6:]) time_list.append(float(list[i+4].split(' ')[1][-6:])-float(list[i].split(' ')[1][-6:])) return totalcount_list,'%.2f'%float(totaltime/totalcount),time_list |

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Ruff:物联网时代的Android触发产业革命
物联网(IoT,Internet of Things)的全新时代就要来临。 过去几年内,智能硬件热潮席卷全球。然而和手机时代与PC时代相似,硬件的热潮无法带来行业的爆发性发展。在行业集体的尝试与失败之后,物联网的发展又指向了同样的关键点——应用。 据国际知名研究及顾问机构Gartner预测,在2017年,物联网行业里的公司半数以上都会是崭新面孔。而这些新公司的特点,都是偏重于软件、应用、互联网。 然而物联网时代发展至今,常见的发展困境在于数量繁多的硬件厂商之间互不兼容,以及开发者基本无法兼具软硬件能力——硬件工程师们难以开发出杀手级硬件产品,软件工程师们则由于缺乏硬件能力,在物联网上开发应用极其困难。 近日,记者发现了一家物联网操作系统公司Ruff,他们专注的领域,很可能帮助物联网产业走出这些困境。 Ruff提供了一个开放、高效、敏捷的物联网应用开发平台。它的出现,让软件开发者在开发物联网应用时,无需关注底层硬件,只需专注应用逻辑。而测试也只需要在PC上完成。如此,Ruff很可能将无数软件开发者吸引进物联网生态中,带来百花齐放的物联网应用市场。这样的一种操作系统,很可能是物联网步入全新...
- 下一篇
《腾讯iOS测试实践》一一1.4 测试分析
本节书摘来自华章计算机《腾讯iOS测试实践》一书中的第1章,第1.4节,作者:丁如敏 王琳 等著 更多章节内容可以访问云栖社区“华章计算机”公众号查看。 1.4 测试分析 1.4.1 黑盒测试分析“黑盒测试是软件测试的主要方法之一,也可以称为功能测试、数据驱动测试或基于规格说明的测试。测试者无须了解程序的内部情况,无须掌握应用程序的代码、内部结构和编程语言的知识,只要知道程序的输入、输出和系统的功能即可。这是从用户的角度针对软件界面、功能及外部结构进行测试,而不考虑程序内部逻辑结构。”这段关于黑盒测试的定义参考自维基百科。 黑盒测试也是应用最广的方法之一,不少公司都是以黑盒测试为主。那么黑盒测试有什么不足呢?我们先看看《微软的软件测试之道》对黑盒测试的分析,如图1-9所示。图1-9中的A代表黑盒测试的没覆盖部分,B代表黑盒测试的冗余
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果