最简单的ndk示例程序及编译过程

原创 2012年03月27日 10:58:19

1.建立一个android 的项目, NDK 不支持 1.5 以下的版本

项目中包含 两个文件:JNI.java, JniTest.java

2.编译工程 。这步非常重要,先编译工程才能执行第三步。

3.生成JNI 头文件

下面生成JNI 头文件啦,使用 javah 命令,对 JNI. java 这个文件生成!

使用cmd 进入 android 项目的 bin 目录中,执行【javah  -classpath  .  -jni  cc.androidos.jni_JNI】这个命令。别忘记包名!

生成了一个cc_androidos_jni_JNI.h,里面都是c 语言的头文件声明,以及相应的native函数原型。

解析:之所以进入bin目录下,是因为 bin下面是编译后生成的.class字节文件。没错,javah工具就是根据编译生成的.class字节文件来生成相应的c/c++语言.h头文件.

4.新建一个.c文件,名称与 第3步生成的.h文件一样。在该文件中把.h文件中声明的函数实现出来,并且include那个.h文件。

5.编译生成.so文件

在NDK 的 apps 目录下面创建一个 myjni 文件夹,在 myjni 文件夹中创建一个 Application.mk 文件,文件的内容为:


该文件也可以从ndk根目录的其他例子程序中拷贝过来,然后做相应的修改即可。

编译以后会成生/myjni/libs/myjni.so库文件,这就是我们想要的结果。

 

6. 加入到Android 项目中进行运行

将apps\myjni\libs 整个文件夹 copy 到 android 项目根目录下。


7.运行项目。

ANDROID NDK实践开发系列--(01) 使用ndk编译c可执行程序

本文我们研究一下怎么使用ndk开编译c语言编写的可执行程序。 原创作品转载请注明出处哦http://blog.csdn.net/superfang119/article/details/852413...
  • superfang119
  • superfang119
  • 2013年01月21日 13:19
  • 6624

android JNI运行NDK编译成的可执行文件

1.android环境的可执行文件的生成 所谓的android下的可执行文件,其实就是一般的c/c++代码使用NDK编译出来的应用程序。它和linux下用gcc编译出来的程序和windows系统下...
  • csdn49532
  • csdn49532
  • 2016年02月19日 16:31
  • 1972

NDK编译基础示例

本篇博文参考了非虫大大的Android软件安全与逆向分析,这真的是一本好书,里面涵盖的内容比较全也比较基础。下面开始我们的学习。 Android为了提高效率、安全性等,提供了NDK(原生开发套件),现...
  • u012195899
  • u012195899
  • 2016年09月30日 12:15
  • 1247

android ndk c++编译简单教程

1.下载ndk编译环境 去google的NDK主页上下载一个合适自己系统的版本: http://developer.android.com/tools/sdk/ndk/index.html 我这...
  • wenrenwang
  • wenrenwang
  • 2013年08月15日 11:32
  • 6207

NDK编译C可执行程序

现有这样一个helloworld.c的源文件,如下: #include int main(){ printf("Hello world!\n"); } 如何将它进行编译,并在Android上执行...
  • john_1984
  • john_1984
  • 2013年10月11日 18:58
  • 5562

Android逆向基础笔记—Android NDK开发3之使用ndk-build工具手动编译

做这个之前,必须把android.bat的环境配置进去 然后我们使用android list看看Android SDK种所有的SDK版本 我在这里选择了An...
  • qq_24349189
  • qq_24349189
  • 2016年11月02日 22:13
  • 771

【ndk】直接使用ndk提供的arm-linux-androideabi-gcc编译android可执行程序

1、背景 经常使用linux交叉工具类的朋友都知道,在已安装交叉编译工具链后要交叉编译得到linux可执行文件只需要运行如下类似的命令(如编译hello.c生成hello可执行文件): arm-li...
  • yxtouch
  • yxtouch
  • 2017年06月24日 15:58
  • 1590

JNI/NDK开发指南(一)—— JNI开发流程及HelloWorld

转载请注明出处:http://blog.csdn.net/xyang81/article/details/41777471        JNI全称是Java Native Interface(Jav...
  • xyang81
  • xyang81
  • 2014年12月07日 14:54
  • 16064

Oracle存储过程简单使用及示例代码

简单的说存储过程是为了完成某个数据库中的特定功能而编写的语句集,该语句集包括SQL语句(对数据的增删改查)、条件语句和循环语句等。...
  • AikesLs
  • AikesLs
  • 2018年01月06日 17:33
  • 70

Windows下编译使用Android NDK,调用SO文件

一、首先下载android-ndk,官方网站是:http://developer.android.com/tools/sdk/ndk/index.html 目前最新的版本是android-ndk-r...
  • asmcvc
  • asmcvc
  • 2013年07月12日 14:54
  • 20871
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:最简单的ndk示例程序及编译过程
举报原因:
原因补充:

(最多只允许输入30个字)