问题列表 - 第47197页

Android 2.2和2.3之间的内存使用情况

我正在开发一个包含许多图像的应用程序.我注意到我的应用程序的内存使用量在Android 2.3中比在Android 2.2中高得多 - 最终导致在加载位图时出现OutOfMemory错误.在研究这个时,我在第一个活动的onResume中记录了Debug.getNativeHeapAllocatedSize()的结果.在Android 2.2中,这输出5MB.在Android 2.3中,这输出17MB.

我创建了一个示例应用程序,试图进一步缩小范围.示例应用程序有2个活动:第一个有一个小图像和一个按钮来启动第二个活动; 第二个活动在ScrollView中有几个大图像.您可以在此处下载示例:http: //dl.dropbox.com/u/21709517/MemoryUsageExample.zip运行此示例时,Debug.getNativeHeapAllocatedSize()报告在2.2和2.3中启动第一个活动后分配的3MB.启动第二项活动后,Android 2.2仍然报告已分配3MB,而Android 2.3报告已分配17MB.运行"adb shell dumpsys meminfo test.example"会显示相同类型的结果.

为什么Android 2.2和2.3之间存在如此巨大的差异?更重要的是,我应该做些什么来防止在Android 2.3上使用如此多的内存?

----- -----更新

在查看了Romain Guy发布的信息之后,我决定更多地使用各种加载选项.结果显示,强制图像作为RGB_565加载确实减少了Android 2.3中的内存,但它仍然使用超过2.2.在我的示例应用程序中,Android 2.3现在使用10MB而不是Android 2.2使用3MB.此外,我尝试使用ARGB_8888强制32位.在这种情况下,Android 2.3使用17MB,但Android 2.2继续只使用3MB.更新的示例可以在这里找到:http: //dl.dropbox.com/u/21709517/MemoryUsageExample2.zip

造成这些差异的原因是什么?还有更多需要做的事情来使内存使用更接近Android 2.2吗?还有,有办法强制通过xml布局创建的图像为特定格式吗?这可以在应用程序范围内设置吗?谢谢.

-----更新2 -----

根据这个帖子,不可能强制通过xml膨胀加载的图像成为特定格式.

我仍然希望得到一个答案,为什么Android 2.2和Android 2.3强制16或32位后使用不同的内存量.

memory android

7
推荐指数
1
解决办法
3601
查看次数

Android:拖放问题

我正在为一个班级写一个SMIL作曲家,我正在计划制作画布支持drap和drop,所以你可以随意放置图片和文字.我已经查看了示例并自己做了一些,但是当我去实现项目中的拖放时,它不起作用.以下是重要的主要代码:

public class ComposerActivity extends Activity {
    /** Called when the activity is first created. */

    @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.composer);

    Button add = (Button)findViewById(R.id.addBtn);
    ...

    add.setOnClickListener(mClick);
    ...
}

OnClickListener mClick = new OnClickListener() {
    @Override
    public void onClick(View v){        
        if(v.getId() == R.id.addBtn)
        {
            FrameLayout fl = (FrameLayout)findViewById(R.id.Canvas); 
            LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
            View itemView = inflater.inflate(R.layout.image_add, null);

            View image = (View)itemView.findViewById(R.id.image);   
            image.setBackgroundResource(R.drawable.icon); 

            fl.addView(itemView, new FrameLayout.LayoutParams(40, 40));  

            image.setOnTouchListener(drag);
        }
        ...

OnTouchListener drag = new OnTouchListener(){
    @Override 
    public boolean …
Run Code Online (Sandbox Code Playgroud)

android drag-and-drop

7
推荐指数
1
解决办法
6875
查看次数

屏幕区域识别以在屏幕上查找字段位置

我试图想出一种方法来让Sikuli的图像识别在C#中使用.我不想使用Sikuli本身,因为它的脚本语言有点慢,因为我真的不想在我的.NET C#app中引入一个java桥.

所以,我有一个代表我的屏幕区域的位图(我将这个区域称为BUTTON1).屏幕布局可能略有变化,或者屏幕可能已在桌面上移动 - 因此我无法使用直接位置.我必须首先找到BUTTON1 的当前位置在实时屏幕内的位置.(我试图发布这个图片,但我想我不能,因为我是一个新用户...我希望描述清楚......)

我认为Sikuli正在使用OpenCV.由于它是开源的,我想我可以对它进行逆向工程,并弄清楚如何在OpenCV中做他们正在做的事情,而不是在Emgu.CV中实现它 - 但我的Java不是很强大.

我查找了显示此示例的示例,但所有示例都非常简单(即,如何识别停止标志)或非常复杂(即如何进行面部识别)......也许我只是密集,但我可以似乎在如何做到这一点的逻辑上跳了起来.

另外我担心所有各种图像处理程序实际上都是处理器密集型的,我真的希望它尽可能轻量级(实际上我可能有很多按钮和字段,我试图在屏幕上找到......)

所以,我正在考虑这样做的方式是:

A)将位图转换为字节数组并执行强力搜索.(我知道该怎么做).然后

B)使用我找到的字节数组位置来计算它的屏幕位置(我真的不完全确定我是怎么做的)而不是使用图像处理的东西.

这完全是疯了吗?有没有人有一个简单的例子说明如何使用Aforge.Net或Emgu.CV来做到这一点?(或者如何充实上面的步骤B ......?)

谢谢!

.net c# image-processing sikuli

7
推荐指数
1
解决办法
2373
查看次数

添加文件上传到Orchard模块?

您好我正在使用Orchard中的Cyber​​Stride.Contacts模块,并且一直在尝试向表单添加文件上传,但似乎某处存在问题,因为文件永远不会上传.有没有人成功地将文件上传添加到Orchard中的模块,如果是这样,你可以分享你是如何完成这个的.谢谢.

c# orchardcms asp.net-mvc-3

7
推荐指数
1
解决办法
3908
查看次数

C++ STL:二叉搜索树实现?

如果C++ STL包含二进制搜索树(BST)实现,或者我应该构建自己的BST对象,请知道吗?

如果STL没有实施BST,是否有可用的库?

我的目标是能够尽快找到所需的记录:我有一个记录列表(它不应该是几千个.),我在该列表中执行每帧(它的计算机游戏)搜索.我使用unsigned int作为我感兴趣的记录的标识符.无论什么方式,最快的将最适合我.

c++ binary-tree binary-search

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

找到写入SQL Server中的事务日志的内容?

有没有办法看到写入事务日志的内容?

我有一个日志文件,在过去20分钟内增加了15个Gigs.有没有办法让我找出造成这种情况的原因?

sql-server transaction-log sql-server-2008

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

从动态类名创建对象 - JS中的ReflectionClass?

没有邪恶的评估可以做这样的事情:

var str='MyClass';
eval('new '+str);
Run Code Online (Sandbox Code Playgroud)

我刚学会了PHP中的ReflectionClass ...谢谢.

javascript

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

我怎么能让这个程序更优雅?

我有一个伺服控制器正在移动物体越来越接近传感器,试图触发它.

我希望距离 15.5 开始.但是,在每次迭代中,我希望它减小距离.1,直到传感器触发.为方便起见,我想退出while循环,并将变量$ currentHeight设置为此触发高度,因此我将减量行放在循环的beignning处.

但是,我必须在while循环之前对15.6起始点进行硬编码,以便它在循环的第一行中减少到15.5.

这似乎并不优雅.关于如何修饰它的任何建议?顺便说一句,对于你所有的老学校和晦涩的程序员来说,这是Tcl.;)

码:

set currrentDistance 15.6
set sensorStatus 4

while {$sensorStatus == 1)} {
    set currentDistance [expr $currentDistance - .1]
    moveServo $currentHeight
    set sensorStatus [watchSensor 2]
}
Run Code Online (Sandbox Code Playgroud)

tcl

0
推荐指数
1
解决办法
200
查看次数

Windows 2008服务器任务计划程序不运行.bat批处理作业

我在Windows 2008服务器上有一个批处理文件,当从命令行调用时工作正常.但是,当我将计划任务设置为运行此作业时,它无法正常工作.

任务计划程序确实显示任务正在定期运行,它不会显示任何错误.但是,批处理文件不会处理它应该处理的内容.

关于如何解决这个问题的任何想法都是最受欢迎的

batch-file scheduled-tasks windows-server-2008 windows-server-2008-x64

15
推荐指数
3
解决办法
10万
查看次数

如何确保将文件从我的工作目录复制到bin/Debug rsp中.斌/释放?

我的Visual Studio解决方案中有各种文件,如果我更改它,必须将其复制到bin/Debug文件夹中.

我试着设置Copy to Output Directory - Copy always但它不起作用.那么如何确保在构建这些文件时将其复制到bin/debug?

这是一个例子的屏幕截图: 在此输入图像描述

.net c# wpf visual-studio

9
推荐指数
1
解决办法
9761
查看次数