Android Studio 最简单的NDK环境搭建和JNi调用

本文详细介绍如何使用Android NDK进行开发环境配置,包括下载安装、配置Gradle、编写JNI调用示例等步骤。

首先下载好ndk开发工具包,我的版本是android-ndk-r10b,没有的话请先下载好了解压到一个不含中文的文件下(别问为什么不能放中文的文件夹下),[点击这里下载ndk]
NDK r10链接: https://pan.baidu.com/s/1i4RamBb 密码: vphj

  1. 创建你的android studio 项目
  2. 开始配置你的ndk环境 ——>首先右键你的项目查看“open module Settings”进去可以看到Android NDK Loaction 记住改路径是到这里写图片描述点击ok
  3. 在配置gradle.properities这里写图片描述
  4. 接着配置改module的build.gradle这里写图片描述其中红色的代表是你要生成的.so文件的名称,蓝色的是在c/c++代码中要用的工具类,不用管 ndk {
    moduleName “hello-jni”
    ldLibs “log”
    }`

  5. 在你的java文件夹下开始编写要调用c的类或者直接到Activity里面编写,我这里直接写了一个类来调用nativte的方法`package com.sino.jnifrom;

/**
- Created by Administrator on 2016/10/18.
*/
public class JNiUtils {
static {
System.loadLibrary(“hello-jni”);
}

public static native String getStringFromJNi();

}
`

   这个是我自己写的一个类,很简单的一个调用,这里不详细说。
  • 现在开始生成c的头文件,这里介绍俩种方法(有很多种)。

1、
- 通过AS的Terminal命令行来执行javah命令,具体如下:
- 执行命令切换到java目录,这里写图片描述
然后执行命令:javah +类全名(包名+类名)javah后面有个空格,会在java目录下生成一个.h的头文件
这里写图片描述
2、通过cmd命令行来执行

  • 建好了工程之后在工具栏的Build项执行make project—为了编译生成.class文件,然后切换到debug这个目录下
  • 执行命令结果如下:这里写图片描述执行成功的话会直接到当前目录生成一个.h的文件
  • 在main路径创建一个jni文件,将c/c++文件和刚刚生成的头文件放里面这里写图片描述这里需要特别提醒下,创建了自己需要的c文件后还要创建一个空的c文件,里面什么也不写,别问我因为啥(工具的自身bug)
  • 最后写c代码,将头文件里面的方法名拷贝到自己创建的c文件里面开始写c代码,不想多说c代码贴图最清晰这里写图片描述
  • 这里贴下c++代码:
  • #include “com_sino_jnifrom_JNiUtils.h”

define LOG_TAG “System.out”

include

define LOGD(…) android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS)

define LOGINFO(…) android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS)

JNIEXPORT jstring

JNICALL Java_com_sino_jnifrom_JNiUtils_getStringFromJNi
(JNIEnv *env, jclass jclass) {

return env->NewStringUTF("我来自c++");

}
`运行程序效果如下:这里写图片描述

好了,这是我觉得AndroidStudio最简单的一种配置~~
我上传了demo地址:

http://download.youkuaiyun.com/detail/androidexception/9657034

-如果你在你的Activity中执行命令javah 的时候报错:
错误: 无法访问Android.support.v7.app.AppCompatActivity
找不到android.support.v7.app.AppCompatActivity的类文件
搜索了一下,在这篇文章中找到答案:http://www.itnose.net/detail/6291798.html
原来是出现这个错误是因为编译的classpath 未加入v4和v7库

【无人机】基于改进粒子群算法的无人机路径规划研究[遗传算法、粒子群算法进行比较](Matlab代码实现)内容概要:本文围绕基于改进粒子群算法的无人机路径规划展开研究,重点探讨了在复杂环境中利用改进粒子群算法(PSO)实现无人机三维路径规划的方法,并将其与遗传算法(GA)、标准粒子群算法等传统优化算法进行对比分析。研究内容涵盖路径规划的多目标优化、避障策略、航路点约束以及算法收敛性寻优能力的评估,所有实验均通过Matlab代码实现,提供了完整的仿真验证流程。文章还提到了多种智能优化算法在无人机路径规划中的应用比较,突出了改进PSO在收敛速度全局寻优方面的优势。; 适合人群:具备一定Matlab编程基础优化算法知识的研究生、科研人员及从事无人机路径规划、智能优化算法研究的相关技术人员。; 使用场景及目标:①用于无人机在复杂地形或动态环境下的三维路径规划仿真研究;②比较不同智能优化算法(如PSO、GA、蚁群算法、RRT等)在路径规划中的性能差异;③为多目标优化问题提供算法选型改进思路。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注算法的参数设置、适应度函数设计及路径约束处理方式,同时可参考文中提到的多种算法对比思路,拓展到其他智能优化算法的研究与改进中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值