我们希望将一个庞大的复杂本机程序迁移到Android系统,将其作为后台服务运行,接受使用JNI和IPC从Java程序发送的命令。但是,Android NDK状态如下:
请注意,NDK不允许您开发仅限本机的应用程序。 Android的主要运行时仍然是Dalvik虚拟机。
这是否意味着我们无法在Android上运行独立的纯本机应用程序作为后台服务?本机代码只能以库的形式存在,将通过JNI加载到虚拟机?
答案 0 :(得分:4)
NDK本身仅用于创建库,但是如果你进行一些网络搜索,你会发现至少有两套包装脚本或指令(ab)使用它的工具链来制作与android的仿生libc链接的独立可执行文件(你不会从非机器人手臂工具链获得的东西)。
谷歌人不鼓励人们这样做。不幸的是,他们对android的看法只包括java应用程序,支持可选的本机库 - 它不包括安装或启动本机可执行文件的任何“稳定”方法,因为它们警告你今天可以使用的方法可能无法继续使用新版本。这真的太糟糕了,因为它意味着放弃了设备的许多通用计算机潜力。答案 1 :(得分:0)
嗯,可以做到。但说实话,我从来没有尝试使用NDK,但我已经设法使用Android源代码提供的工具链创建本机应用程序。
你的手机(包括你谈论手机)应该扎根。