【问题标题】:Use of Android NDK [closed]使用 Android NDK [关闭]
【发布时间】:2011-03-05 08:18:56
【问题描述】:

我是 Android NDK 的新手。我想知道原生代码在 Android 中有什么好处。它是如何提高性能的,它在 Android 中的什么地方使用(原生代码)?

【问题讨论】:

标签: android android-ndk


【解决方案1】:

NDK 允许您使用 C/C++ 编写代码,然后将其链接到您的 Java 应用程序中。您可以潜在地提高应用程序的速度。不过,Replica Island 可能值得一读,因为他们不使用 NDK,但可以实现非常快的帧速率。

NDK 的缺点是,它只能编译到特定的 CPU(而留在 Java 领域意味着它可以在任何目标版本的 Android 上运行)。

【讨论】:

  • 谢谢马克.....我可以从哪里得到它的例子???
  • 下载的时候NDK文件夹里有例子
  • 是的,谢谢“Donal”我得到了 :)...
  • "Donal" 我正在尝试在 Eclipse 上运行 ndk 示例并遵循此链接“mobilepearls.com/labs/ndk-builder-in-eclipse”但是当我尝试设置刷新选项卡属性时,在那个地方我没有得到 lib文件夹 。当我尝试运行我的应用程序时,出现“java.lang.UnsatisfiedLinkError: Library helloneon not found”异常,,,,,,请指导我是什么问题....
  • @Maximus,NDK 目前支持两个处理器。两个支持的设备是: * ARMv5TE(包括 Thumb-1 指令) * ARMv7-A(包括 Thumb-2 和 VFPv3-D16 指令,可选支持 NEON/VFPv3-D32 指令)(将来它也将支持 x86 !)
【解决方案2】:

机器人, 您可以使用本机代码来优化您的应用程序以提高速度。尤其是在代码中使用位/字节操作时,例如需要对图像文件进行压缩/解压缩等时。

原生 C 代码将使用底层操作系统 (linux) 的 API(系统调用),因此比必须通过 JVM 解释 Java 代码时要快得多。

此外,可以使用本机 C 代码,使用 malloc() 来分配大内存(甚至达到 25-30MB!)。 在应用程序范围内通过 java 编码时,这是不可能的。

大多数游戏使用原生 C 代码库来处理 2D / 3d 图形、输入、声音等...

如果您刚开始使用 NDK,请查看以下链接以获取带有屏幕截图的简单教程: http://mindtherobot.com/blog/452/android-beginners-ndk-setup-step-by-step/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-25
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    • 2015-05-17
    • 1970-01-01
    相关资源
    最近更新 更多