Android NDK开发-环境搭建(一)

2023-11-18

一、概念


Android NDK

Android Native Development Kit,简称NDK。

Android NDK 是一组允许您将 C 或 C++(“原生代码”)嵌入到 Android 应用中的工具。 能够在 Android 应用中使用原生代码对于想执行以下一项或多项操作的开发者特别有用:

  • 在平台之间移植其应用。
  • 重复使用现有库,或者提供其自己的库供重复使用。
  • 在某些情况下提高性能,特别是像游戏这种计算密集型应用。

JNI

Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C和C++)。

二、环境搭建


打开Android studio,File>>>Project Structure配置环境

 

配置环境1.png

配置环境2.png

如果没有下载android ndk,Android studio会提示下载,点击下载按钮下载即可。设置完毕查看local.properties文件会看到你的配置路径。

 

local.properties.png

NDK下载配置完成之后,需要在gradle.properties文件中加上一行:

android.useDeprecatedNdk=true

如图:

 

gradle.properties

接下来打开Android studio设置页面(快捷键:Ctrl + Alt + S),在Tools>>>External Tools下配置插件。

External Tools.png

image.png

javah -jni命令,是根据java文件生成.h头文件的,会自动根据java文件中的类名(包含包名)与方法名生成对应的C/C++里面的方法名。

参数配置及其含义:

  • Program:
    $JDKPath$\bin\javah.exe,配置javah.exe的路径。
  • Arguments: -classpath . -jni -d $ModuleFileDir$/src/main/jni $FileClass$,这里$FileClass$指的是要执行操作的类名(即我们操作的文件),$ModuleFileDir$/src/main/jni表示生成的文件保存在这个module目录的src/main/jni目录下。
  • Working directory:
    $ModuleFileDir$\src\main\java,module目录下的src\main\java目录(不是很理解)。

使用方式:选中java文件>>>右键>>>External Tools>>>javah-jni,将生成jni文件夹以及文件夹下的 包名.类名的.h头文件(名字过长,可以重命名)。如下图:

 

external tools使用.png

头文件.png

ndk -build命令,是根据C/C++文件生成so文件的。

ndk -build.png


使用方式:选中C/C++文件—>右键—>ExternalTools—>ndk-build,将在main文件夹下生成libs文件夹以及多个so文件,我们可以移动至jniLibs目录下去。

 

参考博客:https://blog.csdn.net/xiaoyu_93/article/details/52870395

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android NDK开发-环境搭建(一) 的相关文章

  • Android JNI/NDK C++代码读写手机上存放的文件

    Android JNI NDK C 43 43 代码读写手机上存放的文件 xff08 1 xff09 首先确保当前app已经获得读文件系统的权限 xff1a lt uses permission android name 61 34 and
  • android ndk extern "C"

    C 43 43 的代码里面 xff1a extern 34 C 34 这是因为生成的二进制文件中 xff0c C和C 43 43 的符号表不相同造成的 Jni是按照C的生成规则去找函数的 xff0c 所以要加上extern C使编译器把函数
  • NDK--CMakeLists配置第三方so库

    当我们创建一个NDK工程时 xff0c 会自动创建一个CMakeLists txt的文件 xff0c 在AS中c 43 43 的编译器是使用LLVM xff0c 规则为cmake xff0c 今天来学习下cmake的基本套路 首先 xff0
  • make: *** No rule to make target `all'. Stop.的问题 解决办法!

    项目 build native sh后导入eclipse一直提示一个很恶心的报错 make No rule to make target all Stop 网上搜了半天的英文资料 都无法解决 最后在论坛里找到了解决方案 在这里整理了下mac
  • Cygwin编译JNI的环境配置

    一 什么是NDK NDK提供了一系列的工具 帮助开发者快速开发C 或C 的动态库 并能自动将so和java应用一起打包成apk 这些工具对开发者的帮助是巨大的 NDK 集成了交叉编译器 并提供了相应的mk文件隔离CPU 平台 ABI 等差异
  • Android嵌入式开发之NDK初级入门 粘贴可用阅读可懂

    前言 NDK开发 其实是为了项目需要调用底层的一些C C 的一些东西 另外就是为了效率更加高些 如果你在Eclipse ADT下开发过NDK就能体会到要么是配置NDK还要下载Cygwin 配置Cygwin 然后需要编译生成 相当的蛋疼 要么
  • 计算机视觉中自注意力构建块的PyTorch实现

    作者 AI Summer 编译 ronghuaiyang 导读 一个非常好用的git仓库 封装了非常全面的计算机视觉中的自注意力构建块 直接调用 无需重复造轮子了 git仓库地址 https github com The AI Summer
  • OpenCV源码Android端编译,用时三天,我编了个寂寞。。。

    学更好的别人 做更好的自己 微卡智享 本文长度为1526字 预计阅读4分钟 导语 全网首发微信二维码引擎Android平台移植 中有介绍OpenCV源码及扩展模块Android端的编译 其中扩展模块里的人脸细节特征点是准备要测试看看的 于是
  • Android NDK Win10安装及环境变量配置(图文详细教程)

    首先需要安装 Android Studio Android Studio 的安装比较简单 这里不赘述 如果没有安装请先自行安装 1 使用Andorid Studio 进行安装 在顶部菜单中 选择 Tools gt SDK Manager 如
  • android 关于mk如何引用其它so库

    通常 开发android的软件 常常需要编译so库 然编译的这个so库 需要调用多个其它的so库 这里主要记录一下 编译so库时 调用其它so库的mk 是怎么写的 这里讲的示例 需要编译出libtest3 so 它需要调用libtest1
  • No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideabi

    产生背景 最近把Android Studio更新到3 0 更新之后出现了build错误 No toolchains found in the NDK toolchains folder for ABI with prefix arm lin
  • Cygwin环境变量设置(转载)

    开始运行bash之前 应该设置一些环境变量 cygwin提供了一个 bat文件 里面已经设置好了最重要的环境变量 通过它来启动bash是最安全的办法 这个 bat文件安装在cygwin所在的根目录下 可以随意编辑该文件 1 CYGWIN变量
  • android ndk NEON Support

    NEON Support On this page Using LOCAL ARM NEON Using the neon Suffix Build Requirements Runtime Detection Sample Code Th
  • Android无线网络调试手机

    adb tcpip 5555 adb下载地址 http download clockworkmod com test UniversalAdbDriverSetup msi 3 在设备中下载超级终端 是andriod软件 设置端口 su s
  • Android NDK添加NEON以及cpufeatures支持

    本人使用Android studio3 0进行NDK开发 由于Android develop官网文档是针对2 2版本以下 这里为2 2以上版本的cmakelist配置做以下纪录 一 添加NEON支持 在build gradle app 中添
  • C/C++在Android开发中的应用

    JNI开发系列阅读 JNI与底层调用1 http blog csdn net axi295309066 article details 60758515 JNI与底层调用2 http blog csdn net axi295309066 a
  • Android NDK Address Sanitizer

    文章目录 构建 运行 堆栈轨迹 二进制测试 此文章是基于官方文档 Address Sanitizer的基础上做了一些扩展说明 从 API 级别 27 Android O MR 1 开始 Android NDK 可支持 Address San
  • Android NDK 编译 三方库记录 及 jni库封装问题

    因工作需求 要将原先的c 库跨平台编译 在Android上运行 其依赖了几个第三方库 也需要一起编译 在此做个记录 所需工具 centos 系统上完成 1 cmake 3 15 6 2 ndk android ndk r21e NDK 下载
  • javah用法

    正确做法 进入到包com所在的目录 是java文件所在的包 不是class javah classpath jni com jnitest MainActivity 如果执行这个 javah jni com example zndktest
  • JNI入门基础

    环境安装 想要使用jni进行ndk开发 我们首先要安装下面这些工具 否则直接从入门到放弃 下载ndk支持 在Android studio中下载上图中框选的两个工具 版本号自己任意选一个 下载完成之后 Android Studio就拥有了进行

随机推荐

  • FW1配置文件

    FW1 sh conf Building configuration Running configuration Version 5 5R2 ip vrouter trust vr exit vswitch vswitch1 exit zo
  • 【Linux】向Linux 5.11.8内核加入新的系统调用

    目录 特殊声明 A mathcal A A 获取root权限
  • 【分布式】分布式相关书籍

    1 概述 1 1 分布式文章汇总 书籍 悟空聊架构 分布式文章汇总 评分 8分 第一章 主要讲解 拜占庭故障 这个讲解的非常好值得一看 第二章 主要讲解 Paxos 共识算法 这个图很好 但是仍然很难懂 第三章 动图讲解分布式 Raft 但
  • 开始学下VC++了

    有点迟了 以前光学DELPHI了 结果还是半瓶子的样子 现在接触下VC 要不会让人BS的 希望开个好点的头吧 不要老是三心二意的哦耶 PS QQ的五笔比搜狗的五笔好用不 个人感觉还是QQ的有点好用哦 嘿嘿 Orz 转载于 https www
  • mac安装python3.7_Mac安装python3.7

    mac默认安装的pyhon版本为2 7 如果要更新为python3 7 那么可以直接安装python3 7 千万不要卸载2 7版本 相信我 把系统自带的东西胡乱卸载掉的话你绝对会后悔的 步骤一 下载安装python3 7 方法一 使用hom
  • Flutter - 图片点击全屏浏览

    demo 地址 https github com iotjin jh flutter demo flutter好用的轮子推荐四 可定制的图片预览查看器photo view flutter九宫格图片查看器 效果图 关于九宫格布局实现 JhPh
  • 方差传递公式

    假设 Y f X 则 Var Y Sigma frac partial f partial x i Var x i
  • vue3-实现父子组件之间的通信(详解+源码)

    前言 vue3相对于vue2的父子传参方式有所改变 本文介绍三种 父组件给子组件传参 父组件调用子组件内的方法 子组件调用父组件的方法 如果不需要一种一种看可以直接下滑看全部代码 有注释也蛮好理解 一 父组件给子组件传参 1 父组件给子组件
  • 毕业设计-基于机器视觉的安全帽佩戴识别系统

    目录 前言 课题背景与意义 课题实现技术思路 目标检测 算法检测 算法实现 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着准备考研 考公 考教资或者实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的
  • Java之局部变量的作用域

    1 循环语句中变量 public static void main String args for int i 0 i lt 10 i int sum 3 System out println i sum 就上面最简单的程序说明吧 上面在f
  • 玻纤效应对skew的影响(三)

    玻纤效应对skew的影响 一 玻纤效应对skew的影响 二 对内skew对32Gbps NRZ和64Gbps PAM 4的影响 这一篇中 玻纤效应造成的对内skew将会加入到32Gbps NRZ和64Gbps PAM 4 SerDes全链路
  • 转载-浅析UDS诊断

    文章目录 前言 一 诊断和通信管理功能单元 0x10 DiagnosticSessionControl 0x11 ECUReset 0x27 SecurityAccess 0x28 CommunicationControl 0x3E Tes
  • maven工程编译生成source包

    开发Java服务端项目的时候 经常需要开发SDK作为依赖包提供给目标工程引用 但是目标工程在运行的调试的时候断点到依赖包里面的代码 由于依赖包的代码是编译后端class类 和源码有不少差异 不方便阅读 所以在开发的时候最好生成源码形式的依赖
  • Linux下Android Studio的安装步骤及关键点【整理】

    2013年google公司发布了一个新的Android集成开发环境 Android Studio 它为Android开发者提供了更多便利 而google慢慢地已经把重心放到Android Studio的开发上了 所以对于Android工程师
  • Allegro输出带等长规则的Excel操作指导

    Allegro输出带等长规则的Excel操作指导 Allegro可以输出带等长规则的Excel文件 方便检查和查阅 具体操作如下 打开规则管理器 选择Relative Propagation Delay 选择需要输出的match group
  • 如何清除SQL Server Management Studio的最近服务器列表

    SQL Server Management Studio SSMS 的 连接到服务器 对话框会记录用户所有访问过的服务器名称 这个功能对于经常连接多个数据库的人来说确实挺方便的 不过使用了一段时间之后 这个列表会变得很长 里面还有很多服务器
  • 利用原生js实现随机颜色画布

    这几天复习了一下js的DOM 文档对象模型 部分 看到鼠标事件的时候想到可以试着写一个js画布的案例 一 实现思路 1 利用js绑定鼠标按下事件 鼠标放开事件 在通过鼠标移动事件 获取鼠标所在位置 2 通过鼠标移动事件动态创建节点挂载到页面
  • 家庭实验室系列文章-电脑如何配置网络唤醒 (WOL)?

    前言 其实这个专题很久很久之前就想写了 但是一直因为各种原因拖着没动笔 因为没有资格 也没有钱在一线城市买房 但是在要结婚之前 婚房又是刚需 我和太太最终一起在一线城市周边的某二线城市买了房 再之后 一起装修 她负责非电相关 我负责电 网相
  • 字符串与数组的相互转换

    一 数组转字符串 arr join 指定符号 用指定符号把数组元素连接起来 返回连接好的字符串 let arr 1 2 3 4 arr join 1 2 3 4 arr join 1 2 3 4 二 字符串转数组 多个元素 str spli
  • Android NDK开发-环境搭建(一)

    一 概念 Android NDK Android Native Development Kit 简称NDK Android NDK 是一组允许您将 C 或 C 原生代码 嵌入到 Android 应用中的工具 能够在 Android 应用中使