一个NDK工程的过程

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    := ndk
LOCAL_SRC_FILES := NDK.cpp
#for log
LOCAL_LDLIBS    += -llog

include $(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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值