android jni 导入c代码,如何将JNI(C/C++本机代码)添加到现有的Android Studio项目中

从现有项目中执行以下步骤:

1.修改build.gradle(模块应用程序)看起来像这样(很多变化!):

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

model {

android.signingConfigs {

create ("myConfig") {

keyAlias '--your-key-alias--'

keyPassword '--key-password--'

storeFile file('--/path/to/keystore.jks--')

storePassword '--store-password--'

}

}

android {

compileSdkVersion 25

buildToolsVersion '25.0.2'

defaultConfig {

applicationId "--your.app.name--"

minSdkVersion.apiLevel 19

targetSdkVersion.apiLevel 25

versionCode 1

versionName "1.0"

}

buildTypes {

release {

minifyEnabled true

proguardFiles.add(file('proguard-android-optimize.txt'))

proguardFiles.add(file('proguard-rules.pro'))

signingConfig = $("android.signingConfigs.myConfig")

}

}

ndk {

moduleName "--c-file--"

ldLibs.addAll(["android", "log"])

}

}

android.dexOptions {

javaMaxHeapSize "2048m"

}

}

dependencies {

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

testCompile 'junit:junit:4.12'

compile 'com.android.support:appcompat-v7:25.3.1'

}

您可以复制/粘贴上面的代码,并使用“–value–”修改至少值以匹配您的值.

2.修改build.gradle(项目)

它说的是这样的:

dependencies {

classpath 'com.android.tools.build:gradle:2.3.3'

}

对此:

dependencies {

classpath 'com.android.tools.build:gradle-experimental:0.9.3'

}

我的示例0.9.3中的数字是最新版本的gradle-experimental,可以找到here.最后将gradle-wrapper.properties中的gradle版本更改为Android Studio推荐的版本(如果您还没有).

3.移动proguard设置文件

proguard-android-optimize.txt到app / proguard-android-optimize.txt

4.从java添加调用

像这样

static {

System.loadLibrary("--c-file--");

}

private native byte my_jni(Context context, byte[] mByte, int i);

改变你的需求.上面的例子加载了c文件(没有扩展名写入) – 在gradle文件中声明的相同,并调用函数my_jni,传递应用程序的Context,一些字节数组和一些int,期望函数返回一个字节.

5.在JNI中创建函数:

现在,您的功能名称以红色突出显示 – 允许Android Studio创建它创建功能…单击行上的红色指示灯.这将在您的c文件中创建该函数并将焦点更改为它.

完成

进一步阅读here.

提示:

>注意释放malloc的所有内容,为每个GetByteArrayElements释放ReleaseByteArrayElements等等>注意如何正确地将一些危险值从C返回到Java,如数组和字符串

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值