NDK入门(一)

Android Studio NDK开发案例一 JNI开发入门         最近在做Android的项目,用到了JNI,现将NDK的开发流程和方法整理出来,希望能够让刚接触的小伙伴们少走一些弯路。 NDK         Native Development Kit(NDK)是一系列工具的集合。它提供了一系列的工具,帮助开发者快速开发C/C++的动态库,并能自动将so和java一起打包成apk。 JNI         Java Native In... 阅读详情

为什么需要ndk开发,个人理解有两点:一,安全,java程序容易通过反编译获取源码。二,效率,C++效率肯定比java高。

如何使用

前期准备工作

一,可用的android studio。

二,android-ndk-r14b-windows-x86_64 【下载地址】。解压后放到sdk根目录中,文件夹命名为ndk-bundle,为啥要这么做,启动AS的时候会检查它并直接添加到ndk.dir中,减少我们的配置工作,后面会有体现。

三,配置环境变量path,把解压好的路径添加到环境变量path中。

到此准备工作完毕!

创建项目demo

关联android studio和ndk

关联一,在建立的工程中的local.properties中添加如下配置ndk.dir=D\:\\Android\\sdk\\ndk-bundle。如果ndk目录是存放在SDK中,并命名为ndk-bundle,这个配置会自动为添加上。


关联二,在gradle.properties中配置android.useDeprecatedNdk=true 。这个主要是解决ndk提示版本低不能自动编译jni  


关联工作完成,接下来代码相关

在包里面创建NDKJNI.java文件并创建一个本地方法 getNDKString()


通过javah命令获取到本地头文件


执行javah命令后你会在包下面看到 .h文件



【project查看项目模式】在mian 下面创建jni文件夹,把 .h文件转移到该文件夹里面,同时创建同名的 .c文件。


目前ndk相关代码全部写完

在该项目下的build.gradle配置生成的so名称和支持的cpu类型



生成so文件

在项目的工具类中选择Build->Rebuild Project,进行重新编译工程,然后AS会为我们生成so文件,so文件所在目录为:\app\build\intermediates\ndk\debug\lib下


ndk现在已经开发完成.


下面是如何使用ndk

加载so库


加载的so库名称必须与build.gradle中配置的moduleName 名称一致,否则将找不到库。

最终使用


到此结束。

IC618新手避坑指南:从零在Linux上配置Cadence Virtuoso环境(含cds.lib文件详解) 本文详细介绍了在Linux系统上配置Cadence Virtuoso IC618环境的完整指南,特别针对新手常见问题提供解决方案。重点解析了cds.lib文件的关键配置,包括库路径定义和工艺库管理,并分享了高效工作流设置和典型问题排查技巧,帮助工程师快速搭建稳定的EDA设计环境。 阅读详情

相关推荐

永磁同步电机定子槽型设计实战:从梨形槽到矩形槽的NVH优化之路

本文深入探讨了永磁同步电机定子槽型设计在NVH优化中的关键作用,对比了梨形槽与矩形槽的性能差异。通过Ansys Maxwell仿真和实际案例,揭示了矩形槽在提升槽满率、降低电磁噪声方面的优势,并总结了五大设计黄金法则,为电机设计工程师提供了实用指导。

weixin_28740299的博客 493

android 集成NDK jni 讲解 笔记

官方ndk下载地址 :https://developer.android.google.cn/ndk/downloads/ 正文 说到NDK,相信大家都不陌生,它是Google为便于Android开发提供的一种原生开发集:NativeNDKDevelopment Kit,而且也是一个包含API、构建工具、交叉编译、调试器、文档示例等一系列的工具集,可以帮助开发者快速开发C(或C++)的动...

qq_36355271的博客 662

Android 13 Hotseat定制化修改——001 hotseat布局方向

一.背景由于需求是需要自定义修改Hotseat,所以此篇文章是记录如何自定义修改hotseat的,应该可以覆盖大部分场景,修改点有修改hotseat布局方向,hotseat图标数量,hotseat图标大小,hotseat布局位置,hotseat图标禁止形成文件夹,hotseat图标禁止移动到Launcher...

Java_fenxiang的博客 1102

ndk-bundle Android.mk 编译库和应用程序

参考 libusb-master 源码中的Android.mk ,构建一个通用的编译工程。 该方法无需启动Android studio ,用 ndk-bundle 命令编译库或应用程序。 第一步: 添加ndk到系统环境变量 第二步: 修改 jni 目录中的Android.mk Application.mk src.mk ,编译自己的工程 demo: jni/And...

qq_38907791的博客 2128

k8s infiniband 和 RoCE(RDMA over Converged Ethernet)

vendors 为设备厂商编号,注意这里不是 ibv_devinfo 命令看到的vendor_id 的值,而是 lspci -n |grep “网卡的bdf” 得到的。如上文所述,启动了两个测试 pod ,登录其中一个 pod(该 pod roce 设备 ip 为 10.56.217.79)如上文所述,启动了两个测试 pod ,登录其中一个 pod(该 pod ip 为 10.96.225.24)说明:文中用到的镜像是自定义的,文末有其Dockerfile 文件。修改该文件,增加污点容忍的内容,如下。

weixin_40548182的博客 1794

【LSTM回归预测】attention机制LSTM时间序列回归预测【含Matlab源码 1992期】

attention机制LSTM时间序列回归预测 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 2591

android studio下NDK配置

1.现在android studio2.2版本已经集成了NDK开发包,可直接在里面进行下载 它会默认下载到当前sdk路径下,D:\sdk\ndk-bundle,将此路径配置到环境变量中,通过ndk-build命令测试是否配置成功。 2.在项目中声明一个本地方法,在Terminal窗口中进入到当前java目录中执行命令 javah -jni 包名.类名 如果提示找不到类文件,可加上-cl

u011384042的博客 848

halcon第二讲:焊点提取

本文要完成的任务是将下图中焊点提取出来,对应于halcon例程Blob分析中的ball.hdev。 dev_open_window (0, 0, 512, 512, 'black', WindowHandle) read_image (Image, 'die_03.png') disp_continue_message (WindowHandle, 'black', 'true') sto...

qq_24946843的博客 7175

Android Studio NDK环境配置及JNI使用方法(下)

之前也对JNI和NDK做了详解,接下来,对它的使用做一个详细的介绍 1.NDK的安装及配置 配置环境变量 安装好的NDk一般位于你的sdk文件夹下的ndk-bundle。可以看到里面有ndk-build文件,下文进行编译的时候我们会用到。 然后将该路径配置到你系统变量的path里面去,如下: 1.在系统环境变量里面创建NDK_ROOT 2.将NDK_ROOT追加...

拉莫帅的博客 4748

金融监管压力测试场景生成

压力测试是一种评估金融资产或机构在极端市场条件下的表现和风险承受能力的方法。它通过模拟各种不利的市场情景,测试金融机构在这些情景下的财务状况和运营能力。压力测试的作用在于帮助金融机构识别潜在风险,评估应对策略,并制定应急预案。总结压力测试场景生成系统的开发过程和实现效果,强调其在金融监管中的重要性和应用价值。随着金融市场的发展,实时压力测试将越来越重要。未来,压力测试需要更加注重实时性和动态性,及时反映市场的变化。本文详细介绍了金融监管压力测试的重要性、核心概念、算法原理、系统架构以及实战案例。

AI天才研究院 1208

Prompt Engineering 学习指南:从入门到精通的最佳路径与资源

随着大型语言模型(LLM)能力的飞速发展,Prompt Engineering(提示工程)已成为人与AI协作的核心技能。本报告旨在为不同水平的学习者提供一条清晰、高效的学习路径,整合了当前社区公认的最佳实践和顶级开源资源,帮助您系统地掌握 Prompt Engineering,释放 LLM 的全部潜力。保持好奇心,不断尝试,您将能驾驭语言模型这一强大的工具,创造出前所未有的价值。超越简单的“一问一答”,学习如何将 Prompt Engineering 与外部工具和数据结合,构建强大的 AI 应用。

shiter编写程序的艺术 698

android NDK

首先 下载NDK,在AS里面,

HL的博客 516

【即插即用模块】Transformer篇 | TCSVT 2025 | DAFM:双注意力聚合+反向跨模态筛选,特征精准捕捉并融合!

本文提出了一种双模态注意力融合模块(DAFM),用于增强多模态图像融合任务中的特征交互。该模块通过双注意力聚合机制,结合自注意力与跨模态注意力,有效提升特征融合效果。DAFM采用可学习平衡因子动态调整注意力权重,并运用深度卷积降低计算复杂度。实验结果表明,该模块能显著提升多模态图像融合质量,适用于RGB-红外等双模态视觉任务。模块代码实现简洁,可直接集成到现有网络中作为特征融合层使用。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 175

NDK 入门(一)—— JNI 初探

宏是预处理器的一个重要概念,它是一种简单的文本替换机制。宏定义使用#define关键字,将一个标识符与一个文本片段关联起来。当源代码中出现宏标识符时,预处理器会将其替换为与之关联的文本片段。以下是一些常见的宏使用示例:// 定义 PI 为常量#define PI3.14159// 定义 PI 为常量 # define PI 3.14159 // 定义 MAX(a, b) 为宏函数 # define MAX(a , b)((a) >(b)?(a) :(b))

tmacfrank 1550

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

NDK开发(一) :NDK入门指南

本文操作以 Android Studio 3.4.2 版本为例 目录 环境配置 创建支持 C/C++ 的新项目 向现有项目添加 C/C++ 代码 参考文章 环境配置 下载安装 Android Studio 配置 NDK 环境 启动 Android Studio. 如下图:在界面的 Configure 中 打开 Settings 界面。 如下图: 在 左上角 输入框输入sdk → 点击 ...

103style 962

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

NDK开发入门(一)

最近项目需要开始接触JNI相关的内容,故而写一些笔记当做记录。主要介绍JNI入门的一些知识。本篇内容主要包括环境配置、代码调试、为原有代码添加C++支持等,这些介绍可能更加偏于verbose,如果有错误还请各位不吝指正。

苏小宝的博客 336

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Android ndk开发入门集锦一

Android ndk环境配置入门

郑敏 1815

JNI 与 NDK 入门(一)

JNI 概念 JNI是Java Native Interface的简写,它可以使Java与其他语言(如C、C++)进行交互。 它是Java调用Native语言的一种特性,属于Java语言的范畴,与Android无关。 为何需要JNI Java的源文件非常容易被反编译,而通过Native语言生成的.so库文件则不容易被反编译。 有时我们使用Java时需要使用到一些库来实现功能,但这些库仅仅提供了一些Native语言的接口。 使用Native语言编写的代码运行效率高,尤其体现在音频视频图片的处理等

Androidbye的博客 876

Android NDK开发(一)入门篇

Android NDK开发(一)入门篇1、下载NDK设置2、开启新世界大门A、设置local.properties在local.properties最后面加入ndk的路径 我的是这样: ndk.dir=/Users/Weiwu/Library/Android/sdk/ndk-bundleB、设置gradle.properties在gradle.properties最后加入过时可用(应该是这个意思

你若嘻哈过盛,别人就不再欣赏你的认真 3647

NDK 入门与进阶—第一个NDK程序(一)

首先检查配置环境,我这里使用的是AndroidStudio - 3.4.2 版本。打开SDK Tools,确保以下已经全部下载安装: 第二步,我们需要下载OpenCV资源,链接在此:https://opencv.org/opencv-3-2/,下载Android SDK,将下载后的sdk文件解压, ,打开文件OpenCv-android-sdk ->sdk -> native ...

文远 725

Android NDK入门开发(一)

JNI(Java Native Interface):Java原生接口,是Java和其他原生代码语言(例如 C 和 C++)通信的桥梁。 NDK(Native Development Kit):原生开发工具集,是一套允许您使用原生代码语言(例如 C 和 C++)实现程序功能的工具集。 CMake:Android推荐使用的NDK构建工具,从AS 2.2版本之后开始支持(包含2.2版本)。 环境搭建:...

你的外祖父的博客 462

Android JNI/NDK 入门从一到二

本文基于最基础的创建JNI接口之上,来进一步入门JNI/NDK

朱豪凯的博客 830

Android NDK开发(一) 入门

开始之前 最近学习了一下NDK的开发, 就来分享一下. 对一个新鲜事物, 我们先解决的无非就是三件事情: 是什么?为什么?怎么做?. NDK简介 (英语:native development kit,简称NDK)是一种基于原生程序接口的软件开发工具。通过此工具开发的程序直接以本地语言运行,而非虚拟机。因此只有java等基于虚拟机运行的语言的程序才会有原生开发工具包。[维基百科]ND

张鹿鹿的专栏 7159

Android中JNI&NDK入门(一) 之 初识NDK和JNI

1 NDK NDK全称是Native Develop Kit,翻译作原生开发工具包。它允许你为Android使用C/C++代码来实现应用程序的功能。换言之Android的SDK之外,有一个工具叫NDK,用于进行C/C++的开发。一般情况,是用NDK工具把C/C++编译为.co文件,然后在Java中调用。NDK 可能不适合大多数 Android 编程初学者,这些初学者只需使用 Java 代码和框架...

子云心的博客 2151

NDK开发 从入门到放弃(一:基本流程入门了解)

NDK入门,配置与简单流程介绍

小雨的专栏 4万+

NDK入门(一) 在Android Studio中创建并运行第一个ndk程序hello world

在Android Studio中运行第一个ndk程序hello world简介最近开始自学NDK,所有做一个笔记用来记录。另外本文适合没有ndk基础的朋友学习使用。 感谢官方中文文档的翻译者。 官方文档: https://developer.android.com/studio/projects/add-native-code.html#existing-project前言因为使用的是ndk-b

u010041075的专栏 2827
上一篇: android处理消息机制----Handler
下一篇: Git使用-基本使用
深巷落叶
博客等级 码龄16年 1粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值