如何使用Android NDK在单个Android应用程序中创建多个后台应用程序?
需要使用NDK创建少量后台应用程序的帮助。我必须将C中的大型应用程序移植到Android平台,而我的C应用程序利用了少数在后台运行的独立应用程序(作为Windows上的服务)。所以我的问题是如何在Andriod平台上创建这些独立的应用程序?
我知道这些必须是Android应用程序中的服务,但是服务是Java代码且NDK不支持C服务,而我的所有应用程序代码都在C中。那么如何将这些独立的应用程序随同移植到Android上与我的主要应用程序一起使用这些独立的帮助程序应用程序。是否应该将它们做成单独的库?
如果将它们做成独立的库,那么如何确保它们在后台继续运行?我不确定,因此任何指导都将非常有帮助。我不想植根设备。
答案 0 :(得分:0)
Android与Windows有很大的不同,移植Windows服务可能是一个巨大的挑战。
首先,IPC协议不相同,因此您可能需要修改才能简单地编译代码。
第二个问题是Android的后台执行模型。在较新版本中,自棉花糖以来,Google会通过主动终止所有后台服务来延长电池寿命。
因此,如果您依赖这些进程始终运行,则必须将应用程序置于前台。
这表示,您可以为Android构建并运行命令行可执行文件,而无需将其包装到Android(Java)应用程序或服务中。
您可以从android shell运行它们(至少用于测试),或者从Java使用 Runtime.exec()。如果您启动设备,甚至可以从 init.rc 引导时启动这些可执行文件,就像它是普通的Linux机器一样。