6

好的,这是一个奇怪的:

有没有一种方法可以在不使用 Android NDK 的情况下为 Android 开发原生 C 应用程序或库?

NDK 发布之前发生了什么?(它出现的时间不长,我想它只是在一两年前发布的)。

4

3 回答 3

4

显然,你可以——我的一个朋友是真正的 Android 大师,他设法完全手工构建了一个基于 GCC 的本机工具链。他还修复了 Android 的 libc 中一些缺失的部分。主要思想如下:GCC 内置了对 arm-elf-linux 目标的支持,因此使用适当的构建脚本,您可以将其配置为为 Android 构建。但是,您必须 root 手机才能运行生成的二进制文件。一件更酷的事情是,因为 GCC 是一个自托管编译器,使用 arm-linux-elf 工具链,您可以再次重新编译 GCC 并在手机本身上拥有该工具链。

于 2012-07-30T09:42:40.937 回答
3

在 NDK 发布之前,唯一官方支持的开发 Android 应用程序的方法是使用 Android SDK 并用 Java 编写应用程序。

正如其他人所提到的,可以将一些应用程序交叉编译为完全独立的并在有根手机上运行它们。这样做的缺点应该很明显:很少有人能够运行您的应用程序(他们还需要是 root,而且您将无法在 Play 商店中启动您的应用程序);你甚至可能在不同的设备上遇到兼容性问题,例如,如果你依赖于各种库的动态链接(你可能需要这样做以降低二进制文件的大小)。

TL;DR:这是可能的,但非常有限,不推荐。

于 2012-07-30T10:03:01.550 回答
2

您可以使用与 Android 兼容的工具链(例如CodeSourcery)编译您的 C 代码,并从其命令行(例如通过SSHDroid 之类的 SSH 连接)在非 root 手机上运行它。

于 2012-08-31T11:30:14.973 回答