![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Stability
文章平均质量分 91
wd623894174
这个作者很懒,什么都没留下…
展开
-
Android Q及之后 lmkd原理
在Android O时,lmkd只是起中转作用1.ams的函数updateOomLevels通过socket把minfree和adj数据通过socket写向lmkd.lmkd判断是kernel的lowmemorykiller时,就把数据写向节点/sys/module/lowmemorykiller/parameters/adj和/sys/module/lowmemorykiller/parameters/minfree2.ams setOomAdj设置当前进程adj值(/proc/pid/adj),s原创 2021-01-12 15:43:23 · 1147 阅读 · 1 评论 -
Android O lowmemorykiller原理解析
文章目录1. LowmemoryKiller介绍1.1 为什么引入LowmemoryKiller?1.2 LMK基本原理?1.3 lmkd整体流程1.4. 查看进程adj值已经进程对应的类型2. AMS怎么调整adj和内存值minFree2.1 AMS设置minfree2.2 什么时候ams会设置lmkd的阈值3. AMS设置当前进程adj值(/proc/pid/adj)4. lmkd接收消息原理5. lmkd kernel监测系统内存1. LowmemoryKiller介绍1.1 为什么引入Lowme原创 2021-01-12 15:42:53 · 1072 阅读 · 0 评论 -
Android Watchdog介绍和实例分析
文章目录1. Watchdog是什么?2. Watchdog代码基本介绍3. 原因分析4. 实例分析例1:SystemServer Binder耗尽例2:IO阻塞例3:Thread.sleep阻塞1. Watchdog是什么?Android Watchdog主要是检测system server重要线程状态(main,android io,android display ,Activitymanager,android fg,android bg等线程 )的一种机制。发生Watchdog时会触发Andro原创 2020-08-17 16:57:20 · 2322 阅读 · 0 评论 -
ANR实例
文章目录什么是ANR?常见的原因1. 主线程耗时Blocked2. Binder耗时Blocked3. 被子线程同步锁block4. Binder线程耗尽什么是ANR?以下四个条件都可以造成ANR发生:InputDispatching Timeout:5秒内无法响应屏幕触摸事件或键盘输入事件BroadcastQueue Timeout :在执行前台广播(BroadcastReceiver)的onReceive()函数时10秒没有处理完成,后台为60秒。Service Timeout :前台服务20原创 2020-08-17 16:56:32 · 1066 阅读 · 0 评论 -
ANR trace详解
文章目录1. Trace pattern2. 解释3. 关键词对照1. Trace pattern1."Signal Catcher" daemon prio=5 tid=3 Runnable2. | group="system" sCount=0 dsCount=0 obj=0x32c050d0 self=0x7f97dd14003. | sysTid=9729 nice=0 cgrp=default sched=0/0 handle=0x7fa200e4504. | state=R sc原创 2020-08-17 16:55:58 · 4715 阅读 · 0 评论 -
Android 重启类型
文章目录1. system_server 重启2. NETD重启3. surfaceFlinger重启4. zygote 重启5. init 重启1. system_server 重启systemserver重启原理是因为zygote进程,监视所有子进程,systemserver died就会触发,zygote kill self@frameworks/base/core/jni/com_android_internal_os_Zygote.cpp//pid=-1 等待任何子进程,此时的waitp原创 2020-08-17 16:55:20 · 877 阅读 · 0 评论 -
Bugreport原理
文章目录1. bugreport2. bugreportz3. adb bugreport4. dumpstate1. bugreport2. bugreportz3. adb bugreport4. dumpstate1. bugreport编译到/system/bin/bugreport@frameworks/native/cmds/bugreport/Android.bpcc_binary { name: "bugreport", srcs: ["bugreport.cpp"]原创 2020-08-17 16:52:45 · 2835 阅读 · 0 评论 -
Android Bugreport 内容解释
文章目录1. 抓取Bugreport方法2. MEMINFO内存相关2.1 dumpsys MEMINFO2.2 cat MEMINFO2.3 dumpsys PROCRANK2.4 showmap总结3. CPUINFO3.1 dumpsys cpuinfo3.2 top4. PROCESSES AND THREADS (进程和线程)5. PRINTENV环境变量6. Android Log(...原创 2019-12-27 13:36:19 · 6291 阅读 · 2 评论 -
Android系统启动流程
1.Android系统启动流程那么结合本篇以及本系列的前三篇文章,我们就可以得出Android系统启动流程,如下所示。1.启动电源以及系统启动当电源按下时引导芯片代码开始从预定义的地方(固化在ROM)开始执行。加载引导程序Bootloader到RAM,然后执行。2.引导程序BootLoader引导程序BootLoader是在Android操作系统开始运行前的一个小程序,它的主要作用...原创 2019-08-28 10:26:08 · 1053 阅读 · 0 评论 -
Android P FDE开机启动enable_screen到sf_stop_bootanim耗时
link:Android 8.1 开机启动流程的收尾_bootanimation开机动画结束和BOOT_COMPLETE广播发送流程整理1.问题FDE设备在输入图案密码start android时,boot_progress_enable_screen到sf_stop_bootanim花费15sboot_progress_enable_screen AMS启动完成后开始激活屏幕,...原创 2019-08-28 10:26:17 · 891 阅读 · 0 评论 -
Android UI异常-----瞬间闪画面问题
瞬间闪画面问题最重要检测现象,是怎么闪的,闪什么画面。使用比如quicktime等能够单桢播放的播放器目前比较常见的case1.wallpaper被hide.重点检测wallpaper的visibility变化,常见原因有target window被hide或者中间有切换target window2.画面切换过程串出来其他APP画面,需要看此画面是如何被show出来的,比如ams3....原创 2019-08-28 10:25:31 · 485 阅读 · 0 评论 -
ANR基本分析
1.ANR介绍。ANR全名Application Not Responding, 也就是"应用无响应". 当操作在一段时间内系统无法处理时, 系统层面会弹出上图那样的ANR对话框.KeyDispatchTimeout5s内无法响应用户输入事件(例如键盘输入, 触摸屏幕等). BroadcastReceiver在10s/60s内无法结束(前后台广播).. ServiceTimeo...原创 2018-03-10 18:27:18 · 2665 阅读 · 0 评论 -
Android 重启
由于只是私下写的,并没有具体的log pattern或者代码,主要是思路1.重启类型:System Server Java CrashSystem Server Native CrashSWT(Watchdog)Surfacefinger died --可能他依赖的东西死掉,或者本身发生fd leak之类2.重启流程log//网上引用的log,可能具体项目有变化,思路一样,重启代码是在System...原创 2018-03-10 19:00:35 · 993 阅读 · 0 评论 -
Android Watchdog机制介绍与分析
1.Watchdog是什么?Android Watchdog主要是检测system server重要线程状态(main,android io,android display ,Activitymanager,android fg,android bg等线程 )的一种机制。发生Watchdog时会触发Android重启来使系统恢复。Watchdog是SystemServer的一个线程(class W...原创 2018-03-05 22:42:18 · 1886 阅读 · 0 评论 -
ThreadedRenderer.finalize() timed out
1.问题Logsystem_server Crash导致重启Process: system_serverjava.util.concurrent.TimeoutException: android.view.ThreadedRenderer.finalize() timed out after 10 seconds at android.view.ThreadedRendere...原创 2019-08-28 10:23:36 · 1351 阅读 · 0 评论 -
Android FDLEAK -- too many open files
1.too many open files Log Pattern当一个Android进程打开1024个fd的时候,就会提示too many open files,进程就会crashsystem_server crash#第一种Log patternCursorWindow: could not create cursorwindow from parcel due to error...原创 2019-08-28 10:23:42 · 1248 阅读 · 0 评论 -
Android 开机跳过ANR
1.原因在有些低端手机芯片会发现,开机向导时候很容易出现各种gms应用anr的情况,都是因为cpu高导致。但是对性能不好的芯片来说,很容易导致anr,因此解决方法1就是跳过skip anr。2.实现判断时间搜索add start ,add endxref: /frameworks/base/services/core/java/com/android/server/am/Acti...原创 2019-08-28 10:23:28 · 408 阅读 · 0 评论 -
Android iowait分析
1.介绍在分析性能稳定性时都会考虑到io影响,主要常见问题:anr swt crash.比如一个anr issue,假如io在30以上,就可以去查下是否和io有关,假如和有关情况,一般blocked的位置应该是在io文件操作上。io高有关系的,一般1.emmc有错误,搜索kernel log关键字mmc mmcqd等2.mmc读写性能差,可以查看读写速度,以及io加载,也就是下...原创 2019-08-28 10:25:08 · 1624 阅读 · 0 评论 -
Android SQLite IO Exception (SQLiteDiskIOException)
1.log pattern造成原因 Caused by: android.database.sqlite.SQLiteDiskIOException: disk I/O error (code 4874)04-01 02:06:38.213 E/AndroidRuntime( 864): *** FATAL EXCEPTION IN SYSTEM PROCESS: main04-01...原创 2019-08-28 10:24:17 · 2485 阅读 · 0 评论 -
Android binder full -- getContentProviderImpl
1.分析过程发生watchdog重启,原因为systemserver binder耗尽,binder thread都在等pulish providerObject.wait 调用之后会释放同步锁,线程会休眠,需要通过同个对象锁 notify() 或者notifyAll()唤醒。使用的是时候都需要同步锁,不然会报Exception。详情见java 同步//swt blocked ...原创 2019-08-28 10:24:54 · 425 阅读 · 0 评论 -
Android 内存泄露分析之MAT工具分析
MAT JDK下载地址链接:https://pan.baidu.com/s/13ESnQDksLYA15GQh8_JldQ提取码:jhhp工具mat. eclipse memory analyzer1.转换为标准hprofhprof-conv -z in. hprof out.hprof //hprof-conv sdk下面的工具2. mat打开out.hprof3...原创 2019-08-28 10:24:42 · 750 阅读 · 0 评论 -
Android ClassNotFoundException以及odex , vdex ,art 文件区别
简介: 在老化测试中出现PostNotificationRunnable 找不到情况,也就是NotificationManagerService可以找到,但是他的内部类找不到情况。由于位于services.jar下,因此需要查看是否services相关文件损坏。以下为两种原因:1.检查services.jar services.art services.odex service...原创 2018-12-14 19:11:05 · 937 阅读 · 0 评论 -
Android ANR -- anr实例1
1. ANR patthernANR时候,从trace看主线程是在restoreDefaultApn,具体的操作是在delete,通过binder来实现,查看binderinfo发现是在phone进程里面执行,不过搜索对应线程trace发现,binder线程是空闲的,如Binder_2(trace是网上拷贝不是当时的),不清楚这是问啥,正常情况应该对应线程的trace也在delete()才是。...原创 2019-08-28 10:24:10 · 368 阅读 · 0 评论 -
Native Crash基本分析
字面意思:native程序发生crash,包括app jni里面代码报错,native层代码报错。1.NE log图案介绍(tomstone)@event logam_crash: xxx (搜索am_crash看是否有crash)@device.log(device log搜索DEBUG : pid ) 1 04-16 11:18:00.323 26512 26512 F DEBUG :...原创 2018-03-08 22:28:32 · 5071 阅读 · 0 评论