測試平臺: OMAP4430
1: 必須使用最新的gcc版本,以方便支持NEON
最新的android-ndk-r3 支持了GCC4.4.0。
Note:第一代NDK 和 後面的NDK 不同的最大地方是系統目錄的變化。(這裏不談opengl等本身功能提升)
老NDK 的系統文件在以下位置:
-I$(NDK_BASE)/include/bionic/arch-arm/include /
-I$(NDK_BASE)/include/bionic/include /
-I$(NDK_BASE)/include/kernel/include /
-I$(NDK_BASE)/include/libm/include /
-I$(NDK_BASE)/include/libm/include/arm /
-I$(NDK_BASE)/include/libstdc++/include /
擔新的NDK 支持不同的platform(android-3 、 android-4、android-5)和 AndroidManifest.xml裏面的<uses-sdk android:minSdkVersion="?" /> 是對應的。
所以系統目錄要相應改變。
android-ndk-r3 支持android-5
-I$(NDK_BASE)/build/platforms/android-5/arch-arm/usr/include /
2:測試了內聯和彙編,編譯選項:
-save-temps -fpic -mthumb-interwork -O3 -march=armv7-a -mtune=cortex-a8 -mcpu=cortex-a8 -mfloat-abi=softfp -mfpu=neon -ftree-vectorize -fomit-frame-pointer -ffast-math -funroll-loops
雖然有提示:-mcpu=cortex-a8 conflicts 擔問題不大。
3: 測試了下結果,通過