
我很想在Manifest中使用Android:LargeHeap =“true”选项来获得额外的内存(我们在高分辨率的1980×1200显示器上处理5 MB位图,并且很快就会看到更大的显示器.
我已经完成了处理AndroID中用于位图的糟糕内存处理的所有常规技巧(即,无法知道碎片内存中是否存在足够大的洞,而不是试图祈祷它不会崩溃).我已经花了数周优化,修剪和应用其他技巧来最小化内存并防止崩溃.这是在2.x vs 3.x / 4.x中可以完成哪些功能的技巧,但是将它们全部保存在一个应用程序中.无需指出“如何优化位图” – 我已经完成了这些并应用了我能做到的事情.
版本2.x不支持LargeHeap,并且我在2.x中不需要LargeHeap选项的较低分辨率屏幕使用不同的图像. (也没有内存不足问题).
当androID:minSdkVersion =“8”时,它根本不允许使用AndroID:LargeHeap选项.
有没有办法有条件地为包含3.x的系统包含LargeHeap,并在2.x中忽略它?或者如果检测到3.x,应用程序本身是否尝试设置LargeHeap?我找不到任何办法,但也许我忽略了一些技巧.
我也意识到LargeHeap相当糟糕,但我们已经没有其他技巧了.理想情况下,只有在OnCreate程序中真正需要(和允许)时,以编程方式执行LargeHeap会很好.
解决方法:
When androID:minSdkVersion=”8″, it will not allow the AndroID:LargeHeap option at all.
是的,它会的.
现在,如果您的构建目标(例如,属性> AndroID)设置为API级别8,则无法编译.您需要使用构建目标API级别11或更高版本进行编译.但androID:minSdkVersion与它无关.旧设备上只会忽略该选项.
Is there any way to conditionally include LargeHeap for systems with 3.x, and have it ignored for 2.x?
在< application>中使用androID:largeHeap =“true”清单中的元素.
Or have the application itself attempt to set LargeHeap if 3.x is detected?
AFAIK,没有程序化手段来设置它.
总结以上是内存溢出为你收集整理的android – 任何使用LargeHeap for v3.x并在Manifest中忽略2.x的方法?全部内容,希望文章能够帮你解决android – 任何使用LargeHeap for v3.x并在Manifest中忽略2.x的方法?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)