Android Studio NDK环境配置和JNI的使用

0x01前言

  • NDK全称是Native Development Kit,NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。
  • JNI的全称是Java Native Interface,它提供了若干的API实现了Java和其他语言的通信(主要是C和C++)。
  • NDK 无需翻墙下载链接:点击打开链接


0x02配置NDK环境变量

把下载好的 NDk解压到SDK文件夹下的,并改名为ndk-bundle,这样AS每次启动能自动解析
  1. 在系统变量中创建NDK_ROOT

  2. 在系统环境变量Path后追加%NDK_ROOT%

  3. NDK配置成功标志
    在cmd中输入ndk-build,出现下面两行则表示配置成功(虽然是报错消息,这个命令是基于project中执行的,后面会看到。所以直接在cmd中执行会报错,但已经能被cmd识别,说明配置成功)

0x03JNI的使用方法

  1. 在MainActivity.java中建立一个方法:

    public native String getStringFromJNI();




  2. 编译该类得到对应.h文件

    在Terminal中输入javah -jni 包名.类名

    (图3-2-1)


    (图3-2-2)
    说明:该.h文件只是为了辅助我们写出相应的.c文件,使用完了即可删除。
            里面最关键的是这句代码
            
    JNIEXPORT jstring JNICALL Java_com_lostck_jnidemo_MainActivity_getStringFromJNI
      (JNIEnv *, jobject);
  3. 编写.c文件



  4. 编写Android.mk文件
    LOCAL_PATH := $(call my-dir)
    
    include $(CLEAR_VARS)
    
    LOCAL_MODULE := demo
    
    LOCAL_SRC_FILES := demo.c
    
    include $(BUILD_SHARED_LIBRARY)


  5. 编译so文件



0x04生成并测试apk

  1. 两个必要设置
    1)在local.properties中添加ndk路径,如果前面ndk环境配置好的话这里会自动配置


    2)在app的build.gradle的android节点下设置



  2. 使用so文件



    说明:这个库demo(完整的名字是libdemo.so)会在第一次使用MainActivity这个类的时候加载。(static代码块声明的代码会先于onCreate方法执行)

  3. 测试生成的apk

    Perfect,成功!

0x05总结

JNI不在神秘,安卓之路,我在路上。2018年3月11日 13:26:42

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值