Android NDK如何访问底层接口
这两天在看了一下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如何访问底层接口相关推荐
- delphi android jni,Delphi使用android的NDK是通过JNI接口,封装好了,不用自己写本地代码,直接调用...
一.Android平台编程方式: 1.基于Android SDK进行开发的第三方应用都必须使用Java语言(Android的SDK基于Java实现) 2.自从ndk r5发布以后,已经允许完全用C/C ...
- android -------- NDK 入门指南
NDK介绍 原生开发工具包 (NDK) 是一组可让您在 Android 应用中利用 C 和 C++ 代码的工具. 可用以从您自己的源代码构建,或者利用现有的预构建库. NDK 不适用于大多数初学的 A ...
- Android NDK开发之 NEON基础介绍
原文:http://blog.csdn.net/app_12062011/article/details/50434259 Android NDK开发之 NEON基础介绍 这是官方介绍: http:/ ...
- 【Android 逆向】Android 进程注入工具开发 ( 系统调用 | Android NDK 中的系统调用示例 )
文章目录 一.系统调用 二.Android NDK 中的系统调用示例 一.系统调用 在 " 用户层 " , 运行的都是用户应用程序 ; 用户层 下面 是 驱动层 , 驱动层 下面是 ...
- Android NDK学习笔记1:基础
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/119005718 本文出自[赵彦军的博客] 文章目录 (一)什么是Android N ...
- 使用LeakTracer检测android NDK C/C++代码中的memory leak
Memory issue是C/C++开发中比较常遇到,经常带给人比较大困扰,debug起来又常常让人无从下手的一类问题,memory issue主要又分为memory leak,野指针,及其它非法访问 ...
- 安卓linux交叉编译,Linux Ubuntu下用Android NDK 生成独立交叉编译链
本文主要介绍使用Android NDK生成独立交叉编译链,然后使用独立交叉编译链编译Android程序 下载NDK 下载与自己操作系统相吻合的版本 下载地址 解压到安装目录(如~/myndk): ta ...
- Android P (4)一种绕过Android P上非SDK接口限制的简单方法
一种绕过Android P上非SDK接口限制的简单方法 众所周知,Android P 引入了 针对非 SDK 接口(俗称为隐藏API)的使用限制.这是继 Android N上 针对 NDK 中私有库的 ...
- Windows环境下Android NDK环境搭建
转自:http://blog.csdn.net/pengchua/article/details/7582949 前面介绍Windows下Android 开发环境配置,主要是面向JAVA开发环境,对只 ...
最新文章
- 怎么改mnist数据的标签_【Pytorch】多个数据集联合读取
- Mac环境下用Java(Sikuli+Robot)实现页游自动化
- PageRank行将过时 搜索引擎遭遇范式转移
- jsp中不能正常显示图片+不能正常显示bootstrap字体图标
- html input不能输入小数_第三课:变量与输入输出的配合使用
- php搜索间隔,php – 如何查找超过2个用户的匹配时间间隔
- react前端显示图片_在 React 中使用 SVG 图标组件
- 物流车辆数据在金融科技的应用
- ArcGIS服务器的feature图层限制
- 上线两天用户 10W+,这款 AI 知识图谱小程序有多牛?
- win10系统安装虚拟机
- 计算机网络科研项目申请书,科研项目申请书范文例.doc
- 国美易卡取得长足发展,国美易卡NVIDIA深度学习
- 超50万人推荐的神奇兼实用App,个个精品,打死也不能错过
- 楚留香哪个服务器最新,楚留香官服和混合服哪个好 哪个服务器的人多
- mysql left用法
- sql - repalce函数
- 灰色系统模型和matlab
- 【视觉SLAM入门】一些关于视觉SLAM十四讲的重要基础概念
- 媒体观察:08年度十大硬件新闻