zoukankan      html  css  js  c++  java
  • 使用Dalvik Debug Monitor

    Android提供了调试工具被称为Dalvik Debug Monitor Server (DDMS),其提供了端口映射服务;的屏幕捕捉,设备的线程和堆栈信息;logcat,进程堆的信息,和radio state 信息; 来电和短信仿真;位置数据仿真等等。这页提供了DDMS功能有限的讨论,这并没有详尽探索所有的特性和功能。

    DDMS放在 SDK的tools/ 目录下。从终端/控制台进入这个目录,输入ddms (或 ./ddms 在Mac/Linux的系统中)来运行它。DDMS将同时启动仿真器和连接的设备。如果两者都连接并同时运行,DDMS默认为模拟器。

    DDMS如何工作
    DDMS扮演中间人的角色,其连接IDE和运行在设备上的应用程序。在Android上,每一个应用程序运行在自己的进程中, 每个驻留在自己的虚拟机(VM),每一个进程通过不同的端口侦听调试器。

    当它启动时,DDMS连接到Android Debug Bridge(adb),并且启动设备监测服务在两者之间,当一个设备连接或断开时,它会通知DDMS服务。当一个设备被连接,VM监控服务被创建在adb和DDMS之间,它会通知DDMS当设备上的VM启动或终止。一旦虚拟机运行,DDMS检索VM的进程ID(PID),通过adb, 并打开一个连接到虚拟机的调试器,通过在设备上的adb守护进程(adbd)。 DDMS现在可以跟VM使用自定义wire protocol 。

    对于每个设备上的虚拟机,DDMS打开一个端口时,它会听取了调试。首虚拟机,DDMS侦听端口8600上调试,下次8601,依此类推。当调试器连接到其中一个端口,接下来所有的通信将在调试器和相关的虚拟机之间进行。调试像任何远程调试会话一样进行 。

    DDMS 也开启另一个本地端口: DDMS “基本端口”(默认是 8700 ),同样在此端口上侦听调试器。当调试器连接到“基本端口”,所有的连接会被转移到 DDMS 中当前选择的虚拟机上,因此这通常是你的调试器应该连接的端口。

    要获取 DDMS 的端口转移的更多信息,参考“配置您的 IDE ,链接到 8700 端口进行调试”。

    提示:你可以通过菜单 File > Preferences 设置 DDMS 参数。参数保存在 "$HOME/.ddmsrc" 中。

    已知与达尔维克调试问题
    调试中的Dalvik虚拟机应用程序应该相同的工作,因为它不其他虚拟机。但是,当单走出同步的代码,“当前行” 光标可能跳转到方法中的最后一行的一个步骤。

    左窗格
    在调试监视器左边显示,每个名单模拟器/设备目前发现,     目前所有的船民在每个运行。     越南确定由它承载的应用程序包名称。

    使用此列表来查找和附加到虚拟机     运行活动(载体),您要调试。旁边的每个虚拟机     列表是一个“调试传递”端口(在最右侧一列)。     如果您连接调试器对列入名单的港口,一个你     将连接到设备上的相应的虚拟机。但是,当使用      DDMS,你只需要连接到端口8700,作为DDMS转发所有的交通在此,     当前选择的虚拟机。 (请注意,当你选择清单中的虚拟机,在上市的港口,包括8700。)     这样,就没有必要重新配置调试的端口每次虚拟机之间切换。

    当应用程序运行在设备上要求 waitForDebugger() (或您选择此选项 开发     选项 ),一个红色的图标将会显示给客户名称,而它的等待     调试器附加到越南船民。当调试器连接,该图标会变成绿色。

    如果您看到一个打叉的错误图标,这意味着DDMS无法完成1 调试器之间的连接和虚拟机,因为它无法打开虚拟机的本地端口。 如果您看到了设备上的所有船民这一点,可能是因为你有其他实例 DDMS运行(这包括Eclipse插件)。

    如果你看到一个应用程序包的地方是一个问号,这意味着, 一旦DDMS得到亚行的PID应用程序,它某种原因而未能作出与虚拟机进程的成功握手。请尝试重新启动DDMS。

    右边的窗格
    在右边的选项卡调试监视器提供有用的信息显示和一些很酷的工具。

    信息
    这种观点显示了一些关于选择虚拟机一般情况,包括过程的信息,     标识,包装的名称,和VM版本。

    主题
    线程认为有在目标VM进程中运行的线程列表。      为了减少金额     在通过网络发送数据,线程更新只发送时明确     启用切换的“主题”按钮     在工具栏。这切换维持每个VM。此选项卡包括以下内容     信息:

    编号 -虚拟机分配的唯一的线程ID。在达尔维克,这些都是         从3日开始的奇数。
    工业贸易署 - Linux的线程ID。对于在一个进程的主线程,         这将匹配的进程ID。
    身份 -在VM线程状态。守护线程         显示星号(*)。这将是下列之一:
    运行 -执行应用程序代码
    睡觉 -称为调用Thread.sleep()
    显示器 -等待获取锁监视器
    等待 -在Object.wait()
    原生 -执行本地代码
    vmwait -等待虚拟机资源
    僵尸 -线程在死亡过程
    初始化 -线程正在初始化(你不应该看到这个)
    开始 -线即将启动(你不应该看                 此功能)
    utime -累计花费的时间执行用户代码,在“jiffies计”(通常          10毫秒)。
    准时 -累计花费的时间执行系统的代码,在“jiffies计”(通常          10毫秒)。
    名字 -该线程的名称
    “ID”和“名称”时设置的线程启动。其余     定期更新的字段(默认值为每4秒)。

    虚拟机堆
    一些堆统计显示,在垃圾收集更新。如果,当虚拟机被选中, 鉴于在VM堆说,堆更新未启用,然后点击“显示堆更新”按钮, 在顶部的左工具栏。早在虚拟机堆视图中,点击 原因气相色谱 执行垃圾收集和更新堆统计信息。

    分配跟踪
    在此视图中,您可以跟踪每个虚拟机的内存分配。 在左窗格中,单击选择一个虚拟机 开始跟踪 ,然后 获得拨款 查看所有跟踪开始以来的拨款。 下表将填补所有有关数据。再次点击刷新列表。

    仿真控制
    有了这些控件,可以模拟特殊设备状态和活动。 功能包括:

    电话状态 -改变手机的语音和数据国家计划      (家,漫游,查询等),以及模拟的网络速度和不同类型的延迟      (GPRS的,边缘,UTM进行,等等)。
    行动电话 -进行模拟电话和短信到仿真器的消息。
    位置控制 -发送位置数据,以模拟仿真器,让您可以执行   位置如GPS地图知道行动。
    要使用位置控制,发射的机器人仿真器并打开DDMS您的应用程序。 单击仿真控制选项卡,向下滚动到位置控制。 从这里,您可以:

    手动发送单独的经度/纬度坐标到设备。
    点击 手册 , 选择坐标格式,填写字段并单击 发送 .

    使用中继文件中描述的回放设备的通道。
    点击 中继 并载入档案。一旦加载, 单击播放按钮,播放您的位置感知应用途径。

    当他们从GPX中播放,您可以调整速度从DDMS播放面板,并与暂停和跳过按钮控制播放。 DDMS将分析两个航点(<wpt> 在第一个表),         和首曲目(<trk> , 第二个表,为多领域的支持, <trkseg> ,         虽然他们只是串联)。只有轨道可以发挥作用。单击列表中的第一个航点简单发送其协调,设备,在选择轨道让你玩。

    使用KML文件,描述的顺序播放设备个别地标。
    点击 的KML 并载入档案。一旦加载, 点击播放按钮发送到您的坐标位置感知应用程序。

    当使用的KML文件,它分析了 <coordinates> 元素。其价值应该是一个单一     一套经度,纬度和海拔高度的数字。例如:

    <coordinates> -122.084143,37.421972,4“/坐标”在您的文件,您可以包括多个 <Placemark> 元素,每个包含字母a <coordinates> 元素。当你这样做,将收集的地标增加一款,作为轨道。 DDMS将派遣一个每秒的设备标。

    一种方法来生成一个合适的KML文件是找到一个在谷歌地球上的位置。 右键单击项的位置在左边选择“保存的地方,看起来...” 与保存设置的KML格式。

    注: DDMS不支持创建的路线 <MultiGeometry> <LineString> lat1,long1,lat2,long2,....</ LineString“”/ MultiGeometry“ 方法。 也有目前没有支持 <TimeStamp> 节点内那个 <Placemark> 。 未来的版本可以支持在一个单一的定时元件位置坐标和路线。

    为了 额外 设立地点嘲笑方法的数据,请参阅 位置 主题。

    文件管理器
    与文件管理器,您可以查看该设备的文件系统,执行基本的管理, 推,拉等文件。使用这种绕过 亚行 推 和 拉 使用GUI经验的命令。

    随着DDMS打开,选择 设备 > 文件管理器... 打开文件资源管理器窗口。您可以拖放,到设备目录下降,但不能拖 外面的 其中。 若要从设备复制文件,选择文件并单击 撤出设备文件 按钮在工具栏。要删除文件,请使用 删除 按钮在工具栏。

    如果你在模拟器上使用的SD卡图片感兴趣,您仍然需要使用那个 mksdcard 命令来创建一个图像,然后安装在模拟器启动时它。 例如,从 /工具 目录中,执行:

    $


     mksdcard 1024M。/ img


    $


     模拟器- SD卡。/ img


    现在,当仿真器运行时,DDMS文件资源管理器将能够读取和写入 SD卡目录。但是,您的文件可能不会自动出现。例如,如果您添加 MP3文件到SD卡,媒体播放器将不会看到直到重新启动模拟器他们。 (当重新启动从命令行模拟器,一定要安装的SD卡了。)

    有关创建一个SD卡的图像信息,请参阅 其它工具 文件。

    屏幕捕获
    您可以捕获通过选择设备或仿真器屏幕图像 设备 > 屏幕截图... 在菜单栏,或者按Ctrl - S。 一定要选择一个设备的第一个。

    探索过程
    你可以看到输出 的ps - x 特定虚拟机的选择 设备 > 显示进程状态 ...在菜单栏中。

    导致发生气相色谱
    垃圾收集的原因发生在选定的应用程序按垃圾桶栏上的按钮。

    运行Dumpsys和设备(logcat Dumpstate)
    要运行 dumpsys (logcat从达尔维克)选择 设备 > 运行logcat ... 在菜单栏中。
    要运行 dumpstate 选择达尔维克, 设备 > 转储设备         状态... 在菜单栏中。
    检查国家广电总局
    默认情况下,国家广电总局是不是在一个标准logcat输出(这是一个很大的     信息)。要查看广播信息,或者单击 设备 > 转储电台     状态... 或运行所述logcat 测井     电台信息 .

    停止虚拟机
    您可以选择停止虚拟机 动作 > 停止虚拟机 。按下此按钮,会导致虚拟机调用 Runtime.halt(1) .

    与DDMS已知问题
    DDMS有以下已知的限制:

    如果您连接和断开调试,ddms下降,重新连接         客户端,以便在VM认识到,调试已经消失。这将是固定的         最终。


    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lihaifeng555/archive/2009/11/13/4806992.aspx

  • 相关阅读:
    【零售业集成系列】消费积分的会计处理到SAP系统实现
    SAP S4 ECC EPIC 'Month 00 not Plausible'. upload bank receipt error msg
    [OHIF-Viewers]医疗数字阅片-医学影像-Module: Panel-自定义面板-中-es6-Object.defineProperty()定义属性
    [OHIF-Viewers]医疗数字阅片-医学影像-Module: Panel-自定义面板-上
    [Chrome 83]谷歌浏览器升级后对表单控件和焦点元素黑框取消掉方法,磕碜啦啦的难看死了-chrome://flags/#form-controls-refresh
    [OHIF-Viewers]医疗数字阅片-医学影像-REACT向事件处理程序传递参数-.bind-传递函数给组件
    [OHIF-Viewers]医疗数字阅片-医学影像-es6解构赋值-const{}=-let{}=
    [OHIF-Viewers]医疗数字阅片-医学影像-Lodash 是一个一致性、模块化、高性能的 JavaScript 实用工具库。_.throttle(func, [wait=0], [options={}])实例解析防抖动(Debouncing)和节流阀(Throttling)
    [OHIF-Viewers]医疗数字阅片-医学影像-数字胶片直接下载,不再弹窗进行设置
    [OHIF-Viewers]医疗数字阅片-医学影像-ViewportDownloadForm.js
  • 原文地址:https://www.cnblogs.com/hdjjun/p/1749847.html
Copyright © 2011-2022 走看看