2011-06-13 84 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