2011-06-13 86 views
1

我的Android NDK应用程序在C中使用单个开放源代码库。当它工作时,该库在处理器上的负载过重。问题:在Android NDK上优化应用程序

  1. 如何理解图书馆的哪些组件会承受最大的压力?

  2. 有什么方法可以优化吗? LOCAL_ARM_MODE:= arm大大提高了性能?

+0

你想使用什么开源库?如果您命名它,我们可以主要提供更具体的信息。例如,如果它是一个视频编解码器,那么答案可能是由于大量数据和计算密集型工作,视频编码固有地需要大量CPU功率。 – Codo 2011-06-13 09:17:37

+0

我使用音频库。它包括所有其他的编解码器,如lib库,libmp3lame,ffmpeg ... – Kyborg2011 2011-06-13 11:35:06

+0

所以这个音频解码库需要大量的CPU。我怎样才能减少CPU的消耗? – Kyborg2011 2011-06-13 11:35:55

回答

2

有一些技巧,可以优化你的Android原生代码,没有太多的努力:使用-O3开关

  • 在3级编译器优化转
  • 关闭串混叠-fno-strict-aliasing(或者你可以把如果你遵循C-aliasing规则,那么它就是 )
  • 打开浮点指令支持-mfpu=vfp -mfloat-abi=softfp
+0

在哪里可以添加这些标志? – 2013-12-20 06:02:24

+0

CPPFLAGS + = -fno-strict-aliasing -mfpu = vfp -mfloat-abi = softfp – 2013-12-20 09:55:39