一:使用gradle experimental plugin

首先,我们不能用android studio默认的gradle插件,我们需要把android studio的插件改为gradle experimental plugin, 这个plugin是google开发的,网址在这里:

http://tools.android.com/tech-docs/new-build-system/gradle-experimental


Gradle experimental plugin是android studio的一个新的编译插件,能提高程序的编译性能。另外它也支持NDK,可以编译JNI应用。目前(2016年5月)最新的版本为0.7.0

二:软件准备:

  • Gradle 2.10

  • Android NDK r10e 

  • Android SDK Build Tools 版本为23.0.3

三:目录结构的变化

下面标红的是需要修改的配置,主要有三个:

├── app/

│   ├── app.iml

│   ├── build.gradle                    ---------->    module编译配置文件

│   └── src/

├── build.gradle                        ---------->    工程编译配置文件

├── gradle/

│   └── wrapper/

│       ├── gradle-wrapper.jar

│       └── gradle-wrapper.properties   ---------->    gradle版本配置文件

├── gradle.properties

├── gradlew*

├── gradlew.bat

├── local.properties

├── MyApplication.iml

└── settings.gradle


./gradle/wrapper/gradle-wrapper.properties:

#Wed Apr 10 15:27:10 PDT 2013
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip


./build.gradle:

buildscript {
   repositories {
       jcenter()
   }
   dependencies {

    //classpath 'com.android.tools.build:gradle:2.1.0'
       classpath "com.android.tools.build:gradle-experimental:0.7.0"
   }
}

allprojects {
   repositories {
       jcenter()
   }
}

./app/build.gradle

apply plugin: "com.android.model.application"

model {

    android {

        compileSdkVersion 23

        buildToolsVersion "23.0.3"

 

        ndk {

            moduleName "helloJni"

            ldLibs.add("log")        // native代码里面使用android logcat日志

        }

 

        defaultConfig {

            applicationId "cn.itcast.testjni"

            minSdkVersion.apiLevel 19

            targetSdkVersion.apiLevel 22

            versionCode 1

            versionName "1.0"

        }

    }

}

 

dependencies {

    compile fileTree(dir: "libs", include: ["*.jar"])

}


参考链接:

https://codelabs.developers.google.com/codelabs/android-studio-jni/index.html