JNI 之 Eclipse配置NDK

本文介绍了如何使用Android Development Tools (ADT) 和 NDK 创建 Android 本地库的方法,包括新建测试工程、配置 ADT 的 NDK 路径、设置环境变量和编译脚本路径等关键步骤。通过此教程,开发者可以更高效地进行 JNI 开发,无需依赖 Cytgwin,实现本地库的便捷编译。
工具要求:ADT + NDK(版本:android-ndk-r9d 目前最新版)


一、首先新建一个测试工程
    在工程文件上,点右键选择 Android Tools -> Add Native Support,然后输入so文件的名字就可以了

   
二、配置ADT的NDK路径
   Window -> Preference -> Android -> NDK  -> NDK Loaction
   然后找到本机的NDK路径,填进去就可以了,我的路径是:F:\Gzthss\TOOL\android-ndk-r9d

  file:///C:/Users/dupf/AppData/Local/Temp/Wiz/df44d523-a2fe-4734-a51f-d516a23b45ed_128_files/f32477e3-d662-43f3-b56f-e5ae51983fe5.png   

     
三、设置NDK的环境变量及编译脚本路径
    

    Window -> Preference -> C/C++ ->Build ->Environment -> Add 将NDK路径设置成环境变量,如图所示,然后OK保存。

    file:///C:/Users/dupf/AppData/Local/Temp/Wiz/df44d523-a2fe-4734-a51f-d516a23b45ed_128_files/7d0ddd4b-33f1-49f0-a532-443bdd7f35e9.png  



    然后,设置编译脚本(ndk-build.cmd)的路径:
    file:///C:/Users/dupf/AppData/Local/Temp/Wiz/df44d523-a2fe-4734-a51f-d516a23b45ed_128_files/f5510161-8c70-4e34-9d30-3f4ade380370.png


    这样就可以直接编译jni了,在也不需要Cygwin了,还是很方便的的吧!!



四、完善JNI工程
    找到目下jni文件夹下面的 ndkTest.cpp文件,写一个简单的jni函数:

    ndkTest.cpp 文件 :



#include <jni.h>

#include <string.h>

extern "C"

_jstring*  Java_com_example_ndktest_NdkTest_jniTest(JNIEnv* env,jobject thiz)

{
    return (env)->NewStringUTF("hello from jni by  ndkTest!");
}




NdkTest.java文件:


package com.example.ndktest;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.widget.TextView;

public class NdkTest extends ActionBarActivity {

    private TextView tv = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_ndk_test);

        tv = (TextView)findViewById(R.id.textView1);
        tv.setText("" + jniTest());
    }

    private native String jniTest();
    static {
        System.loadLibrary("ndkTest");
    }

}  



这时候会提示头文件找不到,因为还没有包含头文件,头文件是在ndk目录:   F:\Gzthss\TOOL\android-ndk-r9d\platforms\android-19\arch-arm\usr\include
右键工程 -> Properties ->  C/C++ General -> Path and Symbols -> Includes 标签 -> Add 将自己的NDK头文件路径包含进去就行了。
然后,在Java文件中进行调用Jni,进行编译得到结果。











































内容概要:本文围绕六自由度机械臂的人工神经网络(ANN)设计展开,重点研究了正向与逆向运动学求解、正向动力学控制以及基于拉格朗日-欧拉法推导逆向动力学方程,并通过Matlab代码实现相关算法。文章结合理论推导与仿真实践,利用人工神经网络对复杂的非线性关系进行建模与逼近,提升机械臂运动控制的精度与效率。同时涵盖了路径规划中的RRT算法与B样条优化方法,形成从运动学到动力学再到轨迹优化的完整技术链条。; 适合人群:具备一定机器人学、自动控制理论基础,熟悉Matlab编程,从事智能控制、机器人控制、运动学六自由度机械臂ANN人工神经网络设计:正向逆向运动学求解、正向动力学控制、拉格朗日-欧拉法推导逆向动力学方程(Matlab代码实现)建模等相关方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握机械臂正/逆运动学的数学建模与ANN求解方法;②理解拉格朗日-欧拉法在动力学建模中的应用;③实现基于神经网络的动力学补偿与高精度轨迹跟踪控制;④结合RRT与B样条完成平滑路径规划与优化。; 阅读建议:建议读者结合Matlab代码动手实践,先从运动学建模入手,逐步深入动力学分析与神经网络训练,注重理论推导与仿真实验的结合,以充分理解机械臂控制系统的设计流程与优化策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值