0

ライブラリプロジェクトがあります。そのライブラリ プロジェクトは、複数の Android アプリケーションで共有されています。私はそのライブラリ プロジェクトをシングルトンにします (同じインスタンスがすべてのアプリに提供されます)。これは、ライブラリ プロジェクトがインスタンス化されると、メモリ内にある必要があることも意味します。どうすればそれを達成できますか?

コメント リンク、コード スニペット、チュートリアル、ブログに加えて、非常に高く評価されています。また、そのようなユースケースの優れた方法を教えてください。

注: もちろん、「ライブラリ プロジェクトのインスタンス化」とは、その 1 つまたは一部のクラスを意味します。

前もって感謝します。

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アプリは独自のVMで実行されるため、可能ではないと思います。

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

各プロセスには独自の仮想マシン (VM) があるため、アプリケーションのコードは他のアプリケーションから分離して実行されます。

しかし、私はコース外で間違っている可能性があります。

ロルフ

于 2012-10-21T18:20:06.523 に答える