解决常见的Android问题

常见问题:

1、查杀:

查杀一般分为两个方向一种是内存不足的查杀,一种的是因为温度限频查杀,统称为内存查杀,两个问题的分析思路不同

1、内存不足查杀:

主要是因为当用户出现后台运行多个APP或者是相机等消耗内存较大的进程的时候就会出现应用查杀情况

2、温度限频查杀:

温度限频查杀主要是根据查杀的内存占比和被杀时出现的log日志来决策的

总结:

两种不同的查杀应该座位不同的处理方式前期思路是一样的,后期分析不同

前期思路:

1、查杀应用

2、查杀时间

3、查杀的关键字

4、为什么被查杀

5、内存紧张查杀&温度查杀

2、ANR:

ANR一般常见的问题都是因为主线程持锁阻塞问题导致的,或者是网络问题导致出现的ANR问题或者是IO占比过高导致出现的ANR问题:

主线程持锁问题就需要从ANR日志里查看是什么问题在进行处理

查杀:

1、什么事查杀问题:

查杀主要是根据用户的启动模式来判断,测试会根据启动一个应用后,把应用退出后台,然后启动其他应用,然后再次打开首次应用,如果首次应用是冷启动,就可以判断为被杀了

1.1、如何看查杀:

log个问题的存放地

一般打开从jira上下载下来的log基本上都差不多,但是主要的log还是要在bugreport里面

解压后会出现主要查看的是这两个文件

bugreport这个文件是手机log,从这里可以看到用户操作手机的时间节点

dumpstate_board这个文件里面是手机的壳温度

开始查看bugreport文件

DUMP OF SERVICE CRITICAL cpuinfo:

这个标题主要是看总体CPU占比的

从截图上可以看到占比system_server占比CPU过高

下面开始查看查杀关键字

1. am_proc_died:进程被杀死的时间

有进程被杀时间点及原因包名,则直接搜索

am_proc_died: [0,[0-9]*,xxxx,,xxxx//代表包名----这是个样式模版

例子:

03-25 16:14:01.357 1000 2215 6034 I am_proc_died: [0,31528,com.tencent.mobileqq,702,10]

解释:

这条日志信息来自 Android 操作系统,指示一个名为 "com.tencent.mobileqq" 的进程 ID 为 31528 的进程已经终止。消息开头的 "I" 代表 "Info",表示这是一条信息性消息。消息还包括检测到该进程死亡的进程 ID(1000),父进程 ID(2215)和线程 ID(6034)。消息末尾的数字 "702" 和 "10" 是额外的信息,它们的含义如下: - 702:该进程的退出码。在 Unix 系统中,进程退出时会返回一个整数值,称为退出码。退出码通常用于指示进程的退出状态,例如是否成功完成任务等等。在这种情况下,退出码为 702,但具体含义需要查看该进程的文档或代码才能确定。 - 10:该进程的进程组 ID。在 Unix 系统中,每个进程都属于一个进程组,进程组 ID 用于标识该进程所属的进程组。在这种情况下,进程组 ID 为 10。

2.然后再查找一下进程的开始时间:

am_proc_start:[0,[0-9]*,xxxx,,xxxx//代表包名----这是个样式模版

03-25 16:14:01.357 1000 2215 6034 I am_proc_start: [0,31528,com.tencent.mobileqq,702,10]

解释:

开始的解释和结束的解释基本都差不多只是开头不同一样

03-25 16:14:00.945 1000 2215 4559 I am_kill : [0,3469,com.milink.service:core,935,camera boost,114948] 03-25 16:14:00.959 1000 2215 4559 I am_kill : [0,405,com.tencent.mobileqq:privileged_process0,905,camera boost,214012] 03-25 16:14:00.980 1000 2215 6038 I am_proc_died: [0,3469,com.milink.service:core,935,19] 03-25 16:14:00.987 1000 2215 4559 I am_kill : [0,32522,com.tencent.mobileqq:tool,905,camera boost,353896] 03-25 16:14:00.996 1000 2215 4559 I am_kill : [0,31528,com.tencent.mobileqq,702,camera boost,456120]

解释:

根据您提供的日志信息,可以看出应用程序 com.tencent.mobileqq 及其相关进程被标记为 "camera boost" 并被终止了。这种终止可能是由系统的内存管理策略触发的,系统可能认为这些进程正在消耗过多的系统资源,特别是与相机相关的资源,因此将它们终止以释放内存和其他系统资源。

从被查杀的地方开始查找一些信息从而就能知道为什么被查杀

总结:

一般应用被查杀主要原因都会提现到被查杀的时候,查杀的思路就是看进程是因为什么被杀的

开始查看dumpstate_board文件

一般来看这种文件主要是因为查杀的时候显示因为高温限频被查杀,或者是页面出现卡顿也有可能是高温导致的所以一把情况这个时候都是需要让热或者是功耗帮忙看一下是否正常或者是否能修复

用上面这张图片举例子

如何查看是不会因为高温导致的卡顿就需要看壳温和限频

VIRTUAL-SENSOR(壳的温度) 24977(24°)

lmh_cpu7(CPU限频,手机CPU0-7) 0(限频的大小)

总结:

如果是因为手机高温限频锁导致的查杀或者是卡顿问题,这个时候就需要找热或者是功耗人员看一下是什么情况是否正常了,

ANR分析方案

如果是ANR问题我们就需要从ANR日志中获取原因

ANR日志一把都会存放在:

data

anr

对照的ANR出现的时间进行查看是什么问题

分析ANR持锁的问题:

查看ANR问题主要看是不是有lock <0x04da9bd0>这样的关键字,如果有就看一下后面的id 这个截图的id是83 那我们就去下面找一下id=83的进程

从下面的log可以看出主要的原因是因为闹钟导致的主线程阻塞出现的ANR问题这个时候就需要请相关的业务人员帮忙看一下,为什么阻塞了

这张图片主要是因为应用无响应导致出现的ANR问题

在这个日志中,有几个关键字可以指示是因为应用无响应导致的ANR:

  1. "ANR in" 或 "Application Not Responding":通常出现在日志开头,表示应用无响应。

  2. "Blocked" 或 "BlockedReason":表明线程被阻塞,无法继续执行。

  3. "Native":表示线程处于本地代码(Native)执行的状态,可能是因为执行了耗时的本地操作导致的阻塞。

  4. "main" 或 "主线程":表示主线程被阻塞,主线程的阻塞是导致应用无响应的主要原因之一。

  5. "Cmd line":显示应用的命令行,有助于确定是哪个应用发生了ANR。

  6. "DALVIK THREADS" 或 "ART THREADS":显示了当前进程中的线程信息,可以检查是否有线程长时间被阻塞。

在这个日志中,可以看到主线程("main")被阻塞,而且是在执行应用的代码("com.fy.zdxs.mi")时发生的,这些都是指示应用无响应的关键字。

出现的常见GC问题

最近出现抖音内存泄漏长时间GC导致出现的卡顿问题,从log上如何查看是因为GC问题导致的抖音出现的卡顿或者是ANR问题

从上面的截图可以看到进程后有个GC 大写的 这个明显是抖音内存泄漏导致的问题像类似的问题需要找系统稳定性,三方兼容帮忙看一下

思路:

查看是不是GC问题,需要查看时间和进程名称,然后看一下GC数量在确定是不是GC问题,还有要看看是不是GC回收时间较长倒是出现的ANR问题

每个GC回收都会有相关的回收内存的大小和回收的时间,可以根据时间的长短来进行查看,是不是GC时间过长

查看每个进程占比内存的大小

am_pss----每个进程在不同的时间节点出现的内存占比

[PID, UID, 进程名称, PSS总内存, 分配总内存, 分配内存, Native Heap, Dalvik Heap, 其他, PSS的次数, 最后 PSS 的次数]

am_pss : [24149,10156,com.google.android.googlequicksearchbox:search,69756928,48447488,14669824,128151552,0,3,12]

参考文档:

1、学习文章

https://www.jacpy.com/2017/04/24/android-anr-thread-lock-analysis.html

2、学习文章:

https://segmentfault.com/a/1190000040142277

NAR教学:

https://www.cnblogs.com/huansky/p/13944132.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/10481.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汇昌联信科技:拼多多可以做无货源吗?

在探讨电商平台的经营模式时&#xff0c;"无货源"这一概念经常被提及。它指的是卖家在不需要事先囤积大量商品的情况下&#xff0c;通过与供应商的合作&#xff0c;直接将订单信息传递给他们&#xff0c;由供应商完成发货的过程。针对“拼多多可以做无货源吗?”这一…

内网渗透之如何批量PTH获取主机权限?

—— 利用CrakMapExec工具进行全网段批量PTH CrackMapExec&#xff08;CME&#xff09;是一款后渗透利用工具&#xff0c;可帮助自动化大型活动目录(AD)网络安全评估任务。其缔造者byt3bl33d3r称&#xff0c;该工具的生存概念是&#xff0c;“利用AD内置功能/协议达成其功能&…

【练习2】

1.汽水瓶 ps:注意涉及多个输入&#xff0c;我就说怎么老不对&#xff0c;无语~ #include <cmath> #include <iostream> using namespace std;int main() {int n;int num,flag,kp,temp;while (cin>>n) {flag1;num0;temp0;kpn;while (flag1) {if(kp<2){if(…

2024数维杯B题详细思路代码数学建模高质量保姆级

2024年第九届数维杯大学生数学建模挑战赛题目 B 题 生物质和煤共热解问题的研究 &#xff08;1&#xff09;基于附件一&#xff0c;请分析正己烷不溶物(INS)对热解产率&#xff08;主要 考虑焦油产率、水产率、焦渣产率&#xff09;是否产生显著影响&#xff1f;并利用图像 加…

工业机器人应用实践之玻璃涂胶(篇二)

工业机器人 接上篇文章&#xff0c;浅谈一下实践应用&#xff0c;具体以玻璃涂胶为例&#xff1a; 了解工业机器人在玻璃涂胶领域的应用认识工具坐标系的标定方法掌握计时指令的应用掌握人机交互指令的应用掌握等待类指令用法&#xff08;WaitDI、WaitUnitl 等&#xff09;认…

n5.树(中)

1、二叉树的遍历 1.1先序、中序、后序遍历 先序遍历 根->左->右 先序遍历先访问根节点&#xff0c;再访问它的左子树&#xff0c;然后访问它的右子树。对于每次访问到的结点&#xff0c;都要递归地访问左子树、后右子树———递归。 创建 typedef struct TreeNode*…

飞跨电容型的三电平(FC-NPC)逆变器simulink仿真模型

本人搭建了飞跨电容型的三电平逆变器simulink仿真模型&#xff0c;相较于二极管钳位型三电平逆变器而言&#xff0c;钳位二极管变为飞跨的电容。采用SPWM调制和均流均压控制&#xff0c;通过搭建仿真模型得到三电平波形。 三电平拓扑中的飞跨电容是指在电路的输出端使用电容来实…

书生作业:LMDeploy

自己随便说几句。 关于模型部署&#xff0c;很有趣的一件事就是&#xff0c;它一路随着深度学习训练一起发展&#xff0c;尽管例如tensorrt等工具的出现&#xff0c;不断试图降低部署门槛&#xff0c;但是实际上&#xff0c;每一次AI的升级&#xff0c;似乎让这个细分领域没有…

图片格式不对怎么转换?推荐几个图片转换的高效处理方法

在日常使用电脑或处理图片的过程中&#xff0c;我们经常会遇到图片格式不兼容的问题&#xff0c;例如&#xff0c;我们可能收到了一个无法打开的图片文件&#xff0c;或者想将图片转换为其他格式以便在不同的应用程序中使用&#xff0c;这时候就需要将图片转格式&#xff0c;所…

如何让组织充满活力?你需要做好这七步

组织活力&#xff0c;通俗点说就是&#xff1a; 从竞争对手角度看&#xff0c;组织活力强的组织能做到竞争对手做不到的事情&#xff1b; 从客户角度看&#xff0c;组织活力强的组织&#xff0c;客户感受好&#xff1b; 从员工角度看&#xff0c;组织活力强的组织&#xff0c…

基于单片机的直流电机检测与控制系统

摘要&#xff1a; 文章设计一款流电机控制系统&#xff0c;以 STC89C51 作为直流电机控制系统的主控制器&#xff0c;采用 LM293 做为驱动器实现 对直流电机的驱动&#xff0c;采用霍尔实现对直流电机速度的检测&#xff1b;本文对直流电机控制系统功能分析&#xff0c;选择确…

WAAP全站防护理念,发现和保护敏感数据

数据是现代企业的新石油&#xff1a;正确使用它可以促进公司的发展并帮助企业在竞争中领先。就像石油一样&#xff0c;原始数据和未被发现的数据是毫无用处的&#xff0c;企业将无法从中受益&#xff1b;在最坏的情况下&#xff0c;它可能会导致安全事件。这也是企业投资敏感数…

A计算机上的程序与B计算机上部署的vmware上的虚拟机的程序通讯 如何配置?

环境&#xff1a; 在A计算机上运行着Debian11.3 Linux操作系统&#xff1b;在B计算机上运行着Windows10操作系统&#xff0c;并且安装了VMware软件&#xff0c;然后在VMware上创建了虚拟机C并安装了CentOS 6操作系统 需求&#xff1a; 现在A计算机上的程序需要同虚拟机C上的软…

【负载均衡式在线OJ项目day6】源文件路由功能及文件版题库构建

一.前言 前文讲到了OJ模块的设计思路&#xff0c;毫无疑问这是一个网络服务&#xff0c;我们先使用httplib&#xff0c;将源文件的路由功能实现&#xff0c;先把框架写好&#xff0c;后续再更改回调方法。 随后计划编写Modify模块&#xff0c;提供增删查改题库的功能(主要是查…

【贪心算法】最小生成树Kruskal算法Python实现

文章目录 [toc]问题描述最小生成树的性质证明 Kruskal算法Python实现时间复杂性 问题描述 设 G ( V , E ) G (V , E) G(V,E)是无向连通带权图&#xff0c; E E E中每条边 ( v , w ) (v , w) (v,w)的权为 c [ v ] [ w ] c[v][w] c[v][w]如果 G G G的一个子图 G ′ G^{} G′是…

acer笔记本怎样进行系统还原?教你两招!

acer笔记本怎样进行系统还原&#xff1f;教你两招&#xff01; 作为笔记本用户&#xff0c;你在日常使用中可能会遇到各种各样的电脑问题。一般来说&#xff0c;对于一些小问题&#xff0c;我们可以通过一些简单的操作来解决&#xff0c;比如重新启动电脑或者长按电源键强制关机…

提高静态住宅代理稳定性妙招

在数字化时代的浪潮中&#xff0c;静态住宅代理因其独特的优势&#xff0c;如固定的IP地址、更高的隐私保护性等&#xff0c;逐渐成为网络爬虫、数据分析等领域不可或缺的工具。然而&#xff0c;静态住宅代理的稳定性问题一直是用户关注的焦点。本文将为您揭示提高静态住宅代理…

docker compose kafka集群部署

kafka集群部署 目录 部署zookeeper准备工作2、部署kafka准备工作3、编辑docker-compose.yml文件4、启动服务5、测试kafka6、web监控管理 部署zookeeper准备工作 mkdir data/zookeeper-{1,2,3}/{data,datalog,logs,conf} -p cat >data/zookeeper-1/conf/zoo.cfg<<EOF…

JS代码随想录(一):数组

代码随想录 一、数组理论基础 二、LeetCode 704. 二分查找 三、LeetCode 27. 移除元素 四、LeetCode 977.有序数组的平方 五、LeetCode 209.长度最小的子数组 六、LeetCode 59.螺旋矩阵II 七、数组总结 一、数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合。 数组…

boost asio同步编程(附源码api)

首先注明&#xff0c;这里我写的都是关于tcp的通信。 通信大致流程 创建端点 创建tcp端点的api是boost::asio::ip::tcp::endpoint; 当然创建udp端点的api则是boost::asio::ip::udp::endpoint; 是一个表示 TCP/UDP 端点的类&#xff0c;在 Boost.Asio 库中用于网络编程。它通…