全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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  # 命令  # 编译  # 命令行编译  # Linux命令行下编译Android NDK的示例代码  # Studio 编译报错:compileSdkVersion ''android-24'' requi  # Ubantu16.04进行Android 8.0源码编译的流程  # Android Studio中通过CMake使用NDK并编译自定义库和添加预编译库  # Android反编译程序整理详解  # 完美解决Android Studio集成crashlytics后无法编译的问题  # Android应用程序(APK)的编译打包过程  # 下载、编译、运行android 7.1系统详解(ubuntu 16.0.4)  # Gradle编译打包Android apk详细介绍  # Android编译的注意事项  # 目录下  # 的是  # 命令行  # 只需  # 自己的  # 几个  # 如果你  # 好了  # 你在  # 会在  # 要在  # 写了  # 我将  # 这篇文章  # 要你  # 谢谢大家  # 则可  # 将你  # 你会发现  # 将该 


相关文章: 制作公司内部网站有哪些,内网如何建网站?  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  网站制作说明怎么写,简述网页设计的流程并说明原因?  北京网站制作的公司有哪些,北京白云观官方网站?  制作网站的公司有哪些,做一个公司网站要多少钱?  css网站制作参考文献有哪些,易聊怎么注册?  建站VPS能否同时实现高效与安全翻墙?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  如何选择适合PHP云建站的开源框架?  如何快速生成凡客建站的专业级图册?  网站制作的步骤包括,正确网址格式怎么写?  制作网站怎么制作,*游戏网站怎么搭建?  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  三星网站视频制作教程下载,三星w23网页如何全屏?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  如何快速搭建高效简练网站?  制作营销网站公司,淘特是干什么用的?  网站制作的方法有哪些,如何将自己制作的网站发布到网上?  建站之星安装后界面空白如何解决?  内部网站制作流程,如何建立公司内部网站?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  免费视频制作网站,更新又快又好的免费电影网站?  建站之星安装后如何自定义网站颜色与字体?  建站三合一如何选?哪家性价比更高?  免费网站制作appp,免费制作app哪个平台好?  建站主机选哪种环境更利于SEO优化?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  如何制作算命网站,怎么注册算命网站?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  杭州银行网站设计制作流程,杭州银行怎么开通认证方式?  无锡营销型网站制作公司,无锡网选车牌流程?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  代刷网站制作软件,别人代刷火车票靠谱吗?  如何在Golang中指定模块版本_使用go.mod控制版本号  建站之星ASP如何实现CMS高效搭建与安全管理?  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  头像制作网站在线制作软件,dw网页背景图像怎么设置?  建站168自助建站系统:快速模板定制与SEO优化指南  网站制作需要会哪些技术,建立一个网站要花费多少?  如何确认建站备案号应放置的具体位置?  怀化网站制作公司,怀化新生儿上户网上办理流程?  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  如何通过服务器快速搭建网站?完整步骤解析  电脑免费海报制作网站推荐,招聘海报哪个网站多? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。