如何使"层次结构查看器"在真实设备中工作?

Leg*_*ius 4 java android android-sdk-tools hierarchyviewer

我是Android开发的新手我开始使用"层次结构查看器"...它可以与sdk提供的模拟器一起使用.
问题是我想在真实设备上使用它.我已经进行了研究,发现由于安全原因,它仅适用于各种来源的模拟器和开发人员手机.

官方Android开发者网站

但我也发现通过在我们的项目中使用"ViewServer.java",我们可以在真实设备上使用这个工具.

GitHub romainguy/ViewServer链接:

据我所知,有两件事需要做......

  1. 将此ViewServer.java包含到我们的项目中

  2. 在清单中添加INTERNET权限.(<uses-permission android:name="android.permission.INTERNET"/>)

在阅读java文件中的注释时,我也了解了如何在addWindow内部使用方法onCreate和东西.

但即使在尝试将此应用程序安装到我的设备中之后,eclipse"无效的APK文件!"...对于真实设备和模拟器.

但是普通的应用程序可以与模拟器一起使用,但不能在其中添加这个java文件的应用程序!

如果还有什么需要做的话,有人会向我解释.因为我共享的链接有很多其他文件,我不确定它们是什么以及如何使用它们.我所关心的只是其中的"ViewServer.java"文件.

如果可能的话,有人可以一步一步地解释我需要做些什么吗?

Fen*_*res 5

ViewServer 仅在Android版本低于4.1的非root设备上才需要.

对于使用Android 4.1+的设备,您只需设置ANDROID_HVPROTO=ddm环境变量并重新启动adb服务器即可.

这是隐藏的Android功能之一,在免费的Udacity课程中找到它 - Android Performance(第1课:渲染,第12部分"Hierarchy Viewer Walkthrough",视频下方的链接).


小智 3

尝试使用 HierarchyViewerSupport Annotation,但不确定它会有多大帮助。

此 @HierarchyViewerSupport 注释允许您在任何设备上使用 HierarchyViewer 检查工具。

确保您的应用程序具有 INTERNET 权限并且 android:debuggable = true Manifest。

只需使用 @HierarchyViewerSupport 注释您的活动:

@HierarchyViewerSupport
 @EActivity
 public class MyActivity extends Activity {

 }
Run Code Online (Sandbox Code Playgroud)

我不确定伙计,根据我所做的 RnD 你的问题,这能有多大帮助,我认为这在生产版本上是不可能的,正如你已经解释的原因。

无论如何,如果您想要当前活动屏幕的详细信息(例如有关小部件的信息),您仍然可以使用我开发的 Python 脚本来获取它,但同样它不适用于生产构建。

尝试上述解决方案,并告诉我们是否有帮助。