【问题标题】:Native Activity vs SDK Activity in terms of U.I就 UI 而言的 Native Activity 与 SDK Activity
【发布时间】:2012-04-25 02:55:50
【问题描述】:

我一直在做大量的研究,甚至用适用于 Android 的 NDK 进行了一些试验(而不是 SDK)。不过,我还没有真正找到对 NDK 不能 做什么(除了缺乏异常处理和 rtti)的清晰简洁的定义。

我一直在为游戏和 Android 游戏引擎绘制一些代码(完全在 NDK 中编写),但它似乎没有像许多人希望的那样得到支持。不仅如此,我还希望能够给我的游戏一个性感的 UI。无需在 OpenGL 中从头开始编写所有内容。

虽然我确信它在 Java 中更容易,但我想知道 NDK 的前端/UI.组件在触摸屏 IO、声音和图形界面方面甚至可以与 Java 相媲美。最坏的情况我可以编写 UI。在 Java 中并从中调用本机方法,但如果可能的话,我希望能够做更多的事情。

谢谢。

编辑

如果 C++ 甚至在某种程度上与 Java 的 UI 相提并论。功能集,很高兴知道两者中的哪一个可以提供更多控制和自定义。例如,虽然 Java 实现可能更易于使用,但它是否为程序员提供了很多选项来微调类似于特定事物的“外观”?

【问题讨论】:

    标签: android audio user-interface android-ndk android-sdk-2.3


    【解决方案1】:

    官方NDK可以做异常和rtti就好了。阅读随 Android NDK 分发的“docs/CPLUSPLUS-SUPPORT.html”文件。

    在 C++ 中你唯一不能做的就是实现 Java 接口,继承 Java 类并定义新的 Java 类。否则 - 你可以做任何 Java 可以做的事情。唯一的问题是很多事情(比如访问 Java 对象成员,或调用 Java 函数)都需要使用 JNI,而且代码看起来很丑陋。因此,如果您需要创建/继承 Java 类的 UI,那么您可以使用 C++ 编写所有代码。

    我建议仅将 JNI 用于性能关键代码。混合代码 - 用于 UI 的 Java,C/C++ 中的数学计算非常容易。 或者,如果您使用 OpenGL ES 编写游戏代码,也可以。

    【讨论】:

    • 使用活动和表面视图在 Java 中初始化 ES 2.0 上下文,然后在 C/C++ 中实现其余 GL 代码是否有意义?
    • 如果您不使用 NativeActivity,这是唯一的方法。
    猜你喜欢
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    相关资源
    最近更新 更多