zoukankan      html  css  js  c++  java
  • 为什么HierachyViewer无法连接真机调试

    关于什么是Hierarchy Viewer,请查看官方文档:http://developer.android.com/tools/debugging/debugging-ui.html。个人理解:Hierarchy Viewer能获得当前手机实时的UI信息,给界面设计人员和自动化测试人员带来极大的便利。

    在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的,故Hierarchy Viewer是无法连接到普通的商业手机。

    Android源码实现这一限制的地方在:
    ANDROID源码根目录frameworksaseservicesjavacomandroidserverwmWindowManageService.java
    中的一段:
    =====================================================================================
    public boolean startViewServer(int port{
        if (isSystemSecure()) {
            return false;
        }

        if (!checkCallingPermission(Manifest.permission.DUMP, "startViewServer")) {
            return false;
        }
    ....
    =====================================================================================

    检验一台手机是否开启了View Server的办法为:
    adb shell service call window 3
    若返回值是:Result: Parcel(00000000 00000000 '........')" 说明View Server处于关闭状态
    若返回值是:Result: Parcel(00000000 00000001 '........')" 说明View Server处于开启状态

    若是一台可以打开View Server的手机(Android开发版手机 、模拟器or 按照本帖步骤给系统打补丁的手机),我们可以使用以下命令打开View Server:
    使用以下命令关闭View Server:
    adb shell service call window 2 i32 4939
  • 相关阅读:
    用户需求报告
    结队开发项目——七巧板NABC需求分析
    梦断代码读书笔记3
    课堂练习之环形二维数组
    结对开发之求最大子数组的溢出问题
    《代码之美》第二章读后感(一)
    软件工程项目冲刺阶段二:第五天
    软件工程项目冲刺阶段二:第四天(06-06)
    软件工程项目冲刺阶段二:第三天
    课程评价
  • 原文地址:https://www.cnblogs.com/ldq2016/p/6668076.html
Copyright © 2011-2022 走看看