一个应用程序的性能问题体现在很多方面,app的性能问题,很大程度上决定了使用app的用户量,如果正在使用app的过程中出现app崩溃、卡顿半天加载不出数据(跟网络也有一定的关系)、用户请求事件半天获取不到相应的数据,则用户的内心都崩溃了,前期的性能问题导致的用户流失,从而降低品牌口碑使CPA(每用户获取成本)提高,因此作为测试人员,我们有义不容辞的责任在早期尽量多的爆出app性能问题,检测性能问题的方式:1、凭个人直观感受,下面将大概列举了几类,2、使用性能测试工具,如:腾讯的gt、腾讯的wetest(wetest主打测试游戏的性能,但是也可测试一般应用的性能,使用:客户端性能测试---通用性能测试,可得到具体的测试报告,包括cpu占用率、pss、fps等等),性能问题不达标及时督促研发进行性能优化,更好的提升app的性能,不过值得注意的是,不是所有的性能问题都是必须进行优化的,应根据实际情况评估是否需要优化,比如:不成熟的优化更容易带来伤害,实现上的问题可以通过后期的修改进行优化,遍布全局并且限制性结构上的缺陷是不容易被修改的,除非重构,因此作为开发应该在开始时就注重代码结构的设计。

  一、作为测试人员, 以下是凭个人直观感受就可以来判定app的性能问题包括:

    1、应用程序第一次启动速度慢

    2、进入到某一个界面加载速度慢

    3、启动某一个有动画效果的界面,动画执行过程加载速度慢并且有卡顿

    4、Listview列表滑动的过程中有卡顿、不流畅

    5、应用程序自定义的某特定界面执行速度慢

    6、如launcher应用界面左右滑动时效果不平滑,出现较慢的卡顿

    7、响应某一个用户事件时,长时间无响应(ANR)

    8、操作数据库时,执行大量数据的增删改查操作,执行速度较慢

    9、应用长时间后台运行后,随机出现卡顿现象

    10、太占用手机内存

    11、太耗电和流量

    12、在使用应用的过程中,点击某一个事件进入的页面出现白屏的闪动等

  二、作为测试人员,即使我们不懂代码,也不太清楚开发的代码结构是如何,具体到参数的给定、方法的调用、内存的分配等等,不懂这些也没有关系,

        但是我们应该了解app出现了性能问题,我们可以从哪些方面可以着手进行分析,从而提升我们对性能问题的定位,开发可考虑点列举如下:

    1、分析有哪些函数单次执行时间长

    2、分析哪些函数单次调用次数过多

    3、分析哪些函数总执行时间长

    4)查看某些特定类的特定方法

  三、应用层的性能优化通常可以从以下几个方面考虑: 

    1. 了解编程语言的编译原理,使用高效编码方式从语法上提高程序性能;

    2. 采用合理的数据结构和算法提高程序性能,这往往是决定程序性能的关键;

    3. 重视界面布局优化,

    4. 采用多线程、缓存数据、延迟加载、提前加载等手段,解决严重的性能瓶颈;

    5. 合理配置虚拟机堆内存使用上限和使用率,减少垃圾回收频率;

    6. 合理使用native代码;

    7. 合理配置数据库缓存类型和优化SQL语句加快读取速度,使用事务加快写入速度;

    8. 使用工具分析性能问题,找出性能瓶颈;

决定程序整体性能的仍然取决于程序的业务逻辑设计、代码的数据结构和算法

Android--app性能问题的总结(一)的更多相关文章

  1. Android APP性能分析方法及工具

    近期读到<Speed up your app>一文.这是一篇关于Android APP性能分析.优化的文章.在这篇文章中,作者介绍他的APP分析优化规则.使用的工具和方法.我觉得值得大家借 ...

  2. 十大技巧优化Android App性能

    无论锤子还是茄子手机的不断冒出,Android系统的手机市场占有率目前来说还是最大的,因此基于Android开发的App数量也是很庞大的. 那么,如何能开发出更高性能的Android App?相信是软 ...

  3. 优化Android App性能?十大技巧必知!

    无论锤子还是茄子手机的不断冒出,Android系统的手机市场占有率目前来说还是最大的,因此基于Android开发的App数量也是很庞大的.那么,如何能开发出更高性能的Android App?相信是软件 ...

  4. Android APP 性能优化的一些思考

    说到 Android 系统手机,大部分人的印象是用了一段时间就变得有点卡顿,有些程序在运行期间莫名其妙的出现崩溃,打开系统文件夹一看,发现多了很多文件,然后用手机管家 APP 不断地进行清理优化 ,才 ...

  5. 包建强的培训课程(9):Android App性能优化

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  6. Android app 性能优化的思考--性能卡顿不好的原因在哪?

    说到 Android 系统手机,大部分人的印象是用了一段时间就变得有点卡顿,有些程序在运行期间莫名其妙的出现崩溃,打开系统文件夹一看,发现多了很多文件,然后用手机管家 APP 不断地进行清理优化 ,才 ...

  7. android app性能优化大汇总

    这里根据网络上各位大神已经总结的知识内容做一个大汇总,作为记录,方便后续“温故知新”. 性能指标: (1)使用流畅度:  图片处理器每秒刷新的帧数(FPS),可用来指示页面是否平滑的渲染.高的帧率可以 ...

  8. Android App性能测试之adb命令

    本篇文章总结了Android App性能测试过程中常用的adb命令.通过这些adb命令,可以查看App的性能数据,为评判性能好坏作参考. CPU相关 显示占用CPU最大的5个应用 adb shell ...

  9. fir.im Weekly - 如何进行 Android App 性能优化

    关于 Android App 的优化,@anly-jun 用 3 个月完成了这一系列文章,从 性能分析工具 到 ANR .Layout .消除卡顿 到 内存优化.内存分析工具大概十五六篇,并对此做一个 ...

  10. Android App 性能优化实践

    本文记录了Android App优化需要用到的工具和以及在实践中的Tips.也算对我这半年来部分工作的总结. 工具 Hierarchy Viewer 是 Android SDK 自带的 Layout ...

随机推荐

  1. SpringMVC:数据绑定入门(-)

    1.数据类型,可以绑定基本数据类型,如int age,或者包装类型如:Integer age; 两者的区别:int 类型时,必填该参数,Integer 可以为空. 2.绑定数组 , 3.绑定对象. 3 ...

  2. .net c#获取自定义Attribute

    前言: 在c#开发中,有时候我们需要读取 Attribute中的信息(关于Attribute , 我自己把他理解成一个可以为类,属性标记的东西,这个标记可以为你提供一些关于类,方法,属性的额外信息) ...

  3. Socket.io文字直播聊天室的简单代码

    直接上代码吧,被注释掉的主要是调试代码,和技术选型的测试代码 var app = require('express')(); var server = require('http').Server(a ...

  4. 下载Github上某个项目的子文件夹和单个文件

    preface Github下的项目可能很大,里面有很多的子文件夹,我们可能只需要使用某个子目录下的资源,可以不用下载完整的repo就能使用. 例如,我想下载这个repo中的字典文件:https:// ...

  5. Asp.Net WebApi Swagger终极搭建

    [PS:原文手打,转载说明出处,博客园] 关于为什么用Swagger 目前稍微有点规模的公司,已经从原先的瀑布流开发到了敏捷开发,实现前后端分离,为此后端工程师只关注写好Api即可,那程序员最讨厌的就 ...

  6. R语言学习 第十一篇:日期和时间

    R语言的基础包中提供了三种基本类型用于处理日期和时间,Date用于处理日期,它不包括时间和时区信息:POSIXct/POSIXlt用于处理日期和时间,其中包括了日期.时间和时区信息.R内部在存储日期和 ...

  7. NewLife.Net——网络压测单机1.88亿tps

    NewLife.Net压力测试,峰值4.2Gbps,50万pps,消息大小24字节,消息处理速度1.88亿tps! 共集合20台高配ECS参与测试,主服务器带宽6Gbps.100万pps,16核心64 ...

  8. eclipse maven 构建简单springmvc项目

    环境:eclipse Version: Oxygen.3a Release (4.7.3a) 创建maven Project项目,目录结构 修改工程的相关编译属性 修改pop.xml,引入spring ...

  9. 去重是distinct还是group by?

    distinct简单来说就是用来去重的,而group by的设计目的则是用来聚合统计的,两者在能够实现的功能上有些相同之处,但应该仔细区分,因为用错场景的话,效率相差可以倍计. 单纯的去重操作使用di ...

  10. 基于微服务API级权限的技术架构

    一般而言,企业内部一套成熟的权限系统,都是基于角色(Role)的 访问控制方法(RBAC – Role Based Access Control),即权限 (Permission)与角色相关联,用户( ...