一个NDK工程的过程

来源:互联网 发布:电脑usb端口控制管理 编辑:程序博客网 时间:2024/05/04 02:59

ndk:就是一个跨平台的,建立c++与java的联系的一个方式

什么用到ndk?
1 代码的保护,防止反编译

2 使用到一些C/C++库时

3 ndk可以执行一些cpu运算高,图形界面

如何配置?

1 环境变量的配置:
E:\eclipse_sdk\adt-bundle-windows-x86_64-20140321\adt-bundle-windows-x86_64-20140321\android-ndk-r10e
把对应的ndk目录配置到系统的path路径下

ndk-build 用于编译生成一个obj目录的.so文件,来使用

2 eclipse里的配置

首先建立eclipse和ndk的联系
这里写图片描述

然后配置两个工具,javah和javap

一般命令行是这样运行的:
这里写图片描述

javah用于生成jni目录下的头文件
这里写图片描述
javap用于签名,签名的用处就是以后便于找到对应的方法等

eclipse中我们这样配置

Run–>External Tools–>External Tools Configuration–>program
右键添加一个
最终配置成:
这里写图片描述

这里写图片描述

NDK文件新建的过程:

1 新建Android工程,在工程目录下新建jni目录,然后使用工具generate_header_file,点击MainActivity,运行一下。其中MainActivity文件中必须有native方法,如public static native String getFromC();
,实现java里操作c++/c文件就是这种方法

2 工程代码错误显示提示,一般是不会提示,要加以配置才行

这里写图片描述
add —到你的E:\eclipse_sdk\adt-bundle-windows-x86_64-20140321\adt-bundle-windows-x86_64-20140321\android-ndk-r10e\platforms\android-19\arch-arm\usr\include添加就行。

然后工程右键点击–AndroidTools–Add native support,会发现生成一些头文件include目录等和jni目录下会有对应的.cpp文件生成。

3 jni目录需要添加Android.mk文件,在com_example_ndk_MainActivity.h(这是一开始生成的头文件,里面包含一些native方法)取出native方法到.cpp/.c使用,进行c/c++文件的操作

Andriod.mk:

#在这里添加一些依赖的库才能实现编译LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE    := ndkLOCAL_SRC_FILES := NDK.cpp#for logLOCAL_LDLIBS    += -lloginclude $(BUILD_SHARED_LIBRARY)

4 最后调用:

先用静态代码块System.loadLibrary(“libname”);

libname—->Android.mk文件下的MODULE=”name”

public class MainActivity extends Activity {    private TextView text;    public static native String getHello();    static{        System.loadLibrary("ndk");    }    @Override    protected void onCreate(Bundle savedInstanceState) {        // TODO Auto-generated method stub        super.onCreate(savedInstanceState);        setContentView(R.layout.main_activity);        text = (TextView)findViewById(R.id.hello);        text.setText(getHello());    }}

5 在命令行进入该工程目录下,运行ndk-build,然后再运行到设备上。

6 小工程:
链接:http://pan.baidu.com/s/1i4KkibV 密码:sfgv

0 0
原创粉丝点击