这样想吧。您可以使用Java
SDK来构建可以正常使用的应用程序,该应用程序可以充分利用开发人员可用的API的100%。从SDK角度(从API角度来看),NDK不能做任何事情,而NDK只能提供更高的性能。
现在反过来看。如果您选择在NDK中100%编写应用程序,则仍然可以编写功能完整的应用程序,但是可以访问的框架API数量有限。并非所有Android框架都可以在本机层进行访问。大多数API仅是Java。这并不是说
您 可能需要的所有API 在NDK中都不可用,但是 所有 API都没有公开。
除此之外,NDK还引入了特定于平台的代码,从而扩大了发行规模。对于要支持的每种设备体系结构,必须将本机代码内置到.so文件中(一个用于armv5,armv7和x86的文件),并且都打包到同一个APK中。可执行代码的这种重复使您的应用程序变成3倍大小(即“胖二进制文件”),除非您在分发应用程序时承担为每种体系结构分别构建APK的任务。因此,如果您不希望APK的大小显着增加,则部署过程会变得更加繁琐。
再一次,尽管所有这些都不能阻止您做自己选择的事情,但它指出了Google为什么将Java描述为大多数代码和阻力最小的途径的“首选”方法。我希望它能阐明为什么文档的原样。



