Android快速上手之JNI开发

前言

最近两三年智能硬件高速发展(为什么我感觉飞速更合适),从智能手环到智能家居,从VR再到无人机,智能硬件越来越渗入人们的生活,而所有这些操作系统大多都是Android 和 c/c++来完成的,Android负责展示界面直接与用户进行交互,c/c++负责底层运行,那么问题来了,Android和C/C++是怎么沟通的呢?Android怎么将用户的操作传递给C/C++去执行呢?没错,这个沟通的桥梁就是JNI。JNI即Java Native Interface,Java本地接口,Android通过JNI去调用C/C++(不仅仅只能调用这两种)的代码,完成Java不能完成的任务,同时也加快系统运行速度。在这个“金三银四”的跳槽季,你若不会JNI开发,好意思张口要加薪么?废话不再多说,直接上正文。

Android Studio下的JNI开发

为什么要强调AS,而不是eclipse?因为是谷歌的亲儿子啊。。。
上步骤:
1.首先JDK、NDK必备
2.新建一个class为NdkJni,在内部声明native方法
3.主代码调用
4.build->make project,编译之后会生成一个.class文件,文件目录为app\build\intermediates\classes\debug(要在左侧视图窗口中切换为project才能看的到)
5.把.class文件生成为.h的头文件(javah -jni 路径\JNI所属类名),.h文件存放在当前目录
6.在main目录下新建一个jni目录,将刚才的.h文件剪切过来
7.jni目录下新建一个c文件,取名xx.c,
8.编写c代码,这里略。。。
   接下来准备调用了(这些步骤也可以放在最前边)
9.添加自己的ndk路径(配置NDK路径),可以在structure中添加,也可以在local.properties中添加,(仿照sdk的,ndk.dir=C\:\\AndroidStdioSDK\\android-ndk-r10d-64bit)
10.app下的build.gradle中添加如下代码
defaultConfig {
    ......
    ndk{
        moduleName "YourJniLibName"//.so库名字 
ldLibs "log", "z", "m"        //log
        abiFilters "armeabi", "armeabi-v7a", "x86" //abi三种体系so库 
    }
},同步或者build
11.在NdkJni或者MainActivity中添加如下代码块以初始化
static {
        System.loadLibrary("YourJniLibName");  //.so库名字 
    }
12.完成
12个步骤,略多,因为比较详细,但是你自己写一下就能感受到,是不是很简单?!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值