使用安卓模擬器和GPA截幀分析手遊



剛看到了篇文章,講解怎麼使用GPA和安卓模擬器截幀分析圖形渲染的文章《用GPAandroid應用繪製分析-GAD騰訊遊戲開發者平臺》:http://gad.qq.com/article/detail/39208。看後很興奮,因爲我一直想用GPA分析手遊。但是原文中有些地方說的不是很詳細,自己親自驗證了,把原文中沒有說很明白的地方補充上。

優缺點

優點:

1、可以使用最強大的圖形分析工具GPA(這是我使用過的最好的圖形截幀分析工具,其它圖形分析工具,例如Adreno profilerSnapdragon,穩定性和可用功能都要差很多)。

2、不用找對應芯片的真機,不需要ROOT(模擬器裏本身就是有Root權限的)。手機上可用的所有圖形分析工具都是由不同的芯片廠商開發的,需要安裝了該工具開發商生產的芯片的真機,包括GPA也是。之前爲了使用GPA分析遊戲,買了三個intel芯片的手機,但都不知道什麼原因失敗了。這個方案完美解決了這個問題。

3、再不用忍受USB連接線不穩,總是容易斷開,重新連接。

缺點:

由於手機遊戲用的圖形API都是OpenGL ES,而GPAWindows上只能截取DX 11,所以在GPA裏看到的API都是DX 11的。不過圖形API的接口都大同小異,完全能對應上。

操作步驟

一、打開夜神模擬器。測試過天天模擬器和夜神模擬器,推薦使用後者,繪製批次更準。修改設置:點擊下圖中箭頭指向的圖標

彈出下面的界面

點擊「高級設置」選項卡,修改成下面的配置。設置成極速模式(DirectX)」是因爲GPAWindows上只能截取DirectX的,不支持截取OpenGLLinux上才支持)。設置成「手機版」是因爲如果使用默認的「平板版」的話,分辨率是寬比長的值要大,而我想要分析的遊戲是豎屏模式運行的,模擬器裏會有多餘的操作步驟將畫面正確顯示出來,並且在GPA裏截幀的DC會順序錯亂。480x800的分辨率是因爲我想分析的遊戲的設計分辨率是這個。

由於我想分析的遊戲是豎屏運行,所以點擊箭頭所指的圖標,將屏幕設置成豎屏的。

點擊「保存設置」,關閉模擬器。

二、打開GPA,使用GPA啓動模擬器。

三、將apk拖進模擬器,點擊圖標運行。

四、按「Ctrl+Shift+C」截幀。

五、打開「Graphics FrameAnalyzer」進行分析。

其它方案

如果模擬器開啓OpenGL渲染模式,能用gDEBugger進行分析,但是會出現很多個Context,而且內容是錯亂的。有可能是因爲整個模擬器裏的所有進程都是用OpenGL ES繪製的,而GPA是對整個模擬器進行截幀,而不是隻是遊戲。RenderDoc在打開截幀結果時會崩潰。有時間了再研究。

或者以後有時間了自己寫工具,通過hook模擬器裏的libGLESv2.dll來截幀,自己寫工具能獲得更多的自由度。