Android Studio 开发JNI应用

Android的JNI开发主要有两中情况:一种是使用已经编译好的.so动态库;一种是使用c/c++源代码开发。下面分别介绍:

一、使用已经编译好的so

  

这种情况比较件简单,只要把的.so文件放到相应的目录即可。如下:

.[module_name]
         . . [src]
         . . .[main]
         . . . .[jniLibs]
         . . . . .[armeabi]
         . . . . .[armeabi-v7a]
         . . . . .[x86]
         . . . . .[mips]

注意 jniLibs 目录是放在 module 下面,在Android Studio中效果如下,这样编译之后so就会被自动打包进apk,代码中直接 loadLibrary即可了

String libName = "helloNDK"; // 库名, 注意没有前缀lib和后缀.so
2 System.loadLibrary( libName );二、使用C/C++源码

1 r9d以上版本NDK

首先确保自己的NDK版本在r9d以上,目前最新可以拿到的是r10,下载地址:

http://tools.android-studio.org/

感谢 Android Studio中文组的无私奉献。

如果低于r9d版本,Android studio 下ndk编译会出现  No rule to make target 的错误。

2 创建一个普通的android工程

3 配置 ndk.dir

在 local.properties 添加如下配置:

sdk.dir=/path/to/android-sdk

ndk.dir=/path/to/android-ndk

4 编写java代码

    创建一个java类,com.parbat.java.jni.JNIBridge.java

package com.parbat.java.jni;

/** * Created by 1 on 2017/3/14. */public class JNIBridge {    public native String getStrFromJNI();}

在启动类MainActivity.java中调用
String str =   new JNIBridge().getStrFromJNI();LogUtils.v("JNI str = "+ str);
static {    System.loadLibrary("jnitext");   //defaultConfig.ndk.moduleName}

app下的build.gradle配置NDK模块
defaultConfig {    applicationId "com.parbat.looper"    minSdkVersion 18    targetSdkVersion 24    versionCode 1    versionName "1.0"    ndk{        moduleName "jnitext"//生成的so名字
        abiFilters "armeabi", "armeabi-v7a", "x86"//输出指定三种abi体系结构下的so库
    }}

ndk 还可以配置更多选项,如下
ndk {
  moduleName "myEpicGameCode"
  cFlags "-DANDROID_NDK -D_DEBUG DNULL=0"   // Define some macros
  ldLibs "EGL", "GLESv3", "dl", "log"       // Link with these libraries! 在这里添加你原先在makefile里ldlibs所链接的库
  stl "stlport_shared"                      // Use shared stlport library
}

工程下的gradle.properties 添加属性 android.useDeprecatedNdk=true  

6.点击 make-project

  正常情况下,在目录 intermediates会有一个ndk文件夹,这里有生成好的.so文件。测试正常运行项目,就可以看到我们的代码已经可以调用jni文件了.
时间: 2024-10-10 23:37:20

Android Studio 开发JNI应用的相关文章

Android Studio开发JNI工程

使用Android Sutdio创建一个新的工程后,接下来记录创建NDK工程的基本步骤. 本文将达到: 1. 创建NDK工程 2. 在JNI中输出Log语句 3. 指定编译的so库的abi版本 4. 解决在创建NDK工程中的问题 Step: 1. 添加native接口 注意写好native接口和System.loadLibrary()即可了,并无特别之处. P.S:onCreate()中对R.id.txt执行setText(),所以这里需要对xml布局文件按正常的开发步骤进行修改即可. 直接给出

Windows下利用Android Studio进行JNI开发准备

因为公司项目需要,要进行jni的开发,进行arr,acr音频格式转化,后期上项目代码,现在先上测试代码 其中参考了http://blog.csdn.net/sodino/article/details/41946607的书写,不过有些说的好含蓄,博主摸索了一个小时,现在把详细的细节分享给大家 首先,要去官方下载ndk,因为博主的机子是win7 64位,博主就贴上这个地址,其余的楼主没有查http://dl.google.com/android/ndk/android-ndk32-r10-wind

《Android Studio开发实战 从零基础到App上线》资源下载和内容勘误

http://blog.csdn.net/aqi00/article/details/72907534 http://blog.csdn.net/aqi00/article/details/73065392 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 资源下载 下面是<Android Studio开发实战 从零基础到App上线>一书用到的工具和代码资源:1.本书使用的Android Studio版本为2.2.3,因为Android官网现在不提供该版本的下载,所以博主

Android Studio使用jni、so库

Android Studio使用jni.so库 在Android Studio1.1之后,AS就已经支持jni和so库了,马上发布的1.3正式版,更是可以在clion环境下编译c.c++,更加方便的使用NDK进行开发,网上有很多讲在Android Studio中使用jni的方法,但大多都是在1.1之前的,那时候还没有直接支持jni,所以需要通过给gradle增加task的方式来添加支持.而现在,这一切都不是事!!! 添加lib库 切换到project标签,直接将jar包复制到libs目录下,在添

windows平台下Android studio开发环境搭建教程

最近,Google 已宣布,为了简化 Android 的开发力度,以重点建设 Android Studio 工具,到今年年底将停止支持Eclipse等其他集成开发环境 .而随着Android studio正式版的推出和完善,Android开发者们转向Android studio开发平台也将是大势所趋! 小弟Vike原先学习Android也是一直用的eclipse,虽然时间不长,而且用起来慢点,卡点,但是毕竟熟悉起来了,猛地要转到一个新平台,还真是相当不习惯.且不说快捷键有变化,就连Android

Android Studio开发环境搭建

现在越来越多的人使用Android studio进行Android应用开发了.掌握Android studio的使用已经是每一个Android开发者必备的技能了. 下面介绍一下如何进行Android studio开发环境的安装. 上面是Android studio的安装介绍,可以看到想要安装Android studio 需要提前安装 JDK 官方推荐安装JDK1.7以上的版本. 安装Android Studio 需要 JDK 和 Android Studio 下载地址分别如下: JDK1.8 6

android studio开发工具的android library打包文件(.aar)本地引用

by 蔡建良 2014-5-13 关键点: 利用Gradle发布本地maven库支持android library 打包文件(*.aar) 的本地引用 开发环境: windows7 64位操作系统 android studio0.5.8 (1) 安装maven1.在安装maven之前,先确保已经安装JDK1.6及以上版本,并且配置好环境变量.2.下载maven3,最新版本是Maven3.2.1 ,下载地址:http://maven.apache.org/download.html 下载apach

Android Studio开发准备

转载请标注本文地址:http://blog.csdn.net/jianbinzheng/article/details/51232751 [概述] 本文主要分享在使用Android Studio开发Android程序前所需要与建议的操作,主要是界面个性化的设置和模拟调试(AVD.Genymotion.夜神.真机)的设置. [一.  Android Studio介绍] Android Studio 是一个Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,And

Android Studio 开发技巧详解

Android Studio开发工具是每一个 Android 程序猿每天都要使用的工具,但是即使你是一个经验丰富的开发人员,你也可能已经错过了许多可以节约生命的技巧,这篇文章也许就可以帮助你掌握它们其中的一部分.我不会一字一句地翻译,而是以最简洁易懂的方式介绍给你,同时提供必要的注解和延伸,让你可以在一遍快速阅读之后迅速掌握. 1.当你想不起来某个功能怎么用的时候 如果你是 Windows/Linux 用户, 那么请按Ctrl + Shift + A, 如果你是 Mac 用户,那么请按Comma