前言
關(guān)于什么是Hierarchy Viewer,請查看官方文檔:http://developer.android.com/tools/debugging/debugging-ui.html。
個人理解:Hierarchy Viewer能獲得當(dāng)前手機(jī)實(shí)時的UI信息,給界面設(shè)計人員和自動化測試人員帶來極大的便利。
Hierarchy Viewer 工具提供了一個可視化界面顯示布局的層次結(jié)構(gòu),讓我們可以進(jìn)行調(diào)試,從而優(yōu)化界面布局結(jié)構(gòu),它需要手機(jī)開啟 ViewServer 配合使用
但是在真機(jī)上并不能使用,Android的官方文檔中提到:出于安全考慮,Hierarchy Viewer只能連接Android開發(fā)版手機(jī)或者模擬器
在代碼中是在 WindowManagerService.java 類中做的限制,如下
private static final String SYSTEM_SECURE = "ro.secure"; private static final String SYSTEM_DEBUGGABLE = "ro.debuggable"; public boolean startViewServer(int port) { if (isSystemSecure()) { // 判斷系統(tǒng)是否是安全的 return false; } // ... try { mViewServer = new ViewServer(this, port); return mViewServer.start(); } catch (IOException e) { Slog.w(TAG_WM, "View server did not start"); } return false; } private boolean isSystemSecure() { return "1".equals(SystemProperties.get(SYSTEM_SECURE, "1")) && "0".equals(SystemProperties.get(SYSTEM_DEBUGGABLE, "0")); }