为了账号安全,请及时绑定邮箱和手机立即绑定

如果多个活动和服务需要,在哪里加载 Android 中的本机库

如果多个活动和服务需要,在哪里加载 Android 中的本机库

牛魔王的故事 2022-06-30 18:13:02
我的一些 Kotlin 类是由本机库(Rust using jni)实现的。这些类用于大多数活动和一个同步服务(第二个服务可能稍后出现)。加载此库和处理加载错误的推荐解决方案是什么(例如,如果加载失败则发送错误报告)?基本示例在MainActivity.onCreate. 或者我经常在 MainActivity 类中看到一个静态块。另一种方法可能是从Application. 但是我不确定是否Application所有活动和服务都只有一个实例,或者是否为每个服务创建了一个“应用程序”实例,而为所有活动创建了另一个实例。所以我的问题是:放在System.loadLibrary()哪里?
查看完整描述

1 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

是的,应用程序是整个 Android 应用程序的单例。但是你不必担心,如果之前加载过库,LoadLibrary() 什么也不做。因此,最佳实践是在所有依赖此库的类的静态块中添加 LoadLibrary。

考虑使用ReLinker库,该库提供日志记录以及解决加载本机库的一些普遍问题的解决方法。


查看完整回答
反对 回复 2022-06-30
  • 1 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号