在没有使用NDK的情况下开发本地C语言应用程序,适用于Android吗?

7

好的,这是一个奇怪的问题:

有没有一种方法可以开发 Android 的本地 C 应用程序或库,而不使用 Android NDK?

在 NDK 发布之前发生了什么? (NDK 并没有存在太长时间,我想它只发布了一两年)。


2
获取手机Root权限,编译Linux系统。 - Jimbali
3个回答

5

听说你可以这样做——我的一个朋友是一位真正的Android大师,他成功地手工构建了一个基于GCC的本地工具链。他还修复了Android libc中缺失的部分。主要思路是:GCC内置支持arm-elf-linux目标,因此使用适当的构建脚本,您可以将其配置为为Android构建。但是,您必须对手机进行root才能运行生成的二进制文件。更酷的是,由于GCC是一个自举编译器,在arm-linux-elf工具链上,您可以再次重新编译GCC,并在手机上拥有该工具链。


4
在NDK发布之前,开发Android应用程序的唯一官方支持方式是使用Android SDK,在Java中编写您的应用程序。
正如其他人所提到的,有可能将一些应用程序交叉编译为完全独立的,并在rooted手机上运行它们。这样做的缺点应该很明显:很少有人能够运行您的应用程序(他们还需要root权限,此外,您将无法在Play商店上发布应用程序);甚至您自己也可能在不同设备之间遇到兼容性问题,例如,如果您依赖于针对各种库的动态链接(为了使二进制文件的大小保持在一个合理的范围内,您可能需要这样做)。
简而言之:这是可能的,但受到严格限制,不建议使用。

3

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接