0

我有一个图书馆项目。该库项目由多个 android 应用程序共享。我将该库项目设为单例(将向所有应用程序提供相同的实例)。这也意味着一旦库项目被实例化,它就应该在内存中。我怎样才能做到这一点?

除了评论链接,代码片段,教程和博客也受到高度赞赏。还让我知道此类用例的良好做法是什么。

注意:当然,“实例化库项目”是指其中的一个/某个类。

提前致谢。

4

2 回答 2

0

这有点容易。

它应该看起来像这样

public static class MyLib
{
     static
     { 
          System.loadLibrary("libMyLib");
     }

public native void methodA();
public native int setterA(int set);

//etc
}

并将其用作静态库。如果你想要一个单例,只需将单例模式添加到其中并将 loadLibrary 调用移动到私有 ctor。

想想你是否真的想实例化这个类或者只是静态地调用它的方法。如果您不需要实例,这与静态块将为您“实例化”它一样好。

于 2012-10-21T18:14:18.020 回答
0

我不认为这是可能的,因为每个 android 应用程序都在它自己的虚拟机中运行,

http://developer.android.com/guide/components/fundamentals.html

每个进程都有自己的虚拟机 (VM),因此应用程序的代码与其他应用程序隔离运行。

但我可能错了

罗尔夫

于 2012-10-21T18:20:06.523 回答