Android SystemServer ANR总结

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

在Android 中SystemServer的ANR多发现于Monkey测试中,用户的操作引发SystemServer ANR的概率反而不高。

SystemServer的进程名system_server

 在抓取的ANR log,SystemServer的ANR log

----- pid 2803 at 2018-01-01 00:04:51 -----
Cmd line: system_server
Build fingerprint: '.......'
ABI: 'arm64'
Build type: optimized
Zygote loaded classes=11522 post zygote classes=2718
Intern table: 80959 strong; 1881 weak
JNI: CheckJNI is off; globals=1279 (plus 86 weak)
Libraries: /system/lib64/libandroid.so /system/lib64/libandroid_servers.so /system/lib64/libcar-framework-service-jni.so /system/lib64/libcompiler_rt.so /system/lib64/libjavacrypto.so /system/lib64/libjnigraphics.so /system/lib64/libsoundpool.so /system/lib64/libwebviewchromium_loader.so /system/lib64/libwifi-service.so libjavacore.so libopenjdk.so (11)
Heap: 17% free, 26MB/32MB; 246617 objects
Dump
干货:ANR日志分析全面解析 业界在如何解决和避免ANR问题上已经有较多博文,但是在如何分析ANR日志上很少有全面完备的阐述。本文系统总结了分析ANR日志的技巧,阅读本文将获得快速分析线上ANR日志的能力。 阅读详情

相关推荐

Androidsystem_server 创建和启动流程

SystemServer进程的创建和启动流程 在将SystemServer的启动流程之前,先回顾一下上一篇章的内容: 上篇文章中,我们介绍了从init进程到zygote进程再到SystemServer进程开始创建的流程,大致是这样的: 1、执行app_main.cpp文件的main方法(init进程中) 2、main方法中初始化AndroidRuntime 3、执行runtime.start()启动Android运行时环境,其中,start()方法内部通过startVM方法创建了虚拟机,通过startReg

yang553566463的博客 5092

Android12 ANR

本文重点分析Android-S中的ANR原理和实现。

OneSea 2600

Android7.0 系统启动流程---system_server

今天主要分析Android启动流程,重点是system_server相关知识。一、Android系统启动流程Android正常启动流程如下: Step1 系统加电,执行bootloader。Bootloader负责初始化软件运行所需要的最小硬件环境,最后加载内核到内存。 Step2 内核加载进内存后,将首先进入内核引导阶段,在内核引导阶段的最后,调用start_kenel进入内核启动阶段。s

Frakie_Kwok的专栏 4522

Android-4.0.3_r1 ANR

本文重点介绍Android ANR的表现、原理以及规避或解决方法。

OneSea 580

你真的会解决android ANR 问题吗?

ANR 详解思路,案例。

android 系统定制开发那些事 9262

ANR问题分析

ANR概念 ANR(Application Not Responding) 应用程序无响应。如果应用程序在UI线程被阻塞太长时间,就会出现ANR,通常出现ANR,系统会弹出一个提示提示框,让用户知道,该程序正在被阻塞,是否继续等待还是关闭。 出现ANR必须解决 ANR类型 为什么出现ANR 1:主线程频繁进行耗时的IO操作:如数据库读写 2:多线程操作的死锁,主线程被block;held by 3:主线程被Binder 对端block; 4:System Server中WatchDog出现ANR; 5:se

yzpbright的博客 2693

system server ANR 一种分析方法 -- Android JVM异常重启简析

SYSTEM SERVER进程ANR 一般会导致java vm不停重启,还好保留了自动打印log到文件中的方法,出现这种概率性问题,从log入手就简单多了。   1. 找到SYSTEM server的PID,一般在logcat中会有这么一句      System server process 2094 has been created;  2094就是你需要的PID 2. 根据pid去搜

dzhj11的专栏 1002

android 性能优化—ANR

这不是死锁,也不是内存抖动,而是 SystemUI 主线程在「给反射方法排序」时 CPU 被吃光,输入事件 5 秒得不到处理,被系统判为输入 ANR;把反射+排序移出主线程并加缓存即可根治。

luck_xiang的博客 788

Android稳定性(一)SWT/ANR

一、SWT SWT:software watchdog,监控SystemServer进程,保证核心服务和核心进程卡住后可以复位。 注意:SWT启动是在SystemServer init 的后期, 如果SystemServer在init的过程中卡死了,意味着watchdog不会起作用。 <1>watchdog原理: Android的Watchdog是一个单例线程,在SystemServer启动的startOtherServices()中就会init &start Watchdog。 wat

berg_的博客 2863

Android System ANR caused SWT restart issue

一、问题现象 1、用户直观看到的现象是SystemANR。 2、ANR之后系统重启。 测试方法: 在录音的界面不停的滑动音量进度条,同时座机给测试机打电话,电话没有接通,只见界面冻结,弹出ANR,接着系统重启。 Platform:MT6732 Android版本:4.4.4KK BuildType...

weixin_34416754的博客 109

Android系统异常问题处理全攻略:从死机重启到日志分析,手把手教你构建排查体系

本文总结了Android系统开发中常见卡死、重启问题的解决方案。首先将系统异常分为五类(Java Crash、ANR、Native Crash等),并指出各类型对应的关键日志位置。文章详细讲解了ANR判定机制和Watchdog工作原理,强调日志收集的三板斧:常规Logcat、ANR traces文件、墓碑文件和内核日志。通过代码示例展示如何主动捕获异常并生成日志,最后结合Camera死锁案例说明分层定位和日志分析的方法论。核心观点是遇到问题先收集日志而非盲目复现,通过分层定位和模拟测试逐步逼近问题根源。

小羊子的技术专栏 1023

Android Framework 开发工程师

【摘要】本文详细介绍了Android Framework开发工程师的岗位职责和任职要求,重点解析了面试中可能涉及的10大技术领域。内容包括Android系统架构、核心服务(AMS/WMS/PMS/IMS)、JNI与Binder机制、系统关键应用、稳定性问题分析、性能优化、多线程开发等关键技术点。针对每个技术领域提供了典型面试题及详细参考答案,如系统启动流程、内存泄露分析、ANR问题排查等。同时涵盖了接口设计、技术文档编写等软技能要求,以及综合问题分析能力的考察。

郑伟强dev的专栏 304

Android ANR实战:从日志分析到快速定位问题的5个技巧

本文为Android开发者提供了一套实战性极强的ANR问题定位技巧。文章深入解析了traces.txt日志的核心结构,教授如何甄别有效线索,并总结了主线程同步I/O、锁竞争、密集计算和Binder调用阻塞四种常见阻塞模式。通过结合系统级日志分析与代码审查策略,帮助开发者快速定位并预防ANR问题,提升应用稳定性。

weixin_29300931的博客 593

Android Stability test occured SWT restart issue

一、问题现象 1、SystemANR。 2、ANR之后系统重启。 测试方法: Stability test。 Platform:MT6732 Android版本:4.4.4KK BuildType:user 系统软件版本:D17+ZX 系统RAM:1GB 问题概率:暂未统计,截止到目前仅此1次...

weixin_33859665的博客 171

安卓StartService启动过程分析

安卓StartService启动过程分析

似霰的博客 1177

framework 级影响Android 各种性能响应时间相关

Android6.0系统 以上 1:影响APP启动, 发起启动APP进程到systemserver 解析得到resolve 包信息把启动命令写入到zygote 后,进入阻塞等待状态会等待 zygote 的返回值。目前这块原生代码没有超时处理。 [-> Process.java] private static ProcessStartResult zygoteSen

hubinbin595959的专栏 1194

深入理解android 5 源代码,第5章 深入理解Android输入系统

#### 本章主要内容:- 研究输入事件从设备节点开始到窗口处理函数的流程- 介绍原始输入事件的读取与加工的原理- 研究事件派发机制- 讨论事件在输入系统与窗口之间的传递与反馈的过程- 介绍焦点窗口的选择、ANR的产生以及以软件方式模拟用户操作的原理#### 本章涉及的源代码文件名及位置:- SystemServer.java`frameworks\\base\\services\\java\\c...

weixin_34580074的博客 145

Android Framework对安卓人会产生什么影响?

从做Android的第一天起,你一定听过无数次关于Framework的讨论,也曾在这个版块被面试官吊锤N次。掉帧监控,函数插桩,慢函数检测,ANR 监控,启动监控,都需要对 Framework 有比较深入的了解,才能知道怎么去监控,利用什么机制监控,函数插桩插到哪里,反射调用该反射哪个类哪个方法哪个属性……Framework 作为 Android 框架层,为众多App提供...

郭霖 325
上一篇: Android Bootchart使用经验
下一篇: android 打印nsecs_t
dzy_mails
博客等级 码龄14年 42粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值