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就出来了。
- 大小: 35.8 KB
- 大小: 43 KB
- 大小: 20.4 KB
- 大小: 35.7 KB
- 大小: 8.8 KB
- 大小: 59.7 KB
分享到:
相关推荐
Cygwin+NDK配置最新最全,Cygwin配置,NDK配置
使用NDK开发C/C++程序,无需安装Cygwin
使用NDK,在Android开发总调用c++等语言 使用cygwin模拟unix环境以生成so文件
Android NDK 交叉编译工具 Android NDK 交叉编译工具
cygwin ,仅含android ndk所需要的功能,autoconf2.1、automake1.10、binutils、gcc-core、gcc- g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make共12个包。 安装了直接可以用
一个使用cygwin做ndk的文档,可供初学者参考参考。。
cygwin安装程序+ndk环境搭建以及opengl在ndk环境中的使用说明
windows下eclipse集成cygwin编译android_NDK.doc
android NDK 安装必备 Cygwin
Android+NDK+CYGWIN开发文档
本文档可以协助各位TX在widows环境下通过cygwin+ndk两个工具对C、C++程序进行交叉编译并生成.so文件,其中还包含有cygwin的安装程序。从而实现在java程序中通过jni调用C、C++程序进行程序开发。本来打算将ndk版本...
cygwin可以模拟Linux环境,在android开发是进行开发NDK时候,是不可缺少的工具之一。在cygwin中执行ndk编译命令,可以讲.c文件转换成.so文件,通过jni技术调用。
ndk环境变量配置的cygwin开发工具,用于windows下的的命令控制,NDK开发必不可少的工具
它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的...
android NDK CDT cygwin开发环境搭建与配置
android ndk 开发环境配置,不需要cygwin,可直接生成.h文件,直接编译库
NULL 博文链接:https://phenom.iteye.com/blog/1395670
android NDk cygwin make安装包
ndk-r8 编译环境(不需要cygwin等)