原创 Performed 6 layouts in a row. Skipping

調用流程如下:  /frameworks/base/services/core/java/com/android/server/wm/WindowSurfacePlacer.java performSurfacePlacement ->

原创 Input 輸入事件防止屏幕睡眠流程

adb shell getevent 收到了輸入事件 /dev/input/event3: 0003 0039 00000646 /dev/input/event3: 0003 0035 00000177 /dev/input/event

原创 鎖屏十秒超時,鎖屏界面退出動畫流程,FLAG_KEEP_SCREEN_ON亮屏

鎖屏界面十秒超時 /frameworks/base/services/core/java/com/android/server/wm/RootWindowContainer.java handleNotObscuredLocked {

原创 InputDispatcher 消息窗口傳遞過程

 InputDispatcher.InputDispatcherThread::threadLoop---> dispatchOnce---> dispatchOnceInnerLocked--->EventEntry::TYPE_MOT

原创 Display brightness和state設置

DisplayPowerController.updatePowerstate--- > DisplayPowerController.animateScreenBrightness --> RampAnimator.animateTo

原创 Android 差分包製作流程分析

整包與差分包生成流程 差分包生成指令 make otapackage 將編譯生成的(xxx項目爲例) out/target/product/xxxxxxx/full_xxx_hxxxx-target_files-1527715386.z

原创 亮度設置,Dream,sleepToken,performSurfacePlacement刷新

kill -3 進程, 然後就可以在data/anr找到一個traces_00這麼一個文件 Android o 查看手機當前前臺的Activity命令: adb shell dumpsys activity | findstr  "mRe

原创 Audio AudioFocus流程

     AudioFocus是Android引入的一個Audio協調機制,當多方需要使用Audio資源時,可以通過AudioFocus機制來協調配合,提高用戶的體驗。    該機制需要開發者主動去遵守,比如A應用沒遵守該機制,則其它遵守

原创 Mark 部分流程(亮屏, Event log,傳感器,APP創建,ANR dump, destorySurface )

 亮屏流程 PowerManagerService updatePowerStateLocked--->updateDisplayPowerStateLocked--> DisplayPowerController -->reque

原创 鎖屏十秒超時,鎖屏界面退出動畫流程

鎖屏界面十秒超時 /frameworks/base/services/core/java/com/android/server/wm/RootWindowContainer.java handleNotObscuredLocked {

原创 Monkey測試中卡在開機階段的問題

1.正常情況下,當手機非第一次重啓,kernel的hang_monitor 會正常啓動: 2. 當手機發生FWR後,由於kernel會正常執行,所以hang_detect的機制理論上會正常工作; // hang_detect的工作機制流程

原创 AutoBrightness亮度曲線的生成

AutomaticBrightnessController.configure(.... mLastUserSetScreenBrightness / (float) PowerManager.BRIGHTNESS_ON,...){

原创 kernel相關知識

爲什麼需要內核鎖? 多核處理器下,會存在多個進程處於內核態的情況,而在內核態下,進程是可以訪問所有內核數據的,因此要對共享數據進行保護,即互斥處理 有哪些內核鎖機制? (1)原子操作 atomic_t數據類型,atomic_inc(ato

原创 Mark 一些調試快捷方法

 while true; do adb shell dumpsys display |grep -Ei "mAmbientLightRingBuffer|mAmbientLux|mScreenAutoBrightness"; sleep

原创 ftrace的一些操作方法

以MTK爲例 aee 只是單純拷貝 /sys/kernel/debug/tracing/trace   copy_file(aee_dir, "SYS_FTRACE", "/sys/kernel/debug/tracing/trace")