首页 > 解决方案 > 当我们需要在整个 Android 应用程序中使用它时,仅在一个活动中加载本机库是否足够?

问题描述

我想在我的 android 项目中使用 Native JNI 库。但我有一个问题,比如我想在我的应用程序的大约 10 个活动中使用这个库方法。所以我应该将库加载到每个活动还是只加载 Splash Activity 就足够了。另外,如何在片段内部处理它,例如如果活动暂停或恢复等是否会出现任何问题。我很困惑,请帮助初学者。谢谢是先进的:)

标签: androidandroid-studiojava-native-interfacejnienv

解决方案


根据文档

如果您只有一个具有本机方法的类,则对 System.loadLibrary 的调用位于该类的静态初始化程序中是有意义的。否则,您可能希望从 Application 进行调用,以便知道该库始终已加载,并且始终提前加载。

所以有两种方法可以加载你的库,并且不需要在你的每个活动中加载它,我更喜欢第一种方法,因为它更干净和紧凑。

至于活动生命周期对本机库的影响 - 如果您不在活动或片段的生命周期方法中调用某些库方法,那么您的库将照常工作,直到您的应用程序终止。


推荐阅读