Android StudioJNI开发之NDK环境的搭建以及添加JNI支持(图文解释 简单易懂)

news2024/10/7 4:35:19

有问题可以评论区留言讨论~~~

一、NDK环境搭建

Android系统的所谓原生开发是在App中调用C/C++代码,鉴于这两个语言具有跨平台的特性,如果某项功能使用C/C++实现,就很容易在不同平台之间移植。

完整的Android环境包括三个开发工具。分别是JDK SDK NDK 分别简述如下

1:JDK是Java代码的编译器 因为App采用Java语言开发 所以内置

2:SDK是Android应用的开发包,提供了Android内核的公共方法调用,故而App必须实现安装SDK

3:NDK是C/C++代码的编译器 属于Android Studio的可选组件 如果APP未使用JNI技术,就不需要安装NDK,如果App用到了JNI技术 就必须安装NDK

只有给Android Studio配置好NDK环境,才能在App中通过C/C++代码执行部分操作,然后由Java代码代码通过JNI接口调用C/C++代码,下面介绍NDK环境的搭建步骤

1:到谷歌开发者网站下载最新的NDK安装包,下载完毕后解压到本地,注意目录名称不要有中文

谷歌开发者网站 

2:在系统中增加NDK的环境变量定义 并在Path变量值后面补充%NDK_ROOT%

3:选择菜单File-Project Structure 打开设置页面  然后找到SDK Location-NDK Location 如下图

设置前面的解压目录路径即可

 

二、添加JNI支持 

 上面搭建好了NDK环境 接下来还要给模块添加JNI支持 步骤如下

1:在模块的src/main路径下创建名为jni的目录

2:右击模块名称 在菜单中选择Link C++ Project with Gradle

3:选中C++支持菜单后,在配置页面中选择ndk-build 表示采用Android Studio内置的编译工具 在Project Path一栏中选择mk文件的路径

4:点击ok按钮 启动编译

5:在src/main下创建so库的保存目录 名为jinLibs 并将生成的so文件复制到该目录下

6:重新运行App生效

有问题可以评论区留言讨论

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/25375.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何缩减layout电路面积?减少晶体管的数量——以全加器为例【VLSI】

如何缩减layout电路面积?减少晶体管的数量——以全加器为例【VLSI】What is Full adder ?全加器的设计方法1. 32T 原始表达式不经过化简的电路图2. 28个晶体管 最基本的静态互补CMOS电路的全加器静态互补CMOS静态互补CMOS的优势与劣势28T 电路图28T的棒状图Stick D…

彻底搞明白概率论:随机事件,样本空间,必然事件,不可能事件

文章目录样本空间样本点随机事件,必然事件,不可能事件参考视频样本空间 随机试验E的一切可能基本结果(或实验过程如取法或分配法)组成的集合称为E的样本空间,记为S 注意,对于不同的实验,样本空间…

【构建ML驱动的应用程序】第 3 章 :构建您的第一个端到端管道

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

FastDFS安装

fastdfs架构图 准备安装包 libfastcommon-1.0.43.tar.gz fastdfs-6.06.tar.gz fastdfs-nginx-module-1.22.tar.gz 一 、FastDFS--tracker安装 FastDFS安装环境 FastDFS是C语言开发,建议在linux上运行,本教程使用Centos7.4作为安装环境。 安装gcc …

如何使用做一个弹幕效果

效果展示 前置准备 背景图 图片素材 具体步骤 添加一个图片背景 添加一个水平滚动容器 添加一个容器 制作弹幕字体 制作弹幕动画效果 步骤分解 添加一个图片背景 拖拽 图片组件 到 编辑区 选中 图片组件 点击 检查面板 中的 样式 调整 图片组件 的 样式 添加一个水平滚动容…

餐饮机器人AB面:有人离场、有人挺进

民以食为天,餐饮生意是一颗“常青树”。 餐饮行业“常青”不代表没有变化,近年来Z世代消费者对餐饮口味、餐饮效率和餐饮安全提出更高要求。与此同时,在新消费、新技术、新模式的推动下,餐饮行业衍生出多元化趋势,外卖…

详解环境变量

目录前言一、什么是环境变量?二、查看环境变量的方法三、查看环境变量的内容四、普通变量VS环境变量五、导出环境变量六、常见的环境变量七、set命令:查看普通变量或环境变量八、C/C语言中main函数中的参数1、main函数的第一个和第二个参数应用&#xff…

IDEA提交本地项目到Gitee远程仓库

上一篇【Git的安装、配置、使用02【Idea对GitHub支持使用】】https://liush.blog.csdn.net/article/details/123446538 1. 新建仓库 2. IDEA登录gitee账号 3. 选择当前的项目作为本地库(相当于初始化) 4. 将项目添加到暂存区中 5. 将暂存区项目文件提交…

【CSS】CSS文本样式【CSS基础知识详解】

👨‍💻个人主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 本文章收录于专栏 【CSS】 【CSS专栏】已发布文章 📁【CSS基础认知】 📁【CSS选择器全解指南】 &#x1f4c1…

十万部冷知识:“澳大利亚”为什么属于亚洲球队?

在2022年卡塔尔世界杯上,总共有6支球队入围,他们分别是日本队,韩国队,沙特队,伊朗队,澳大利亚队,还有就是东道主卡塔尔队。但是我们知道,澳大利亚,并不是亚洲的国家&…

Flutter 项目中管理你的 Assets Texts Widgets

Flutter 项目中管理你的 Assets Texts Widgets 原文 https://medium.com/mustafatahirhussein/managing-your-assets-texts-and-widgets-professionally-a-must-read-flutter-guide-ffb93b19eff0 前言 这篇文章是 Mustafa Tahir 写的关于 Flutter 项目管理的技巧,可…

音视频SDP协议详解(描述会话的协议)

前言 ①SDP协议是会话描述协议(Session Description Protocol)的缩写,是一种会话描述格式,一种描述流媒体初始化参数的格式,为描述多媒体数据而设计。 文末卡片领取音视频免费资料合集 (流媒体是指在传输过…

csdn月入过万的作者是如何练成的?

很多年前,我有一个成为作家的梦想。 后来从事了技术,觉得与作家梦越来越远了。 虽然梦想远去,但写字的欲望没有停止。 这些年,一直在有道云笔记上记录自己的工作心得,偶尔会来csdn上写一写。 我在csdn真正发力的时候…

自己怎么搭建一个网站?【自己建立网站】

说到建立网站,有些动手能力比较强的小伙伴可能就在想自己怎么搭建一个网站。想自己搭建一个网站,至少也是需要看懂html和cssdiv这些编程代码的,如果不懂代码就只能另寻方法了。那么自己怎么搭建一个网站? 现在市面上有很多的建站…

数据分析基础入门_环境安装

前言 python版本为3.6.8 主要记录一下数据分析入门或者人工智能入门基础所用到的库文件的环境安装过程。 1.批量安装所需库文件 新建 requirements.txt 文件,将以下内容复制到文本文件中保存。 matplotlib2.2.2 numpy1.14.2 pandas0.20.3 tables3.5.2 jupyter1…

Qt 中捕获三方库自身标准打印方法

【写在前面】 很多时候,我们为了方便调试,常常需要加入一些打印。 例如 Qt 中的 QDebug,C 和 C 中的 printf / cout 等等,又或者是三方库提供的标准打印接口。 然而大部分时候,这些打印相当不统一(格式和位置)&#xf…

高清架构整洁之道PDF下载

架构整洁之道高清PDF下载,请扫描如下二维码,支付3元。并加微信,发给你。谢谢。

你想制作一款属于自己的游戏吗?

💂 个人网站:【海拥】【摸鱼游戏】【神级源码资源网站】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】💬 免费且…

无线传感器网络(Wireless Sensor Networks)概述

文章目录IntroductionSensor Mote PlatformsLow-End-PlatformsHigh-End-PlatformsWSN Architecture and Protocol StackWSN Design ConsiderationsHardware ConstraintsFault ToleranceScalabilityProduction CostWSN TopologyTransmission MediaPower ConsumptionSensingData …

编译原理11:LR分析、句柄、LR文法

LR分析法概述 句柄和规范归约 LR分析法 s:shitf 移进 r:reduce 规约 LR分析示例 LR文法 k越大,处理能力越强,但复杂度越高 会人工消除冲突,使得符合LR文法 小结