gpt4 book ai didi

java - 如果多个 Activity 和服务需要,在 Android 中的何处加载 native 库

转载 作者:行者123 更新时间:2023-11-29 23:18:50 27 4
gpt4 key购买 nike

我的一些 Kotlin 类是由 native 库(使用 jni 的 Rust)实现的。这些类用于大多数 Activity 和一个同步服务(第二个服务可能会稍后出现)。

加载此库和处理加载错误的推荐解决方案是什么(例如,如果加载失败则发送错误报告)?

基本示例在 MainActivity.onCreate 中加载一个库。或者我经常在 MainActivity 类中看到一个静态 block 。另一种方法可能是从 Application 的派生类中加载库。但我不确定是否只有一个 Application 实例用于所有 Activity 和服务,或者是否为每个服务创建一个 ``Application``` 实例,为所有 Activity 创建另一个实例。

所以我的问题是:将 System.loadLibrary() 放在哪里?

最佳答案

是的,应用程序是整个 Android 应用程序的单例。但您不必担心,如果库之前已加载,LoadLibrary() 将不执行任何操作。因此,最佳做法是在所有依赖于此库的类的静态 block 中添加 LoadLibrary。

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

关于java - 如果多个 Activity 和服务需要,在 Android 中的何处加载 native 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54823675/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com