这两天在看了一下NDK相关知识 工作需要提供访问底层韦根的接口 看了很多博客 都写的表里不一 要么就太过简便 这是非常痛苦的 趁有时间 就记录下 我所做的实例
1

首先配置NDK 创建一个android 项目 打开AS 如果没有下载NDK 则点击下载

2 在电脑系统环境Path 添加NDK的目录 然后打开命令窗口 输入ndk-build 如下表示配置成功


3 新建一个本地方法接口类MyJni.java 里面包含了所要调用接口的函数声明

至此先编译一下工程 Make Project 此时会生成MyJni.class类 查看路劲我的在 (这个路劲很重要 )

然后我们要根据这个类 生成相应的头文件 在AS终端输入
javah -d jni -classpath C:/Users/Administrator/Desktop/wg_test/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes com.example.administrator.wg_test.MyJni
命令解析

-classpath <路径> 用于装入类的路径。注意是包名文件夹的路径,不是class的路径,如果没有包名的话就是class的路径。(-classpath C:/Users/Administrator/Desktop/wg_test/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes )
-d <目录> 输出目录(-d jni)

-jni 生成 JNI样式的头文件(默认)(com.example.administrator.wg_test.MyJni)

!!!注意终端运行的目录是app/src/目录下

这样在src目录下就生成一个JNI目录 以及头文件 如下图

4 接下来我们编写我们调用底层接口的C语言 在JNI目录下创建MyJni.c文件 编写我们队底层节点的使用 我这边的就是打开 关闭 读写这些 有些要注意的地方 1 要包括刚才生成的头文件 2 函数的名字声明 和刚才生成的头文件的一样 否则调用不了
我这个文件实现了几个功能 Java_com_example_administrator_wg_1test_MyJni_wgOpen 这个函数是打开设备节点
Java_com_example_administrator_wg_1test_MyJni_wgRecv是读写设备节点 具体写法后续送上
j
然后创建Android.mk 以及Application.mk 稍微注意一下生成库的名字


到这一步我们可以打包生成SO库文件了 打开命令运行行 到项目的JNI目录下 执行命令 如下图

5 至此接下来就是使用库的问题了 首先我们要加载这个库在app的 build.gradle 添加库的路径 如下

然后在MainActivity下调用即可

!!!注意 当打开设备节点会出现打开失败的问题 我直接把SElinux关闭 以及 在更改设备节点的权限
强制性关闭Selinux
https://blog.csdn.net/u010164190/article/details/78659476
然后在 添加设备节点权限
https://blog.csdn.net/whshiyun/article/details/82051864

Android NDK如何访问底层接口相关推荐

  1. delphi android jni,Delphi使用android的NDK是通过JNI接口,封装好了,不用自己写本地代码,直接调用...

    一.Android平台编程方式: 1.基于Android SDK进行开发的第三方应用都必须使用Java语言(Android的SDK基于Java实现) 2.自从ndk r5发布以后,已经允许完全用C/C ...

  2. android -------- NDK 入门指南

    NDK介绍 原生开发工具包 (NDK) 是一组可让您在 Android 应用中利用 C 和 C++ 代码的工具. 可用以从您自己的源代码构建,或者利用现有的预构建库. NDK 不适用于大多数初学的 A ...

  3. Android NDK开发之 NEON基础介绍

    原文:http://blog.csdn.net/app_12062011/article/details/50434259 Android NDK开发之 NEON基础介绍 这是官方介绍: http:/ ...

  4. 【Android 逆向】Android 进程注入工具开发 ( 系统调用 | Android NDK 中的系统调用示例 )

    文章目录 一.系统调用 二.Android NDK 中的系统调用示例 一.系统调用 在 " 用户层 " , 运行的都是用户应用程序 ; 用户层 下面 是 驱动层 , 驱动层 下面是 ...

  5. Android NDK学习笔记1:基础

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/119005718 本文出自[赵彦军的博客] 文章目录 (一)什么是Android N ...

  6. 使用LeakTracer检测android NDK C/C++代码中的memory leak

    Memory issue是C/C++开发中比较常遇到,经常带给人比较大困扰,debug起来又常常让人无从下手的一类问题,memory issue主要又分为memory leak,野指针,及其它非法访问 ...

  7. 安卓linux交叉编译,Linux Ubuntu下用Android NDK 生成独立交叉编译链

    本文主要介绍使用Android NDK生成独立交叉编译链,然后使用独立交叉编译链编译Android程序 下载NDK 下载与自己操作系统相吻合的版本 下载地址 解压到安装目录(如~/myndk): ta ...

  8. Android P (4)一种绕过Android P上非SDK接口限制的简单方法

    一种绕过Android P上非SDK接口限制的简单方法 众所周知,Android P 引入了 针对非 SDK 接口(俗称为隐藏API)的使用限制.这是继 Android N上 针对 NDK 中私有库的 ...

  9. Windows环境下Android NDK环境搭建

    转自:http://blog.csdn.net/pengchua/article/details/7582949 前面介绍Windows下Android 开发环境配置,主要是面向JAVA开发环境,对只 ...

最新文章

  1. 怎么改mnist数据的标签_【Pytorch】多个数据集联合读取
  2. Mac环境下用Java(Sikuli+Robot)实现页游自动化
  3. PageRank行将过时 搜索引擎遭遇范式转移
  4. jsp中不能正常显示图片+不能正常显示bootstrap字体图标
  5. html input不能输入小数_第三课:变量与输入输出的配合使用
  6. php搜索间隔,php – 如何查找超过2个用户的匹配时间间隔
  7. react前端显示图片_在 React 中使用 SVG 图标组件
  8. 物流车辆数据在金融科技的应用
  9. ArcGIS服务器的feature图层限制
  10. 上线两天用户 10W+,这款 AI 知识图谱小程序有多牛?
  11. win10系统安装虚拟机
  12. 计算机网络科研项目申请书,科研项目申请书范文例.doc
  13. 国美易卡取得长足发展,国美易卡NVIDIA深度学习
  14. 超50万人推荐的神奇兼实用App,个个精品,打死也不能错过
  15. 楚留香哪个服务器最新,楚留香官服和混合服哪个好 哪个服务器的人多
  16. mysql left用法
  17. sql - repalce函数
  18. 灰色系统模型和matlab
  19. 【视觉SLAM入门】一些关于视觉SLAM十四讲的重要基础概念
  20. 媒体观察:08年度十大硬件新闻

热门文章

  1. 利用PLINK进行GWAS分析
  2. 【机器学习】Fisher线性判别与线性感知机
  3. vue图片/文件上传
  4. Java获取当日的起始时间和结束时间
  5. 从windows换到Linux Mint(五)——linux下的pycharm无法输入中文!!果真什么都是最简单的,都需要自己安装!
  6. 动态DNS的好处、工作原理、类型以及安全性如何
  7. layui的form表单提交数据,layui的select框默认选中
  8. “垃圾分类”项目开题
  9. iOS 定位(CoreLocation)
  10. 图像对比度增强(Contrast Enhancement)详解