使用AndroidStudio编译.SO文件

1.AndroidStudio的配置

(1),Plugn下载ndk并配置路径 


(2),Mac操作在Terminal中配置环境变量,命令行输入:
touch .bash_profile
open .bash_profile
文件内容如下:
export JAVA_HOME=`/usr/libexec/java_home`
export PATH=${PATH}:${JAVA_HOME}:${ANDROID_SDK_ROOT}:${ANDROID_SDK_ROOT}/platform-tools:${ANDROID_SDK_ROOT}/tools:${JAVA_HOME}:${JAVA_HOME}/bin  
export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"
export ANDROID_SDK_ROOT="/Users/admin/Library/Android/sdk"
export PATH=/Users/admin/Library/Android/sdk/android/platform-tools/:$PATH
export NDK_ROOT=/Users/admin/Library/Android/sdk/ndk-bundle
export PATH=$PATH:$NDK_ROOT/
export NDK_PROJECT_PATH=/Users/admin/love/CMM_V4/lib.framework(jni所在路径)
输入ndk-build,
(3),配置jni所在moudle的build.gradle,如下:
android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"

    defaultConfig {
        minSdkVersion 11
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    externalNativeBuild {
        ndkBuild {
            path file("src//main//jni//Android.mk")
        }
    }

    buildTypes {
        debug{
//            buildConfigField("String", "TOKEN", rootProject.config.token_debug)
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {
        main {
            jni.srcDirs = []
            jniLibs.srcDir 'src/main/libs'
        }
    }
}
(4),在src/main下新建jni目录,将需要编译的库放在jni目录下。
    (1),创建Android.mk文件
    (2),创建Application.mk文件
(5).创建调用C代码的类
public Class SimpleLame{
    System.loadLibrary(“libmp3lame”);(和Android.mk保持一致)
}
使用命令行生成头文件.h
创建.c文件,实现.h里的方法
关于mac androidstudio生成头文件的命令行 
(6),进入jni所在目录,ndk-build
(7),使用.so文件 

猜你喜欢

转载自blog.csdn.net/qq_36282231/article/details/81035351