我之前使用过hierarachyviewer,但在Android模拟器上。当我在模拟器上使用它时,它绝对可以正常工作。但是,它不适用于三星Galaxy TAB 7.0,Android 2.3.4。
这是我得到的日志
11:04:22 E/hierarchyviewer: Unable to get view server version from device 303599
64881B00EC
11:04:22 E/hierarchyviewer: Unable to get view server protocol version from devi
ce 30359964881B00EC
11:04:24 E/hierarchyviewer: Unable to debug device 30359964881B00EC
11:05:05 E/hierarchyviewer: Unable to get view server version from device 303599
64881B00EC
11:05:05 E/hierarchyviewer: Unable to get view server protocol version from devi
ce 30359964881B00EC
11:05:07 E/hierarchyviewer: Unable to debug device 30359964881B00EC
11:09:38 E/hierarchyviewer: Unable to get view server version from device 303599
64881B00EC
11:09:38 E/hierarchyviewer: Unable to get view server protocol version from devi
ce 30359964881B00EC
11:09:40 E/hierarchyviewer: Unable to debug device 30359964881B00EC
我也没有在调试模式下使用 hierarchyviewer,只是运行应用程序。谢谢。
我找到了一个解决方法:https://github.com/romainguy/ViewServer
ViewServer是一个简单的类,您可以在Android应用程序中使用HierarchyViewer检查工具...
- 验证您是否需要此库(较新版本的 Android 不需要(
如果您确实需要此库,请按照以下说明操作:
- 包括视图服务器库(在此处找到简单的说明(
- 您的应用程序必须需要互联网权限
使用此 API 的建议方法是在创建活动时注册活动,并在活动被销毁时取消注册:
public class MyActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Set content view, etc. ViewServer.get(this).addWindow(this); } public void onDestroy() { super.onDestroy(); ViewServer.get(this).removeWindow(this); } public void onResume() { super.onResume(); ViewServer.get(this).setFocusedWindow(this); } }
请参考 ViewServer 中的文档.java了解更多信息...
改用监视器工具 ( android-sdk/tools/monitor
(。
连接到您的设备。如果无法连接,请先关闭 Eclipse。
按设备选项卡中的"UI 自动器的转储视图层次结构"按钮。它是屏幕捕获按钮旁边的那个。
从 API 级别 16 (Android 4.1( 开始工作。
您只能在模拟器和从Google购买的特殊开发者手机上使用HierarachyViewer。
http://groups.google.com/group/android-developers/browse_thread/thread/b0b0af7a316ca768
引用上面的链接
HierarchyViewer 不适用于用户构建(即设备( 在商店有售。这是出于安全原因。如果 HiearchyViewer 能够处理用户构建,桌面上的任何应用程序(或 在某些情况下即使在电话上(也有可能访问 私人信息(如登录名和密码(。
我在最大操作系统中解决了问题
此处记录了此ANDROID_HVPROTO解决方案:
http://developer.android.com/tools/performance/hierarchy-viewer/setup.html
然后尝试关闭安卓工作室
运行 adb 终止服务器、adb 启动服务器
并向我启动监视器工作!
答案是:
https://github.com/romainguy/ViewServer/issues/14#issuecomment-75354479
@ozodrukh的回答是有用的。
几乎没有通用生产手机允许 HierarchyViewer 访问它们。通常,开发人员手机和模拟器是唯一具有这些功能的手机和模拟器。
4.1 Android手机上遇到了类似的问题。在代码中使用 ViewServer。
在签入层次结构查看器之前,只需通过执行重新启动adb服务器一次即可。
官方文档:优化你的UI是这样说的:
为了保证安全性,层次结构查看器只能连接到运行开发者版 Android 系统的设备。
使用层次结构查看器分析布局:
设置环境变量
ANDROID_HVPROTO=ddm
因此[andrid-sdk]/tools
文件夹中在命令行中运行以下命令:
set ANDROID_HVPROTO=ddm
hierarchyviewer
或者把set ANDROID_HVPROTO=ddm
放在hierarchyviewer.bat