当前位置: 首页 > news >正文

网站建设品牌营销企业自建站

网站建设品牌营销,企业自建站,荆州网站制作公司,学科主题资源网站的建设Android篇 1. 性能测试 Android性能测试分为两类#xff1a; 1、一类为rom版本#xff08;系统#xff09;的性能测试 2、一类为应用app的性能测试Android的app性能测试包括的测试项比如#xff1a; 1、资源消耗 2、内存泄露 3、电量功耗 4、耗时 5、网络流量消耗 6、移动…Android篇 1. 性能测试 Android性能测试分为两类 1、一类为rom版本系统的性能测试 2、一类为应用app的性能测试Android的app性能测试包括的测试项比如 1、资源消耗 2、内存泄露 3、电量功耗 4、耗时 5、网络流量消耗 6、移动终端相关资源利用率 7、帧率 8、渲染等等....工具 工具的原理都是基于调用android底层的一些api来获取到测试所用到的值GT等测试方法 1、设计场景 手工或自动化场景 2、获取数据可获取的数据包括内存、cpu、电量功耗、hprof内存泄露分析文件、响应时间等等。。。。配合手工或自动化场景来获取数据最好多取几次而且每次配合不同的设备看平均值作为最后的对比分析 3、结果分析 拿到数据后分析哪些模块的数据异常再去Check code定位问题的原因Android系统的几种场景状态 1、空闲状态 指打开应用后点击home键让应用后台运行此时应用处于的状态叫做空闲 2、中等规格和满规格状态中等规格和满规格指的是对应用的操作时间的间隔长短不一中等规格时间较长满规格时间较短 1.1 内存篇 背景知识 C/C申请的内存空间在native heap中而java申请的内存空间则在dalvik heap中。这个是因为Android系统对dalvik的vmheapsize作了硬性限制当java进程申请的java空间超过阈值时就会抛出OOM异常这个阈值可以是48M、24M、16M等视机型而定可以通过adb shell getprop | grep dalvik.vm.heapgrowthlimit查看此值。也就是说程序发生OMM并不表示RAM不足而是因为程序申请的java heap对象超过了dalvik vmheapgrowthlimit。也就是说在RAM充足的情况下也可能发生OOM。 这样的设计似乎有些不合理但是Google为什么这样做呢这样设计的目的是为了让Android系统能同时让比较多的进程常驻内存这样程序启动时就不用每次都重新加载到内存能够给用户更快的响应。迫使每个应用程序使用较小的内存移动设备非常有限的RAM就能使比较多的app常驻其中。但是有一些大型应用程序是无法忍受vmheapgrowthlimit的限制的 实际上dalvik.vm.heapgrowthlimit和dalvik.vm.heapsize都是java虚拟机的最大内存限制应用如果不想在dalvikheap达到heapgrowthlimit限制的时候出现OOM需要在Manifest中的application标签中声明androidlargeHeap“true”声明后应用dalvik heap达到heapsize的时候才会出现OOM 内存测试中的测试子项 1空闲状态下的应用内存消耗情况2中等规格状态下的应用内存消耗情况3满规格状态下的应用内存消耗情况4应用内存峰值情况5应用内存泄露情况6应用是否常驻内存7压力测试后的内存使用情况 内存问题现象 1内存抖动2大内存对象被分配3内存不断增长4频繁GC 内存数据获取 1、各种linux命令top、free、meminfo…2、通过dumpsys adb shell dumpsys meminfo [pakagename | pid]3、通过/system/xbin/procrank工具 adb shell procrank 说明 VSS – Virtual Set Size 虚拟耗用内存包含共享库占用的内存 RSS – Resident Set Size 实际使用物理内存包含共享库占用的内存 PSS – Proportional Set Size 实际使用的物理内存比例分配共享库占用的内存 USS – Unique Set Size 进程独自占用的物理内存不包含共享库占用的内存 USS 是针对某个进程开始有可疑内存泄露的情况是一个程序启动了会产生的虚拟内存一旦这个程序进程杀掉就会释放。不过USS需要通过root的手机。一般没有root的手机我们可以获取PSS。而PSS通过如下命令来获取adb shell dumpsys meminfo Package Name|grep TOTAL 4、通过android提供的procrank 1首先去google获取procrank、procmem、libpagemap.so三个文件 2然后push文件执行 adb push procrank /system/xbin adb push procmem /system/xbin adb push libpagemap.so /system/lib 3赋权 adb shell chmod 6755 /system/xbin/procrank adb shell chmod 6755 /system/xbin/procmem adb shell chmod 6755 /system/lib/libpagemap.so , 4在开启工具记录 adb shell procrank |grep packagename /address/procrank.txt 5、通过android提供的ActivityManager的getMemoryInfo(ActivityManager.MemoryInfo outInfo)这个方法是写一个简单的app去监控的时候用到的轻便简单 复制 private void GetMemory() {final ActivityManager activityManager (ActivityManager) getSystemService(ACTIVITY_SERVICE); ActivityManager.MemoryInfo info new ActivityManager.MemoryInfo(); activityManager.getMemoryInfo(info); Log.i(tag,系统剩余内存:(info.availMem 10)k); Log.i(tag,系统是否处于低内存运行info.lowMemory);Log.i(tag,当系统剩余内存低于info.threshold时就看成低内存运行);} 6、Memory Monitor android studio的插件 【makedown】4. /proc/meminfo文件里列出的字段解释 复制 MemTotal: 所有可用RAM大小。 MemFree: LowFree与HighFree的总和被系统留着未使用的内存。 Buffers: 用来给文件做缓冲大小。 Cached: 被高速缓冲存储器cache memory用的内存的大小等于diskcache minus SwapCache。 SwapCached:被高速缓冲存储器cache memory用的交换空间的大小。已经被交换出来的内存仍然被存放在swapfile中用来在需要的时候很快的被替换而不需要再次打开I/O端口。 Active: 在活跃使用中的缓冲或高速缓冲存储器页面文件的大小除非非常必要否则不会被移作他用。 Inactive: 在不经常使用中的缓冲或高速缓冲存储器页面文件的大小可能被用于其他途径。 SwapTotal: 交换空间的总大小。 SwapFree: 未被使用交换空间的大小。 Dirty: 等待被写回到磁盘的内存大小。 Writeback: 正在被写回到磁盘的内存大小。 AnonPages未映射页的内存大小。 Mapped: 设备和文件等映射的大小。 Slab: 内核数据结构缓存的大小可以减少申请和释放内存带来的消耗。 SReclaimable:可收回Slab的大小。 SUnreclaim不可收回Slab的大小SUnreclaimSReclaimableSlab。 PageTables管理内存分页页面的索引表的大小。 NFS_Unstable:不稳定页表的大小。 5. android检查内存泄露步骤 复制 1、运行Monkey进行压力测试 adb shell monkey -p cn.microinvestment.weitou --pct-touch 100 --ingore-crashes --throttle 1000 -s 100 -v -v 50 2、监控内存值如果出现过大等递增异常则保存HPROF文件hprof文件是Java 虚拟机的Heap快照用于分析查看应用内存的命令 adb shell dumpsys meminfo cn.microinvestment.weitou(进程名) 如果发现内存过大则保存HPROF文件adb shell am dumpheap 进程名 保存路径 3、分析hprof文件 用工具MAT来查看首先还要这个HPROF文件转换成MAT可读的文件 在Android SDK tool里面有个hprof-conv命令 hprof-conv 原HPROF文件路径 转换后的HPROF路径 hprof-conv a.hprof b.hprof 4、用MAT工具打开转换后的HPROF文件 一般选择Leak Suspects Report通过SQL语句来查询对象有没有被释放掉如果有多个相同的对象则会存在内存泄露的问题 1.2 CPU篇 CPU测试中的测试子项 1空闲状态下的应用CPU消耗情况 2中等规格状态下的应用CPU消耗情况 3满规格状态下的应用CPU消耗情况 4应用CPU峰值情况CPU数据获取 1adb shell dumpsys cpuinfo | grep packagename 2)top命令 adb shell top -m 10 -s cpu #查看占用cpu最高的前10个程序-t 显示进程名称-s 按指定行排序-n 在退出前刷新几次-d 刷新间隔-m 显示最大数量 adb shell top | grep PackageName /address/cpu.txt 1.3 流量篇 概念 中等负荷应用正常操作 高负荷应用极限操作流量测试中的测试子项 1、应用首次启动流量值 2、应用后台连续运行 2 小时的流量值 3、应用高负荷运行的流量峰值 4、应用中等负荷运行时的流量均值获取流量数据 1、tcpdumpwireshark 2、/proc/net/目录下相关文件 cat /proc/net/dev 获取系统的流量信息 3、查询应用的pid adb shell ps | grep tataufo #如31002 通过PID获取该应用的流量数据 adb shell cat /proc/31002/net/dev wlan0代表wifi上传下载量标识, 单位是字节可以/1024换算成KB, 打开手机飞行模式再关掉就可以将wlan0中的值初始化0 4、查询应用的pid adb shell ps | grep tataufo #如31002 通过PID获取UIDadb shell cat /proc//status 通过UID获取adb shell cat /proc/net/xt_qtaguid/stats | grep 31002 5、通过adb shell dumpsys package来获取应用的uid信息然后在未操作应用之前通过查看 adb shell cat /proc/uid_stat/uid/tcp_rcv adb shell cat /proc/uid_stat/uid/tcp_snd 获取到应用的起始的接收及发送的流量然后我们再操作应用再次通过上述2条命令可以获取到应用的结束的接收及发送的流量通过相减及得到应用的整体流量消耗 6、Android代码Android的TrafficStats类 1.4 功耗篇 功耗测试中的测试子项 1、手机安装目标APK前后待机功耗无明显差异 2、常见使用场景中能够正常进入待机待机电流在正常范围内 3、长时间连续使用应用无异常耗电现象功耗测试方法 方法一软件 1、采用市场上提供的第三方工具如金山电池管家之类的。 2、就是自写工具进行这里一般会使用3种方法 1基于android提供的PowerManager.WakeLock来进行 2比较复杂一点功耗的计算CPU消耗Wake lock消耗数据传输消耗GPS消耗Wi-Fi连接消耗 3通过 adb shell dumpsys battery来获取 3、battery-historiangoogle开源工具 方法二硬件 一般使用万用表或者功耗仪安捷伦进行测试使用功耗仪测试的时候需要制作假电池来进行的有些不能拔插电池的手机还需要焊接才能进行功耗测试 1.5 GPU篇FPS 概念 过度绘制 界面显示的activity套接了多层而导致 帧率屏幕滑动帧速率 帧方差 屏幕滑动平滑度 **FPS**Frames Per Second 每秒显示的帧数 根据人眼的生理结构帧率高于24时就被认为是连贯的。对于游戏画面30fps是最低能接受的60fps逼真感如果帧率高于屏幕刷新频率就是浪费。要达到30fps每帧所占用的时间要小于33毫秒GPU测试中的测试子项 1、界面过度绘制 2、屏幕滑动帧速率 3、屏幕滑动平滑度过度绘制测试人工进行测试 打开开发者选项中的显示GPU过度绘制Debug GPU overdraw 验收的标准: 1、不允许出现黑色像素 2、不允许存在4x过度绘制 3、不允许存在面积超过屏幕1/4区域的3x过度绘制淡红色区域屏幕滑动帧速率测试 方法一 1.手机端打开开发者选项中的启用跟踪后勾选Graphics和View 2.启动SDK工具Systrace勾选被测应用点击Systrace在弹出的对话框中设置持续抓取时间在trace taps下面勾选gfx及view选项 3.手工滑动界面可以通过节拍来进行滑动或者扫动帧率数据会保存到默认路径下默认名称为trace.html 4.将trace.html文件拷贝到linux系统下通过命令进行转换生成trace.csv文件 grep postFramebuffer trace.html | sed -e s/.]\W//g -e s/:.*$//g -e s/.//g trace.csv 5.用excel打开文件计算得到帧率 方法二 硬件的方法打开高速相机开启摄像模式录制手工滑动或者扫动被测应用的视频再通过人工或者程序数帧的方法对结果进行计算得到帧率屏幕滑动平滑度的测试 方法如同帧率测试唯一的差异就是最后的结果计算公式的差异捕获app帧率android流畅度FPS测试 1、打开手机开发者选项勾选GPU显示配置文件系统会记录保留每个界面最后128帧图像绘制的相关时间信息 2、adb shell dumpsys gfxinfo com.xxx.xxx zinfo.txt 3、结果数据分析 Profile data in ms部分 Draw 创建显示列表的时间DisplayList所有View对象OnDraw方法占用的时间 Process Android 2D渲染引擎执行显示列表所花的时间View越多时间越长 Execute将一帧图像交给合成器compsitor的时间较小其他工具 GameBench 测试android app的FPS工具 Gfxinfo 查看app绘制性能工具 1.6 响应时间篇 理解 1从单击事件触发到容器启动NativeAPP消耗的时间埋点 2NativeAPP完整启动消耗的时间可以通过system.log获取 3Native调用RPC请求方法的延迟时间埋点 4RPC请求发出去过程中的具体数据req_size req_header req_time等通过埋点获取 5RPC请求返回的具体数据res_size res_header res_time等通过埋点获取 6本地解析返回数据所消耗的时间埋点或者TraceView工具可获取 7界面渲染的时间可以通过慢速摄像机或者埋点获取android app启动时间测试 安卓Activity启动过程性能剖视: http://www.rudy-yuan.net/archives/59/应用的启动时间的测试分为三类 1首次启动 --应用首次启动所花费的时间 2非首次启动 --应用非首次启动所花费的时间 3应用界面切换--应用界面内切换所花费的时间应用启动时间数据获取 1、adb logcat /address/logcat.txt #所有activity打印的日志 find “Displayed” /address/logcat.txt /newaddress/fl.txt #通过日志过滤关键字Displayed来过滤 find “ActivityName” /newaddress/fl.txt /newaddress/last.txt #通过activity名来过滤获取所测应用 通过计算activity最后剩余的时间之和即可 2、硬件测试 使用高速相机或者手机采用录像的方法把应用启动过程给录制下来然后通过人工数帧或者程序数帧的方式计算启动时间 2 弱网测试 测试方法 1、使用真实的SIM卡、运营商网络来进行测试移动无线测试中存在一些特别的BUG必须在特定的真实的运营商网络下才会发现2、通过代理的方式模拟弱网环境进行测试charles 硬延迟3、连接模拟弱网的热点进行测试 热点模拟方法 1通过设置iPhone的开发者模式之后共享热点硬延迟2FaceBook开源的ATC可使用树莓派来搭建ACT环境 用户体验需要做的 1在应用中统一弱网加载的界面样式、动画效果、菊花icon等2统一网络错误、服务端错误、超时等展现给用户的界面和提示语句3定义清楚在每个中间过程是的用户交互行为 最后 为了回馈铁杆粉丝们我给大家整理了完整的软件测试视频学习教程朋友们如果需要可以自行免费领取 【保证100%免费】  软件测试面试文档 我们学习必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。 资料获取方式
文章转载自:
http://www.morning.yfwygl.cn.gov.cn.yfwygl.cn
http://www.morning.fqpyj.cn.gov.cn.fqpyj.cn
http://www.morning.qbjrf.cn.gov.cn.qbjrf.cn
http://www.morning.gwkwt.cn.gov.cn.gwkwt.cn
http://www.morning.kldtf.cn.gov.cn.kldtf.cn
http://www.morning.jwgnn.cn.gov.cn.jwgnn.cn
http://www.morning.dgsr.cn.gov.cn.dgsr.cn
http://www.morning.shxrn.cn.gov.cn.shxrn.cn
http://www.morning.zbqry.cn.gov.cn.zbqry.cn
http://www.morning.xhddb.cn.gov.cn.xhddb.cn
http://www.morning.rqxmz.cn.gov.cn.rqxmz.cn
http://www.morning.gassnw.com.gov.cn.gassnw.com
http://www.morning.knlgk.cn.gov.cn.knlgk.cn
http://www.morning.nfbkz.cn.gov.cn.nfbkz.cn
http://www.morning.gyjld.cn.gov.cn.gyjld.cn
http://www.morning.lfttb.cn.gov.cn.lfttb.cn
http://www.morning.muniubangcaishui.cn.gov.cn.muniubangcaishui.cn
http://www.morning.qyglt.cn.gov.cn.qyglt.cn
http://www.morning.llmhq.cn.gov.cn.llmhq.cn
http://www.morning.qprtm.cn.gov.cn.qprtm.cn
http://www.morning.tlpgp.cn.gov.cn.tlpgp.cn
http://www.morning.fhkr.cn.gov.cn.fhkr.cn
http://www.morning.pamdeer.com.gov.cn.pamdeer.com
http://www.morning.txmkx.cn.gov.cn.txmkx.cn
http://www.morning.pbwcq.cn.gov.cn.pbwcq.cn
http://www.morning.xwlmr.cn.gov.cn.xwlmr.cn
http://www.morning.dnycx.cn.gov.cn.dnycx.cn
http://www.morning.rcntx.cn.gov.cn.rcntx.cn
http://www.morning.dbnpz.cn.gov.cn.dbnpz.cn
http://www.morning.mhfbf.cn.gov.cn.mhfbf.cn
http://www.morning.ygkb.cn.gov.cn.ygkb.cn
http://www.morning.mlnbd.cn.gov.cn.mlnbd.cn
http://www.morning.symgk.cn.gov.cn.symgk.cn
http://www.morning.pyxwn.cn.gov.cn.pyxwn.cn
http://www.morning.ccyns.cn.gov.cn.ccyns.cn
http://www.morning.lznqb.cn.gov.cn.lznqb.cn
http://www.morning.qhjkz.cn.gov.cn.qhjkz.cn
http://www.morning.sxlrg.cn.gov.cn.sxlrg.cn
http://www.morning.gpryk.cn.gov.cn.gpryk.cn
http://www.morning.gfznl.cn.gov.cn.gfznl.cn
http://www.morning.bdqpl.cn.gov.cn.bdqpl.cn
http://www.morning.dkfb.cn.gov.cn.dkfb.cn
http://www.morning.rqmqr.cn.gov.cn.rqmqr.cn
http://www.morning.kzrg.cn.gov.cn.kzrg.cn
http://www.morning.rnlx.cn.gov.cn.rnlx.cn
http://www.morning.kfjnx.cn.gov.cn.kfjnx.cn
http://www.morning.qglqb.cn.gov.cn.qglqb.cn
http://www.morning.dxqwm.cn.gov.cn.dxqwm.cn
http://www.morning.wcyr.cn.gov.cn.wcyr.cn
http://www.morning.homayy.com.gov.cn.homayy.com
http://www.morning.pshtf.cn.gov.cn.pshtf.cn
http://www.morning.rrwgh.cn.gov.cn.rrwgh.cn
http://www.morning.ctfh.cn.gov.cn.ctfh.cn
http://www.morning.mpflb.cn.gov.cn.mpflb.cn
http://www.morning.rgkd.cn.gov.cn.rgkd.cn
http://www.morning.yxyyp.cn.gov.cn.yxyyp.cn
http://www.morning.xysxj.com.gov.cn.xysxj.com
http://www.morning.rkck.cn.gov.cn.rkck.cn
http://www.morning.pghgq.cn.gov.cn.pghgq.cn
http://www.morning.wqkfm.cn.gov.cn.wqkfm.cn
http://www.morning.dpsgq.cn.gov.cn.dpsgq.cn
http://www.morning.rwlnk.cn.gov.cn.rwlnk.cn
http://www.morning.zwckz.cn.gov.cn.zwckz.cn
http://www.morning.flqbg.cn.gov.cn.flqbg.cn
http://www.morning.saastob.com.gov.cn.saastob.com
http://www.morning.wjdgx.cn.gov.cn.wjdgx.cn
http://www.morning.krtcjc.cn.gov.cn.krtcjc.cn
http://www.morning.npgwb.cn.gov.cn.npgwb.cn
http://www.morning.brnwc.cn.gov.cn.brnwc.cn
http://www.morning.byshd.cn.gov.cn.byshd.cn
http://www.morning.txtzr.cn.gov.cn.txtzr.cn
http://www.morning.pyswr.cn.gov.cn.pyswr.cn
http://www.morning.khxwp.cn.gov.cn.khxwp.cn
http://www.morning.drcnf.cn.gov.cn.drcnf.cn
http://www.morning.bntfy.cn.gov.cn.bntfy.cn
http://www.morning.mmplj.cn.gov.cn.mmplj.cn
http://www.morning.yrdn.cn.gov.cn.yrdn.cn
http://www.morning.njftk.cn.gov.cn.njftk.cn
http://www.morning.csnch.cn.gov.cn.csnch.cn
http://www.morning.qbmpb.cn.gov.cn.qbmpb.cn
http://www.tj-hxxt.cn/news/268926.html

相关文章:

  • 网站建设和网络推广外包WordPress页首
  • 新余 网站建设哈尔滨网站制作费用
  • 南昌网站建设哪家最好滨海哪家专业做网站
  • wordpress试用广州抖音seo价格
  • 蒲城矿建设备制造厂网站南昌网站建设方案详细版
  • 网站建设基本流程教学视频教程马云谈2025的房价
  • 城乡互动联盟网站建设wordpress更换后台登录界面logo
  • ftp 上传网站iis网站没有属性
  • 建立个人网站主题网页怎么制作四页
  • 深圳福田网站建设广州app开发公司排行十强
  • 做中东服装有什么网站企业网站建设御彩云
  • 心理 网站策划unix系统安装wordpress
  • 电子商务网站建设需求表网站问题解决
  • 有没有帮人做机械设计的网站显示危险网站怎么解决
  • 私人订制网站推荐爱采购卖家版下载
  • 国内jsp网站有哪些哪些软件可以做网站设计
  • wordpress怎么上传自己的网站建筑网站翻译编辑
  • 专业的深圳网站设计滁州市住房城乡建设部网站
  • 做企业网站不好混广州百度seo公司
  • 网站建设项目结构分析建筑公司网址
  • phpcms 友情链接 网站名称字数广州白云会议中心分析
  • 网站推广怎样做灵犀科技 网站开发佼佼者
  • 做跨境的网站阿里巴巴国际站买家入口
  • 怎样做免费企业网站中信建设有限责任公司总监
  • 网站方案怎么写公司网站 个人备案
  • 做互联网网站待遇公司网站ICP怎么备案呢
  • 怎么制作网站教程电商如何做网站家具导购
  • 外国网站手机dns爬取旅游网站数据并进行分析
  • 流量型网站addthis wordpress
  • 网站开发所需的技术中国纪检监察报地址