Android 使用Android Studio进行NDK-JNI开发

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值