在真机上使用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中添加对应的代码即可,代码如下所示。
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- ViewServer.get(this).addWindow(this);
- }
- @Override
- public void onDestroy() {
- super.onDestroy();
- ViewServer.get(this).removeWindow(this);
- }
- @Override
- public void onResume() {
- super.onResume();
- ViewServer.get(this).setFocusedWindow(this);
- }
- }
实际上就是在onCreate、onResume、onDestroy三个生命周期中添加相应的代码。同时,还需要在Mainifest文件中声明Internet权限,代码如下所示。
- <uses-permission android:name="android.permission.INTERNET"/>
经过上面的处理,即可在连接真机时使用Hierarchy Viewer查看代码布局性能了。不过要注意的是,最好在Debug版本中引用该库,而在Release版本时解除依赖。因此,可以使用testCompile的方式进行依赖。
