Android JNI开发

原创 2018年04月16日 00:18:24

AndroidStudio进行JNI开发:

第一种方法使用Android.mk以及Application.mk生成不同内核下的.文件。

1.要将AndroidStudio配置支持ndk开发配置的方法如下:

    

只要在Android NDK location这个位置配置上ndk的路径,之后就可以使用AndroidStudio进行ndk开发.

JNI开发的步骤:

1、将使用的方法进行定义,之后使用javac 对当前定义的java进行编译生成.class文件,之后在使用javah -jni 包名.类名 进行编译生成相应的.h头文件(头文件中包含我们将要在c文件中编写的方法)。

2、在src文件夹下创建jni目录,创建.c文件将生成好的方法名拷贝过来进行方法编写,同时在当前文件夹下创建一个Android.mk文件这个文件中生命的内容如下:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE  := hellojni #指定生成的库名 lib库名.so
LOCAL_SRC_FILES := hello_jni.c #指定要编译的C语言源文件 多个空格排开
include $(BUILD_SHARED_LIBRARY) #指定生成库类型(静态库 动态库 独立程序) 动态库

jni目录结构如下:

之后在src文件夹下创建一个Application.mk文件这个文件指定的是想要编译生成的.so对应的不同的手机内核有armeabi arm64-v8a x86 mips等等。 如果这个文件是个空的文件那么编译生成.so的时候就是所有能生成的都会生成对应的.so文件。

3.在Android Studio 中的Terminal中使用 ndk-build命令编译生成对应手机内核下的.so文件。生成的文件结构如下:


4.之后就需要在AndroidStudio当前项目的src文件下的build.gradle中进行配置相应的.so的引用配置内容如下:

sourceSets {
    main {
        jni.srcDirs = []
        jniLibs.srcDirs = ['src/main/libs']
    }
}

之后就可以在对应的类中使用JNI中生命的方法。但是在使用之前需要先调用下面的静态代码块将.so库加载进来。

static{
    System.loadLibrary("hellojni");
}
第二种方法使用CMake生成对应的.so文件
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dream_zfr/article/details/79954982

调试分布式 Web 应用程序 (3)

调试时的常见问题 在分布式 Web 应用程序中最常见的问题有: ASP 0115—访问冲突ASP 服务器太忙的错误100% 的 CPU 问题 在这一节,我们将分析引起这些问题的可能原因,讨论如何调试并...
  • ghj1976
  • ghj1976
  • 2000-12-12 08:30:00
  • 1763

Android之从零开始JNI研发

本篇几乎没有涉及C/C++与java之间变量以及语法等等一些知识点,这些会在下篇来介绍。本人也是在学习探索过程中,如果有错误希望大家指出来。...
  • xiaohanluo
  • xiaohanluo
  • 2017-02-15 14:45:20
  • 2615

Android Studio JNI开发入门教程

概述 在Andorid Studio不支持JNI开发之前大家一般都是使用Eclipse开发JNI,各种配置让人觉得很蛋疼。从Andorid Studio支持JNI开发后,让我们开发JNI变的如此简单...
  • easyer2012
  • easyer2012
  • 2016-08-29 14:38:44
  • 9269

有关Android JNI开发必须知道的

在Android开发中,有时候我们需要依赖设备上的某些特定功能,例如打印功能,那么就需要调用一些“so”文件,这样才能使用打印功能。这些“so”文件其实是用c/c++编写的代码,而Java为这样的开发...
  • zxw136511485
  • zxw136511485
  • 2016-12-04 10:47:50
  • 717

AndroidStudio 进行 JNI / NDK 开发:初步配置及使用

AndroidStudio 进行 JNI / NDK 开发:初步配置及使用 遇到的坑及补坑记录
  • zeqiao
  • zeqiao
  • 2017-09-08 12:03:44
  • 3554

[Android开发]Mac下NDK开发(JNI)

Mac下Android调用C/C++程序的实现(JNI)IDE用的是Androidstudio。首先,我们需要配置Mac下的NDK环境,比较简单,参考博客:Mac下Android studio 之ND...
  • CodeEmperor
  • CodeEmperor
  • 2016-03-12 12:42:47
  • 1836

android JNI开发基本步骤

1.编写java类,定义Native方法,这里的native方法就是后面.c文件(c/c++语言)里面要实现的方法名。示例:public class JniClient { public st...
  • yinzhiwei2014
  • yinzhiwei2014
  • 2016-02-23 11:56:20
  • 6492

JNI(一) - Android Studio简单开发流程

内容介绍:JNI(一) - Android Studio简单开发流程 版权声明:本文为原创文章,未经允许不得转载 联系方式:815852777@qq.com 博客地址...
  • KevinDGK
  • KevinDGK
  • 2016-10-14 09:47:38
  • 8062

android JNI开发之HelloWorld(eclipse+ndk_r9d)

android JNI开发之HelloWorld(eclipse+ndk_r9d)1.工具:(1)eclipse +adt+sdk。 (2)ndk_r9d。 (3)java(jdk 1.8....
  • lewes1103
  • lewes1103
  • 2016-08-04 17:45:35
  • 435

Android Studio3.0开发JNI流程------JNI函数

JNI函数 本章为JNI函数提供参考信息。其中列出了全部JNI函数,同时也给出了JNI函数表的准确布局。注意:“必须”一词用于约束JNI编程人员。例如,当说明某个JNI函数必须接收非空对象时,就应确...
  • cloverjf
  • cloverjf
  • 2017-11-29 16:47:47
  • 829
收藏助手
不良信息举报
您举报文章:Android JNI开发
举报原因:
原因补充:

(最多只允许输入30个字)