社区
Android
帖子详情
android 调用SO的问题
bjskyhorse
2010-10-26 04:48:10
目前遇到一个问题,以前我有一个实现安全功能的DLL库,有全套代码,如今通过NDK方式把它改造为一个so库,我想把它放在android手机里面给自己写的app调用。我想知道,这个so库应该是属于哪一层,App,Framework还是lib?应用是个APK,那我这个so应该放在android手机的哪个目录下才能调用呢,是如何调用的?
有人说可以把so文件和应用一起打包成一个apk,该如何打包呢?
...全文
1662
8
打赏
收藏
android 调用SO的问题
目前遇到一个问题,以前我有一个实现安全功能的DLL库,有全套代码,如今通过NDK方式把它改造为一个so库,我想把它放在android手机里面给自己写的app调用。我想知道,这个so库应该是属于哪一层,App,Framework还是lib?应用是个APK,那我这个so应该放在android手机的哪个目录下才能调用呢,是如何调用的? 有人说可以把so文件和应用一起打包成一个apk,该如何打包呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bjskyhorse
2010-11-29
打赏
举报
回复
那如果我有J2ME上的jar,现在想把它移植到android平台上,如果不用C/C++开发so,有什么办法可以快速移植这些jar过来?它应该以什么形式的库提供呢
dinjay
2010-10-28
打赏
举报
回复
[Quote=引用 5 楼 bjskyhorse 的回复:]
dinjay,你的意思是我的应用程序只要System.loadLibrary("name"),通过ADB安装APK就直接可以安装到data/data/packagename/libs?
[/Quote]
你只要把so放在你工程的libs->armeabi目录下就可以了,build后生成的apk就会自动把so打包进去,安装apk到模拟器或者手机后,系统会自动复制so文件到data/data/packagename/libs下
dinjay
2010-10-27
打赏
举报
回复
比如你的so是libname.so,如果是armeabi的编译器,那就把so放在工程目录下libs->armeabi文件里
程序中使用:
就直接System.loadLibrary("name");//注意这里不能有lib的前缀,但是so的名字里要加lib
如果是mips的编译器,就放在libs->mipos文件中,使用也是loadLibrary
这样安装完apk,so会自动放在手机的data/data/packagename/libs目录下
madFatso
2010-10-27
打赏
举报
回复
http://www.eoeandroid.com/archiver/tid-2716.html
bjskyhorse
2010-10-27
打赏
举报
回复
没有人知道这个so文件应该在android平台的哪一层,如何和apk一起打包吗
zgleaf
2010-10-27
打赏
举报
回复
把so放在工程目录下libs->armeabi文件里, 通过adb install 安装APK就可以安装到data/data/packagename/libs下;
应用程序调用 System.loadLibrary("name"),是用来加载这个so的。
bjskyhorse
2010-10-27
打赏
举报
回复
dinjay,你的意思是我的应用程序只要System.loadLibrary("name"),通过ADB安装APK就直接可以安装到data/data/packagename/libs?
hyfeng_ccle
2010-10-27
打赏
举报
回复
在工程下创建libs文件夹,在再libs下创建armeabi文件夹,so文件就是放在armeabi文件夹下。
这个方法如楼上所言。
还有可以放在/system/lib/文件夹下,这个需要权限
模拟器可以
打开命令行:
>emulator -partition-size 256 -avd avd_name
模拟器启动之后,打开另一个命令行:
>adb remount
>adb push C:\YOUR_SO.so /system/lib
这种方法加载多个SO相互调用的情况。
Android
调用
so库全过程
Android
中有时候为了效率以及平台开发库的支持,难免会用到NDK开发,那么都会产生一个so文件,通过native方法进行
调用
,开发和
调用
步骤很简单,这里就不多说了,本文主要来介绍,我们在使用so的时候总是会出现一些...
Android
调用
so库全过程,
Android
中对so库简单的
调用
封装流程
1、so在工程中的放置位置工程中src -> main -> jniLibs(自己新建的目录)下,然后根据自己的需求新建armeabi 和 armeabi-v7a等目录image.png2、查看so包名目录有两种方法:一是通过向你提供so库的人要,他开发...
android
调用
JNI SO动态库
android
调用
android
调用
JNI 分为静态
调用
与动态
调用
(不论动态还是静态前提都是NDK环境已经配置好的前提下) 一、静态主要就是将c(.c)或者c++(cpp)的源文件直接加到项目中进行
调用
, 然后在CMakeLists.txt中...
Android
studio
调用
so库
Android
studio
调用
so库 sourceSets { main { jniLibs.srcDirs = ['libs','jniLibs'] } } 这是生成so库的项目地方,要记住包名类名 函数名 在要
调用
so库的项目里,要建立对应的包名类名和函数名 在main...
Android
studio项目
调用
SO库
Android
studio项目
调用
SO库
Android
studio创建Native C++工程下载Native C++工程编译工具新建native c++工程native C++工程目录结构定义native-lib.cpp类中方法导出native C++工程so库
Android
studio中新建
Android
...
Android
80,351
社区成员
91,288
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章