当前位置:  开发笔记 > 编程语言 > 正文

Android硬件加速 - 使用或不使用?

如何解决《Android硬件加速-使用或不使用?》经验,为你挑选了2个好方法。

我正在开发一个应用程序,其功能与Facebook Android原生应用程序非常相似:社交网络,大多数时候用户将花费在无尽的ListView显示批量图像,进入图像库等等.

让我们说讨论我正在做所有正确的事情和最好的Android实践来实现平滑滚动(应该回收视图,在需要时使用不同的视图类型,加载到内存只需要大小的缩放位图,缓存位图,使用ViewHolder设计模式,在可能的情况下不阻塞UI线程等等......)

让我们说我的应用程序中的其他所有内容都以最佳方式编写并遵循最佳实践(讨论......: - >)

我的应用程序工作不坏在那个阶段,但在硬件加速转弯时,如所描述并承诺在Android开发者文档, 它使我的应用程序很多很多更加顺畅,快捷.

让我们说它不会像在任何不支持的操作中那样在UI上以任何负面的方式影响

根据Google关于这个主题的文档,只有我能看到不使用此功能的原因(除了上面提到的所有其他原因)之外,它可能会导致我的应用程序使用更多内存.但是RAM多少钱?多很多?我知道当我的应用程序消耗大量的RAM时 - 当它需要释放一些内存时,它会被操作系统摧毁.

我的问题基本上是 -

在我的情况下使用此功能是"好"吗?

使用它可以带来哪些其他问题?

TIA



1> ılǝ..:

使用或不使用

建议仅在具有用于缩放,旋转和平移图像的复杂自定义计算时才使用硬件加速,但不要将其用于绘制线条或曲线(以及其他简单操作)(源).

如果您计划进行共同转换,并且考虑到您已经考虑过扩展,回收,缓存等,那么您的项目负担可能就没有意义了.此外,重新编写代码以支持硬件加速的任何努力都不会影响3.0以下版本的用户,截至2013年5月8日,这些版本约占市场的36%.

记忆

关于内存使用情况(根据本文),通过包含Android硬件,应用程序为每个进程加载OpenGL驱动程序,占用大约2MB的内存,并将其提升到8MB.

其他问题

除了API版本,我认为它也会影响电池寿命.不幸的是,在网上不同的用例没有任何基准,以便在这个上画一条线.一些人认为,在特定情况下,由于多个gpu核心,使用加速可能会延长电池寿命.总的来说,我认为这种效果不会过于戏剧化(或谷歌会将此作为主要观点)是安全的.


另一个考虑因素是你计划播放视频,以及如何.例如,到目前为止,如果未启用硬件加速,大多数Android手机都不会播放HTML5视频(因此,如果您的应用使用的是webview,并且您计划使用视频硬件加速,则非常强制要求).

2> Neil..:

UPDATE

如果Target API级别> = 14,则默认启用硬件加速


在你的情况下我会说是,使用硬件加速.

看到您没有在应用程序中使用任何资源密集型控件,启用硬件加速应该不是问题.正如你所说,你的应用程序在没有硬件加速的情况下运行良

当您启用硬件加速时,Android将开始使用您的GPU,并且由于增加了启用硬件加速所需的资源,您的应用将消耗更多RAM.


一个经常被问到的问题是,公羊的数量会增加很多吗?

答案将全部由以下因素决定:

1.你的编程能力即.管理回收清单,缩放图像等.

2.装置

我刚刚写了一个应用程序,用于编辑真正高分辨率的位图.我遇到了同样的问题.我发现在不同的设备上,当启用硬件加速时,操作系统分配最大ram 数量因设备而异.如果您的设备有更多内存,操作系统会为您的应用分配更多内存,因此您永远不会找到用于您的应用的一致数量的内存.更大更昂贵的设备将始终在更大的内存上运行您的应用程序.


使用硬件加速可以带来哪些其他问题?

硬件加速可能会导致某些2D绘图操作出现问题.如果您遇到这种情况,您可以仅对应用中的特定活动启用硬件加速,如android Developer Docs中的硬件加速帖子所述

启用硬件加速的最简单方法是为整个应用程序全局启用它.如果您的应用程序仅使用标准视图和Drawables,则全局启用它不会导致任何不利的绘图效果.但是,由于所有2D绘图操作都不支持硬件加速,因此打开它可能会影响某些使用自定义视图或绘图调用的应用程序.问题通常表现为不可见的元素,异常或错误渲染的像素.为了解决这个问题,Android提供了在以下级别启用或禁用硬件加速的选项: 应用程序,活动,窗口,视图

通过这种方式,您还可以限制应用程序中的硬件加速,但通过它的声音,您将需要大多数应用程序功能.

希望这可以帮助

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有