首页 > android如何使用linux系统的一些库

android如何使用linux系统的一些库

我在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 里的。

【热门文章】
【热门文章】