自从它发布以来,我一直在使用Android Studio来开发我的应用程序.
一切都很好,直到最近,我必须与检查数据库文件一起调试.由于我不知道如何直接查看数据库,当我调试生成数据库文件时,我必须将数据库文件从手机导出到PC.
为了做到这一点,我必须打开DDMS > File Explorer.一旦我打开DDMS,我就必须重新连接USB,我就失去了调试线程.检查数据库文件后,我必须关闭DDMS并再次重新连接USB以返回调试模式.
这太复杂了.有没有人有更好的方法在Android Studio中执行此操作(我知道它在Eclipse中更容易)?
这些天我正在将我的开发环境从Eclipse切换到Android Studio.我真的很喜欢它的自动完成功能以及这个IDE提供的许多其他功能.但是,在进行调试时我遇到了一些问题.
我希望使用这个IDE提供的Monitor工具,自包含DDMS和非常好的可视化界面来跟踪内存使用情况,线程状况等.但我无法找到一种方法,可以使用我必须创建的断点逐步支持(编辑器中的红点)
我只能通过不打开此监视器来逐步调试.因为当我在调试器运行时尝试使用Monitor时,它会弹出一个窗口,要求我先断开ADB.我也找不到从Monitor启动应用程序的地方.
在Android Studio中同时使用Monitor时,有没有办法逐步调试?
我想弄清楚为什么我的应用程序使用了这么多内存.我经常看到它使用15到18MB之间,这远远高于我的预期.我通过DDMS查看了堆大小,看到了这个:

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

我完全不知道为什么sPreloadedDrawables负责这么高的保留堆大小.我也不知道如何确定根本原因,或者如何"修复"它.
我应该从哪里出发?我的应用程序主要通过不处理图像数据的服务在后台运行.我确实有用户可以选择使用的活动,但同样,他们使用的小型drawable不能解释如此大的堆大小.我还检查了任何令人讨厌的活动泄漏事件等,但没有找到任何.
编辑:我注意到在模拟器中运行时堆大小要大得多.这很令人困惑.:/
最近我看到可以通过使用WIFI而不是USB调试方法来调试应用程序开发.我进行了搜索,发现了一个名为abdWireless的应用程序,但我遇到了问题.
我怎么告诉Eclipse通过Wifi方法连接?
我认为这是一个自动过程,但在开始调试时它会打开模拟器.
有人?:)再见
我有一个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 Studio(Beta)0.8.7,我的logcat已经好几个月了.我的logcat突然无法检测到任何应用程序或程序包名称.这意味着我无法过滤我正在测试的特定应用程序的消息,这非常令人讨厌.典型的logcat消息现在看起来像这样:

注意问号(?),其中app/package名称应该是......
最初我以为这是我的设备,但我已经尝试了我拥有的另一个Android设备,我得到了同样的问题.这就是我尝试过的:
有谁之前经历过这个吗?请帮助,因为它让我有点疯狂......
更新:我尝试了安装了android studio的笔记本电脑,它正在做同样的事情!我大约95%确定app/package名称应该在那里而不是问号,因为这是我记忆中的方式.还有一个问号,logcat无法通过应用程序的包名过滤消息......我以前从来没有遇到过这个问题所以它一定是有效的,所以我不能发疯...
从最近两天开始,eclipse开始显示有线行为.它进入DDMS后创建初始化的infinte进程,如果我尝试运行应用程序,那么Eclipse被绞死了.我试图从头开始安装eclipse 6.2和eclipse 7.0,但没有运气.是否有其他人面临这个问题,并得到任何解决方案,请与我分享.

我想知道Android Studio有哪些SQLite插件允许用户浏览创建的数据库?
如果我使用诸如"用户"之类的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)