I have written an application in C which I am porting to Android using the NDK. This application makes use of fork() to create child processes periodically to perform some tasks. These child processes communicate with the main process through pipes and then exit after their task is complete. The amount of data transferred through pipes can be hundreds of kilobytes.
I’m attempting to keep the parent process very lean in terms of memory and CPU consumption and also very stable, but the child processes can sometimes take up a significant amount of resources. It doesn’t matter much if the child processes are sometimes killed by the system due to this. The parent process can gracefully handle these conditions.
For this use case, is it fine to keep the fork()s in the native code? Is there a better way of doing this through Android’s framework?
Thank you.
Message from goddess:
http://markmail.org/message/ruqp2t6gvhnhv654
So you better leave it off. It could open a full can of worms with process management. And there is nothing worse as misbehaving runaway native process sucking processor cycles and battery juice. Better solution would be several android abstractions like services and broadcast receivers in same process passing data around by means of static classes or firing intents