`
wcgdonot
  • 浏览: 92150 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android硬件加速注意事项

阅读更多

关于APP使用硬件加速的注意事项:

1.硬件加速Android一直有,不过3.0之后才引入了全面的硬件加速

2.硬件加速显著的缺点就是会带来4倍的内存占用

3.GPU是流畅度的一大瓶颈

4.好的优化必须谨慎配置cpu和gpu在ui渲染中的比重来缓解渲染压力,节省内存

5.分辨率将给流畅性带来巨大压力,这会由多窗口机制成倍放大

6.单个app的ui渲染不支持并行运算,多核无法带来提升,所以我们的四核其实跑时是单核

关于应用的设计注意事项:

1.应用Layout布局优化

2.合理使用图片资源

3.UI线程中一定不要做耗时操作。

 

最佳实践

通常应用程序使用硬件加速2D图形可以立即增强表现,但是并不是所有应用程序的View都适合使用硬件加速,因为如果需要使用请通过如下的建议来设计应用程序使其更有效率的使用GPU。

1、 减少你程序中使用View的数量

  你系统中画的view的数量越多,你的程序就会越慢,在软件绘制的流程也是一样的,减少view的数量是优化你UI的一个最简单的方法。

2、 避免过多绘制

  不要过多的叠加层,当一个View被其他view完全遮挡住了的话,最好把被遮挡的view移除掉。如果你需要绘制不同的层做一个叠加效果的话,考虑把这些层合并为一个层。就现在的硬件来看,有一个好的经验就是动画的每帧不要绘制多余屏幕像素2.5倍的像素数量(bimap中的透明像素也计算在内)。

3、 不要在绘制的方法中创建绘制对象

  一个常见的错误就是当绘制方法被调用的时候,每次都要创建一个新的Paint或者Path。这将迫使垃圾回收器过于频繁的运行,这将对缓冲和硬件的绘制造成影响。

4、 不要过于频繁的修改形状

  以复杂的shapes,path和旋转为例,这些绘制都会用到纹理的遮罩。每当你创建或者修改一个path,硬件渲染过程都会创建一个新的遮罩,这耗费的代价是相当大的。

5、 不要过于频繁的修改bitmap

  每当修改一次bitmap的内容,当你下次再绘制它的时候都会以GPU的纹理形式上传一次。

6、 要小心使用alpha通道

  当你使用setAlpha ,AlphaAnimation或者ObjectAnimator设置一个View的透明效果时。它将需要2倍离屏的渲染缓冲填充率,当应用一个alpha到一个大的View上的时候,考虑设置view 层的类型为LAYER_TYPE_HARDWARE。

 

分享到:
评论

相关推荐

    Intel haxm (英特尔硬件加速器)

    **注意事项** 1. **系统要求**:除了硬件支持外,操作系统必须是Windows 7或更高版本,或者Mac OS X 10.9及以上,并且需要管理员权限才能安装。 2. **内存分配**:为了充分发挥HAXM的优势,建议为Android Emulator...

    android-ndk(android-ndk-r25b-windows.zip)

    NDK的主要功能是让开发者能够在Android应用中使用原生代码,例如C、C++,以实现高性能计算或利用硬件加速等功能。 **JNI(Java Native Interface)**是Android NDK的核心组成部分,它提供了Java和本地代码之间的...

    android yuv420sp叠加osd

    **注意事项** - YUV420SP的数据处理需要注意内存对齐和行填充问题,防止程序崩溃或错误显示。 - 考虑到性能,应尽可能利用硬件加速功能,如`MediaCodec`,避免不必要的CPU密集型操作。 - 对于高分辨率或高帧率的视频...

    Android GIFPlayer

    - **硬件加速**:利用Android的硬件加速机制,提高动画的流畅性。 - **内存管理**:合理缓存帧,避免一次性加载所有帧导致内存占用过高。 - **暂停与恢复**:提供API接口,允许用户暂停和恢复GIF播放,以适应不同...

    android ffmepg3.3.4软解动态库和硬解动态库

    6. **注意事项** - 使用硬解库时,需要检查目标设备是否支持所需的硬件加速功能。 - 考虑到兼容性和性能平衡,有时可能需要为不同设备提供软解和硬解两种方案。 - 集成FFmpeg时,要注意版权问题,因为某些编解码...

    intelhaxm-android

    标题中的“intelhaxm-android”指的是Intel Hardware Accelerated Execution Manager(HAXM),这是一个用于Android模拟器的硬件加速器,由Intel开发。HAXM通过利用主机CPU的硬件虚拟化功能来显著提升Android ...

    intelhaxm-android.zip

    4. **配置AVD**:在创建或编辑AVD时,选择“系统镜像”下的Intel x86 Atom或x86_64选项,并勾选“Use Host GPU”以启用硬件加速。 5. **解决常见问题**:如果安装失败,可能是由于硬件虚拟化未开启、驱动冲突、内存...

    android_ndk_linux-r64位下载

    3. **硬件加速**:通过JNI(Java Native Interface)调用本地代码,可以直接访问硬件API,实现GPU渲染或其他硬件加速功能。 4. **安全**:部分敏感操作或加密算法可以通过本地代码执行,避免暴露在Dalvik虚拟机中。 ...

    Android vlc

    开发者注意事项 对于想要学习或修改 Android VLC 源码的开发者,需要了解以下几点: - **JNI 开发**: 熟悉 C/C++ 和 JNI 编程,理解如何在 Java 和 C/C++ 之间传递数据和调用函数。 - **Android SDK**: 理解 ...

    Android ffmpeg so库

    3. **性能优化**:在Android上,为了获得更好的性能,可能需要利用硬件加速,这可能涉及到选择特定的编解码器和设置。 4. **内存管理**:由于FFmpeg库在C语言环境下运行,开发者需要特别注意内存管理,防止内存泄漏...

    android 本地视频压缩

    Android系统提供了MediaCodec API,它是Android多媒体框架的一部分,支持硬件加速的编码和解码。通过MediaExtractor读取原始视频数据,MediaMuxer用于将编码后的数据打包成新的视频文件。以下是一般步骤: 1. 使用`...

    genymotion与Androidstudio连接插件

    **注意事项** 1. 确保Genymotion和Android Studio版本兼容,否则可能会出现插件不工作的情况。 2. 需要安装并激活Genymotion软件本身,才能在Android Studio中使用其功能。 3. 虚拟机需要占用较多系统资源,确保电脑...

    android系统的搭建

    - HAXM(Hardware Accelerated Execution Manager)是Intel提供的一款硬件加速工具,用于提高Android虚拟设备(Emulator)的性能。 - HAXM能够显著提升Android模拟器的速度,尤其是在运行图形密集型应用时更为明显。 ...

    Android平台最新ffmpeg动态库

    - 利用硬件加速:如果目标设备支持,可以使用硬件解码器来处理H264,减轻CPU负担。 - 调整FFmpeg配置:根据具体需求,可以通过编译时配置选择合适的编解码器、滤镜和格式,优化内存使用和计算效率。 - 多线程处理...

    Android Studio 之ndk

    在Android开发领域,NDK(Native Development Kit)是一个不可或缺的工具,它允许开发者使用C、C++等原生代码来编写部分应用,从而提升性能、优化计算密集型任务或者利用硬件加速功能。Android Studio作为官方推荐的...

    Android视频播放器(支持横竖屏切换)

    在Android平台上开发一款支持横竖屏切换...以上知识点涵盖了创建一个支持横竖屏切换的Android视频播放器所涉及的主要技术和注意事项。通过深入理解这些概念并实践,开发者可以构建出满足用户需求的高质量视频播放应用。

    androidstudio3.2

    5. **Android模拟器改进**:模拟器性能提升,支持硬件加速,同时新增了对Android Pie(9.0)系统的仿真,使得测试更加便捷。 三、核心组件介绍 1. **LiveTemplates.jar**:包含了各种预定义的代码模板,方便开发者...

    Android MediaCodec 硬解码H264

    5. **注意事项** - **同步与异步解码**:MediaCodec支持同步和异步模式。同步模式在主线程中操作,而异步模式允许在单独的线程中进行解码,提高应用的响应性。 - **颜色格式转换**:MediaCodec输出的色彩格式可能...

    ffmpeg4.3.5 Android 动态库

    5. **注意事项** - 考虑到版权问题,某些编解码器可能需要额外的许可才能在商业应用中使用。 - 注意内存管理,避免在 JNI 层面出现内存泄漏。 - 调试时,确保正确设置日志级别,以便在 Android Studio 控制台查看...

    android_windows虚拟机

    9. **安全注意事项**:运行虚拟机时,应确保系统和虚拟机软件都是最新版本,以降低安全风险。 通过理解和掌握这些知识点,Windows用户就能充分利用Android虚拟机,无论是进行开发、测试还是享受Android应用带来的...

Global site tag (gtag.js) - Google Analytics