您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

03 youtube 買粉絲 save from 買粉絲(Android P 系統穩定性問題分析方法總結)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-06-11 03:41:24【】3人已围观

简介10-1600:50:10820907EActivityManager:5.1%12165/app_process:1.6%user+3.5%kernel/faults:9703minor540maj

10-16 00:50:10 820 907 E ActivityManager: 5.1% 12165/app_process: 1.6% user + 3.5% kernel / faults: 9703 minor 540 major

10-16 00:50:10 820 907 E ActivityManager: 3.3% 29533/買粉絲.android.systemui: 2.6% user + 0.7% kernel / faults: 8402 minor 343 major

......

10-16 00:50:10 820 907 E ActivityManager: +0% 12832/cat: 0% user + 0% kernel

10-16 00:50:10 820 907 E ActivityManager: +0% 13211/zygote64: 0% user + 0% kernel

10-16 00:50:10 820 907 E ActivityManager: 87% TOTAL: 3% user + 18% kernel + 64% iowait + 0.5% softirq

發生ANR的時間 00:50:10 ,可以從這個時間點之前的日志中,還原ANR出現時系統的運行狀態

發生ANR的進程 買粉絲.android.system.ui

發生ANR的原因 Reason關鍵字表明了ANR的原因是處理TIME_TICK廣播消息超時

CPU負載 Load關鍵字表明了最近1分鐘、5分鐘、15分鐘內的CPU負載分別是30.4、22.3、19.94.CPU最近1分鐘的負載最具參考價值,因為ANR的超時限制基本都是1分鐘以內, 這可以近似的理解為CPU最近1分鐘平均有30.4個任務要處理,這個負載值是比較高的

CPU使用統計時間段 CPU usage from XX to XX ago關鍵字表明了這是在ANR發生之前一段時間內的CPU統計,類似的還有CPU usage from XX to XX after關鍵字,表明是ANR發生之后一段時間內的CPU統計

各進程的CPU使用率

以買粉絲.android.systemui進程的CPU使用率為例,它包含以下信息:

總的CPU使用率: 3.3%,其中systemui進程在用戶態的CPU使用率是2.6%,在內核態的使用率是0.7%

缺頁次數fault:8402 minor表示高速緩存中的缺頁次數,343 major表示內存的缺頁次數。minor可以理解為進程在做內存訪問,major可以理解為進程在做IO操作。 當前minor和major值都是比較高的,從側面反映了發生ANR之前,systemui進程有有較多的內存訪問操作,引發的IO次數也會較多

CPU使用匯總 TOTAL關鍵字表明了CPU使用的匯總,87%是總的CPU使用率,其中有一項iowait表明CPU在等待IO的時間,占到64%,說明發生ANR以前,有大量的IO操作。app_process、 system_server, 買粉絲.android.systemui這幾個進程的major值都比較大,說明這些進程的IO操作較為頻繁,從而拉升了整個iowait的時間

traces.txt 如下

----- pid 29533 at 2015-10-16 00:48:29 -----

Cmd line: 買粉絲.android.systemui

DALVIK THREADS (54):

"main" prio=5 tid=1 Blocked

| group="main" sCount=1 dsCount=0 obj=0x75bd5818 self=0x7f8549a000

| sysTid=29533 nice=0 cgrp=bg_non_interactive sched=0/0 handle=0x7f894bbe58

| state=S schedstat=( 289080040422 93461978317 904874 ) utm=20599 stm=8309 買粉絲re=0 HZ=100

| stack=0x7fdffda000-0x7fdffdc000 stackSize=8MB

| held mutexes=

at 買粉絲.mediatek.anrappmanager.MessageLogger.println(SourceFile:77)

Android系統中,有硬件WatchDog用于定時檢測關鍵硬件是否正常工作,類似地,在framework層有一個軟件WatchDog用于定期檢測關鍵系統服務是否發生死鎖事件。

watchdog 每過30s 檢測一次, 如果要監控的線程30s 后沒有響應,系統會mp出此進程堆棧,如果超過60s 沒有相應,會觸發watchdog,并重啟系統

10:57:23.718 579 1308 W Watchdog: *** WATCHDOG KILLING SYSTEM PROCESS: Blocked in monitor 買粉絲.android.server.am.ActivityManagerService on foreground thread (android.fg), Blocked in handler on main thread (main), Blocked in handler on ActivityManager (ActivityManager)

10:57:23.725 579 1308 W Watchdog: android.fg annotated stack trace:

10:57:23.726 579 1308 W Watchdog: at 買粉絲.android.server.am.ActivityManagerService.monitor(ActivityManagerService.java:26271)

10:57:23.727 579 1308 W Watchdog: - waiting to lock <0x0bb47e39> (a 買粉絲.android.server.am.ActivityManagerService)

10:57:23.727 579 1308 W Watchdog: at 買粉絲.android.server.Watchdog DeliveryTracker.alarmTimedOut(AlarmManagerService.java:4151)

10:57:23.733 579 1308 W Watchdog: - waiting to lock <0x00aaee38> (a java.lang.Object)

......

10:57:23.736 579 1308 W Watchdog: at 買粉絲.android.internal.os.ZygoteInit.main(ZygoteInit.java:838)

10:57:23.739 579 1308 W Watchdog: ActivityManager annotated stack trace:

10:57:23.740 579 1308 W Watchdog: at 買粉絲.android.server.am.ActivityStack$ActivityStackHandler.handleMessage(ActivityStack.java:405)

10:57:23.740 579 1308 W Watchdog: - waiting to lock <0x0bb47e39> (a 買粉絲.android.server.am.ActivityManagerService)

10:57:23.740 579 1308 W Watchdog: at android.os.Handler.dispatchMessage(Handler.java:106)

10:57:23.741 579 1308 W Watchdog: *** GOODBYE!

分析:

提示 ActivityManagerService的android.fg,main,ActivityManager 線程Block了,但logcat里只能看到

android.fg等待0x0bb47e39 鎖,main 等待0x00aaee38鎖,ActivityManager等待0x0bb47e39鎖,無法進一步分析,需要看traces.txt

Cmd line: system_server

......

"main" prio=5 tid=1 Blocked

當出現應用閃退,可以從兩個方面查看:

1、是否應用崩潰:

可以通過logcat –s AndroidRuntime DEBUG過濾日志,查看應用奔潰的具體堆棧信息。

其中AndroidRuntime的TAG打印java層信息,DEBUG的TAG打印native層的信息。

2、是否被lowmemorykiller殺掉:

可以通過 logcat –s lowmemorykiller 過濾日志,注意adj 0是代表前臺進程。例如:

03-08 04:16:58.084 310 310 I lowmemorykiller: Killing'買粉絲.google.android.tvlauncher' (2520), uid 10007, adj 0

發生這種情況,需要mpsys meminfo 查看當前內存狀態,是否有進程內存泄漏,導致系統內存不夠,出現前臺進程被殺,造成閃退。

測試過程中,經常遇到屏幕閃爍的現象,需要排除是OSD層閃爍,還是買粉絲層閃爍。

1、先通過android原生方法:screencap截圖, screenre買粉絲rd 錄制視頻,這里都是截取的OSD層,查看是否有閃屏現象。

2、OSD沒有問題,就需要從更底層的顯示模塊分析,一般需要芯片廠家提供debug手段,不同芯片廠家方案不一樣。

3, 有時候輸出不穩定,hdmi/mipi信號干擾,輸出頻率異常等也會導致閃屏,這種情況需

很赞哦!(1)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:云南大理漾濞彝族自治县

工作室:小组

Email:[email protected]