- 15
- 0
- 约5.38千字
- 约 13页
- 2021-04-03 发布于山东
- 举报
用 NDK 调用第三方动态库
现在一些 NDK 调用第三方库都是一些旧环境旧工具所完成的,我来给大家更新一下吧。
首先讲讲大概一个流程吧,这篇文章主要是写给自己的,怕忘记了,大神勿喷。
如何在 android 平台上调用别人给你的动态库呢, NDK 这工
具帮了我很大的忙。 首先我们要确定第三方动态库是 for arm
的,因为你要在手机 ( android 模拟器) 上运行, PC 机是 X86
的 手机大多数(好像有 INTEL 要加进手机了,太高端,相信大家还是用 ARM 架构的模拟器吧)是 ARM 的。自己动手做一个动态库来模拟第三方动态库,很多人这里会
用 LINUX 的 GCC 来编译(我是菜鸟我就是这样做的) ,后
面测试就悲剧了, 调用的时候直接弹出 incompatible target 不兼容目标,因为 linux 自带的 GCC 编译出来的是 X86 架构的,我们需要 ARM 架构的库,后来知道要用交叉编译,所
以下了一个 arm-linux-gcc 来编译,但是最终调用的时候会出现类似于缺失依赖库的问题,比如 ...could not load neeeded library for ...... 。最终还是用 NDK 里面的交叉编译工具才行。
好了啰嗦了这么多,现在开始动手吧。
PS:PC 机上要装有 linux (我的是 ubuntu12.0)环境,然后
windows 下 android 平台环境( JDK+SDK+NDK )要搭建好,
做 android 开发的这些肯定已经搞好了,这里我唯一想说的
就是 NDK R8 ,它已经在里面集成 linux 环境了, 所以现在可
以直接解压就可以使用,不用再装什么 cygwin 了,很方便,
本文就是用 NDK R8 来做的。这里给出安装说明链接
/view/76910ce2551810a6f52486a2.html
是 r7 的
第一步:制作第一个 linux 下的动态库(因为 android 的底层
就是 linux )来模拟第三方动态库
上面说了环境搭建好了之后,现在我们来从 NDK 中分离出
独立的工具链,这样我们在制作第三方动态库的时候就不用
写 makefile 了,首先你的 linux 环境必须装有 linux 版本的
NDK “ android-ndk-r8e-liunx-x86.zip ”, (上面说的 android 平
台的理所当然是 WINDOWS 版的 NDK
“android-ndk-r8e-windows-x86.zip ”)在 linux 命令解压压缩包得 android-ndk-r8e, 然后再 linux 终端进入 android-ndk-r8e
的根目录, $
build/tools/make-standalone-toolchain.sh --platform=
--install-dir=
按上述格式输入下面的命令
$ build/tools/make-standalone-toolchain.sh
--platform=android-14
--install-dir=/home/xx/toolchain/arm-linux-androideabi/
这条命令的意思就是将交叉编译工具完整复制出来,
android-14 是你的 API ,-dir 后面是你要复制安装到的目录,
执行完后你会发现在 /home/xxx/ 下发现你新建的 toolchain 目
录,到此我们已经从 NDK 中分离出独立的工具链了。最后
为了方便我们需要设置一下环境变量,如果不设置,每次你
都要这样写
/home/xx/toolchain/arm-linux-androideabi/bin/arm-linux-androi
deabi-gcc -c Add.c 这样相当麻烦。在 Linux 终端输入 $ sudo
-s 获取超级权限,再输 $gedit /etc/profile 在弹出的 profile 文
件里将以下内容: export
PATH=$PATH:/home/laijingquan/toolchain/arm-linux-androidea
bi/bin 加到文件的最后一行 (很多不理解最后一行什么意思,
就是讲它作为 profile 文件的最后一行,好吧,让我 2B 一下
吧,其实就是我不理解)再执行 $ source /etc/profile 让环境
变量立即生效。虽然步骤有点麻烦,但是做好后,以后开发
很方便。好,现在开始写 C 函数
很简单的函数,网上找的。
Add.c
#include
int Add(int x, int y)
{
return x+y;
}
Add.h:#ifndef _
您可能关注的文档
最近下载
- 明代宗教信仰与思想控制.docx VIP
- 江苏省南通市2024-2025学年高二上学期期末学业质量监测语文试卷(含答案).pdf VIP
- 国就有成人演出的电影了?想看就要冒生命危险.pdf VIP
- 综合素质练习题及答案.doc VIP
- 2020-2021学年北京高三化学二轮复习 反应原理型简答题(突破二卷)(word版 含答案).docx VIP
- 电力拖动控制线路安装与检修(白银矿冶职业技术学院)知到智慧树答案.docx VIP
- 煤炭巷道掘砌工(高级工)资格考试题库(全真题库).docx VIP
- 影像叙事中情感共鸣生成机制.docx VIP
- 同轴二级圆柱齿轮减速器的设计(硬齿面).doc VIP
- 基于GPU多线程多通道图像高速重构方法、设备及介质.pdf VIP
原创力文档

文档评论(0)