1、安装

下载NDK包后,放到与SDK同级的目录下,并且配置好环境变量,配好后,在终端输入ndk-build命令测试,出现如下情况,则代表安装成功

2、工程与代码

a、新建android工程,编写java代码,写好需要的本地方法,以及加载的c文件名字

b、根据写好的java代码,生成.h的c文件,其中生成.h文件的步骤如下:

1、进入该项目的目录下

braincol@ubuntu:~$ cd workspace/android/NDK/hello-jni/

2、ls查看工程文件

braincol@ubuntu:~/workspace/android/NDK/hello-jni$ ls
AndroidManifest.xml assets bin default.properties gen res src

3、在工程目录下建立一个jni文件夹:

braincol@ubuntu:~/workspace/android/NDK/hello-jni$ mkdir jni
braincol@ubuntu:~/workspace/android/NDK/hello-jni$ ls
AndroidManifest.xml assets bin default.properties gen jni res src

4、执行如下语句就可以生成相应的.h文件了:

braincol@ubuntu:~/workspace/android/NDK/hello-jni$ javah -classpath bin -d jni com.example.hellojni.HelloJni

c、根据b中生成好的.h文件来编写相应的.c文件,根据自己的需要实现.h文件中的方法

d、编写Android.mk文件,其格式为如下:

e、生成.so共享库文件,在终端进入到该项目的目录下,输入ndk-build命令,即可在lib目录下生成.so文件,运行该项目,即可。

3、调试语句输出

在 NDK 中, printf() 没法输出,所以我们需要借助 log 库来将我们 c 代码库中需要输出的内容,通过 java 控制台输出。调用函数 __android_log_print(), 就可以在 Eclipse 中,查看 LogCat 来查看相关的输出信息了。

于是在c文件的编写中,需要引入android/log.h文件:

#include <android/log.h>

同时声明打印方法:

#define __android_log_print(......);例如:

因为打印是链接的log库,所以在Android.mk文件中加上如下一句:

LOCAL_LDLIBS += -llog

重新ndk-build,运行项目,可以在logcat中发现我们在c文件中加的打印语句。

参考:

http://www.cnblogs.com/hibraincol/archive/2011/05/30/2063847.html

http://blog.csdn.net/xuxinyl/article/details/6409030

更多相关文章

  1. Android(安卓)中文API (92) ―― MenuInflater
  2. android studio 自定义路径安装报错"You are attempting to inst
  3. 一招解决国内android studio gradle缓慢的问题
  4. Andfix使用说明
  5. Android多国语言的value文件夹命名方式
  6. Android(安卓)4.4创建The Master/Detail Flow应用程序 翻译
  7. 如何快速定位SElinux问题并修复?
  8. Android(安卓)打包签名 从生成keystore到完成签名
  9. linux下android模块开发部署

随机推荐

  1. 开源分布式跟踪方案概览
  2. 百万年薪挖了个P8程序员,难道是“水货”?
  3. 想要改变世界的 Rust 语言
  4. “Python太慢了、Golang糟透了、MongoDB
  5. 周末分享 | 努力只是成功的一小部分
  6. Shopify 是如何迁移到模块化单体架构的?
  7. 为什么你喜欢漂亮的'伙伴',Grammer教授如
  8. 深入浅出谈 Capital One 数据泄露事件
  9. Python_学习之文件读写
  10. Python_学习之面向对象