我在乌班图(linux)下将c语言编译成动态链接库(.s0),如何在安卓平台下 通过JNI调用我在linux下的.so

求懂的留言可以无限追加分... 求懂的留言 可以无限追加分 展开
 我来答
百度网友9bc0c2543
2013-04-28
知道答主
回答量:14
采纳率:0%
帮助的人:13.6万
展开全部
电脑上的CPU为 x86,手机CPU为ARM架构,你的动态链接库必须要ARM版Gcc编译器编译后才能跑在手机上,Android NDK里面附带了一个ARM版的编译器,你用NDK的编译器重新编译,然后就可以用JNI调用了,JNI调用不是一言两语能说清的,有专门的教程,如果嫌麻烦,那就别用C写。如果是做简单的应用,干嘛还要用C语言写,JDK可以满足绝大部分要求,要是嫌麻烦那就还是少碰NDK。
匿名用户
2013-04-28
展开全部
你的Android什么体系?arm,atom,mips?不同的体系需要的交叉编译环境不一样。

Linux 下编译android so最好使用Google 提供的ndk编译。它可以解决编译器的问题,兼容性也比较好。
Google NDK http://developer.android.com/tools/sdk/ndk/index.html,下载后进入sample目录下,就有现成的jni程序例子供你研究学习哦。
更多追问追答
追问
首先 像我这种菜鸟还真不知道Andorid体系是什么依稀 总之我搭建的环境是android-eclipse-JDK,起初来做一些简单的android应用。我的问题是如何通过JNI调用我的库,能给我讲讲大概流程么
追答
java代码中写native方法,然后用javah工具生成jni接口,c用这些jni接口实现,然后编译成so。java就可以直接调用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式