Java actions always run the Mendix runtime server. They never get executed on the client device or on the clients browser. So the action won't be able to run on the iPhone or Android. The Android or IPhone app will communicate with the Mendix runtime to retrieve the relevant data and logic. Offline client side logic is performed using nanoflows and expressions. Currently these cannot call server side logic like java actions. Java actions can only be accessible via microflows. But you can call a microflow from a mobile application when your application is online. If you are accessing the same variable from two different actions then there is no overhead because all actions are performed on the Mendix runtime not the client.
The mobile application simply calls the relevant microflow, which calls the java action you require. Is this helpful?