确定这是一个奇怪的:开发本机C应用程序没有NDK的android?
有没有办法有人可以开发原生的C应用程序或库的Android不使用Android NDK?
NDK发布之前发生了什么? (这不是太久了,我认为它是在一两年前才发布的)。
确定这是一个奇怪的:开发本机C应用程序没有NDK的android?
有没有办法有人可以开发原生的C应用程序或库的Android不使用Android NDK?
NDK发布之前发生了什么? (这不是太久了,我认为它是在一两年前才发布的)。
在NDK发布之前,唯一官方支持的开发Android应用程序的方式是使用Android SDK并使用Java编写您的应用程序。
正如其他人所提到的,可以将一些应用程序完全独立地交叉编译,然后在根用户手机上运行它们。这种情况的缺点应该是显而易见的:很少有人能够运行你的应用程序(它们也需要是root用户,再加上你不能在Play商店中获得你的应用程序)。您甚至可能会在不同的设备上遇到兼容性问题,例如如果您依赖于各种库的动态链接(为了保持二进制大小,您可能需要这样做)。
TL; DR:有可能,但严格限制,不推荐。
显然,你可以 - 我的一个朋友是一个真正的Android大师,他设法完全手工建立一个基于GCC的本地工具链。他还在Android的libc中修复了一些缺失的部分。主要思想如下:GCC对arm-elf-linux目标具有内置支持,所以通过适当的构建脚本,您可以将其配置为为Android构建。但是,您必须根据手机来运行生成的二进制文件。更酷的是,因为GCC是一个自承载编译器,使用arm-linux-elf工具链,您可以再次重新编译GCC并在手机本身上安装工具链。
您可以使用兼容Android的工具链(例如CodeSourcery)编译您的C代码,然后从其命令行(例如,通过SSH连接,如SSHDroid)在非根的手机上运行它。
根手机,编译为Linux – Magicode 2012-07-30 09:40:54