C源码封装Android版函数库

工具介绍

需要Android NDK工具包,下载地址为:

https://developer.android.google.cn/ndk/downloads/index.html

下载后解压后即可使用。

(警告: 解压的路径不能带空格,最好都是英文路径)

添加ndk-build 指令的路径到path全局变量中

测试安装成功,使用CMD窗口执行ndk-build,如下图结果说明安装配置成功

程序编写

test.h文件内容如下:

test.cpp文件内容如下:

编译配置脚本

Android NDK需要编写两个脚本:Android.mk 和  Application.mk。

Application.mk的内容如下:

(注意:此文件尽量不要改动)

Android.mk 文件内容如下:

此文件中的LOCAL开头的变量都是AndroidNDK编译时会自动使用的,每个变量的意义参见变量的命名。LOCAL_MODULE 是生成的函数库名称。

编译出函数库

在CMD中执行编译指令结果如下:

生成的所有的不同Android平台的函数库路径为:

测试编译出的函数库正确性:

将libtest.so 上传到linux系统下,执行指令如下图,表明函数库正常。

Unity3D调用函数库

Unity3D对于动态链接库的存放位置有规则说明,将网址:

https://docs.unity3d.com/Manual/PluginInspector.html

将libs目录复制到 Assets/Plugins/Android目录下。如果没有目录,手动创建出来。

(注意:层次关系一定要如上图所示。我之前没有创建或复制libs目录,导致在Android系统上执行一直报错:system.dllnotfoundexception: test)

如果配置成功,选中函数库文件时,会相应的展示inspector的CPU等平台配置信息。

函数库调用测试代码如下:

Unity3d调用Android版so库相关推荐

  1. unity3d调用android方法,Unity3D 调用Android原生方法2

    原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅Unity3D引擎技术交流QQ群:[119706192]本文链接地址:Unity3D 调用Android原生方法2 记一次Unity通过An ...

  2. android 引用非 android 工程,Unity3D调用android方法(非插件方式)

    关于Unity3D工程与android工程的转换与合并,请参考我的另外一篇博客,如果你对Unity3D工程加入到android工程的过程不熟悉,也请先看完下面这篇博客: android与Unity3D ...

  3. Unity3D调用android方法(非插件方式)

    关于Unity3Dproject与androidproject的转换与合并,请參考我的另外一篇博客.假设你对Unity3Dproject增加到androidproject的过程不熟悉.也请先看完以下这 ...

  4. unity无法调用android,Unity3D调用android方法(非插件方式)

    关于Unity3D工程与android工程的转换与合并,请参考我的另外一篇博客,如果你对Unity3D工程加入到android工程的过程不熟悉,也请先看完下面这篇博客: 下面,我们来说说本博客的终端, ...

  5. [原] Unity调用android版新浪微博

    本文提供unity调用微博android版 SDK 分享图片,现有sdk支持路径调用分享图片 雨凇MOMO已实现; 本文教会大家如何通过byte流分享图片(官方API pic true binary ...

  6. Unity3D调用Android提供的接口

    需求:Android提供相关的接口,android只提供接口,没有相关的界面,android接口打包以jar包的形式供Unity3D调用 1.编写相关的android接口 在studio中新建工程,并 ...

  7. Unity3d android 通信之 unity3d读取android SD卡文件

    此篇博文解决的问题是: 1.unity3d如何访问android SD卡的文件 2.如果把android端代码以jar包形式由unity3d调用 闲话不多说,现在咱们进入正题. 一.unity3d如何 ...

  8. 使用libhybris库linux调用android库

    Android 是基于 Linux 的 OS,所以想要在 ARM 的 Linux 上,比如树莓派,是有可能的.但事实上其中还是有问题,主要是因为 Android 的 so 库是通过 Bionic li ...

  9. openssl库android版的编译

    今天在编译andorid版libevent最新版2.1.6时报错can not find opensll,作为初次编译的新手,一头雾水啊,后幸得公司大神CTO的指点,需要android 版本的open ...

最新文章

  1. 大话设计模式—责任链模式
  2. Mybatis四种分页方式
  3. c#二叉树 取叶子节点个数_两种类似但是原理不同的算法求二叉树的所有叶子节点和...
  4. CAN笔记(23) CanFestival移植
  5. 超越苹果! 雷军愿望达成:小米,世界第三!
  6. 操作系统--进程管理1--单个CPU情况
  7. http://jingyan.baidu.com/article/fcb5aff78e6a48edab4a7146.html
  8. fuzzy仿真 MATLAB,基于Matlab的Fuzzy-PID控制器的设计与仿真
  9. Maven下载及安装配置
  10. MTA18ASF2G72PDZ-2G6D1内存条MTA18ASF2G72PDZ-2G6E1
  11. Java正则表达式语法与示例
  12. TPU演进十年:Google的十大经验教训
  13. FineReport10 决策报表常用javascript脚本
  14. python(十)——文件读写、OS模块、win32控制窗体、语音合成
  15. mysql5.7 赋权_「赋权」mysql创建用户并赋权 - seo实验室
  16. ps安装了可以打开但开始里面找不到_黑苹果安装入门(hackintosh install)
  17. 大学生面试最喜欢问的十个问题
  18. 技术部负责人的爱恨情仇
  19. unity中控制游戏物体移动最基本的三种方法
  20. lceberg、Hive不够用?开箱即用才是硬道理!

热门文章

  1. 计算机网络设备 ppt,计算机网络基础-计算机网络硬件设备.ppt
  2. Dim To Warm调色温LED灯恒流芯片NU403 NU501
  3. 从技术出发 | 有孚网络吕鑫:生信海量数据管理的实践与探讨
  4. 宝刀不老:Flash歌曲播放网站MP3地址隐藏机制完全破解
  5. 小学期项目(C语言)————外卖点餐系统(功能齐全)
  6. Hough Transform Tutorial
  7. tcpdump 网络数据包分析工具
  8. C语言+windows API仿写类酷狗播放器(1)
  9. 算法竞赛入门经典(第二版)-刘汝佳-第六章 数据结构基础 习题(12/14)
  10. OrangePi PC 玩Linux主线内核踩坑之旅(三)之设置静态IP地址