Android NDK 开发 第一步的几个坑

Android-NDK开发入门 JNI(JavaNativeInterface英文缩写),译为Java本地接口。是Java众多开发技术中的一门技术,意在利用本地代码,为Java程序提供更高效、更灵活的拓展。尽管Java一贯以其良好的跨平台性而著称,但真正的跨平台非C/C++莫属,因为当前世上90%的系统都是基于C/C++编写的。同时,Java的跨平台是以牺牲效率换来对多种平台的兼容性,因而JNI就是这种跨平台的主流实现方式之一。总之,JNI是一门技术,是Java与C/C++沟通的一门技术。 阅读详情

备忘
android studio 1.3 开发 ndk 还不够成熟 gadle 会出现各种莫名奇妙的 BUG
最后还是用 编写 android.mk application.mk 加 ndk-build 执行通过
对了
as 迭代到现在 还无法根据 natvie java 自动生成对应的 c/c++ 文件 实在很恶
还有 win 环境下 使用 javah 命令 参数要加引号 不然执行不通过 是这在检查一遍又一遍的命令之后碰出来的 一度让我自己怀疑人生
嗯
android 还有一个坑
android sdk 2.3 之后有一个 NativeActivity 类
也怪自己没搞清楚这个类怎么用就用了
按常规生成了 c 文件并写好了 c 代码 编译成了 .so 文件 放到 project/libs 里去了
结果一运行

Unable to find native library: main

日
baidu google 都没搜出答案
后来还是搜 NativeActivity 用法 发现些端倪
果断将其改写成 Activity ,运行通过

环境

android sdk

从android 3 到 android 23 都有 根据项目所使用的版本进行切换

所在目录

D:\android-sdk-windows

android ndk

ndk有很多版本 每个版本也不同编号 这里使用的是最新的版本

android-ndk-r10e

所在目录

D:\android-ndk-r10e

在Clion开发工具上使用NDK编译可以在安卓上执行的程序 在ndk r19版本以前,要在CLion上编译ndk只能采用独立工具链的方式,创建独立工具链供CLion调用。不过r19之后,ndk的默认工具链都是独立工具链了,不需要再创建了。 本文记录在Clion开发工具上使用NDK编译可以在安卓上执行程序的配置步骤。 阅读详情

相关推荐

Android NDK 开发

定义:NDK 是 Android SDK 的补充工具集,用于将 C/C++ 代码编译成.so(Shared Object,共享库)文件,供 Android 应用(Java/Kotlin)调用。核心作用复用现有 C/C++ 代码(如算法库、游戏引擎、硬件驱动)。提升性能敏感场景(如实时渲染、音视频处理、加密计算)的执行效率。访问 Android 平台的底层 API(如 OpenSL ES 音频、OpenGL ES 图形、传感器)。适用场景高性能计算(如数学建模、图像处理)。

weixin_39789947的博客 1071

android-ndk环境配置

Mac中的Android SDK配置环境变量: 启动Mac自带的终端Terminal。 进入当前用户的home目录。 在命令行输入echo $HOME 创建.bash_profile文件。 命令行输入touch .bash_profile 打开.bash_profile文件。 命令行输入open -e .bash_profile 此命令行输入完毕后,会自动弹出 .bash_profil

爱吃水果的程序猿 3615

安卓NDK开发流程(适合新手学习)

为什么需要用到DNK(也就是jni)?因为安卓有很多功能是实现不了的,尤其是和底层硬件交互的一些操作,比如打印操作,直接用安卓连接底层打印机,就很难实现,但是用C就可以和硬件交互,这个时候就需要用安卓去调用C语音的方法,然后C再和底层硬件交互 OK,言归正传,看一下NDK的简单开发流程(确保自己可以把NDK操作完整地跑一边,就基本上可以明白DNK的作用了) 第一步:下载ndk以及配置ndk路径...

qq_35945801的博客 718

【ijkplayer】编译 Android 版本的 ijkplayer ③ ( 执行 compile-ffmpeg.sh clean 命令 | 下载并配置 android-ndk-r10e )

一、进入 android/contrib 目录、 二、执行 compile-ffmpeg.sh clean 命令、 三、下载并配置 android-ndk-r10e、

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 1818

Android Studio下Ndk开发踩过的坑以及解办法决

Android studio在2.2之后是开始兼容ndk的开发,尝鲜用来本地开发,各种坑,不兼容。之前用得好好的,一个升级AS或者NDK版本都会一不小心导致了编译失败,或者成功之后,加载不成功。故随手笔记记录下自己踩过的坑,也方便其他人查询。 Trap One : Caused by: java.lang.UnsatisfiedLinkError: dlopen f...

在路上-codingAndlearning 8503

安卓开发中JDK、SDK、NDK、ADT、ANT等概念作用解释

这个是从网上找到的对这几个名词的解释: 主要对初接触的人有用,对多平台开发人员可能记混的也有点作用。 名词解释 很多初接触安卓的朋友在配置开发环境时面对诸如JDK、SDK、NDK、ADT等概念一头雾水不知所以,在这里对这些概念及其相关作用进行解释,希望对初学者有所帮助: IDE :(Integrated Development Environment) 集成开发环境,用于提供程序开发环境的应用程序,即我们编程的地方。一般包括代码编辑器、编译器、调试器和图形用户界面,比如visual studio、X

暴走影视 1866

Android NDK下载(r10~ r26d) 持续更新

鉴于有些人不能上官网,所以复制下来给需要的人。 r10d [Windows] http://dl.google.com/android/ndk/android-ndk-r10d-windows-x86.exe http://dl.google.com/android/ndk/android-ndk-r10d-windows-x86_64.exe[Mac OS X] http://dl.google.

123456789 5万+

Jetpack-CameraX-Android

Jetpack-CameraX-Android Jetpack-CameraX是单击和选择图像的最简单方法。 Jetpack-CameraX相机图像选择器 实施简单 用法 依存关系 步骤1.将JitPack存储库添加到您的构建文件中 将其添加到存储库末尾的root build.gradle中: allprojects { repositories { .. . maven { url ' https://jitpack.io ' } } } 步骤2.添加依赖项 将其添加到您的应用模块build.gradle中: dependencies { .. . implementation ' com.github.SaeculumSolutions:Jetpack-CameraX-Android

一路走来 Android NDK 踩过的坑

在吐槽中寻求真理 且不说什么 Android NDK 开发学习方法,就说说踩坑吧,但愿大伙能在欢乐的吐槽声中学习进步,这就是本文意图 Android NDK 到底有多坑 命名规范 Java->C++ 数据传递 Android.mk 文件 Application.mk 文件 动态库 VS 静态库 Android 音视频开发 视频预览 OpenGL ES 视频绘制

SweetLoveFT的专栏 916

服务器被矿工入侵记录

一次服务器被矿工入驻的处理记录

王瑞的技术专栏 1334

CRISPR筛选全流程指南:从文库构建到数据分析实战

功能基因组学研究需要高效解析基因型与表型的关联,高通量筛选技术是其中的关键工具。基于CRISPR系统的筛选方法通过大规模sgRNA文库扰动基因功能,结合慢病毒递送和测序分析,能够系统鉴定影响细胞增殖、耐药、病毒感染的候选基因。与RNAi或化学小分子筛选相比,CRISPR筛选具有覆盖全基因组、脱靶率低、信号清晰等优势,已广泛应用于药物靶点发现、合成致死和免疫治疗机制研究。本文围绕实验设计与操作中的核心要点展开,涵盖文库扩增、病毒滴度控制、MOI把握、筛选模式选择以及基于MAGeCK的sgRNA丰度分析,并针对

weixin_31188927的博客 287

Android之NDK开发入门

注意:本文操作环境为mac,Android Studio版本3.5 前言 NDK全称Native Development Kit,是Android的一个工具开发包,能够快速开发C,C++的动态库,并自动将so和应用打包成APK。而NDK的使用场景就是通过NDK在Android中使用JNI,那么JNI又是啥呢?JNI全称是Java Native Interface,即Java的本地接口,JNI可以使得Java与C,C++语言进行交互。这么一来,通过NDK和JNI,就可以很方便的在Android的开发环境中.

jsyjst的博客 8034

matlab kwave模拟超声换能器学习笔记

kwave模拟超声换能器的学习笔记,从零开始造车轮

SolvingMaster的博客 3201

安卓NDK开发中遇到的坑

这篇博客主要记录在安卓NDK开发过程中遇到的各种坑,将持续更新。 ###使用ndk-build的时候提示”no rule to make target”  出现这个提示的原因是因为文件夹目录的问题。在Android.mk中我们使用了LOCAL_PATH := $(call my-dir)这句的意思就是为了确定源程序所在的位置,my-dir就说明要在当前目录下去找源码。但是我在操作过程中却把源码

maowei117的博客 1550

Open3D 点云重叠区域检测【2025最新版】

本文介绍了一种基于八叉树和KD树的点云重叠区域检测方法。算法提供两种检测模式:八叉树(快速)和KD树(精确),支持可视化显示和详细统计信息输出。实现功能包括边界扩展、索引去重、精度调节等,可通过max_depth参数控制八叉树细分程度,distance_threshold调整检测精度。代码使用Open3D库,能自动计算并显示各点云的重叠比例和点数统计,最终结果以不同颜色区分重叠与非重叠区域。该方案适用于三维点云数据处理中的重叠分析任务。

点云侠的博客 599

【ComfyUI】Animate 保留原视频背景角色替换视频生成

本文介绍了智能创作与视频生成的工作流设计,强调其作为围绕业务目标、数据流转和模型能力的有机整体。工作流由数据输入、模型处理、结果合成和输出展示构成,通过节点化连接实现高效复用与扩展。文章重点解析了核心模型(如CLIP Vision、WanVideo等)的功能和协作方式,以及各类节点(输入、处理、控制、输出)的作用。最后展示了工作流在视频角色替换、虚拟试衣等场景的应用价值,并提供了相关开发资源链接。该设计通过模块化实现了灵活适配不同业务需求的能力。

Mr数据杨 1869

Android之NDK开发初体验

作为Android开发人员,没有接触过NDK开发也接触过so文件吧。其实NDK编程也没有看来的那么隐秘,今天我们来看看咱们利用NDK来写出自己的so文件

stven_king的专栏 8713

Attention优化|2w字原理&图解: 从Online-Softmax到FlashAttention V1/V2/V3

本文通过原理分析和图解的方式,通俗易懂地FlashAttention系列算法。FlashAttention V1/V2在LLM领域的应用已经非常广泛,相关的论文也反复读了几遍。FA1和FA2论文非常经典,都推荐读一下(不过FA2论文中公式错误不少本文大约1.8w字,包括以下内容:0x07 分布式训推使用FlashAttention0x09 FlashAttention中MQA/GQA以及Causal Mask处理。

具身机器人和通用AI 5233

安卓开发环境搭建JDK + SDK Manager + NDK + Android Studio

第一次接触安卓开发,配置环境就折腾了一晚上。在此分享安装与配置过程,希望可以帮助更多入门开发者。 一、JDK JDK(Java Development Kit) 是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。 1. 下载 : 官网下载地址 如图(红圈处注意,这里我选择的是8u191,64位,wi...

chengxunyang的博客 4445

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Unity安卓开发最全NDK版本下载指南

Unity安卓开发最全NDK版本下载指南 【下载地址】Unity安卓开发最全NDK版本下载指南 在Unity安卓开发中,正确匹配Native Development Kit(NDK)版本至关重要。不同Unity版本需要特定NDK版本支持,例如Unity2021.3.3f1需NDK 21.3.6528147,而Unity2...

gitblog_06766的博客 913

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

在Android Studio下进行NDK开发

JNI的全称就是Java Native Interface,其实它就是一种协议。一说协议,那它就是对某种东西的一个规范和约束,说的好听一点就是标准化。意思是如果你想用我这个东西,那你必须要遵守我这边的规范。有了JNI这个协议,Java和C/C++代码才能相互调用。NDK全称是Native Development Kit,它就是一个本地开发的“工具包”。Java开发要使用JDK,Android开发要使用SDK,那我们在Android中要进行native开发,也要用到它对应的工具包,即NDK。

leihu007的专栏 2288

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

windows下eclipse搭建android_ndk开发环境

安装cygwin: 由于NDK编译代码时必须要用到make和gcc,所以你必须先搭建一个linux环境, cygwin是一个在windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,非常有用。通过它,你就

ygc87的专栏 9007

Android ndk开发

#什么是Android NDK Android NDK 是一套允许您使用 C 和 C++ 等语言,以原生代码实现部分应用的工具集。在开发某些类型的应用时,这有助于您重复使用以这些语言编写的代码库。 #Android NDK开发流程 ##ndk下载 由于android studio自带的ndk版本可能在编译中出现问题,所以自己在官网下载所需的ndk版本。本文以稳定版本(r16b)为例子。 ##ndk...

qq_39290017的博客 575

Windows环境下Android NDK的开发

Android的NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk文件。Android 应用开发者可以通过NDK调用C或C++本地代码。我们知道apk文件是很容易被反编译的,如果程序对于安全性的要求较高,这个时候就需要使用NDK了。如果我们要   在Windows环境下,也可以进行NDK的开发。下面是配置环境的具体的步骤:

::: 移动互联网时代开发者 ::: 2584
上一篇: 博客数据库设计之第二版
下一篇: Unable to execute dex: method ID not in [0, 0xffff]: 65536
Excing
博客等级 码龄18年 2粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值