1、SDK Tools下载DNK,如果已经有下载有DNK的开发工具的话,可以直接导入

当然,AS后面推荐使用CMake方式开发NDK,这个后面再说,这里还是先讲ndk+javah+Android.mk的方式方式。

2、配置DNK的环境变量,这样才能在命令工具中方便使用DNK的命令,下面是我配置的环境变量

\SDK\platform-tools;D:\GitDir\Git\cmd;D:\android-ndk-r14b-windows-x86;C:\Program Files\Java\jdk1.8.0_73\binD:\AS_WorkSpace\MyJniDemo2\app\src\main\java>

3、工程的gradle.properties中添加android.deprecatedNdkCompileLease=1558488690642

我之前是添加的android.useDeprecatedNdk=true,会build报错,提示useDeprecatedNdk is no longer supported,表示不支持了。

4、app的gradle里面添加ndk相关的属性配置,这里是制定生成so的名称。

5、编写native方法:

   public static native String getStringFromJni();public static native String getStringFromJni(int i);public native void doSomeThings();public native void doSomeThings(String str);

6、在AS自带的命令输入工具中,执行javah命令生成相关的.h头文件。javah -d “目的文件” “源文件”

D:\AS_WorkSpace\MyJniDemo2\app\src\main\java>javah -d ../jni yys.com.myjnidemo.JniDataUtil

这里就是把java文件JniDataUtil.java 生成的头文件放在java同级目录下的jni文件夹中,生成的文件如下:

生成的方法名的命名规则:Java_包名_类名_方法名

7、建立c++源文件 .cpp文件,同时引用刚刚生成的.h头文件,并实现头文件里面声明的方法:

其中我们可以看到,还有一个Android.mk文件,这个文件是Android提供的一个makefile文件,来指定诸如编译生成so库名、引用的头文件目录、需要编译的.c/.cpp文件和.a静态库名

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := myjnidemo        动态库的名字
LOCAL_SRC_FILES := DateUtil.cpp  被编译的源文件include $(BUILD_SHARED_LIBRARY)

同时,我们的.so库生成的位置在如下的地方:

8、引用.so动态库,并使用native方法

public class JniDataUtil {static {System.loadLibrary("jnidata");   引用动态库}public static native String getStringFromJni();public static native String getStringFromJni(int i);public native void doSomeThings();public native void doSomeThings(String str);}
public class MainActivity extends AppCompatActivity {TextView textView ;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView = findViewById(R.id.text1);textView.setText(JniDataUtil.getStringFromJni());}
}

至此,一个简单的ndk开发流程就完了。

Android Studio NDK 开发相关推荐

  1. JNI编程基础(二)——Android Studio NDK开发

    由于笔者目前的工作是Android开发,所以在JNI开发系列博客中穿插一篇AndroidStudio NDK开发介绍. 随着Android Studio 2.2的推出,Android Studio的N ...

  2. Android Studio NDK 开发配置

    一:使用gradle experimental plugin 首先,我们不能用android studio默认的gradle插件,我们需要把android studio的插件改为gradle expe ...

  3. Android Studio NDK开发

    以前接触过NDK的开发,是在Eclipse环境下开发的.今天尝试了下用Android Studio来配置,结果真是处处都是坑,现在总结一下: 一.步骤 1. 首先创建MainActivity,添加na ...

  4. android studio 和gcc,Android Studio NDK开发总结

    一,gcc.make.makefile.cmake.cmakelists区别 1.gcc是GNU Compiler Collection(就是GNU编译器套件),也可以简单认为是编译器,它可以编译很多 ...

  5. Andorid Studio NDK 开发 - Hello World

    原址 介绍了在Android Studio中配置NDK的开发环境:Android Studio NDK开发-环境配置,NDK开发环境配置完成之后,就要写一下著名的Hello World程序了. 在开始 ...

  6. lldb硬件断点android,Andorid Studio NDK开发-LLDB调试

    LLDB是一个高效的c/c++的调试器,是与LLVM编译器一起使用,提供了丰富的流程控制和数据检测,有效的帮忙我们调试程序.LLDB也已经取代GDB成为XCode的默认调试器,Android Stud ...

  7. Android Studio ndk-Jni开发详细

    2019独角兽企业重金招聘Python工程师标准>>> Android Studio ndk-Jni开发详细入门,Aes加密demo 字数920 阅读13 评论0 喜欢0 Java ...

  8. Android Studio NDK环境配置及JNI使用方法

    1.前言 什么是NDK? NDK全称是Native Development Kit,NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk.N ...

  9. android studio ndk HelloWorld 编译环境搭建

    android studio NDK helloworld 项目 第一步 android studio ndk 编译环境搭建 http://yunpan.cn/c3cCxxgwrqDaL 访问密码 6 ...

最新文章

  1. SAP RETAIL 通过分配表创建UB STO单据
  2. 第一节:网页概述 学习目标 怎样才能学好前端
  3. [13年迁移]firefoxfocus为火狐新建焦点事件
  4. 工业以太网交换机的三种转发方式
  5. 微型计算机用什么评价判断,环评中常用评价等级的判定
  6. OSI七层模型详解-开放系统互联参考模型详解
  7. 生活:小孩的世界很简单
  8. 如何使用sklearn进行数据挖掘?
  9. PE格式第七讲,重定位表
  10. 【nodejs】waitFor is deprecated
  11. 简单计算机c++代码
  12. MacOS Big Sur 如何安装创新SBX-Fi Surround 5.1Pro(USB外置)声卡?
  13. 11.9 至 11.17 四道典型题记录: Counter 弹出 | map函数 | 子集求取 | 有序字符桶分装
  14. mac 中 caps lock和control键交换,以及alt键替换option方法
  15. 面部表情识别3:Android实现表情识别(含源码,可实时检测)
  16. 在计算机术语中 英文cad是指,CAD中英语词汇及命令大全
  17. 一种Android应用耗电定位方案
  18. python处理excel的时间格式_Python处理Excel使用pandas处理时间格式数据
  19. 怎样更改计算机网络密码怎么办,wifi密码怎么改?
  20. 神经网络反向传播算法原理笔记

热门文章

  1. 逆向VMP壳的基本思路
  2. javadoc是什么
  3. 【1599. 经营摩天轮的最大利润】
  4. JavaScript断点调试与console.log(..)输出不一致
  5. 安泽工业机器人_惊呼!安泽县烘干吊挂线品牌
  6. SpringBoot+Vue分页实现,前后端分离
  7. php1003无标题,说说大全1003无标题
  8. 数据增强(图像)初探
  9. 【Spring学习笔记 四】Spring自动装配机制实践
  10. 星巴克中国2021秋日限定系列上市;雅诗兰黛、爱茉莉太平洋“剧透”第四届进博会参展亮点 | 知消...