2012-10-04 88 views
3

是否有可能將不同的JVM包含到應用程序中並讓應用程序在此JVM中運行,而不是由Android提供的Dalvik VM運行? 我在問,因爲Oracle的ADF Mobile在Android和iOS上都使用它自己的JVM,但並未詳細說明它們是如何實現的。它應該基於J2ME CDC VM。Dalvik可能用於Android應用程序的其他虛擬機

我的同事認爲他們在dalvik VM中運行它,並在apk中添加實現Java ME CDC規範所需的那些庫。

如果它真的是一個完全獨立的JVM那麼理論上應該也可以包含一個Java EE JVM並從後端拋出一些可重用的業務邏輯嗎?

+0

我懷疑他們用C調用api/JNI調用真正的JVM,然後將它們的東西加載到它:) – Shark

+0

這對我來說似乎完全可能,但需要考慮的一件事就是互操作成本。我懷疑從dalvik vm編寫必要的interop代碼到你自定義的vm並不容易。由於您的業務邏輯是Java,爲什麼不編譯它在dalvik vm上運行呢? –

回答

2

是的,您甚至可以在理論上添加對C#的支持,這意味着您可以添加CLR/CLI支持或任何您喜歡的語言或VM。

所有的Android組件都是真正的模塊化組件,整個操作系統都是可定製的,問題是這需要大量的金錢,時間,專有技術以及最有可能的專利欺詐。

click me for a youtube reply

這是來自官方談Android系統。

+0

那麼oracle有上述所有的時間,並知道如何可能他們直接針對內核編寫他們自己的虛擬機。這就是我需要知道的一切。在iOS上,他們在目標C代碼中編寫了一個jvm,這很可能只是一個用x代碼編譯的普通jvm,因爲C是目標C的一個子集。漂亮有趣的東西,但是idk爲什麼他們做了一個j2me,而不是一個實際上可用的j2me在商業應用程序開發環境 – pascalwhoop

+0

@ user1170940不能回答這個問題,我真的不知道這個產品,但是一些J2ME配置文件支持JNI,它可以用來在C/C++中編寫代碼,所以你可以用更多的可能性來擴展這個平臺。 – axis

相關問題