Bootstrap

Android studio 利用cmake编译和使用so文件

在Android Studio中使用CMake编译和使用.so文件,你需要执行以下步骤:

1.在CMakeLists.txt文件中指定你的.so文件。

2.在build.gradle文件中配置CMake构建脚本。

3.同步项目,让Gradle和CMake生成相应的Native库。

以下是一个简单的例子:

步骤1: 创建CMakeLists.txt

在你的项目的CMakeLists.txt文件中,添加你的.so文件。假设你的.so文件名为libexample.so,位于src/main/jniLibs/armeabi-v7a/目录下:

cmake_minimum_required(VERSION 3.4.1)

add_library( lib_example SHARED IMPORTED )

set_target_properties( lib_example

    PROPERTIES IMPORTED_LOCATION

    ${CMAKE_SOURCE_DIR}/src/main/jniLibs/armeabi-v7a/libexample.so )

add_executable( your_app_name main.cpp )

target_link_libraries( your_app_name

                       lib_example )

步骤2: 配置build.gradle

在你的build.gradle文件中,确保你有以下配置:

android {

    ...

    defaultConfig {

        ...

        ndk {

            // Specifies the ABI configurations of your native

            // libraries Gradle should build and package with your APK.

            abiFilters 'armeabi-v7a', 'x86'

        }

    }

    externalNativeBuild {

        cmake {

            path "CMakeLists.txt"

        }

    }

    ...

}

dependencies {

    ...

}

tasks.withType(JavaCompile) {

    compileTask -> compileTask.dependsOn 'ndkBuild'

}

tasks.withType(JavaCompile) {

    compileTask -> compileTask.dependsOn 'ndkBuild'

}

task ndkBuild(type: Exec, description: 'Compile JNI source via NDK') {

    commandLine "$projectDir/../ndk-build",

            '-C', file('src/main').absolutePath,

            'all', 'NDK_DEBUG=1'

}

步骤3: 同步项目

在Android Studio中,点击Tools -> Android -> Sync Project with Gradle Files,让Gradle和CMake根据你的配置生成相应的构建文件和库文件。

完成这些步骤后,CMake会编译你的.so文件,并且在应用构建过程中将其打包到APK中。在Java代码中,你可以使用System.loadLibrary("example")来加载这个.so文件。

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;