当前位置: 首页 > 编程笔记 >

android开发实践之ndk编译命令简单示例

阮阳曦
2023-03-14
本文向大家介绍android开发实践之ndk编译命令简单示例,包括了android开发实践之ndk编译命令简单示例的使用技巧和注意事项,需要的朋友参考一下

前言

Android提供了NDK工具,用来编译native代码(c/c++),该工具配置好了相关的交叉编译环境和工具链,只需要你简单地编写几个.mk文件即可将你的c/c++代码编译为Android的java工程/Android手机可以识别、加载和运行的库或者应用程序。

默认情况下,使用NDK编译c/c++代码,需要将该代码放置到任一个Android应用工程的jni目录下,然后编写相应的Android.mk文件,并执行ndk-build命令完成编译。其实你也是可以在任意目录下去编译native代码的,只需要在ndk-build命令后面添加相应的命令行参数即可,这里给出一些常用的ndk-build命令行参数,方便大家灵活地使用NDK编译自己的native代码,具体的示例我将会在后续的文章中给出。

ndk-build命令行参数

1、ndk-build NDK_LOG=1

用于配置LOG级别,打印ndk编译时的详细输出信息

2、ndk-build NDK_PROJECT_PATH=.

指定NDK编译的代码路径为当前目录,如果不配置,则必须把工程代码放到Android工程的jni目录下

3、ndk-build APP_BUILD_SCRIPT=./Android.mk

指定NDK编译使用的Android.mk文件

4、ndk-build NDK_APPLICATION_MK=./Application.mk

指定NDK编译使用的application.mk文件

5、ndk-build clean

清除所有编译出来的临时文件和目标文件

6、ndk-build -B

强制重新编译已经编译完成的代码

7、ndk-build NDK_DEBUG=1

执行 debug build

8、ndk-build NDK_DEBUG=0

执行 release build

9、ndk-build NDK_OUT=./mydir

指定编译生成的文件的存放位置

10、ndk-build -C /opt/myTest/

到指定目录编译native代码

例:

编写 .c 文件

假设你在 ~/math 目录下编写了一个 math.c 文件,内容如下:

#include <stdio.h>
int add( int a , int b ) {
return a+b;
}

编写 Android.mk 文件,内容如下:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := dmath
LOCAL_SRC_FILES := math.c
include $(BUILD_SHARED_LIBRARY)

在 ~/math 目录下,执行 ndk-build 命令,参数如下:

$ ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk

或:

ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk NDK_APPLICATION_MK=./Application.mk

NDK_PROJECT_PATH 指定了需要编译的代码的工程目录,这里给出的是当前目录,APP_BUILD_SCRIPT给出的是Android makefile文件的路径,当然,如果你还有 Application.mk 文件的话,则可以添加NDK_APP_APPLICATION_MK=./Application.mk

执行完ndk-build命令后,你会发现当前目录下,生成了 obj 和 libs 文件夹,这样,你的libdmath.so动态库就已经制作完成了,在 libs/armeabi 目录下。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对小牛知识库的支持。

 类似资料:
  • 本文向大家介绍Android NDK开发的环境搭建与简单示例,包括了Android NDK开发的环境搭建与简单示例的使用技巧和注意事项,需要的朋友参考一下 一、NDK与JNI简介 NDK全称为native development kit本地语言(C&C++)开发包。而对应的是经常接触的Android-SDK,(software development kit)软件开发包(只支持java语言开发)。

  • 本文向大家介绍Android NDK 开发教程,包括了Android NDK 开发教程的使用技巧和注意事项,需要的朋友参考一下 Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit,因此又被Google称为“NDK”。 众所周知,Android程序运行在Dalvik虚拟机中,NDK允许用户使用类似C / C++之类的原生代码语言执行部分程序。

  • 本文向大家介绍Android NDK开发入门,包括了Android NDK开发入门的使用技巧和注意事项,需要的朋友参考一下 神秘的Android NDK开发往往众多程序员感到兴奋,但又不知它为何物,由于近期开发应用时,为了是开发的.apk文件不被他人解读(反编译),查阅了很多资料,其中有提到使用NDK开发,怀着好奇的心理,通过在线视频教育网站,我初步了解了NDK的神秘面纱,好东西自然要分享,接下来

  • 实例一、使用HTTP协议对外提供Web服务 创建http_test.php文件(位置任意,能引用到Workerman/Autoloader.php即可,下同) <?php use WorkermanWorker; require_once __DIR__ . '/Workerman/Autoloader.php'; // 创建一个Worker监听2345端口,使用http协议通讯 $http_w

  • 开发实践 系统设计 NOTE:综合运用实习案例,本章使用案例为网易云音乐, 并且主要关注前端工程师的工作职责,其他工程师的职责规范并不包含。 交互流程说明 通过交互文案来了解用户行为与异常提示。 系统分解 例如下面的独立的子系统: 注册登录密码 系统主框架 顶栏 搜索 账号 消息 设置 边栏 歌单操作 其他 底栏 播放器 播放列表 歌曲详情 内容区 系统分解必须对照交互稿做到百分之百的对应,不能漏