扫码关注官方订阅号
我在arm ubuntu下面编译了一个类库libmono2.so
libmono2.so
请问我可以把他丢到android下面调用吗?具体方法是什么呢?
我是linux小白
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
把c++的库都静态编译,虽然占空间,但是兼容性还是不错的,至少不用考虑glibc的问题。在android和ios上都能用。
如果你是用 Android NDK 编译的,那么是可以的。注意要连同它依赖的库一起放 Android 里。我一般是放 /system/lib 下。如果是其它工具链编译的,可能会需要 glibc 等 Android 上没有的基础库,会很麻烦。
/system/lib
不知道你想怎么调用。如果你是写 Android 应用的话,共享库也是打包到 apk 里的。
将编译好的libmono2.so放到系统的/system/lib目录下。打开Eclipse上ADT插件里面的File Explorer工具,点击/system/lib目录,选择右上角有个push a file onto devices,打开对话框后,再选择libmono2.so文件,确定后即可将lib文件放到手机中了。(如果不行也可以使用ADB自带adb push命令)。再设置其权限为744,命令如下
#用命令行方式访问手机设备 adb shell #进入/system/lib目录 cd /system/lib #设置libmono2.so权限为744 chmod 744 libmono2.so
此时利用Jni机制编写装载Jni库方法的类,类里面需要严格按照Jni机制进行编写Jni接口
在软件工程下新建libs/armeabi文件夹,并将libmono2.so库拷贝进去。 接下来做的就是重写Jni接口,和方法1的最后过程是一样的。
同上,最好打包进apk。 至于加载,可以在java代码loadLibrary,也可以在c代码里dlopen
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
把c++的库都静态编译,虽然占空间,但是兼容性还是不错的,至少不用考虑glibc的问题。在android和ios上都能用。
如果你是用 Android NDK 编译的,那么是可以的。注意要连同它依赖的库一起放 Android 里。我一般是放
/system/lib
下。如果是其它工具链编译的,可能会需要 glibc 等 Android 上没有的基础库,会很麻烦。不知道你想怎么调用。如果你是写 Android 应用的话,共享库也是打包到 apk 里的。
有两种方法
1、放到安卓系统中,每个应用都可以访问
将编译好的
libmono2.so
放到系统的/system/lib
目录下。打开Eclipse上ADT插件里面的File Explorer工具,点击/system/lib
目录,选择右上角有个push a file onto devices,打开对话框后,再选择libmono2.so
文件,确定后即可将lib文件放到手机中了。(如果不行也可以使用ADB自带adb push命令)。再设置其权限为744,命令如下此时利用Jni机制编写装载Jni库方法的类,类里面需要严格按照Jni机制进行编写Jni接口
2、放到应用软件中,只有自己的应用可以访问
在软件工程下新建libs/armeabi文件夹,并将
libmono2.so
库拷贝进去。接下来做的就是重写Jni接口,和方法1的最后过程是一样的。
同上,最好打包进apk。
至于加载,可以在java代码loadLibrary,也可以在c代码里dlopen