无需cygwin,使用NDK进行开发

from:

http://www.cnblogs.com/sw926/p/3232311.html




NDK从7开始自带编译器,在windows上无需配置cygwin的环境。

在eclips中配置NDK路径

在eclipse中点击菜单栏window-Perferences,配置NDK的路径。

在工程中添加native lib

新建一个空白的Android工程,在根目录上点击右键Adnroid Tools - Add Native Support...

在弹出的对话框中输入要新建的lib的名称,点击Finish,在工程目录下会多出一个jni文件夹,里面有一个空白的cpp文件和一个Android.mk文件

Android.mk文件的内容是

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := TestJni
LOCAL_SRC_FILES := TestJni.cpp

include $(BUILD_SHARED_LIBRARY)

TestJni就是要加载的lib的名称,LOCAL_SRC_FILES 是资源文件的路径。

hello jni


MainActivity.java代码如下:

复制代码
package com.example.testjni;

import android.os.Bundle;
import android.app.Activity;
import android.widget.TextView;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        TextView textView = new TextView(this);
        textView.setText(helloFromJni());
        setContentView(textView);
    }
    
    public native String helloFromJni();
    
    static {
        System.loadLibrary("TestJni");
    }
}
复制代码

TestJni.cpp代码如下:

#include <jni.h>

extern "C" jstring Java_com_example_testjni_MainActivity_helloFromJni(JNIEnv *env, jobject thiz) {
    return env->NewStringUTF("Hello From Jni");
}

直接运行程序,可以在Console窗口中看到NDK build的输出

有一点要注意:由于我使用的是x86的Android虚拟机来运行,所有使用的是x86的编译器。制定编译器的方法是在jni目录新建一个Application.mk的文件,输入以下内容

#APP_ABI := armeabi
APP_ABI := x86
#APP_ABI := armeabi armeabi-v7a x86 mips mips-r2 mips-r2-sf
#APP_ABI := all
APP_STL := stlport_static

如果是普通arm处理器的Android手机,使用APP_ABI := armeabi,如果是x86处理器的,使用APP_ABI := x86,等等。

如果APP_ABI := all,会编译所有指令的so。

运行结果如下:

至于C/C++的编译是怎么实现的,我们可以查看一下工程的Properties

在Builders里面有多了两项,一个是CDT Builder,一个是Scanner Configuration Builder。

现有的工程添加Builder

如果工程里面已经有jni目录了,但是没有配置C/C++的编译器,高手们可以自己添加Builder,对于我这种爱投机取巧的小菜鸟,工程右键菜单,新添加一个空白的so,然后再删除,CDT Builder和Scanner Configuration Builder就出来了。


ps:

1.开始的时候ndk放到了D:\Program Files下,结果提示有space 换了个路径问题解决。

2.添加so文件时需要放到jni文件夹下。。。

内容概要:本文详细探讨了双馈风力发电机(DFIG)在Simulink环境下的建模方法及其在不同风速条件下的电流与电压波形特征。首先介绍了DFIG的基本原理,即定子直接接入电网,转子通过双向变流器连接电网的特点。接着阐述了Simulink模型的具体搭建步骤,包括风力机模型、传动系统模型、DFIG本体模型和变流器模型的建立。文中强调了变流器控制算法的重要性,特别是在应对风速变化时,通过实时调整转子侧的电压和电流,确保电流和电压波形的良好特性。此外,文章还讨论了模型中的关键技术和挑战,如转子电流环控制策略、低电压穿越性能、直流母线电压脉动等问题,并提供了具体的解决方案和技术细节。最终,通过对故障工况的仿真测试,验证了所建模型的有效性和优越性。 适用人群:从事风力发电研究的技术人员、高校相关专业师生、对电力电子控制系统感兴趣的工程技术人员。 使用场景及目标:适用于希望深入了解DFIG工作原理、掌握Simulink建模技能的研究人员;旨在帮助读者理解DFIG在不同风速条件下的动态响应机制,为优化风力发电系统的控制策略提供理论依据和技术支持。 其他说明:文章不仅提供了详细的理论解释,还附有大量Matlab/Simulink代码片段,便于读者进行实践操作。同时,针对一些常见问题给出了实用的调试技巧,有助于提高仿真的准确性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值