NDK/JNI学习--导入hello-jni工程

上一篇文章,简单搭建了NDK开发的环境,此文通过导入C:\android-ndk-r9d\samples\hello-jni(NDK自带example)来疏通真个环境。

  1. 打开Eclipse IDE,指定NDK的位置

选择的NDK位置仅对当前的Eclipse workspace有效哦。如果更改workspace,需要重新指定NDK的位置

2. 像导入普通Android工程一样导入hello-jni

  • 此时会出现如下图错误,这个错误是Android导入工程大部分都会出现类似的(原因是开发时API Level小 ),可以不管它。

  • 这个时候如果编译运行,会报错,没有.so这个文件。

3. 添加原生C文件支持

直接上图吧,不用文字说明了

点击Finish按钮即可完成对C原生的支持。

4.接下来直接编译运行即可成功导入hello-jni工程。

接下来,我们看下控制台的打印信息:

此时,你可能会感觉IDE真牛逼,这也没有NDK,ANT,Cygwin什么事,那我们之前还安装它干什么呢。其实是Eclipse简化了整个构建过程和部署过程,但是并不是所有Android NDK 项目都是Eclipse 来搞定的啊。我感觉距离入门NDK还差点远哦。接下来我们共同继续努力学习吧,苦逼的程序猿们。

命令行构建项目

1. 删除上面Eclipse构建工程生成的libs,obj这两个文件夹,重新用命令行的形式构建项目

2.构建原生的组件(ndk build c库),详细如下图

已经生成我们在Eclipse中看到的编译成功之后的libs,obj目录了,这个可以说命令行构建已经成功大部分咯。

3.构建Android应用程序,其实就是打包apk的过程

这是我们需要用到ANT,用ant的原因是android sdk是基于ant的。在第一次构建项目时,要首先生成ANT的构建文件。如下图

接下来呢,我们执行ant debug命令构建apk文件:hello-jni-debug.apk

话说,有ant debug,那会不会有ant release呢,看下图就知道ant release是可以的哦。

我们在构建Apache ANT文档时曾说,他是第一次需要构建,来验证下哦。把hello-jni.c的文件输出改为“Hello from Apache ANT !”,然后直接运行ndk-build,然后ant debug看看

事实验证OK

这个流程我们算是走通了,接下来我们新建个项目,其实主要是为了Android.mk Application.mk等makefile文件哦。

NDK/JNI学习--导入hello-jni工程,布布扣,bubuko.com

时间: 2024-10-13 03:42:34

NDK/JNI学习--导入hello-jni工程的相关文章

Android NDK开发学习教程(一)JNI语法

一.对照表 Java类型    本地类型         描述 boolean    jboolean       C/C++8位整型 byte       jbyte          C/C++带符号的8位整型 char       jchar          C/C++无符号的16位整型 short      jshort         C/C++带符号的16位整型 int        jint           C/C++带符号的32位整型 long       jlong  

Android JNI 学习(一):JNI 简介

JNI 即 Java Native Interface 是 native 编程接口,它允许在Java虚拟机(VM)内运行Java代码与其他编程语言(主要是C和C++)编写的应用程序和库进行交互操作. JNI最重要的好处是它对底层Java VM的实现没有任何限制.因此,Java VM供应商可以添加对JNI的支持,而不会影响VM的其他部分.程序员可以编写一个native应用程序或库的版本,并期望它可以与支持JNI的所有Java VM一起使用. 本文主要将从以下几点讲述JNI相关的内容,用于我们了解J

Android JNI 学习(三):JNI 数据类型和数据结构

本文我们来讨论一下JNI如何将Java类型映射到本机C类型. 一.基本数据类型 如下图表整理了Java基本类型和native对应的关系: Java类型 Native类型 描述 boolean jboolean unsigned 8 bits byte jbyte signed 8 bits char jchar unsigned 16 bits short jshort signed 16 bits int jint signed 32 bits long jlong signed 64 bit

Android JNI 学习(六):JNI 接口整理 — Object Operations Api

一.AllocObject jobjectAllocObject(JNIEnv *env, jclass clazz); 分配新 Java 对象而不调用该对象的任何构造函数.返回该对象的引用. clazz 参数务必不要引用数组类. 参数: env:JNI 接口指针. clazz:Java 类对象. 返回值: 返回 Java 对象.如果无法构造该对象,则返回NULL. 抛出: InstantiationException:如果该类为一个接口或抽象类. OutOfMemoryError:如果系统内存

Android JNI 学习(八):JNI 接口整理 — Calling Instance Methods Api

一.GetMethodID jmethodIDGetMethodID(JNIEnv *env, jclass clazz, const char *name, const char *sig); 返回类或接口实例(非静态)方法的方法 ID.方法可在某个 clazz 的超类中定义,也可从 clazz继承.该方法由其名称和签名决定. GetMethodID() 可使未初始化的类初始化. 要获得构造函数的方法 ID,应将 <init> 作为方法名,同时将 void (V) 作为返回类型. 参数: e

基于 Android NDK 的学习之旅-----序言

http://www.cnblogs.com/luxiaofeng54/tag/android/default.html?page=1 基于 Android NDK 的学习之旅-----目录 duicky 2011-09-15 16:34 阅读:3035 评论:2 基于 Android NDK 的学习之旅-----资源释放 duicky 2011-08-21 14:29 阅读:6173 评论:0 基于 Android NDK 的学习之旅-----数据传输二(引用数据类型)(附源码) duicky

NDK/JNI学习--环境搭建

基于Windows来开发Android的NDK,JNI需要的环境搭建,所需要的软件如下: Android 开发环境的基本配置(SDk,ADT,Eclipse IDE,JDK) 这些都是基本的环境搭建就不细说了,参考网上文章就OK了. Apache ANT构建系统 主要是用来构建NDK编译系统的,下载地址:apache-ant-1.9.4-bin.zip,下载后解压到C:\apache-ant-1.9.4,然后配置ANT的环境变量即可. 验证安装成功: GUN make 构建系统(常用Cygwin

JNI学习心得(1)

最近由于公司需求,开发Android项目,之前没接触过,了解甚少. Android驱动层的开发流程(个人理解):(自上而下)Android APP =>JNI => HAL => Linux devices Read/Write 据我了解,大致流程就是这样,如有不对,欢迎大礼拍砖. 由于驱动层一般由C/C++开发.需要与JAVA交互需要通过JNI. JNI负责JAVA与其他语言(C/C++)进行交互.类似于windows平台下,不同语言之间用.dll封装,进行交互. JNI最终会生成 .

【转】Android 学习笔记——利用JNI技术在Android中调用、调试C++代码

原文网址:http://cherishlc.iteye.com/blog/1756762 在Android中调用C++其实就是在Java中调用C++代码,只是在windows下编译生成DLL,在Android中会生成Linux系统下的.so文件(好吧,其实我基本没用过Linux). 没写过JNI的可以看看我之前的博客(Windows下利用Visual Studio开发的过程):http://cherishlc.iteye.com/admin/blogs/1328136 以及自动生成工具swig的