标签: ddms

在Android Studio中查看数据库文件的内容

自从它发布以来,我一直在使用Android Studio来开发我的应用程序.

一切都很好,直到最近,我必须与检查数据库文件一起调试.由于我不知道如何直接查看数据库,当我调试生成数据库文件时,我必须将数据库文件从手机导出到PC.

为了做到这一点,我必须打开DDMS > File Explorer.一旦我打开DDMS,我就必须重新连接USB,我就失去了调试线程.检查数据库文件后,我必须关闭DDMS并再次重新连接USB以返回调试模式.

这太复杂了.有没有人有更好的方法在Android Studio中执行此操作(我知道它在Eclipse中更容易)?

android ddms android-sqlite android-studio

229
推荐指数
16
解决办法
40万
查看次数

亚行 - 安卓 - 获取当前活动的名称

有没有办法获取通过adb运行的当前活动的详细信息.

android adb ddms

79
推荐指数
10
解决办法
12万
查看次数

如何使用Monitor(DDMS)工具调试应用程序

这些天我正在将我的开发环境从Eclipse切换到Android Studio.我真的很喜欢它的自动完成功能以及这个IDE提供的许多其他功能.但是,在进行调试时我遇到了一些问题.

我希望使用这个IDE提供的Monitor工具,自包含DDMS和非常好的可视化界面来跟踪内存使用情况,线程状况等.但我无法找到一种方法,可以使用我必须创建的断点逐步支持(编辑器中的红点)

我只能通过不打开此监视器来逐步调试.因为当我在调试器运行时尝试使用Monitor时,它会弹出一个窗口,要求我先断开ADB.我也找不到从Monitor启动应用程序的地方.

在Android Studio中同时使用Monitor时,有没有办法逐步调试?

android adb ddms android-debug android-studio

55
推荐指数
2
解决办法
10万
查看次数

找到并修复大堆大小的原因

我想弄清楚为什么我的应用程序使用了这么多内存.我经常看到它使用15到18MB之间,这远远高于我的预期.我通过DDMS查看了堆大小,看到了这个:

在此输入图像描述

这看起来有点可疑,因为我的应用程序根本不处理大图像.事实上,我的应用程序中drawables的总和大约是250KB.所以我创建了一个堆转储并使用MAT来找到所有这些内存的去向.byte []数组是迄今为止最大的消费者,所以我深入研究并注意到以下内容:

在此输入图像描述

我完全不知道为什么sPreloadedDrawables负责这么高的保留堆大小.我也不知道如何确定根本原因,或者如何"修复"它.

我应该从哪里出发?我的应用程序主要通过不处理图像数据的服务在后台运行.我确实有用户可以选择使用的活动,但同样,他们使用的小型drawable不能解释如此大的堆大小.我还检查了任何令人讨厌的活动泄漏事件等,但没有找到任何.

编辑:我注意到在模拟器中运行时堆大小要大得多.这很令人困惑.:/

android memory-management ddms

53
推荐指数
1
解决办法
7724
查看次数

ADB,Wifi和Eclipse:我如何配置?

最近我看到可以通过使用WIFI而不是USB调试方法来调试应用程序开发.我进行了搜索,发现了一个名为abdWireless的应用程序,但我遇到了问题.

我怎么告诉Eclipse通过Wifi方法连接?

我认为这是一个自动过程,但在开始调试时它会打开模拟器.

有人?:)再见

eclipse android adb ddms wifi

43
推荐指数
3
解决办法
5万
查看次数

Android:OutofMemoryError:位图大小超过VM预算,没有理由我可以看到

我有一个OutOfMemory异常,画廊超过600x800像素JPEG.


环境

我一直在使用带有大约600x800像素的JPG图像的Gallery.

由于我的内容可能比图像更复杂,我将每个视图设置为一个RelativeLayout,它将JPView包装在ImageView中.

为了"加速"用户体验,我有一个4个插槽的简单缓存,预取(在一个looper中)左边有1个图像,1个图像右边显示图像并将它们保存在4槽HashMap中.

该平台

我使用的是256 RAM和128堆大小的AVD,屏幕为600x800.它也发生在Entourage Edge目标上,除了使用设备它更难调试.


问题

我一直在例外:

OutofMemoryError: bitmap size exceeds VM budget
Run Code Online (Sandbox Code Playgroud)

并且它在获取第五个图像时发生.我试图改变我的图像缓存的大小,它仍然是相同的.


奇怪的是:应该没有内存问题

为了确保堆限制远离我的需要,我在开始时定义了一个虚拟的8MB数组,并将其保留为未引用,以便立即调度.它是活动线程的成员,定义如下

static { @SuppressWarnings("unused")
byte dummy[] = new byte[ 8*1024*1024 ]; }    
Run Code Online (Sandbox Code Playgroud)

结果是堆大小接近11MB并且它们都是免费的. 注意我在它开始崩溃后添加了这个技巧.它使OutOfMemory不那么频繁.

现在,我正在使用DDMS.在崩溃之前(崩溃后变化不大),DDMS显示:

ID  Heap Size   Allocated   Free       %Used    #Objects
1   11.195 MB   2.428 MB    8.767 MB   21.69%   47,156  
Run Code Online (Sandbox Code Playgroud)

并在详细信息表中显示:

Type  Count  Total Size   Smallest   Largest   Median    Average
free  1,536  8.739MB      16B        7.750MB   24B       5.825KB
Run Code Online (Sandbox Code Playgroud)

最大的块是7.7MB.然而LogCat说:

ERROR/dalvikvm-heap(1923): 925200-byte external allocation too large for this process.
Run Code Online (Sandbox Code Playgroud)

如果你介意中位数和平均值之间的关系,可以假设大多数可用的块非常小.但是,有一个块足够大的位图,它是7.7M.怎么还不够呢?

注意:我记录了一个堆跟踪.在查看分配的数据量时,感觉不会超过2M.它确实与DDMS的可用内存报告相匹配. …

android gallery out-of-memory ddms imageview

34
推荐指数
2
解决办法
3万
查看次数

Logcat无法检测应用程序或程序包名称

我正在使用Android Studio(Beta)0.8.7,我的logcat已经好几个月了.我的logcat突然无法检测到任何应用程序或程序包名称.这意味着我无法过滤我正在测试的特定应用程序的消息,这非常令人讨厌.典型的logcat消息现在看起来像这样:

在此输入图像描述

注意问号(?),其中app/package名称应该是......

最初我以为这是我的设备,但我已经尝试了我拥有的另一个Android设备,我得到了同样的问题.这就是我尝试过的:

  • 重新启动Android Studio和我的电脑
  • 从终端终止并启动ADB服务器
  • 重启设备

有谁之前经历过这个吗?请帮助,因为它让我有点疯狂......

更新:我尝试了安装了android studio的笔记本电脑,它正在做同样的事情!我大约95%确定app/package名称应该在那里而不是问号,因为这是我记忆中的方式.还有一个问号,logcat无法通过应用程序的包名过滤消息......我以前从来没有遇到过这个问题所以它一定是有效的,所以我不能发疯...

android ddms logcat android-logcat android-studio

33
推荐指数
1
解决办法
1万
查看次数

Eclipse在DDMS post-create init中挂起

从最近两天开始,eclipse开始显示有线行为.它进入DDMS后创建初始化的infinte进程,如果我尝试运行应用程序,那么Eclipse被绞死了.我试图从头开始安装eclipse 6.2和eclipse 7.0,但没有运气.是否有其他人面临这个问题,并得到任何解决方案,请与我分享.

在此输入图像描述

eclipse android ddms

32
推荐指数
3
解决办法
2万
查看次数

从Android Studio浏览SQLite数据库

我想知道Android Studio有哪些SQLite插件允许用户浏览创建的数据库?

sqlite android ddms android-studio stetho

32
推荐指数
4
解决办法
4万
查看次数

如果用户配置文件中包含空格,则Android DDMS(Monitor)无法启动

如果我使用诸如"用户"之类的Windows帐户,则可以从Android Studio启动DDMS.

如果我使用包含诸如"测试用户"之类的空间的Windows帐户,则DDMS无法启动:

在此输入图像描述

日志显示以下内容:

!SESSION 2013-07-02 12:30:07.031 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.7.0_25
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_IE
Command-line arguments:  -os win32 -ws win32 -arch x86

!ENTRY org.eclipse.osgi 4 0 2013-07-02 12:30:07.730
!MESSAGE Application error
!STACK 1
java.io.IOException: The folder "C:\Users\Test%20User\.android\monitor-workspace\.metadata" is read-only.
    at org.eclipse.core.runtime.internal.adaptor.BasicLocation.lock(BasicLocation.java:206)
    at org.eclipse.core.runtime.internal.adaptor.BasicLocation.set(BasicLocation.java:164)
    at org.eclipse.core.runtime.internal.adaptor.BasicLocation.set(BasicLocation.java:137)
    at com.android.ide.eclipse.monitor.MonitorApplication.start(Unknown Source)
    at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
    at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
    at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
    at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
    at org.eclipse.equinox.launcher.Main.run(Main.java:1410) …
Run Code Online (Sandbox Code Playgroud)

android ddms

30
推荐指数
3
解决办法
1万
查看次数