android studio NDK 开发初探

android studio NDK 开发初探

  1. 环境配置

    1)下载ndk

    2)在android studio中配置ndk 路径

    3)配置gradle

    在gradle.properties中加入 android.useDeprecatedNdk=true配置 开启ndk

    在开发过程中我们有时还会用到c++中到stl库这时我们就需要在build.gradle 中加入

    defaultConfig {

    ndk {

    moduleName “jnitest”

    stl “stlport_static”

    abiFilters “armeabi”, “armeabi-v7a”, “x86”

    }

    }

    因为android studio 中Android.mk文件不可配置。而是根据gradle中的配置自动生成的Android.mk文件

  2. 新建工程

    在工程目录main下单击鼠标右键新建一个jni folder ,之后使用到c/c++程序代码都放在这个文件夹中

    在main文件夹下的 java文件夹下新建一个类例如:JniUtils

    并加入代码 public static native String getStringFromJNI();

    然后make module一下,目的就是编译成对应的class文件。然后根据生成的class文件,利用javah生成对应的 .h头文件。

    点开android studio 的Terminal标签页,默认进入到该项目的app文件夹下。如果在该目录下输入cd src/main 切换到main目录下。

    javah -d jni com.vvgool.jni.JniUtils(-d即使没有手动生成jni目录到情况下使用-d也会生成jni目录并在目录中生成)

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_vvgool_jnitest_JniUtils */

#ifndef _Included_com_vvgool_jnitest_JniUtils
#define _Included_com_vvgool_jnitest_JniUtils
#ifdef __cplusplus
extern "C" {
#endif
/*
 * Class:     com_vvgool_jnitest_JniUtils
 * Method:    getStringFromJni
 * Signature: ()Ljava/lang/String;
 */
JNIEXPORT jstring JNICALL Java_com_vvgool_jnitest_JniUtils_getStringFromJni
  (JNIEnv *, jclass);

#ifdef __cplusplus
}
#endif
#endif

然后我们就可以在jni文件中新建.cpp文件或者.c文件我这里是新建到test.cpp文件

最后在JniUtils中加入

static{

System.loadLIbrary(“jnitest”);

}在Activity中调用JniUtils.getStringFromJni()方法获取字符串就可以了。

时间: 2024-10-25 21:18:57

android studio NDK 开发初探的相关文章

Android Studio NDK开发

整理完Eclipse的NDK开发,再整理下Android Studio的.. 一个比较不错的百度网盘: http://pan.baidu.com/share/home?uk=2383159761  经常更新最新的Android方面的开发包,可以到里面下载到ndk的包 创建一个Android的工程,放一个TextView用于显示文字,功能很简单,从native层获取字符串并显示到TextView上 然后编写相关代码: public class MainActivity extends AppCom

Android Studio NDK 开发配置

一:使用gradle experimental plugin 首先,我们不能用android studio默认的gradle插件,我们需要把android studio的插件改为gradle experimental plugin, 这个plugin是google开发的,网址在这里: http://tools.android.com/tech-docs/new-build-system/gradle-experimental Gradle experimental plugin是android 

(原)使用android studio ndk开发流程

先使用android stuido创建一个app工程,创建工程的时候,.gradle目录结构下为2.8目录.(note:2.10目录为后续更新结果出现.) 依次修改上述红色方框标注部分内容: 1)修改gradle/wrapper/gradle-wrapper.properties目录内容: 2)修改工程目录下的build.gradle,主要是修改gradle插件这部分内容: 3)修改app/build_gradle内容: 修改前原始内容: apply plugin: 'com.android.a

Android Studio NDK开发浅谈

环境: Android Studio 1.1.0 NDK-r10d 1.新建项目--->包名:com.mxl.az.ndk 新建包含native方法的类:JniOperation.class public class JniOperation { public static native String getString(); public native int add(int a, int b); } 2.然后使用javah命令生成.h文件 打开“小黑框”,进入项目目录的.../app/bui

android studio ndk开发总结

1.path环境变量 2.android studio关联ndk local.properties   ndk.dir gradle.properties  android.useDeprecatedNdk=true//兼容老版本 3.build.gradle 配置 defaultConfig{ ndk{ moduleName "Hello" abiFilters ''armeabi","armeabi-v7a","x86" } } 4

Android Studio NDK开发环境搭建

一.   下载安装Android studio 和 NDK 二.   在Android studio中配置NDK(和SDK配置一样) 三.   用Android studio建立一个工程,打开project,建立一个调用C的类,然后在mian文件夹下建立一个jni文件夹. 四.   打开cmd ,输入cd 工程文件夹路径,如cd C:Users\CFF\Desktop\MyApplication\app\src\main\java,然后按回车. 五.   输入javah –jni +调用C的类路

Android Studio NDK开发-JNI调用Java方法

相对于NDK来说SDK里面有更多API可以调用,有时候我们在做NDK开发的时候,需要在JNI直接Java中的方法和变量,比如callback,系统信息等.... 如何在JNI中调用Java方法呢?就需要先了解FindClass和GetMethodID了. FindClass和GetMethodID 在JNI中可以通过FindClass可以找到Java类,得到jclass,例如: jclass clz=(*env)->FindClass(env,"com/jjz/JniHandle"

Android Studio NDK及so文件开发

前言 什么是NDK? NDK全称是Native Development Kit,NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk.NDK集成了交叉编译器(交叉编译器需要UNIX或LINUX系统环境),并提供了相应的mk文件隔离CPU.平台.ABI等差异,开发人员只需要简单修改mk文件(指出"哪些文件需要编译"."编译特性要求"等),就可以创建出so. 为什么使用NDK? 1.代码的保护.由于apk的ja

Android之NDK开发

一篇文章: Android之NDK开发 一.NDK产生的背景 Android平台从诞生起,就已经支持C.C++开发.众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言.但这并不等同于“第三方应用只能使用Java”.在Android SDK首次发布时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以通过JNI调用自己的C动态库,即在Android平台上,“Java+C”的编程方式是一直都可