Android(安卓)使用JNI的相关
16lz
2021-01-25
Android 关于.so文件的导入和使用
- .so文件的导入
- .so文件的使用
.so文件的导入
1. 为设备所支持的CPU架构创建相应的lib目录
但是所有设备都能兼容armeabi-v7a这个架构,所以如果需要缩减apk大小,可以只保留armeabi-v7a这个目录。
最好还是能为该设备所支持的架构都创建对应目录,提升程序效率。
查询设备CPU信息方法:
adb shell
cat /proc/cpuinfo
但是,如果不确定支持的cpu架构是哪种,也可以全部都创建上,也不是不行,哈哈…。
比如下图所示:
2. 加载.so的java类所在目录
.so可能来自其它project,当要导入到一个新的project中进行使用时,需要注意:.so可能来自其它project,当要导入到一个新的project中进行使用时,需要注意:
调用System.loadLibrary(“libxxx.so”)的java类,所在的目录必须和之前project所使用的目录一致,否则会出现 java.lang.UnsatisfiedLinkError 此类的运行时异常。
3. 程序中加载.so
static { System.loadLibrary("upnp"); }
4. build.gradle 文件修改
android {sourceSets.main{ jniLibs.srcDirs = ['src/main/jniLibs'];}}
.so文件的使用
//Java类中,声明JNI方法。使用的地方,直接调用即可。private static native void _start();private static native void _stop();
更多相关文章
- 一款常用的 Squid 日志分析工具
- GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
- RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
- Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
- Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影
- Android(安卓)activity简单的跳转
- Hybrid Android(安卓)App中通过js访问Shared Preferences的问题
- 基于Android搭建tensorflow lite,实现官网的Demo以及运行自定义t
- Android之存储目录