1、下载安装Android NDK
下载地址:http://developer.android.com/ndk/downloads/index.html#download
2、配置NDK路径
打开Android Stuido,依次点击File->Project Structure
也可以在local.properties文件中添加相关配置
3、创建一个Android项目
public class MainActivity extends Activity {
static {
//加载打包完的so类库
System.loadLibrary("testjni");
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView jniText = (TextView) findViewById(R.id.jni_text);
jniText.setText(getStringFromNative());
}
public native String getStringFromNative();
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
4、执行make project操作
5、打开View -> Tool Windows -> Terminal
进入当前应用目录下的app/src/main目录下
此操作生成的com_itblue_hellojni_MainActivity.h在java目录下面,简易剪切到jni目录
通过执行:
javah -d jni -classpath d:\Software\Eclipse+ADT+SDK-5.0_20141024\adt-bundle-windows-x86_64-20140702\sdk\platforms\android-16\android.jar;..\..\build\inte
rmediates\classes\debug com.itblue.hellojni.MainActivity
可以创建jni文件夹,并在jni文件夹中生成com_itblue_hellojni_MainActivity.h
6、在jni目录下创建c源文件,目录结构如下:
7、配置build.gradle文件,增加ndk{}配置
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.itblue.hellojni"
minSdkVersion 10
targetSdkVersion 23
versionCode 1
versionName "1.0"
ndk {
moduleName "testjni"
abiFilters "armeabi", "armeabi-v7a", "x86"
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:design:23.0.1'
}
8、编译运行即可
生成的类库文件目录
注可能遇到的问题:
这个问题只需要在gradle.properties文件中增加一句:
android.useDeprecatedNdk=true