AakashPatel wrote:Android currently even has an NDK for coding in C/C++.
Like others mentioned the Chip in a Cel Phone is differnt (somewhat limited).
To be more precise it is a complete different architecture.
Those CPUs are ARM based and can not run x86 Code that is used in PCs.
ARM is very energy saving but is very simple.
X86 (with additions like SSE or AMD64) is complex.
To use it's full potential special command sets like those of different SSE versions need to be used optimal.
When you write software (in C/C++ or whatever language) a compiler than translates this Software to run on the target platform.
The compiler also tries to take best use of the chips command set (again: SSE).
An x86 compiler will most certainly generate different versions with SSE (version x) and without (or lower version) integration.
This is needed to run the Software on older non SSE CPUs (in theory back to intel 486 systems).
But it will not compile the software to run on ARM or any other architecture.
Think Apple: they switched to intel based CPUs and now you can't run MAC OS 9 on a intel based Mac.
You also can not install old Software (for OS 9 and older) because it is compiled to run on the old architecture.
Now your question could be why the same code can't be compiled to ARM.
That is because a modern application uses many external ressources.
For example when you code a media player software.
You "only" do the core logic.
You don't care about file system works (open file, browse folders, save file, ...) or the output to the speakers or the generation of the window (buttons, list boxes, menu bar, actual all graphical elements), ....
Because someone did that already and you can use the compiled classes of those people.
And that is the problem: Those classes are compiled and only available on your base system.
If you copy over a Windows application to Windows Mobile device it will crash right after start because the resources it needs aren't there.
Similar problem have modern apps on Windows 2000, they will stop (with function xxx in dll yyy is missing), because the needed resources aren't supplied anymore.
It would be possible to create a F@H client for ARM based Mobile Phones, no question.
But that would mean everything had to be done from scratch for this platform alone!
Like a new client line besides CPU/SMP, MAC, GPU and PS3 (I forgot more?).
The potential user base AND the potential performance is to small to invest much resources therefore...