您的位置:首页 > 移动开发 > Android开发

使用ViewServer让Android真机可用HierarchyView视图检测工具

2015-01-25 01:50 375 查看

使用ViewServer让Android真机可用HierarchyView视图检测工具

HierarchyViewer是Android SDK自带的用于布局检测的工具,其位置在\Android SDK目录\tools目录下,关于使用HierarchyView优化Android布局的方法,可以参考官方的这篇文章:http://developer.android.com/training/improving-layouts/optimizing-layout.html

但是该工具并不支持直接连接真机进行检测,连接真机时会报如下错误:

01:47:20 E/hierarchyviewer: Unable to get view server version from device e8ef8e7e

01:47:20 E/hierarchyviewer: Unable to get view server protocol version from device e8ef8e7e

01:47:20 E/ViewServerDevice: Unable to debug device: xiaomi-hm_note_1lte-e8ef8e7e

01:47:20 E/hierarchyviewer: Missing forwarded port for e8ef8e7e

01:47:20 E/hierarchyviewer: Unable to get the focused window from device e8ef8e7e

为了能够让该工具能够对真机使用,Android SDK开发团队提供了VIewServer开源库,项目地址https://github.com/romainguy/ViewServer

将该库引入项目,同时参考其中的ViewServerActivity即可,主要代码如下:

package com.android.debug.hv.sample;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

import com.android.debug.hv.ViewServer;

public class ViewServerActivity extends Activity {
private int mCounter;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

if (getIntent().getExtras() != null) mCounter = getIntent().getExtras().getInt("counter");
((TextView) findViewById(R.id.label)).setText("Activity #" + (mCounter + 1));

ViewServer.get(this).addWindow(this);
}

public void nextActivity(View v) {
Intent intent = new Intent(this, getClass());
intent.putExtra("counter", mCounter + 1);
startActivity(intent);
}

@Override
public void onDestroy() {
super.onDestroy();
ViewServer.get(this).removeWindow(this);
}

@Override
public void onResume() {
super.onResume();
ViewServer.get(this).setFocusedWindow(this);
}
}


只要在Activity的onCreate、onDestroy、onResume三个生命周期方法中调用ViewServer的对应方法即可在真机环境下使用HierarchyView工具
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: