1. 程式人生 > >【Android效能優化】HierarchyViewer無法連線真機除錯

【Android效能優化】HierarchyViewer無法連線真機除錯

之前用HierarchyViewer檢視應用的UI資訊,感覺很給力,但是今天刷了使用者版的韌體後,用hierarchyViewer就不可以,出現下面的錯誤:

hierarchyviewer unable to debug device

To preserve security, Hierarchy Viewer can only connect to devices running a developer version of the Android system. 也就是說:Hierarchy Viewer只能連線Android開發版手機或是模擬器,只有ro.secure==0 && ro.debuggable==1的Android系統。 Hierarchy Viewer在連線手機時,手機會啟動View Server與其進行socket通訊。但在我們平常用的商業機上,是無法開啟View Server的,Android原始碼實現這個限制的如下(目錄:/frameworks/base/services/java/com/android/server/wm/WindowManageService.java):

public

boolean startViewServer (int port ){

if( isSystemSecure()){

returnfalse;

}

if(!checkCallingPermission(Manifest.permission.DUMP,"startViewServer")){

returnfalse;

}

}


如果要在自己的手機正常地使用Hierarchy Viewer,有三種方法: 1、直接刷一個開發版本的Android韌體(一般只有在手機開發公司才可以) 2、如果只需要檢視自己開發的應用的UI變化,可以用GitHub上的一個專案ViewServer 參考文章: