android之JNI开发环境搭建

研究了很久怎么编译.so动态库,感觉在linux的安卓源码下编译太麻烦了,所以就找网上找找有没有方便的办法。

现在终于实现了,现在一起总结下。

1.在windows环境下开发jni需要c/c++编译器的支持,使用GNUStep,下载地址http://www.gnustep.org/windows/installer.html

2.下载安装后,验证是否成功。打开GNUstep->Shell,输入make -v 和 gcc -v命令,如图所示。

3.下载NDK,地址http://developer.android.com/tools/sdk/ndk/index.html。下载完后解压即可。

配置ndk环境变量,gnustep是模拟linux的环境的,打开gnustep的安装目录下的G:\softinstall\GNUstep\GNUstep\GNUstep.conf文件,添加以下内容:

复制内容到剪贴板

代码:

NDK=/g/softinstall/Android/android-ndk-r8b

export=NDK

说明如果不知道ndk目录在linux下应该是在哪里,你可以打开gnustep的命令窗口,输入mount,就可以找到对应的盘符。

验证环境变量,如下图。

以上就配置成功了。

4.

打开eclipse,新建工程名为testJni。在activity中添加以下代码

复制内容到剪贴板

代码:

package com.xzw.jni;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.view.MenuItem;

import android.widget.TextView;

import android.support.v4.app.NavUtils;

/**

*

@author XuZhiwei ([email protected])

* sina:http://weibo.com/xzw1989

*

* Create at 2012-8-30 上午10:49:45

*/

public class TestJni extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

}

//natvie必须声明,用于生成C/C++代码

public native String hello();

static{

System.loadLibrary("testJni");

}

}

编译后的文件在bin目录下,通过javah命令生成c/c++的文件头。如下图

会在项目目录下生成jni/com_xzw_jni_TestJni.h。

头文件代码如下:

复制内容到剪贴板

代码:

/* DO NOT EDIT THIS FILE - it is machine generated */

#include <jni.h>

/* Header for class com_xzw_jni_TestJni */

#ifndef _Included_com_xzw_jni_TestJni

#define _Included_com_xzw_jni_TestJni

#ifdef __cplusplus

extern "C" {

#endif

/*

* Class:     com_xzw_jni_TestJni

* Method:    hello

* Signature: ()Ljava/lang/String;

*/

JNIEXPORT jstring JNICALL Java_com_xzw_jni_TestJni_hello

(JNIEnv *, jobject);

#ifdef __cplusplus

}

#endif

#endif

这里我们可以根据头文件编写c代码

复制内容到剪贴板

代码:

#include <string.h>

#include <jni.h>

jstring

Java_com_xzw_jni_TestJni_hello

(JNIEnv* env, jobject thiz){

return (*env)->NewStringUTF(env, "哈哈完成自动化编译 !");

}

接下来编写 Android.mk,该文件可以直接从NDK的samples下的hello-jni的jni文件下直接靠过来改改就可以了。也贴下代码哈。

复制内容到剪贴板

代码:

# Copyright (C) 2009 The Android Open Source Project

#

# Licensed under the Apache License, Version 2.0 (the "License");

# you may not use this file except in compliance with the License.

# You may obtain a copy of the License at

#

#      http://www.apache.org/licenses/LICENSE-2.0

#

# Unless required by applicable law or agreed to in writing, software

# distributed under the License is distributed on an "AS IS" BASIS,

# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

# See the License for the specific language governing permissions and

# limitations under the License.

#

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := testJni

LOCAL_SRC_FILES := testJni.c

include $(BUILD_SHARED_LIBRARY)

其中你只需要该LOCAL_MODULE和LOCAL_SRC_FILES就可以了。

说明:LOCAL_MODULE是描述模块的,用来给java调用的模块名,会生成对应的libtestJni.so

LOCAL_SRC_FILES就是源文件啦,多个文件空格隔开即可。

接下来,我们要开始编译生成so文件咯。

打开gnustep的命令窗口,进入到项目底下,输入$NDK/ndk-build命令,即可自动生成libs/armeabi/libtestJni.so文件。

接下来就是java调用了。直接上代码

复制内容到剪贴板

代码:

package com.xzw.jni;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.view.MenuItem;

import android.widget.TextView;

import android.support.v4.app.NavUtils;

/**

*

@author XuZhiwei ([email protected])

* sina:http://weibo.com/xzw1989

*

* Create at 2012-8-30 上午10:49:45

*/

public class TestJni extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

TextView tv = new TextView(this);

tv.setText(hello()); //这里的hello() 就是调用c

setContentView(tv);

}

public native String hello();

static{

System.loadLibrary("testJni");

}

}

以上就是jni的开发步骤了。

5.jni自动编译设置

在我们开发过程中,改一个c/c++的文件,我们都要手动去编译一下有点儿麻烦。这里我们可以使用让eclipse帮助我们自己编译。

右击jni工程的properties-->Builders-->NEW -->;Program
可以看到以下内容:

argument:--login -c "cd /e/myWorkSpace/android/hellJni && $NDK/ndk-build"

切换到Refresh 标签页

切换到Build Options标签页

这样就完成了配置,点击确定可看到控制台自动编译程序了

时间: 2024-10-11 21:08:56

android之JNI开发环境搭建的相关文章

基于QT 5.7.0 for Android 的 Windows 开发环境搭建

基于QT 5.7.0 for Android 的 Windows 开发环境搭建 本文属于转载原文地址https://my.oschina.net/armsky/blog/740645 一.下载软件1.jdk:jdk-8u102-windows-i586.exehttp://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlhttp://download.oracle.com/otn-pub/ja

android下NDK开发环境搭建及TestJNI入门实例完整过程

1.先搭建好基本的ndk的开发环境 在windows下安装下面两个软件 1. Android NDK 安装 2. 安装Cygwin与使用NDK编译 本文建立在已经完成Android开发环境搭建的基础上.其基础环境至少需要包含以下内容: 1. JDK 2. Eclipse 3. Android SDK and ADT 一.Android NDK 安装与配置 下载Android NDK.下载地址:http://developer.android.com/tools/sdk/ndk/index.htm

Android Wear Eclipse开发环境搭建

本文介绍如何在Eclipse中搭建Android Wear的开发环境. 切记,这一切并非你想的那么简单 下面详细说明操作步骤,保证你可以正常工作. 打开你的"Android SDK Manager"升级需要的SDK,将SDK Tools升级到23.02以及Android 4.4W下的所有项,主要一定要升级Extra下的"Google Repository",建议你把所有能升级的全部升级. 升级完SDK后,我们创建一个Android Wear的模拟器,参考的参数配置如

[Android NDK/JNI-1A]-开发环境搭建

NDK简介 NDK能干什么:NDK使得在android中,java可以调用C 函数库. 1.Android平台从诞生起,就已经支持C.C++开发.众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言.但这并不等同于“第三方应用只能使用Java”. 2.在Android SDK首次发布时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以通过JNI调用自己的C动态库,即在Android平台上,

老邓的andorid学习笔记-Android 4.0 开发环境搭建

目前android版本早已经四4.xx了,5.0的版本也快出来了.  关于基本环境搭建有好多的文章都介绍过. 我在这里简单的整理了一下,就不用自己专门写此类的文章了. Android SDK 4.0.3 开发环境配置及运行     http://bk-lin.iteye.com/blog/1477808 android 4.0 for windows 7 开发环境搭建   http://cash.iteye.com/blog/1463253 Windows搭建Eclipse+JDK+SDK的An

Android Jni开发环境搭建

分几个步骤: 1. 安装cygwin 2. 配置NDK环境变量 3. 用NDK来编译程序            <---  到这里若生成了 *.so 文件,那么 NDK 开发环境就配好了 4. 1. 安装cygwin 下载包 cygwin2.738.zip   http://dl8.cr173.com/soft1/cygwin2.738.zip 注意安装 cygwin2.738 时候,注意的点,参考: http://blog.csdn.net/zhangrongde/article/detail

Ubuntu 12.04 32位 eclipse android SDK NDK开发环境搭建

文章写作时间: 2017/04/05 一.软件包如下: 1.jdk 1.8(JAVA 开发及运行坏境) 2.eclipse(IDE工具) 3.ADT23.0(eclipse 开发安卓插件) 4.SDK24 (Android 开发环境) 5.NDK R10 (NDK开发环境) 下载链接 http://pan.baidu.com/s/1nvjYfnr 二.安装步骤 1.JDK安装 a.在/home/"用户名" 下新建文件夹"Java_JDK"(mkdir /home/&

Android 学习之开发环境搭建(2015/1/28)

作者:thoughtInShare 出处:http://www.cnblogs.com/thoughtInShare 欢迎转载,也请保留这段声明.谢谢! 1.Android 开发环境的需要如下三个工具: (1) JRE(Java Runtime Environment) (2)ADT(Android Develop Tool) 此工具包含了 Eclipse 及 Android SDK(Android Software Development Kit) (3)NDK(Native Developm

Android React Native 开发环境搭建---windows下

环境搭建 环境搭建可以参考RN官网,也可以参考中文版本:http://reactnative.cn/docs/0.45/getting-started.html 如果你希望可以看到原版的安装流程,可以看官方的地址,本文只是我个人的实践,并且仅限于window平台. 官方的地址:https://facebook.github.io/react-native/docs/getting-started.html 1.下载Chocolatey 去官网下载,一般没有问题. 2.Node,python2,j