Android本机库比excutables慢

时间:2016-12-19 03:46:23

标签: android android-ndk

从adb shell运行可执行文件可以达到100 MIPS,而使用Android本机库在同一设备上只能达到30 MIPS。考虑到Android ndk / jni / ......开销是否正常?

可执行文件和本机二进制文件使用相同的标志进行编译,但可能是不同的编译器。

  • 可执行文件使用arm-none-linux-gnueabi-gcc编译,arm-none-linux-gnueabi-gcc --version的输出:

      

    arm-none-linux-gnueabi-gcc(Sourcery CodeBench Lite 2014.05-29)4.8.3 20140320(预发布)
      版权所有(C)2013 Free Software Foundation,Inc。
      这是免费软件;查看复制条件的来源。没有   保证;甚至不适用于适销性或特定用途的适用性。

  • 通过在Android Studio项目的 build.gradle 中添加以下命令来编译本机库。

      externalNativeBuild {
        cmake {
            // for neon optimization:
            abiFilters "armeabi-v7a"
            cppFlags "-DHAVE_NEON -O3 -Wno-parentheses -mfpu=neon -mfloat-abi=softfp -march=armv7-a"
        }
    }
    

我发现不同之处在于本机库在调试模式下运行,当我更改为发布模式时,本机库和可执行文件具有可比较的MIPS。

0 个答案:

没有答案