2015-07-01 40 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