2) Make your application a true web-application. Instead of an app on the device like the above, the app runs on a web server and the app is just a view of it.
3) Design your application so you wrap android and iOS APIs in your own layer. Code your application to use your layer. You can't re-use the actual code because it is a different language but you should be able to reuse the logic. Of course the GUI would also have to be made separately for each os.
All of them have their drawbacks, as far as how much work, availability of APIs and access to the native system.
subject: How to make an Android app in a way its code can be portable to iOS?