代码之家  ›  专栏  ›  技术社区  ›  Dan Rosenstark

Android和C++:必要吗?

  •  3
  • Dan Rosenstark  · 技术社区  · 14 年前

    只是很肤浅地检查一下Android开发,似乎大多数人都在用Java工作。然而

    Android包括一套C/C++ 各种组件使用的库 通过Android应用程序

    这是否意味着,在Android应用程序中,使用java和C++?

    • 有时候?
    • 很多?
    • 几乎没有?
    • 从不:你不能将其用于应用程序?
    6 回复  |  直到 14 年前
        1
  •  5
  •   Miguel Morales    14 年前

    有时候。尽可能少,只对时间敏感的代码,即使这样也可能不是一个好的解决方案。
    这是因为Java代码真正是跨平台的,并且几乎可以跨所有设备工作。据我所知,ndk只支持ARM处理器,除非绝对必要,否则不完全支持。

        2
  •  5
  •   Cheryl Simon    14 年前

    你可以通过NDK在android应用程序中使用c++。它必须与基于Java的SDK结合使用,并且只设计用于性能关键的代码段。它的功能比SDK更有限(不能显示UI等)。

    使用理由,来自文件:

    NDK不会受益最大 应用。作为开发人员,您将 需要平衡其利益和 它的缺点;特别是,使用本机 性能提高,但始终 NDK的典型优秀候选人 分配不多的操作 记忆,比如信号处理, 物理模拟等。简单 重新编码一个通常在C中运行的方法 不会产生大的性能 增加。然而,NDK可以 现有C/C++代码的语料库。

    因此,大多数用户不会使用任何C++代码。

        3
  •  2
  •   Ben Voigt    14 年前

        4
  •  2
  •   J. Polfer    14 年前

    下面的大部分操作系统是C/C++。

    http://developer.android.com/guide/basics/what-is-android.html
    任何绿色或红色的东西都是用C/C++编写的。
    不确定应用程序框架。

    我想你可以在技术上用C++编写所有的东西,但是我没有看到任何关于如何访问这些组件的文档,所以实际上它们隐藏在SDK后面,除非有人逆向工程师如何处理它们,否则你会被SDK所使用的东西所困扰。

        5
  •  1
  •   Seva Alekseyev    14 年前

    在我的例子中,我使用NDK编译一个共享的跨平台的C++应用程序核心,以及java的UI。该内核在WinMobile和iPhone上的编译和运行同样出色。代码划分是大约60%的核心,40%的用户界面。

        6
  •  1
  •   Eugene Mayevski 'Callback    14 年前

    谷歌的官方立场是开发者必须使用java作为主要的开发平台,并使用C++和NDK来进行时间和性能敏感的操作。而且,唯一受支持的API是Java API。也就是说,Google只提供javaapi,只支持javaapi。无论您在本地设备上找到什么(任何共享库、libc等),Google或设备供应商都可以随时更改,恕不另行通知,因此不鼓励您使用您的发现。