2016-05-13 48 views
0

我试图理解为什么NDK与在 http://developer.android.com/ndk/guides/stable_apis.htmlNDK限制支持库

记录。所以图书馆只有有限的支持没有任何理由为什么其他的.so库(libhardware,libgui,libservicesensor等),这用java框架是不是也可以用ndk?

+1

Google并不试图为Android版本的这些库维护二进制兼容性。如果您链接到稳定列表之外的库,则您的应用可能无法加载某些版本的Android,因为您所依赖的符号不存在,已被更改等。 – CommonsWare

+0

这两种类型的库都是从C++文件构建的,那么二进制兼容的含义是什么?谢谢。 – ransh

回答

2

将API公开后,它们不能以影响现有应用程序的方式更改它,即只能扩展而不能更改。这给它周围的任何开发增加了相当大的负担,并限制了它可以开发的方式。因此,人们必须认真决定他们准备好公开支持哪些API,并权衡这些公众将获得哪些好处。

由于Android的设计是主要的公共API是在java中,使NDK中的所有东西都是巨大的重复。 (即使较低级别的组件是C/C++,它们也不是公开的,它们只是为了被更高级别的公共API组件使用。)在实践中,只有少数本地API已经被暴露,这是实现良好性能所必需的,为了方便起见,还有一些有限的部件。