Android之eclipse简单NDK入门 推荐
2014-06-19 14:31
417 查看
之前写了一篇JNI的使用,这里其实也是JNI的使用,只不过现在的使用更加方便,不需要什么cygwin或者gnu去创建那边麻烦,直接eclipse完成所有操作。
先前的一篇:http://xuzhiwei.blog.51cto.com/978424/976839
1、首先现在Android的SDK和NDK
2、sdk中以及集成了eclipse,打开eclipse并下载CDT插件支持,一会儿写c++使用。
CDT下载地址:http://www.eclipse.org/cdt/
3、配置NDK环境,windows->preferences->Android->NDK进行配置。
4、创建项目
5、创建完成后,右击项目Android Tools->Add Native Support就可以了。
自动为我们生成了JNI的目录,以及编译的Android.mk等文件。
6、好了,开始写代码。
创建NativeUtils.java
现在要生成.h的头文件,之前是在cmd里面通过javah命令来生成的,这里我们使用ant来自动为我们生成头文件。
创建build_headers.xml然后以ant editor的方式打开,使用快捷键ALT+/生成模板。
如图
打开com_xzw_firstndk_NativeUtils.h可以看到:
现在开始实现,打开FirstNDK.cpp,引入.h头文件
eclipse提示功能也是很不错的,alt+/快捷快速提示,
完成了,默认生成的是armeabi架构的so文件,如果需要生成多中架构的支持的so,需要在jni目录下创建Application.mk文件。
先前的一篇:http://xuzhiwei.blog.51cto.com/978424/976839
1、首先现在Android的SDK和NDK
2、sdk中以及集成了eclipse,打开eclipse并下载CDT插件支持,一会儿写c++使用。
CDT下载地址:http://www.eclipse.org/cdt/
3、配置NDK环境,windows->preferences->Android->NDK进行配置。
4、创建项目
5、创建完成后,右击项目Android Tools->Add Native Support就可以了。
自动为我们生成了JNI的目录,以及编译的Android.mk等文件。
6、好了,开始写代码。
创建NativeUtils.java
package com.xzw.firstndk; /** * 与c++的接口类,用来生成.h头文件 * @author xzw * */ public class NativeUtils { public static native String getWords(); }
现在要生成.h的头文件,之前是在cmd里面通过javah命令来生成的,这里我们使用ant来自动为我们生成头文件。
创建build_headers.xml然后以ant editor的方式打开,使用快捷键ALT+/生成模板。
<?xml version="1.0" encoding="UTF-8"?> <!-- ====================================================================== 2014-6-19 下午2:07:38 FirstNDK description XMYJ ====================================================================== --> <project name="FirstNDK" default="BuilderHeaders"> <description> description </description> <!-- ================================= target: BuilderHeaders ================================= --> <target name="BuilderHeaders" depends="BuildNativeHeader"/> <!-- - - - - - - - - - - - - - - - - - target: BuildNativeHeader - - - - - - - - - - - - - - - - - --> <target name="BuildNativeHeader"> <!-- destdir:输出目标目录 classpath:类路径 class:要生成的类 --> <javah destdir="./jni" classpath="bin/classes" class="com.xzw.firstndk.NativeUtils"></javah> </target> </project>右击运行ant,然后刷新jni目录就可以看到.h文件了,也把一些依赖库给我们创建好了,方便很多。
如图
打开com_xzw_firstndk_NativeUtils.h可以看到:
/* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class com_xzw_firstndk_NativeUtils */ #ifndef _Included_com_xzw_firstndk_NativeUtils #define _Included_com_xzw_firstndk_NativeUtils #ifdef __cplusplus extern "C" { #endif /* * Class: com_xzw_firstndk_NativeUtils * Method: getWords * Signature: ()Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_com_xzw_firstndk_NativeUtils_getWords (JNIEnv *, jclass); #ifdef __cplusplus } #endif #endif
现在开始实现,打开FirstNDK.cpp,引入.h头文件
eclipse提示功能也是很不错的,alt+/快捷快速提示,
#include <jni.h> #include "com_xzw_firstndk_NativeUtils.h" /* * Class: com_xzw_firstndk_NativeUtils * Method: getWords * Signature: ()Ljava/lang/String; */ JNIEXPORT jstring JNICALL Java_com_xzw_firstndk_NativeUtils_getWords (JNIEnv *env, jclass clazz){ return env->NewStringUTF("hello firt ndk"); }好了,c++部分ok了,现在来调用咯。
package com.xzw.firstndk; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends Activity { TextView resultText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); resultText = (TextView)findViewById(R.id.result); //调用c++的输出,显示出来 resultText.setText(NativeUtils.getWords()); } static{ System.loadLibrary("FirstNDK"); } }
完成了,默认生成的是armeabi架构的so文件,如果需要生成多中架构的支持的so,需要在jni目录下创建Application.mk文件。
APP_ABI :=armeabi armeabi-v7a x86添加好了,运行起来就可以在libs目录下看到这几个架构的文件夹了。搞定手工了。
相关文章推荐
- android学习——NDK入门 windows下安装cygwin 与 Eclipse使用CDT 自动编译
- Android Studio NDK 入门教程(2)--Java与C++之间的简单数据转换与传递
- [Android初级]NDK之HelloWorld简单入门
- Android—JNI调用简单实例解析/Eclipse无添加NDK的选项/JNI返回数组
- android学习——NDK入门 windows下安装cygwin 与 Eclipse使用CDT 自动编译
- 超简单方法搭建Eclipse下的Android NDK
- Android Studio NDK开发简单入门
- 用Eclipse+Cygwin+CDT+NDK来创建一个简单的Android JNI 项目
- android 使用Eclipse开发NDK的配置和简单使用
- Android JNI入门(Windows+Cygwin+Eclipse)[强烈推荐 绝对完整]
- Eclipse开发Android应用程序入门
- 推荐2个不错的Android开发入门级blog
- Android入门--写一个最简单的计算器
- Eclipse开发Android应用程序入门
- [入门九]ADT和Eclipse开发Android程序时注意点
- Android开发入门之一--在Windows上构建Android应用开发环境( SDK Anroid 2.3 + eclipse3.6.2 + ADT-10.0.0)
- Android 入门eclipse+ADT配置,bug处理及附件下载(一)
- windows下eclipse集成cygwin编译android_NDK
- 【转】Eclipse开发Android应用程序入门
- android AIDL简单入门(客户端与服务端)