2012-11-13 54 views
1

我对Android体系结构的Android NDK和Libraries层感到困惑。我的意思是,在Libraries层,你可以得到.so文件,不论是C还是C++。当我们使用java在Android中编写应用程序并在NDK中进行部分开发时,NDK部分适合哪里?剂量它驻留在应用程序层,或者我们可以说它是库层的一部分?Android NDK和库层

我有这个困境,因为NDK的最终输出是一个.so,我们将它作为一个库加载到java应用程序中。我正在为我们开发的应用程序编写一份报告,并想知道从这些层放置NDK部件的位置。

enter image description here

+0

你的问题有点不清楚,你说的是你的apk包,运行时环境,这个OS的设计......?那张图片只是一个组件列表,没有提到Android内部的东西,如果你正在看这张图片试图了解NDK的内容,你只会感到困惑。 – user1797612

+0

您打包到应用程序中的所有内容都是应用程序层。 – auselen

+0

是的,我正在谈论apk。 NDK应用程序包含在其中。所以它看起来像NDK部分属于应用程序层? @ user1797612不,我不是在试图理解使用该图的NDK。对于想知道是否在图书馆 – user340

回答

0

我真的不知道你的意思,但我会尝试撰写答案。

使用NDK,您可以从真正的低级别内核(例如内核头文件和汇编代码)到真正的高级调用(如活动生命周期的调用)获取所有内容。

用你的话说,把这张图片作为NDK的参考,你可以从底部开始,反之亦然,你可以在NDK中使用所有图层。

但是这是理论,例如你甚至可以用NDK编写一个linux内核模块(驱动程序),但实际上你可能不能这样做,因为所有商业电话都使用单片内核,所以如果您的应用程序需要一个驱动程序才能工作,但由于实际情况限制,您必须废弃自己的想法。

+0

感谢您的回复。实际上,我们已经实现了一个内核驱动程序(不在NDK中)。我们正在从应用程序层与内核驱动程序进行通信,并在此过程中使用NDK部分。这将java映射到C并调用模块。这NDK部分我想知道哪一层它适合。应用程序或库? – user340