2015-07-01 31 views
0

我想深入瞭解android內部,我知道如何使用NDK,甚至可能如何工作,但我對Native Activity和NDK提供的其他本機部件有疑問。
據我所知,Android桌面環境(圖形環境)是用Java編寫和運行的。這是Android Framework的一部分(着名的diagramm上的藍色)。
如果是這樣,當從Android應用程序運行C/C++代碼時,我們在linux上運行它,在java,dalvik和所有高級別的東西后面運行它。
我的問題是我們如何讓NativeActivity創建它(使用opengl進行繪製)是一回事,但它在android系統體系結構中的位置仍然在dalvik流程實例中以某種方式運行。
我感興趣的主要事情是如何與簡單的(Java)活動進行溝通。
請幫助理解,也許有人可以提供一種圖表來更好地理解這一點。
Thx提前。Android本地活動和圖形環境

回答

2

從Android應用程序運行C/C++代碼時,您並未運行它「在java,dalvik和所有高級別的東西后面」。它由Android Runtime或Dalvik執行。

本機活動使Java調用Android框架,使用JNI(Java本地接口),以創建其活動。

+0

所以這意味着,我打電話本地編譯對象可執行文件的特定平臺,但它又反過來調用java?所以它可以看起來像一個循環? – CROSP

+0

您可能會將其視爲一個循環。 DVM/ART在本地編譯的對象庫內調用本地實現,該對象庫會調用DVM/ART來訪問Java API。 – ph0b

+0

因此,在這種情況下,它不能使用NativeActivity來引入任何專業人員,因爲它仍然使用Java實現,並且您必須花更多時間從本地層調用到Java層。在使用java Activity實現的同時,它會有更多的時間嗎?我對嗎 ? – CROSP