社区
Android
帖子详情
如何生成android可用的SO文件
zw87804600
2010-11-11 05:49:04
我现在要实现android jni调用,但是我不知道怎么样去吧我的c语言写的头文件 和 实现类文件,
编译成适用android的SO文件
我在LINUX下编译出的SO文件,放在system/lib下 报错找不到该SO文件,
所以求教高手指点一下,如何生成android so文件
...全文
10706
22
打赏
收藏
如何生成android可用的SO文件
我现在要实现android jni调用,但是我不知道怎么样去吧我的c语言写的头文件 和 实现类文件, 编译成适用android的SO文件 我在LINUX下编译出的SO文件,放在system/lib下 报错找不到该SO文件, 所以求教高手指点一下,如何生成android so文件
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liahoo
2011-06-13
打赏
举报
回复
MS不用LINUX的交叉是不可能成功的。
piggogogo2008
2011-01-19
打赏
举报
回复
SO文件是如何生成的,我也没有生成成功~~~
xqhrs232
2010-11-25
打赏
举报
回复
也在学习这一块的东西
guoxianting
2010-11-23
打赏
举报
回复
学习一下,android什么时候能给做一个类似与JNative的东东就好了。
zw87804600
2010-11-15
打赏
举报
回复
http://liangxh2008.blog.163.com/blog/static/1124116792009810105244380/
我看的是这个网页 但是看到生成SO文件那块 就不明白了
他也是在LINUX环境下生成的SO??
zw87804600
2010-11-15
打赏
举报
回复
谢谢你们这多指导 但是我都不太知道你们说的什么意思。。。继续看网页
谁能吧一个完全不的步骤 指导一下
freshui
2010-11-14
打赏
举报
回复
你可以在NDK或者源代码中编译,这样生产的SO就可以了
linux的so和android的不同,android没用glibc,用的是自己的bionic,这个和正常linux上的是不兼容的,原来在linux上的需要拿源代码到android环境下重新编译才能使用。
vclongking
2010-11-14
打赏
举报
回复
LZ , 你在你写的MK文件的第七行里面 ,LOCAL_SHARED_LIBRARIES := libutils
试试把你自己的那个.so文件加进去,看行不
vclongking
2010-11-14
打赏
举报
回复
[Quote=引用 10 楼 yihua0001 的回复:]
如果已经生成了so想调用,貌似底层要用c/c++包一层,然后生成一个bin档去用,去年做过这样的事情,有点既不很清楚了。或者楼主把so和.a都包含到makefile里去编译试试,不行只能再包一下了。
[/Quote]是的 ,你讲的这种是要启动一个服务进程 ,这个bin文件去调用这个.so文件实现功能
dinjay
2010-11-12
打赏
举报
回复
ndk中自带了个hello-jni,你可以看看
编译的话,返回hello-jni的上层目录
make APP=hello-jni
这样就能编译出so了,在hello-jni的libs里
bjskyhorse
2010-11-12
打赏
举报
回复
GOOGLE NDK,这样的文章很多
vclongking
2010-11-12
打赏
举报
回复
你写的MK里面 ,第十行就代表此模块编译过后生成动态库
至于红色部分是先设置环境变量
. buile/envsetup.sh
lunch
mm就是进行模块编译
就是根据你写的那个Android.mk来编的
zw87804600
2010-11-12
打赏
举报
回复
(6)编写android.mk文件
1. LOCAL_PATH:= $(call my-dir)
2. include $(CLEAR_VARS)
3. LOCAL_SRC_FILES:= \
4. com_ura_test_JNITest.c
5. LOCAL_C_INCLUDES := \
6. $(JNI_H_INCLUDE)
7. LOCAL_SHARED_LIBRARIES := libutils
8. LOCAL_PRELINK_MODULE := false
9. LOCAL_MODULE := libJNITest
10. include $(BUILD_SHARED_LIBRARY)
复制代码
(7)编译生成动态库
新建文件夹
~/mydroid/external/libJNITest
把上面编写好的头文件,c/c++源文件,make文件拷贝进上面目录中
* 需要注意的是把PRELINK_MOUDULE设置成false
否则需要重新做成img文件再烧入。
在ubuntu中执行
1. cd
2. cd mydroid/build/
3. envsetup.sh
4. cd ~/mydroid
5. cd external/libJNITest/
6. mm
复制代码
编译成功的后会在下面目录中生成libJNITest.so文件
~mydroid/out/target/product/generic/system/lib/
红色部分 我根本不知道什么意思
zw87804600
2010-11-12
打赏
举报
回复
那请问 用android代码编译出来SO呢?就是这里很模糊
yihua0001
2010-11-12
打赏
举报
回复
[Quote=引用 10 楼 yihua0001 的回复:]
如果已经生成了so想调用,貌似底层要用c/c++包一层,然后生成一个bin档去用,去年做过这样的事情,有点既不很清楚了。或者楼主把so和.a都包含到makefile里去编译试试,不行只能再包一下了。
[/Quote]
对了,JNI的应用是少不了的。
yihua0001
2010-11-12
打赏
举报
回复
如果已经生成了so想调用,貌似底层要用c/c++包一层,然后生成一个bin档去用,去年做过这样的事情,有点既不很清楚了。或者楼主把so和.a都包含到makefile里去编译试试,不行只能再包一下了。
yihua0001
2010-11-11
打赏
举报
回复
楼主在linux下编译的是用linux下的头文件,当然不能再android里用,把你的makefile种的include的路径和toolchain指向android的路径下,用android的代码编译出来的so才可以在android中使用。
vclongking
2010-11-11
打赏
举报
回复
你写JNI的时候得注意makefile添加你Nativa层的这个.so
dinjay
2010-11-11
打赏
举报
回复
google一下 android jni,有一大堆啊
http://mintelong.javaeye.com/blog/458391
简单的说就是几部,
1.搭环境
2.编写jni的java接口
3.实现jni(.c和.h的实现)
4.编译jni,就是编译.c生成so
5.java层调用
foley_liao
2010-11-11
打赏
举报
回复
我要学习下......
Android
10.0 根
文件
系统和编译系统
1, 讲解
android
根
文件
系统结构和组成 2, 讲解
android
系统镜像的概念和拆包 3, 讲解
Android
系统源码结构 4, 讲解
Android
系统编译规则 5, 讲解
Android
系统ADB使用和Log日志调试方法 6, 讲解
Android
系统
Android
....
Android
Studio
生成
SO
文件
Android
Studio
生成
SO
文件
生成
so的方式可能有多种,这里说一种简单的方式。具体由如下三步 下载配置ndk,编写java调用so的native方法;
生成
.h头
文件
夹,编写c/c++
文件
,编写
Android
.mk,Application.mk
文件
; 编译并使用SO
文件
; 1.下载配置NDK,编写java方法 下载NDK: 在 file->settings->Androi...
Android
Studio 简单
生成
so
文件
并调用
平台:windows IDE :
Android
Studio 下载好ndk:下载地址 https://developer.
android
.com/ndk/downloads/index.html第1步:新建一个
Android
Studio 工程 JniHelloWorld。新建一个MyJni.java
文件
。 MyJni.javapublic class MyJni
qt
android
生成
so,
Android
Studio调用QT for
Android
生成
的.so库
本文介绍如何实现
Android
与 QT 的结合,使
Android
能够调用QT的代码,避免重复造轮子最近在做
Android
Studio调用QT写的so库,在网上搜集资料,大多数都不全,而且很少有
Android
Studio版本,于是将自己这几日的心得做以研究整理:首先,
Android
调用的库是.so库,所以QT必须安装QT for
Android
,否则无法
生成
对应的.so库,不要想着用linux系统...
Android
中so
文件
的
生成
和调用
1、so
文件
介绍 “so”
文件
是使用C/C++编写
生成
的,在
Android
平台上快速编译、打包该
文件
,它是一个动态链接库,而
生成
“so”
文件
其实就是JNI开发。 2、JNI开发简介 (1)、JNI简介 JNI全称为Java Native Interface(JAVA本地调用)。从Java1.1开始,JNI成为java平台的一部分,它允许Java代码和其他语言写的代码(如C&C++)进行交...
Android
80,361
社区成员
91,291
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章