有時候我們需要對自己的游戲或者別人的游戲進行分析,比如我們需要了解一個引擎的大體渲染的流程,這個時候我們可以借助一些工具,在PC上我們可以使用Microsoft PIX、Intel GPA、Nvidia的Nsight和PerfHud來截取一幀的數據來分析。由於最近轉到移動平台上,有時候也需要分析游戲,這個時候我們可以借助不同顯卡廠商的工具來分析。此處,我們以高通的Adreno Profiler為例來分析一個程序。首先,你需要有一個使用高能解決方案的手機:比如小米、錘子等。
有幾個需要注意的地方:
- 確保USB驅動已經正確的安裝。
- 確保手機開啟了USB調試功能。
- 確保程序清單(manifest)中android.permission.INTERNET和com.qti.permission.PROFILER被開啟。
假設你已經安裝了Adreno Profiler,打開后選擇Connect,會出現以下界面:
假設你設置正確的話,會出現上面所示的界面:
- 這時打開你的程序,點擊refresh,那么可以調試的程序就在上面顯示,一定要確保com.qti.permission.PROFILER在manifest中打開,如果沒打開會顯示found a device but no adreno profiler-enabled app。
- 接下來點擊Connect。
- 連接成功后,我們需要分析OpenGL ES,點擊Scrubber GL。
- 這個時候可以點擊Capture Frame來截取我們的數據。等待截取完成,這個時候我們就可以分析渲染流程了。
關於如何在manifest中添加許可項,讀者可自行搜索,因為我最近在研究UE4,下面以UE4 4.10為例來說明怎么添加。
- 打開EditàProject Settings。
-
選擇Platforms àAndroid,在下圖所示的Extra Permissions下面添加新的權限,然后打包即可。
后記:使用Adreno Profiler分析程序操作還是比較簡單的,我在堅果手機和nubia的一個手機上都成功連接,但是紅米手機,就是提示found a device but no adreno profiler-enabled app,因為其它機器可以正確連接,所以就沒深入去追究原因,不知道你是否也遇到過類似的問題。