解决常见的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.rhkb.cn/news/325266.html

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

相关文章

Verlog-串口发送-FPGA

Verlog-串口发送-FPGA 引言&#xff1a; ​ 随着电子技术的不断进步&#xff0c;串口通信已成为嵌入式系统和计算机外设中一种广泛使用的异步通信方式。串口通信因其简单性、可靠性以及对硬件资源的低要求&#xff0c;在数据传输领域扮演着重要角色。在FPGA&#xff08;现场可编…

AcwingWeb应用课学习笔记

y总Web课链接&#xff1a; VSCode自动格式化 选中Format On Save不起作用 在设置中搜索default formatter&#xff0c;修改成Prettier-Code formatter 标签 文本标签虽然很多&#xff0c;但大部分可看成是预定好样式的<div>和<span>。&#xff08;div也是由sp…

关于一致性,你该知道的事儿(下)

关于一致性&#xff0c;你该知道的事儿&#xff08;下&#xff09; 前言一、并发修改单个对象1.1 原子写操作1.2 显示加锁1.3 原子的TestAndSet1.4 版本号机制 二、 多个相关对象的一致性2.1 最大努力实现2.2 2PC && TCCC2.3.基于可靠消息的一致性方案2.4.Saga事务 三、…

ntfs文件系统的优势 NTFS文件系统的特性有哪些 ntfs和fat32有什么区别 苹果电脑怎么管理硬盘

对于数码科技宅在新购得磁盘之后&#xff0c;出于某种原因会在新的磁盘安装操作系统。在安装操作系统时&#xff0c;首先要对磁盘进行分区和格式化&#xff0c;而在此过程中&#xff0c;操作者们需要选择文件系统。文件系统也决定了之后操作的流程程度&#xff0c;一般文件系统…

基于opencv的车辆统计

车辆统计&#xff09; 一、项目背景二、整体流程三、常用滤波器的特点四、背景减除五、形态学开运算闭运算 六、项目完整代码七、参考资料 一、项目背景 检测并识别视频中来往车辆的数量 最终效果图&#xff1a; 二、整体流程 加载视频图像预处理&#xff08;去噪、背景减除…

picoCTF-Web Exploitation-Most Cookies

Description Alright, enough of using my own encryption. Flask session cookies should be plenty secure! server.py http://mercury.picoctf.net:53700/ Hints How secure is a flask cookie? 我们先下载server.py&#xff0c;分析逻辑 from flask import Flask, render…

【智能算法】鹭鹰优化算法(SBOA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2024年&#xff0c;Y Fu受到自然界中鹭鹰生存行为启发&#xff0c;提出了鹭鹰优化算法&#xff08;Secretary Bird Optimization Algorithm, SBOA&#xff09;。 2.算法原理 2.1算法思想…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-15.5讲 GPIO中断实验-通用中断驱动编写

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

C++:友元

友元&#xff08;friend&#xff09;是 C 中的一个关键字&#xff0c;用于建立类之间的友好关系&#xff1b;通过友元关系&#xff0c;一个类可以授权其他类或函数访问其私有成员或受保护成员&#xff0c;从而突破了 C 中的封装性&#xff1b;友元可以是类或函数&#xff0c;可…

css案例 tab上下滚动,左右滚动

效果图&#xff1a; 完整代码&#xff1a; <template><view class"content"><view class"content-item"><view class"content-title"><h4>美食热搜</h4><ul><li>火鸡面</li><li>糖…

Java---类和对象第一节

目录 1.面向对象初步认识 1.1什么是面向对象 1.2面向对象和面向过程的区别 2.类的定义和使用 2.1简单认识类 2.2类的定义格式 2.3类的实例化 2.4类和对象的说明 3.this关键字 3.1访问本类成员变量 3.2调用构造方法初始化成员变量 3.3this引用的特性 4.对象的构造以…

MES系统与WMS集成方法(满分100学习资料)

导语 大家好&#xff0c;我是智能仓储物流技术研习社的社长&#xff0c;老K。专注分享智能仓储物流技术、智能制造等内容。 新书《智能物流系统构成与技术实践》 完整版文件和更多学习资料&#xff0c;请球友到知识星球【智能仓储物流技术研习社】自行下载 这份文件是关于MES系…

运用分支结构与循环结构写一个猜拳小游戏

下面我们运用平常所学的知识来写一个小游戏&#xff0c;这样能够加强我们学习的趣味性&#xff0c;并且能够更加的巩固我们所学的知识。 游戏代码&#xff1a; 直接放代码&#xff1a;&#xff08;手势可以使用数字来代替&#xff0c;比如0对应石头&#xff0c;1对应剪刀&…

Sass深度解析:性能优化的秘密

首先&#xff0c;这篇文章是基于笔尖AI写作进行文章创作的&#xff0c;喜欢的宝子&#xff0c;也可以去体验下&#xff0c;解放双手&#xff0c;上班直接摸鱼~ 按照惯例&#xff0c;先介绍下这款笔尖AI写作&#xff0c;宝子也可以直接下滑跳过看正文~ 笔尖Ai写作&#xff1a;…

Linux的基础IO:软硬连接 动态库 静态库

目录 软硬连接 硬链接的作用 静态库 制作静态库 安装自定义静态库 动态库 制作动态库 协助OS查找动态库的五种方法 总结 动态库加载 软硬连接 创建硬链接指令&#xff1a;ln 目标文件 链接者 创建软链接指令&#xff1a;ln -s 目标文件 链接者 删除链接指令&…

【管理咨询宝藏96】企业数字化转型的中台战略培训方案

本报告首发于公号“管理咨询宝藏”&#xff0c;如需阅读完整版报告内容&#xff0c;请查阅公号“管理咨询宝藏”。 【管理咨询宝藏96】企业数字化转型的中台战略培训方案 【格式】PDF版本 【关键词】SRM采购、制造型企业转型、数字化转型 【核心观点】 - 数字化转型是指&…

苹果电脑MAC清理系统空间工具CleanMyMacX4.15.3中文版下载

苹果电脑以其出色的性能、优雅的设计和高效的操作系统而受到许多用户的喜爱。然而&#xff0c;随着时间的推移和使用量的增加&#xff0c;你可能会发现你的Mac开始变得缓慢和响应迟缓。这通常是因为硬盘空间被大量占用&#xff0c;影响了系统的整体性能。幸运的是&#xff0c;有…

03.Linux文件操作

1.操作系统与Linux io框架 1.1 io与操作系统 1.1.1 io概念 io 描述的是硬件设备之间的数据交互&#xff0c;分为输⼊ (input) 与输出 (output)。 输⼊&#xff1a;应⽤程序从其他设备获取数据 (read) 暂存到内存设备中&#xff1b;输出&#xff1a;应⽤程序将内存暂存的数据…

蛋糕店做配送小程序的作用是什么

蛋糕烘焙除了生日需要&#xff0c;对喜吃之人来说往往复购率较高&#xff0c;除线下实体店经营外&#xff0c;更多的商家选择线上多种方式获客转化、持续提高生意营收&#xff0c;而除了进驻第三方平台外&#xff0c;构建品牌私域自营店铺也同样重要。 运用【雨科】平台搭建蛋…

zookeeper安装集群模式

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 ZooKeeper是一个分…