最新Android Studio开发NDK步骤(自动版)

来源:互联网 发布:ubuntu 开启ssh服务 编辑:程序博客网 时间:2024/05/01 05:05
  1. 根据《开发NDK手动版》步骤,为Android Studio安装好NDK。
    这里写图片描述
  2. 新建项目HelloNdk,修改build.gradle(Project)
buildscript {    repositories {        jcenter()    }    dependencies {        classpath 'com.android.tools.build:gradle-experimental:0.6.0-alpha8'        // NOTE: Do not place your application dependencies here; they belong        // in the individual module build.gradle files    }}allprojects {    repositories {        jcenter()    }}task clean(type: Delete) {    delete rootProject.buildDir}

注意到classpath要用com.android.tools.build:gradle-experimental:0.6.0-alpha8等测试版本,否则无法自动集成NDK。
这里写图片描述
3. 修改build.gradle(Module)

apply plugin: 'com.android.model.application'model{    android {        compileSdkVersion 23        buildToolsVersion "23.0.2"        defaultConfig.with {            applicationId = "com.onion.hellondk"            minSdkVersion.apiLevel = 16            targetSdkVersion.apiLevel = 23        }        dependencies {            compile fileTree(dir: 'libs', include: ['*.jar'])            testCompile 'junit:junit:4.12'            compile 'com.android.support:appcompat-v7:23.+'            compile 'com.android.support:design:23.+'        }    }    android.ndk {        moduleName = "hello-l2c"    }    android.buildTypes {        release {            minifyEnabled false            proguardFiles.add(file('proguard-rules.txt'))        }    }    /*android.productFlavors {        create("x86-64") {            ndk.abiFilters.add("x86_64")        }    }*/}

默认生成所有CPU平台的so库,如果需要指定某种CPU平台,将注释打开自行编辑即可。
4. 编辑MainActivity.java

package com.onion.hellondk;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.Toast;public class MainActivity extends AppCompatActivity {    static {        System.loadLibrary("hello-l2c");    }    private native String stringFromJNI();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Toast.makeText(this, stringFromJNI(), Toast.LENGTH_LONG).show();    }}

library要和第3步的moduleName一致。
5. File->New->Folder->JNI Folder,新建jni目录,新建c文件如下,注意函数名的写法:

#include <jni.h>jstring Java_com_onion_hellondk_MainActivity_stringFromJNI( JNIEnv* env,jobject thiz ) {    return (*env)->NewStringUTF(env, "Hello Learn2Crack from JNI !");}

6.切换至Project,编辑gradle-wrapper.properties文件

#Sun Mar 27 19:42:31 CST 2016distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/distszipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/distsdistributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip

因为需要制定某个版本的gradle才有效。如果出现错误, File->Settings->Gradle->Use default gradle wrapper(recommended),不要勾选offline, OK.
这里写图片描述
7. 切换回Android,Build->Make Project, 然后run即可。

0 1
原创粉丝点击