2013-01-11 41 views
0

有一個共享庫,其中包含我想在Flex和Java中使用的靜態變量和函數。所以我的Flex應用程序通過ANE文件加載庫,通過JNI加載Java(雖然它是完全相同的庫)。 Android會爲每個應用程序加載庫的2個實例,還是每個應用程序使用相同的實例?Android上共享庫的實例

例如:庫有一個靜態整數變量,它在創建時被賦值爲0。 Flex將該整數更改爲3.如果Java代碼讀取該變量,Java會給出什麼結果。 A 0或3?

+0

你是說你有兩個單獨的應用程序(一個Flex,一個Java),或者你已經將一個Flex和一個Java代碼庫組合到一個應用程序中? – CommonsWare

+0

這有點複雜,我有一個Flex應用程序,它具有Java的本機擴展。 Java與共享庫進行通信以完成一些任務。但是在完成Java之後,我想從Flex中訪問庫的方法,而不使用Java之間的方法。所以在技術上他們是兩個不同的應用 –

回答

1

因此從技術上講它們是兩個不同的應用程序

如果它們是兩個不同的應用程序(例如,將在Play商店中兩個單獨的條目),那麼他們將在單獨的進程中運行。每個應用程序將有一個JNI代碼的副本;每個進程將加載它自己的那個JNI代碼的副本。它們之間不會共享任何內容,除非兩個應用程序安裝在不同的設備上。

+0

我看到了。但是,Flex和Java可以使用加載庫的相同實例嗎? –

+0

@WesselvanderLinden:只有當他們在同一個過程中運行,即使那樣我也不確定這是可能的。 – CommonsWare