天道酬勤,学无止境

Android DDMS v22.0.1 无法使用 Droid Razor 4.1.2 生成系统跟踪(Android DDMS v22.0.1 unable to generate a systrace using Droid Razor 4.1.2)

问题

我选择了几个跟踪标记,当我运行跟踪(从DDMS )时,我得到以下输出:

Unexpected error while collecting system trace. Unable to find trace start marker 'TRACE:':
error opening /sys/kernel/debug/tracing/options/overwrite: 
No such file or directory (2)

error openi (在此处切断错误)

内核目录中确实没有调试文件,但是哪种机制会生成必要的路径?

回答1

看起来您的手机正在运行不支持 systrace 的引导(内核)映像。

“错误打开 /sys/kernel/debug/tracing/options/overwrite: 没有那个文件或目录 (2)”

此错误消息意味着 adb 守护进程(在设备端运行的 adb 模块)无法在您设备的文件系统上找到 /sys/kernel/debug/tracing/options/overwrite。 systrace 在 adb 上工作,并通过 /sys/kernel/debug/tracing 下的 sysfs 节点与内核通信。 如果这些节点由于某种原因没有在您的手机上公开,systrace 将无法工作。

因此,您应该首先使用以下方法在您的设备上获得一个外壳:

亚行外壳

然后浏览以确认 /sys 是否存在以及 /sys/kernel/debug/tracing 是否存在。

如果它们在那里,这是极不可能的,您必须调试 systrace.py 以找出 systrace 认为节点不存在的原因。 否则,您需要刷新具有 systrace 支持的不同引导映像,因为 sysfs 由内核(主要由编译时的配置)和 init.rc 控制,两者都是引导映像的一部分。

刷新不同的引导映像可能涉及解锁/植根设备。 您可能需要访问像 xdadeveloper 这样的粉丝网站来获取信息和图像。 另一种选择是为您的设备下载内核源代码,编译内核并自己制作启动映像。 Linux 遵循 GPL,因此您的设备制造商有义务发布他们使用的专用内核的源代码。

-NAM http://www.willpromo.com

回答2

您可能需要稍微修改内核映像(boot.img)。 以下作品为我找到,仅供参考。

  1. 打开终端并输入: $adb shell
  2. (1) $su (2) $mount -t debugfs none /sys/kernel/debug 。 现在您应该能够在 /sys/kernel/debug/ 下看到许多目录。 (您可以 cd 进入 /sys/kernel/debug 以确认这一点)
  3. 输入: $dd if=/dev/block/platform/msm_sdcc.1/by-name/boot of=/sdcard/boot.img以从您的设备生成 boot.img 内核映像。
  4. 使用 AndroidImageKitchen 解压 boot.img 并在 Ramdisk 文件夹中找到 default.prop。 然后将ro.debuggable=0更改为ro.debuggable=1 。 重新打包 boot.img 并将其闪存引导到您的设备。
  5. 设备启动后,在终端下输入: $adb root并可能会弹出类似消息: $restarting adbd as root 。 断开 USB 并重新连接。
  6. cd 到 systrace 文件夹,例如 ~/androidSDK/platform-tools/systrace 并使用: python systrace.py --time=10 -o mynewtrace.html sched gfx view wm
  7. 现在您可以生成自己的 systrace 文件。

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Android DDMS v22.0.1 unable to generate a systrace using Droid Razor 4.1.2
    I've selected several of the trace tags and when I run the trace (from DDMS) I get the following output: Unexpected error while collecting system trace. Unable to find trace start marker 'TRACE:': error opening /sys/kernel/debug/tracing/options/overwrite: No such file or directory (2) error openi(cuts off the error here) indeed there is no debug file in the kernel directory, but which mechanism will generate the necessary path?
  • React Native 无法运行堆栈跟踪(React Native cannot run stacktrace)
    问题 我正在尝试在 Mac (osx 10.12) 上使用 React Native 启动并运行一个测试项目。 如果我运行: react-native run-android --stacktrace 我收到以下错误: error: unknown option '--stacktrace' 我已经安装: 节点守望者流 Java JDK 安卓SDK 反应本机 CLI 基因运动 当我运行命令时,模拟器正在运行。 谁能告诉我为什么会这样? 提前谢谢了。 编辑运行gradlew installDebug --stacktrace我得到了这个响应: 07:20:21 V/ddms: execute: running am get-config 07:20:21 V/ddms: execute 'am get-config' on 'emulator-5554' : EOF hit. Read: -1 07:20:21 V/ddms: execute: returning Installing APK 'app-debug.apk' on 'Pixel_2_API_28(AVD) - 9' for app:debug 07:20:21 D/app-debug.apk: Uploading app-debug.apk onto device 'emulator-5554' 07:20:21 D
  • 工作应用程式上的java.lang.ClassNotFoundException(java.lang.ClassNotFoundException on working app)
    问题 我已经创建并发布了我的第一个Android应用程序。 非常简单。 它在模拟器和某些手机上工作正常,但出现此错误: java.lang.RuntimeException: Unable to instantiate application cz.teamnovak.droid.Novak ESC Track guide: java.lang.ClassNotFoundException: cz.teamnovak.droid.Novak ESC Track guide in loader dalvik.system.PathClassLoader[/data/app/cz.teamnovak.droid-1.apk] at android.app.ActivityThread$PackageInfo.makeApplication(ActivityThread.java:649) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4232) at android.app.ActivityThread.access$3000(ActivityThread.java:125) at android.app.ActivityThread$H.handleMessage
  • 打开跟踪文件时出错:没有这样的文件或目录(2)(error opening trace file: No such file or directory (2))
    问题 我收到上述错误: 打开跟踪文件时出错:没有这样的文件或目录(2) 当我在模拟器上运行我的android应用程序时。 有人可以告诉我这可能是什么原因吗? 我正在使用android-sdk-20,以下行添加到AndroidManifest.xml中 <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="15" /> 我还添加了以下行: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 因为我认为写入SD卡可能存在一些问题。 回答1 发生这种情况是因为您没有在计算机中安装minSdkVersion或targetSdkVersion。 我已经测试过了。 例如,如果您的Manifest.xml中包含这些行: <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> 并且您仅在计算机中安装了API17,它将报告一个错误。 如果要测试它,请尝试安装其他API版本(在本例中为API 8)。 即使这样,这也不是一个重要的错误。 这并不意味着您的应用程序是错误的。 对不起,我的表情。 英语不是我的语言。 再见! 回答2 我认为这是问题所在
  • ADT将不允许创建Android活动(ADT will not allow creation of Android Activity)
    问题 昨天,我从http://developer.android.com/sdk/index.html安装了ADT捆绑包,并且正在遵循基本的Hello World教程。 我创建了一个新的Android应用程序项目,其中包含一个名为MainActivity的空白活动。 生成的项目有一个空的src文件夹和空的res\layout文件夹。 gen文件夹中有一个R.java文件,但没有对MainActivity引用。 这就是SDK管理器说的我已安装的内容 Android SDK工具v 22.6 Android SDK平台工具v 19.0.1 Android SDK Build-tools v 19 SDK平台v 3 ARM EABI v7a系统映像v 2 Android支持库v 19.0.1 Google USB驱动程序v 9 我还尝试通过右键单击src文件夹并转到Android Activity来手动创建活动,但是当我在创建向导中单击“完成”时,没有任何反应。 有人对发生的事情有任何线索吗? 我错过了要安装的关键组件吗? 回答1 如果您更新到Android SDK工具版本22.6,则需要更新DDMS工具和插件。 转到“帮助菜单栏”->“安装新软件”并安装(将对其进行更新)URL:https://dl-ssl.google.com/android/eclipse/ 还将“开发人员工具”和“
  • (一百八十三)学习TraceView
    参考: Android 性能优化:使用 TraceView 找到卡顿的元凶 Android性能优化(一)之启动加速35% PS:启动加速总结一下就是能懒加载的懒加载,不能懒加载的看能不能放异步,异步线程合理分配优先级。 1. 使用 Android Studio 生成 trace 文件 Android Monitor已经过时了,现在用的profile 之前有学习过,但好久不用忘了。。。 https://blog.csdn.net/sinat_20059415/article/details/80584621 突然发现之前参考的文档其实就是搬运的开发文档,也是,自己摸索哪有这么全 https://developer.android.google.cn/studio/profile/cpu-profiler 2.使用 DDMS 生成 trace 文件 jiatai@jiatai:~/Android/Sdk/tools$ sudo ./monitor OpenJDK 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0 Error Loading DDMS Preferences ddms已经过时了 3.Systrace 如果要收集详细的系统级数据
  • 无法查看由Android SDK中的Systrace工具生成的HTML跟踪报告(Unable to view HTML trace report generated by Systrace tool in Android SDK)
    问题 我正在尝试使用Android SDK中的Systrace工具生成跟踪报告,但无法在浏览器中查看报告。 它为空白,不包含任何信息。 我在一些论坛上读到需要在Chrome浏览器中打开报告,我也使用Chrome打开了报告,但报告为空白。 我已经从开发人员选项中启用了USB调试,并且设备正在运行Android 4.2,并且我正在使用Android SDK中的DDMS工具生成跟踪。 http://developer.android.com/tools/help/systrace.html 回答1 首先,如果有人在OS X或Windows上使用Chrome v50.0 +,请尝试此操作。 打开chrome浏览器,然后转到“ chrome:// tracing” 在“跟踪”页面中,单击“加载”,然后选择systrace生成的html文件。 其次,我认为这是Google确认的错误。 看起来这是因为现代版本的Chrome已弃用Object.observe函数[1] [2]。 有关更多信息,请参见https://code.google.com/p/android/issues/detail?id=57135 回答2 我也有在Linux上运行chrome的问题。 看来他们在执行javascript绘制结果的过程中存在错误。 检查JavaScript控制台。 我的说。 未捕获的TypeError
  • Android-通过DDMS分析特定线程(UI线程)(Android - profiling a specific thread (UI Thread) via DDMS)
    问题 在某些情况下,我试图找到导致我的应用程序中的UI线程冻结的原因。 我已经通过DDMS分析运行了该应用程序。 但是在底部的树表视图中,我看到了所有线程上调用的所有方法,而我只想关注主线程。 有没有一种方法可以过滤DDMS中方法的最底层树表列表,以仅包括所选线程(在我的情况下为UI线程)的统计信息? 一个子问题:是否有一些好的Android分析器? 回答1 用户界面没有提供执行此操作的方法-您只需要浏览时间轴并单击看起来比较忙碌的部分。 有一种粗略的方法可以满足您的需求。 SDK包含一个名为dmtracedump的工具,可用于从.trace文件生成报告。 当您使用DDMS捕获跟踪时,请注意文件的位置(我的位置是/tmp/ddms4176182990461128308.trace )。 在Linux上,您将运行: dmtracedump -o <filename> > trace.txt 这将为您提供一个类似于以下内容的文件: VERSION: 3 Threads (13): 1 main 2 GC 3 Signal Catcher 4 JDWP ... Trace (threadID action usecs class.method signature): 4 xit 0 ..dalvik/system/VMDebug.startMethodTracingDdms (IIZI
  • 如何测试Android应用程序的性能?(How to test the performance of an Android application?)
    问题 如何在Android中测试应用程序的性能? Android提供了哪些支持?如何使用它? 回答1 如果要分析应用程序以查找性能瓶颈,可以使用traceview工具。 这为您提供了应用程序性能跟踪的图形视图。 要创建跟踪,请在要开始跟踪的代码中添加以下内容: Debug.startMethodTracing("myapp"); 然后在要停止跟踪时放以下内容: Debug.stopMethodTracing(); 这将在SD卡的根目录中创建一个名为myapp.trace的跟踪文件。 写入SD卡时: 如果您使用的是仿真器,则需要将SD卡添加到您的AVD中。 您需要通过向清单中添加以下内容来授予您应用程序写入SD卡的权限: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 创建文件后,您需要将其复制到PC。 您可以使用adb命令执行此操作: adb pull /sdcard/myapp.trace c:/my/dir/myapp.trace 最后,启动traceview , traceview提供跟踪文件的完整路径: traceview c:/my/dir/myapp.trace 我确实在traceview出现OutOfMemory异常失败时遇到了一些问题。
  • 为什么我不应该在Android中使用System.out.println()(Why shouldn't I use System.out.println() in android)
    问题 在Android Open Source Project的代码样式中,它指出我们不应该使用System.out.println()但我不明白为什么。 谁能解释? 我应该使用什么来跟踪应用程序的日志? 这是供参考的行: 绝对不要使用System.out.println() (或本机代码的printf() )。 System.out和System.err重定向到/dev/null ,因此您的打印语句将没有可见的效果。 但是,这些调用发生的所有字符串构建仍将执行。 回答1 您应该使用android.util.Log类。 这是Log类的功能的描述: 用于发送日志输出的API。 通常,您应该使用Log.v() , Log.d() , Log.i() , Log.w()和Log.e()方法编写日志。 然后,您可以在logcat中查看日志。 按照详细程度的顺序,从最低到最高为ERROR,WARN,INFO,DEBUG,VERBOSE。 除非在开发过程中,否则切勿将Verbose编译到应用程序中。 调试日志在其中编译,但在运行时剥离。 错误,警告和信息日志将始终保留。 这些是Log类的可用方法: Log.d()-发送调试日志消息。 Log.e()-发送错误日志消息。 Log.i()-发送INFO日志消息。 Log.v()-发送详细日志消息。 Log.w()-发送警告日志消息。 Log.wtf
  • 在Android中检测应用程序堆大小(Detect application heap size in Android)
    问题 您如何以编程方式检测可用于Android应用程序的应用程序堆大小? 我听说在更高版本的SDK中有一个函数可以执行此操作。 无论如何,我正在寻找适用于1.5及更高版本的解决方案。 回答1 有两种方式可以考虑您的短语“可用的应用程序堆大小”: 在触发硬错误之前,我的应用程序可以使用多少堆? 和考虑到Android OS版本和用户设备硬件的限制,我的应用应使用多少堆? 有不同的方法来确定上述各项。 对于上面的项目1: maxMemory() 可以如下调用它(例如,在您的主要活动的onCreate()方法中): Runtime rt = Runtime.getRuntime(); long maxMemory = rt.maxMemory(); Log.v("onCreate", "maxMemory:" + Long.toString(maxMemory)); 此方法告诉您应用程序允许使用多少总堆字节。 对于上面的项目2: getMemoryClass() 可以如下调用: ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE); int memoryClass = am.getMemoryClass(); Log.v("onCreate", "memoryClass:" + Integer
  • Android之内存泄漏调试学习与总结
    大家有或经常碰到OOM的问题,对吧?很多这样的问题只要一出现相信大家的想法跟小马的一样,就是自己的应用:优化、优化、再优化!而且如果出现类似于OOM这样级别的问题,根本就不好处理,LogCat日志中显示的信息仅仅是OOM,并不会给你提示如何解决的方法或思路,因为引起OOM的原因是你应用的问题,不是系统问题!应该想下,在优化之前找到需要优化的地方,再去做优化操作不是更直接吗?相信大多数朋友应该经常听过或使用Jnuit调试吧,好了,废话不多说,今天小马就跟大家一起来学习总结下OOM的调试方法,来找到需要优化的地方,要知道OOM也是可以一步步调试的: 首先,先一起来做些小小的知识铺垫: Android(Java)中常见的容易引起内存泄漏的不良代码: 1. 查询数据库没有关闭游标 程序中经常会进行查询数据库的操作,但是经常会有使用完毕Cursor后没有关闭的情况。如果我们的查询结果集比较小,对内存的消耗不容易被发现,只有在常时间大量操作的情况下才会复现内存问题,这样就会给以后的测试和问题排查带来困难和风险示例代如下码: Cursor cursor = getContentResolver().query(uri ...); if (cursor.moveToNext()) { ... ... } 修正示例代码: Cursor cursor = null; try { cursor =
  • 如何在C ++代码中使用ddms进行内存泄漏(how to use ddms for memory leaks in c++ code)
    问题 我如何尝试通过启用了NativeHeap的快照拍摄android工具DDMS来解决c ++代码中的内存泄漏,但是我不了解快照在说什么,符号也无法解析,没有显示文件名和行号。 回答1 DDMS中的本机堆跟踪是不受支持的“隐身”功能。 使其正常工作可能会有些棘手。 在邮件列表上有一个较旧的讨论可能会有用。 如果您正在接收数据并启动UI,那么您就快完成了。 :-) DDMS在您应该能够使用ANDROID_SYMBOLS环境变量覆盖的特定位置查找符号,然后使用addr2line (也必须能够找到)将地址转换为行。 查找大泄漏的最简单方法是配置DDMS以按库对分配进行排序。 让该应用程序运行一会儿,看看哪个库增长最快。 查看归因于该库的分配,看看是否有很多资源来自同一位置。 查看堆栈跟踪,看看从那里进行许多长期分配是否有意义。 虽然不是很严格,但是通常可以解决问题。 为了更全面地检查堆,可以在设备上运行valgrind,但这在第一次设置时并不容易。 回答2 使用分配跟踪器。 以下是有关在Android中查找内存泄漏的精彩讨论:http://www.youtube.com/watch?v=_CruQY55HOk 在这里,您有一篇关于它的博客文章:http://www.curious-creature.org/2009/02/07/track-memory-allocations-on
  • 如何在 Android 中进行 Java 线程转储?(How to make Java Thread Dump in Android?)
    问题 我只想从 java 虚拟机线程中获取所有转储,以查看线程锁定的内容以及等待解锁某些资源的线程。 类似的东西在这里描述。 我试图杀死 Zygote 进程,但没有结果。 回答1 最简单的方法是使用 DDMS,或 Eclipse 中的 ADT 插件。 有关基本说明,请参阅 http://developer.android.com/tools/debugging/ddms.html。 简而言之,进入设备视图,选择您感兴趣的应用程序,确保线程更新已启用,然后切换到线程视图。 您将在该过程中获得实时更新的线程列表。 双击线程将获取当前堆栈状态的快照。 您可以在线程转储中使用全选和复制来复制和粘贴堆栈跟踪。 如果您有开发者/root 设备,您可以通过向您感兴趣的应用程序进程发送SIGQUIT来要求 Dalvik VM 转储线程堆栈。例如,如果您想查看日历应用程序中所有线程的堆栈,你可以这样做: % adb shell ps | grep android.calendar u0_a6 2596 127 912804 48296 ffffffff b6f62c10 S com.google.android.calendar # 2596 is the process ID % adb shell run-as com.google.android.colendar kill -3 2596
  • Android Studio Logcat什么也没显示(Android studio logcat nothing to show)
    问题 我昨天安装了Android Studio,并尝试使用LogCat查看日志。 但是,logcat中没有任何显示。 我使用终端运行./adb logcat ,它可以正常工作。 是否有人可以向我解释如何在Android Studio中使用logcat? 回答1 重新启动logcat总是对我有帮助。 回答2 我经常进入这种状态。 Logcat为空白。 调试工作,我可以达到断点。 没有设置过滤器。 日志级别为“详细”。 我通过反复遍历以下内容来修复它: 重新启动logcat(请参阅上面的Zatziky答案) 将日志级别更改为“调试”(或其他任何级别),然后再返回“详细”。 拔出并重新插入设备运行adb kill-server && adb start-server 关闭Android Studio并在命令行上启动ddms 。 重新启动Android Studio 最后,如果其他所有方法都失败,则重新启动计算机。 问题是断断续续的,我认为Android Studio只是越野车。 回答3 我遇到了同样的问题,但通过以下步骤解决了问题,请尝试一次。 1)在android studio中。 2)打开android Monitor窗口(android studio的底部) 3)您可以在右上角看到下拉菜单(微调框) 4)选择-仅显示“选定的应用程序” 。 回答4 您需要按Alt +
  • ViewPager焦点问题(ViewPager Focus Issue)
    问题 我有一个ViewPager,其中包含4个片段/面板,每个片段/面板的宽度为风景画面的一半。 _______________ _______________ _______________ _______________ |1 |2 |3 |4 | | | | | | | | | ___________ | ___________ | | | | | EditText1 | | | EditText2 | | | | | |___________| | |___________| | |_______________|_______________|_______________|_______________| 面板3和4每个都有一个EditText。 在程序启动时,用户将看到屏幕2和3(他们可以向后滑动以查看屏幕1,并且直到选择了3上的列表项后,屏幕4才存在)。 因此,托管面板(和关联的ViewPager)的视图将调用 viewPager.SetCurrentItem(PANEL3,true); // const int PANEL3 = 2; - zero offset 这将导致显示2&3,并给3赋予焦点(这给EditText1赋予焦点)。 当用户在3上选择导致4滑入的东西(以便现在显示3和4)时,将在主机视图中进行另一个呼叫 viewPager
  • 为什么运行OTA 2.1的HTC Droid无法与RFCOMM通信?(Why can't HTC Droid running OTA 2.1 communicate with RFCOMM?)
    问题 昨天我们在我妻子的HTC Droid-HOORAY上收到了OTA Android 2.1! 我终于可以在她的手机上加载我的carputer应用程序了。 好吧,我们加载了它,但是它不起作用。 具体来说,它连接但看不到I / O !!! 每当遇到相同的问题时,我都会进行配对,重新配对和重新配对:connect()表示我们已成功连接,但是任何发送或接收数据的尝试似乎都可以奏效,但是没有数据到达输入缓冲区。 我连接的设备使用AT命令。 ATI应使用设备ID进行响应。 当我在Moto Droid上运行该应用程序时,这很好用,但是在HTC droid上,输入流/缓冲区中没有数据。 就个人而言,我非常确定这是HTC在此版本中的错误或局限性(因为该应用程序在我的Moto A855 Droid上运行良好)。 有人可以对此发表评论吗? 强制性代码片段: 定义我的RFCOMM UUID的成员变量 static final UUID UUID_RFCOMM_GENERIC = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); 我的connect()的一部分 // make sure peer is defined as a valid device based on their MAC. If not then do it. if
  • Android,不推荐使用独立版本的 traceview(Android, the standalone version of traceview is deprecated)
    问题 我想看看我的踪迹。 1- 在代码中,我添加了以下代码行: // Start trace recording android.os.Debug.startMethodTracing("hc_traceview"); 和 // Stop trace recording android.os.Debug.stopMethodTracing(); 2- 我可以在 DDMS 的文件资源管理器中看到“ hc_traceview.terac ”。 3-基于在 Traceview 中查看跟踪文件,我在终端中运行了以下命令: @hesam-K5VD:~/Desktop/Eclipse/sdk/tools$ traceview /mnt/sdcard/hc_traceview 但输出是: The standalone version of traceview is deprecated. Please use Android Device Monitor (tools/monitor) instead. trace file '/mnt/sdcard/hc_traceview' not found 4-根据建议,我在终端中运行了以下命令: @hesam-K5VD:~/Desktop/Eclipse/sdk/tools$ monitor /mnt/sdcard/hc_traceview DDMS
  • Android 调试工具集【转】
    1.TraceView1)功能:用于热点分析和性能优化,分析每个函数占用的CPU时间,调用次数,函数调用关系等 2)方法:  a)在程序代码中加入追踪开关  import android.os.Debug;  ……  android.os.Debug.startMethodTracing(“/data/tmp/test”);// 先建/data/tmp目录  ……// 被追踪的程序段  android.os.Debug.stopMethodTracing();  b)编译,运行后,设备端生成/data/tmp/test.trace文件  c)把trace文件复制到PC端  $ adb pull /data/tmp/test.trace ./  d)使用android自带工具分析trace文件  $ANDROID_SRC/out/host/linux-x86/bin/traceview test.trace  此时可看到各个函数被调用的次数CPU占用率等信息  e)使用android自带工具分析生成调用关系类图  $ apt-get install graphviz# 安装图片相关软件  $ANDROID_SRC/out/host/linux-x86/bin/dmtracedump -g test.png test.trace  此时目录下生成类图test.png 3)注意
  • Android eclipse DDMS-无法访问手机上的数据/数据/来提取文件(Android eclipse DDMS - Can't access data/data/ on phone to pull files)
    问题 在测试我的应用程序时,我使用模拟器和自己的手机查看一切是否正常。 我的应用程序还在将数据写入共享的首选项和文本文件。 我可以通过Eclipse中的DDMS从仿真器中提取数据,以便读取计算机上的数据文件,但是当我尝试通过手机上的DDMS打开这些文件夹时,什么也没有发生。 我单击数据文件夹,但没有任何反应。 我的手机已扎根。 有什么办法可以从手机中提取文件? 我知道Android会将这些文件夹设为私有,但是必须有一种方法。 模拟器是公正的方式过于缓慢。 回答1 在有根设备上,您可以执行以下操作: 打开cmd 输入adb shell su 在设备上按“允许” chmod 777 /data /data/data /data/data/com.application.package/data/data/com.application.package/* 转到Eclipse中的DDMS视图 之后,您应该能够浏览设备上的文件。 要获取数据库: chmod 777 /data/data/com.application.package/databases /data/data/com.application.package/databases/* 如果返回对su permission denied 转到Settings > Developer Options > Root access >