项目名:HelloFromC
一、在开始jni编程之前对我们使用的环境进行如下配置:(在windows环境下)
1、下载android-ndk-r7b,解压放在C:\android-ndk-r7b目录下。(方便输入命令,也可以自定目录)
2、下载cygwin。
3、配置NDK的
为了方便直接在命令行里面使用ndk-build
需要给cygwin的环境变量里面添加ndk的目录
目录/etc/profile/
4、运行cygwin。(可输入如下命令:make
输入make
显示出来
二、为eclipse增加c和c++的开发插件 CDT插件
Help中的install
选择
等待展开,选择Programing
选择c/c++
一路next下去。
同意licenses
安装成功会提示是不是确认重启eclipse,重启就完成安装。
三、JNI简单案例:
Java代码调用一个C方法打印HelloFromC
MainActivity:
package com.csdn.hello;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity {
}
main.xml:
<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
</LinearLayout>
cmd 进入eclipse中安卓工程HelloFromC的目录:
D:\WorkSpace\HelloFromC\bin\classes
输入: javah com.csdn.hello,MainActivity
生成该文件对应的头文件:com_csdn_hello_MainActivity.h
在HelloFromC根目录下建立名为jni的文件夹;
将其复制到该目录下;
com_csdn_hello_MainActivity.h:
#include <jni.h>
#ifndef _Included_com_itheima_hello2_MainActivity
#define _Included_com_itheima_hello2_MainActivity
#ifdef __cplusplus
extern “C” {
#endif
JNIEXPORT jstring JNICALL Java_com_csdn_hello_MainActivity_helloFromC
#ifdef __cplusplus
}
#endif
#endif
jni目录下加入Android.mk文件:
并编写Hello.c文件:
#include “com_csdn_hello_MainActivity.h”
JNIEXPORT jstring JNICALL Java_com_csdn_hello_MainActivity_helloFromC
打开cygwin
输入 cd..
cd ..
切换到linux根目录下
然后进入到应用程序目录
cd cydrive/d/WorkSpace/HelloFromc
ndk-build 进行编译,生成动态库:
在D:\WorkSpace\HelloFromC2\obj\local\armeabi下会自动生成
libHello.so文件
最后在如上的MainActivity中的static代码块中加载动态库,即Android.mk中LOCAL_MODULE
然后部署应用程序,点击按钮即可利用土司打印出结果 HelloFromC
本文来自新浪博客