Android UI畫面顯示問題需要給mtk提供的相關資訊? M

來源:互聯網
上載者:User

 

 

 

 

UI相關問題(畫錯了,畫花了,沒畫, 黑屏, 白屏,花屏等),透過普通的mobile log是很難定位到問題的.需要藉助layer dump / window log / view system log來輔助分析.

注意: 因為log量很大, 所以為了快速定位問題範圍, 要詳細描述log對應的操作過程, 並在附上log時一併說明發生顯示問題的時間點.

[SOLUTION]

抓取Layer dump的方法如下:

Android 2.3版本:

請先幫忙確認,alpsrameworksaseservicessurfaceflinger estslayerdump下有沒有Android.mk和layerdump.cpp兩個檔案。

如果沒有這兩支檔案,請幫忙告知我司,我司同仁會先把這兩支檔案發給您,然後請您幫忙再按照以下的做法抓取layerdump相關的資訊。

I) 在目前貴司可以複現顯示問題的工程根目錄下,執行以下命令:./makeMtk -t xxx mm frameworks/base/services/surfaceflinger/tests/layerdump (其中xxx表示工程名)。命令執行完成後,將會在 out/target/product/xxx/system/bin/ 下產生一個名為test-layerdump的可執行檔。

 

II) 把test-layerdump用命令push到手機的system/bin下:adb push test-layerdump system/bin

 

III) 在複現問題的畫面,執行以下命令:

adb shell chmod 777 system/bin/test-layerdump

adb shell test-layerdump

adb shell dumpsys SurfaceFlinger > SF_layerdump_all.log

 

IV) 將產生的 /data/*.png 和 /data/*.uyvy 這些圖檔,以及產生的SF_layerdump_all.log資訊打包發給我司。

 

請注意,從/data下匯出每個layer png圖片,需要使用命令:adb pull 命令,例如:匯出/data/5.png圖片,是用的命令是: adb pull data/5.png D:/ , 這個命令表示把/data/5.png匯出到D盤下.

 

 

Android 2.3之後的版本:

I) 請幫忙建立一個名為:SF_layerdump_all.bat.txt 的txt檔案,內容如下:

SET raw=%1

SET layerdump=%2

 

IF %raw%== SET raw=0

IF %layerdump%== SET layerdump=-1

 

adb shell setprop debug.sf.layerdump.raw %raw%

adb shell setprop debug.sf.layerdump %layerdump%

adb shell dumpsys SurfaceFlinger > SF_layerdump_all.log

adb shell mkdir /data/SF_dump

adb shell mv /data/*.png /data/SF_dump

adb shell mv /data/*.i420 /data/SF_dump

adb shell mv /data/*.yv12 /data/SF_dump

adb shell mv /data/*.RGBA /data/SF_dump

adb shell mv /data/*.RGB565 /data/SF_dump

rmdir /S /Q SF_layerdump_all

md SF_layerdump_all

move SF_layerdump_all.log SF_layerdump_all

adb pull /data/SF_dump SF_layerdump_all/

adb shell rm /data/SF_dump/*

 

II) 建立好並儲存txt後,重新命名為SF_layerdump_all.bat,把這個bat放到電腦的windows案頭上。

 

III) 手機串連usb,在可以複現這個顯示問題的畫面(也就是當一個豎屏應用顯示成橫屏時),雙擊執行SF_layerdump_all.bat,然後把產生的檔案夾打包發給我們(檔案包裡有一些Png圖片,對應每個layer的snap shot,還有一個log檔案)。

對於一閃而過的畫面顯示問題,很難抓到問題現場的Layer dump,可以嘗試通過adb命令:adb shell dumpsys SurfaceFlinger > desktop/sf.txt 可以現在console上輸入這串命令,當一閃而過的問題畫面出現時,斷行符號執行,多嘗試幾次,看能否抓到問題畫面的layer dump.

注意:要使用eng build來抓取layer dump!

 

 

抓取window log的方法如下:

1) 修改代碼並編譯

開啟WindowManagerService.java中的DEBUG_XXX 為true,重新編譯services.jar模組,相應的log是在mobile log的main log裡.

 

2) 不修改代碼,動態開啟debug開關 (重新開機後需要再次設定)

 

- 先到工模裡開啟mobile log
- 通過命令列開啟下面的debug的開關,如下操作:
adb shell dumpsys window -d enable 0 1 2 3 4 5 6 8 9 10 11 12 13 14 16 17 19 21 22 23 24 26 29 30 32 33 34
adb shell dumpsys window -d disable 18
- 複現問題並抓取mobile log 注意:window log的內容比較多,為了方便定位問題,請一定要記錄問題發生的準確時間點,並在附上window log時作出說明。

抓取View system log的方法如下:

開啟ViewRootImpl.java中的DEBUG_XXX為true,並重新編譯framework.jar模組,相應的log是在mobile log的main log裡.

 


 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.