在真机上使用Hierarchy Viewer

Hierarchy Viewer工具默认只允许在模拟器或者工程机上使用。在User版本的ROM上是不能使用这个功能的,这就导致了在使用真机开发的时候无法使用这个功能。为了解决这个问题,Google的开发工程师提供了ViewServer工具来帮助开发者在真机环境下使用Hierarchy Viewer,该项目地址如下所示。

https://github.com/romainguy/ViewServer

要使用这个工具,首先要将该项目添加到主项目的依赖中。你可以直接使用库依赖,或者直接在Maven中央库中进行依赖,远程库引用配置如下所示。

compile'com.hanhuy.android:viewserver:1.0.3'

添加好依赖后,只需要仿照提供的Sample,在主项目的启动Activity中添加对应的代码即可,代码如下所示。

  1. public class MainActivity extends AppCompatActivity {
  2.  
  3. @Override
  4. protected void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.activity_main);
  7. ViewServer.get(this).addWindow(this);
  8. }
  9.  
  10. @Override
  11. public void onDestroy() {
  12. super.onDestroy();
  13. ViewServer.get(this).removeWindow(this);
  14. }
  15.  
  16. @Override
  17. public void onResume() {
  18. super.onResume();
  19. ViewServer.get(this).setFocusedWindow(this);
  20. }
  21. }

实际上就是在onCreate、onResume、onDestroy三个生命周期中添加相应的代码。同时,还需要在Mainifest文件中声明Internet权限,代码如下所示。

  1. <uses-permission android:name="android.permission.INTERNET"/>

经过上面的处理,即可在连接真机时使用Hierarchy Viewer查看代码布局性能了。不过要注意的是,最好在Debug版本中引用该库,而在Release版本时解除依赖。因此,可以使用testCompile的方式进行依赖。