我有一個庫項目。該庫項目由多個android應用程序共享。我是什麼庫項目是單身人士(相同的實例將提供給所有應用程序)。這也意味着一旦庫項目被實例化,它應該在內存中。我怎樣才能做到這一點?Android單件庫項目
旁邊的評論鏈接,代碼片段,教程和博客也高度讚賞。同時讓我知道這種用例的最佳實踐。
注意:當然通過「實例化庫項目」我的意思是它的一個/某些類。
在此先感謝。
我有一個庫項目。該庫項目由多個android應用程序共享。我是什麼庫項目是單身人士(相同的實例將提供給所有應用程序)。這也意味着一旦庫項目被實例化,它應該在內存中。我怎樣才能做到這一點?Android單件庫項目
旁邊的評論鏈接,代碼片段,教程和博客也高度讚賞。同時讓我知道這種用例的最佳實踐。
注意:當然通過「實例化庫項目」我的意思是它的一個/某些類。
在此先感謝。
這很簡單。
它應該是這個樣子
public static class MyLib
{
static
{
System.loadLibrary("libMyLib");
}
public native void methodA();
public native int setterA(int set);
//etc
}
,並把它作爲一個靜態庫。如果你想要一個singleton,只需要添加singleton模式並將loadLibrary調用移動到私有ctor。
想想如果你真的想實例化這個類,或者只是靜態調用它的方法。如果你不需要一個實例,這和靜態塊會爲你「實例化」一樣好。
我不認爲這是可能的,因爲每一個Android應用程序在它自己的虛擬機運行,
http://developer.android.com/guide/components/fundamentals.html
每個進程都有自己的虛擬機(VM),所以應用程序的 代碼與其他應用程序隔離運行。
但我可能是錯的場外,
羅爾夫
這甚至可能嗎?如果我沒有錯,android中的每個應用都運行在它自己的VM中。 –
是的,每個應用程序都運行在它自己的dalvik虛擬機實例中。起初我誤解爲活動。 – Shark