标签:冗余 警戒线 算法 智能 系统 服务架构 效率 大内存 执行时间
专项分类
一、专项性能 - 内存
1. OOM:一次性分配内存不足,超过Android进程最大内存限制,挤爆内存。持续内容泄漏导致内存不足。
2. Low Memory Killer:手机剩余内存低于警戒线后,Low Memory Killer会在后台钉死占用内存较多的进程。
3. 频繁GC:JVM虚拟机在进行GC时,除GC线程外其他线程挂起状态。内存使用不当,导致频繁GC引起卡顿。
二、专项性能 - CPU
1. CPU冗余使用:代码写得烂,算法不高效,变量类型不合理,给CPU带来额外负担,不仅执行效率低还耗电高
2. CPU资源争抢:抢占主线程CPU资源引起UI卡顿,CPU核心数与线程数不匹配导致效率低下
3. CPU利用率低:CPU利用率低导致执行时间长,如:单线程、同步初始化导致启动时间长
三、专项性能 - 网络流量
1. Round-Trip Time(RTT,往返时延):主要决定依赖接口资源的页面加载时间,受网络、服务架构等方面影响
2. 请求流量带宽:用户和公司都要为流量资费买单;流量同样影响RTT。
四、专项性能 - 加载时间
页面首次渲染主题结构和静态内容(T1)、网络请求动态数据内容(T2)、重新渲染填充动态数据内容(T3),页面加载总时长=T1 + T2 + T3
五、UI卡顿
低于24FPS人眼会感知不连续;低于30FPS无法表达绚丽画面。CPU问题(不必要的布局和时效)、GPU问题(过度绘制)会造成UI卡顿。
六、启动时间
1. 冷启动
2. 热启动
3. 首次启动
七、稳定性
1. Monkey
2. 智能遍历:根据深度优先或广度优先算法遍历点击页面中的元素,目的以尽可能多点击APP中的元素,看哪里会出现异常
3. 弱网测试:模拟不同带宽和丢包率的弱网络环境下APP的运行状态,常与UI自动化结合。
八、兼容性
1. 品牌
2. 系统
3. 分辨率
九、安全性
1. 敏感信息加密:对敏感信息比如账号密码进行加密存储,避免明文存储。敏感信息传输加密,并采用https安全协议等。
2. 代码混淆:将程序代码转换成一种功能上等价但难于阅读和理解的形式的行为。如变量、函数、类的名字改写成无意义的名字,将for循环改写成while循环,将循环改写成递归,精简中间变量等。
3. APK加壳:加壳程序可以有效阻击对程序的反汇编分析,从而保护软件版权,防止被破解。Android Dex文件加壳,一般需要加壳程序、解壳程序和源程序。
工具集
工具集 | 内存 | CPU | 流量 | 流畅度 | 耗电量 |
发现问题 | adb shell dumpsys meminfo | grep packagename | adb shell dumpsys cpuinfo | grep packagename |
adb shell cat /proc/uid_stat/<UID>/tcp_rcv adb shell cat /proc/uid_stat/<UID>/tcp_snd |
adb shell dumpsys gfxinfo adb shell dumpsys SufaceFlinger |
Battery Historian |
定位问题 |
Memory Monitor MAT LeakCanary |
TraceView Systrace |
Wireshark |
Hierarchy Viewer CPU过度绘制检测 |
Battery Historian |
标签:冗余 警戒线 算法 智能 系统 服务架构 效率 大内存 执行时间
原文地址:https://www.cnblogs.com/sunada2005/p/9565963.html