Let me hopefully clear a couple things up. -1. A program is made of processor instructions and possibly calls to other code made available to the program. To run such a program, an operating system passes the processor instructions to the processor and resolves the rest into processor instructions. Different processors (like x86 and ARM) take different instructions. Trying to get an operating system to pass ARM instructions from a program made out of ARM instructions (and calls to OS-provided code) to a processor that can only do x86 instructions would not work out. The operating system itself (at least the kernel) is defined in processor instructions, and the processor directly runs the kernel. -0.5 Java programs aren't "programs" in the above sense. They are text files whose contents are defined in processor instructions eslewhere. When it is ran, it is translated on-the-fly to processor instructions/OS calls. Get the right translator, and the Java script will work on any OS on any processor. But that doesn't make them superior: they have to be translated on-the-fly, which is both a performence and efficiency loss. 0. There is an x86 build of Android. Not the same build used on cell phones, obviously, because cell phone processors do not do the x86 instruction set. 1. Of course Android can run non-Java programs. Otherwise, Java itself wouldn't be able to run. In other words, the program that translates Java code into processor instructions/OS calls is not a Java program. How could the translator be running in Android if Android only ran Java applications, while the translator is not a Java application? There is no processor in existence yet that I know of that executes "Java instructions". The main point of an operating system is to pass processor instructions from a program to the processor. If it only ran Java apps, an operating system would not fulfill that basic purpose. 2. WINE is not made for Ubuntu specifically. It so-happens to work on Ubuntu. WINE is made to work on any "Unix-like" OS. 99 times out if 100, if a program is open source, operating system is irrelevent: you just compile for your operating system. I sincerely hope that all fog has been blown away. Cheers, Jake