设为首页 加入收藏

TOP

Android+NDK 入门备忘 Ubuntu 11.10
2014-11-24 11:30:43 来源: 作者: 【 】 浏览:0
Tags:Android NDK 入门 备忘 Ubuntu 11.10

Android NDK的开发,需要Linux的编译环境,所以建议直接装个Linux系统,在上面进行Android开发,当然也可以使用虚拟机来代替,不过个人觉得虚拟机始终不伦不类,还是真正的Linux环境比较顺手。


使用NDK时的大致步骤如下:


1. 新建一个Android 工程,在里面新建一个jni 文件夹,专门用来存放 C 语言程序和Android.mk 文件;


2. 在java文件中编写一个 native 函数:




这里是一个简单的Activity界面,里面定义了一个 getString()方法,用来获取一个字符串。

3. 打开终端,使用 javah -classpath 命令编译 bin/classes 下生成的 .class文件。我的命令如下:




也可以在src的 .java 源代码中使用同样的命令:





记得在前面要加上包名(我的是在tangyuchun.ndk.hellojni 这个包下面)。


tangyuchun_ndk_hellojni_HellojniActivity.h,打开这个头文件,内容如下:




5. 看到里面有一个函数: JNIEXPORT jstring JNICALL Java_tangyuchun_ndk_hellojni_HellojniActivity_getString(JNIEnv *, jclass);


这个方法就与第2步的getString()对应。


6. 在jni 文件夹中新建一个 c语言文件,我的是 hello-jni.c ,include相应的头文件,然后将第4步中的那个方法复制,完成该方法:




注意,要给方法添加参数,头文件中只是声明,并没有实参。

7. 同样,在 jni 文件夹下面新建一个 Android.mk 文件,内容如下:




那个LOCAL_MODULE 就是将要生成的.so 文件名,LOCAL_SRC_FILES就是第6步中编写的 .c 文件。


8. 保存上述文件,打开终端,定位到工程的目录下的jni 文件夹,在终端输入: ndk-build 命令,回车。


9. 返回到工程文件夹下,就会看到生成了两个文件夹 libs 和 obj,其中 libs/armeabi/ 文件夹下面就有 一个libhello-jni.so文件,这


个.so文件其实就是用来在android中调用C语言的类库;


10. 在Android虚拟机上运行上面建立的工程,如下所示:



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C#中实现倒计时功能 下一篇Android NDK :编写清晰的代码结构

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·微服务 Spring Boot (2025-12-26 18:20:10)
·如何调整 Redis 内存 (2025-12-26 18:20:07)
·MySQL 数据类型:从 (2025-12-26 18:20:03)
·Linux Shell脚本教程 (2025-12-26 17:51:10)
·Qt教程,Qt5编程入门 (2025-12-26 17:51:07)