我在arm ubuntu下面编译了一个类库libmono2.so
请问我可以把他丢到android下面调用吗?具体方法是什么呢?
我是linux小白
把c++的库都静态编译,虽然占空间,但是兼容性还是不错的,至少不用考虑glibc的问题。在android和ios上都能用。
同上,最好打包进apk。
至于加载,可以在java代码loadLibrary,也可以在c代码里dlopen
有两种方法
1、放到安卓系统中,每个应用都可以访问
将编译好的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接口
2、放到应用软件中,只有自己的应用可以访问
在软件工程下新建libs/armeabi文件夹,并将libmono2.so
库拷贝进去。
接下来做的就是重写Jni接口,和方法1的最后过程是一样的。
如果你是用 Android NDK 编译的,那么是可以的。注意要连同它依赖的库一起放 Android 里。我一般是放 /system/lib
下。如果是其它工具链编译的,可能会需要 glibc 等 Android 上没有的基础库,会很麻烦。
不知道你想怎么调用。如果你是写 Android 应用的话,共享库也是打包到 apk 里的。