首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android SDK和NDK有什么区别?

Android SDK和NDK有什么区别?
EN

Stack Overflow用户
提问于 2011-10-21 00:38:10
回答 5查看 30K关注 0票数 20

我即将开始android应用程序的开发。

What is NDK?文档中,我无法提取以下信息:

与SDK相比,使用NDK真的引入了新功能吗?

我对此很感兴趣,因为使用NDK会极大地增加应用程序的复杂性,所以如果我对提高性能不感兴趣,还有其他理由去使用NDK吗?

我的意思是举个例子:

-restart电话

  • (我知道SDK和NDK都不允许这样做,我只是用它作为我的意思的一个例子)假设java SDK不允许这样做,但一些本地库允许-那么我的问题的答案是肯定的,NDK确实添加了一些功能

提前感谢你的任何有用的答案。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-10-21 00:45:31

据我所知,使用NDK的唯一原因是为了从您的应用程序中挤出额外的性能,并更接近裸机。如果你不需要做这两件事中的任何一件,你可能应该远离NDK。

还要注意的是,Dalvik VM已经有了一些相当出色的性能,而且相对简单。

票数 10
EN

Stack Overflow用户

发布于 2011-10-21 02:16:46

除非你有充分的理由使用NDK,否则你真的应该使用SDK。好的理由可能会有所不同,但例如,您可以使用NDK:

  • 如果你想使用OpenGL ES 2.0 Android2.1 (Eclair),它只能通过NDK获得。OpenGL ES 2.0的开发工具包支持始于Froyo版本。
    • 如果你想使用
    • ,你有很大一部分应用程序的逻辑是用C/C++

    编写的

票数 17
EN

Stack Overflow用户

发布于 2011-10-21 00:53:26

NDK在功能方面有更多的限制。

您可以从NDK中获得用C++编写应用程序并将其编译为原生ARM代码的能力。如果您喜欢C++胜过Java,如果您有一个想要移植到安卓的现有C++应用程序,或者如果您只是需要只有本机代码才能提供的额外性能,那么无论如何都应该使用NDK。

我自己没有这样做,但另一种选择是编写混合应用程序,其中应用程序主要是用Java语言编写的,其中选定的函数是用C++编写的,这些函数是从Java语言代码中调用的。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7839218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档