美文网首页
HierarchyView,让你的手机如虎添翼

HierarchyView,让你的手机如虎添翼

作者: Nj_第一批老去的90后 | 来源:发表于2017-04-25 00:55 被阅读99次
    • 现在市面上的手机都默认不支持该工具的使用。Android的官方文档上有说明:
      To preserve security, Hierarchy Viewer can only connect to devices running a developer version of the Android system.

    • 也就是说:Hierarchy Viewer只能连接Android开发版手机或是模拟器,只有ro.secure==0 && ro.debuggable==1的Android系统。
      Hierarchy Viewer在连接手机时,手机会启动View Server与其进行socket通信。但在我们平常用的商业机上,是无法开启View Server的,Android源码实现这个限制的如下(目录:/frameworks/base/services/java/com/android/server/wm/WindowManageService.java):

    public boolean startViewServer ( int port ) {
    if ( isSystemSecure() ) {
    return false ;
    }
    if ( !checkCallingPermission( Manifest.permission.DUMP, "startViewServer" ) ) {
    return false ;
    }
    }
    
    • 因此在这里分享一个工程,如果只需要查看自己开发的应用的UI变化,可以用GitHub上的一个项目ViewServer,集成到本地工程非常简单,gradle配置:
    
      allprojects {
          repositories {
          ...
            maven { url "[https://jitpack.io](https://jitpack.io)" }
    
              }
    
          }
    dependencies {
            compile 'com.github.romainguy:ViewServer:-SNAPSHOT'
    }
    
    
    • 然后在工程的Activity中加入相应的配置即可:
    
    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);
          }
    }
    

    相关文章

      网友评论

          本文标题:HierarchyView,让你的手机如虎添翼

          本文链接:https://www.haomeiwen.com/subject/rnumzttx.html