Microsoft's Plan To Port Android Apps To Windows Proves Too Complex (networkworld.com)
An anonymous reader writes: The Astoria project at Microsoft has failed because a breakthrough was needed to overcome the complexity of the software development challenge. Microsoft tried to automate mapping the Android UI into the Windows 10 UI and to map Google services within the app such as maps, payments and notifications into Microsoft equivalents. Automated conversion of a UI from one platform to another has never been successfully demonstrated. When I first saw Microsoft's Android bridge at Build 15, I thought it was achievable. But project Astoria, as it is called, is much too complex. Drawing on my architectural knowledge of the underlying Microsoft/Lumia hardware that is very similar to Android phones.I concluded that in the context of partitioning the device or running a VM Microsoft would succeed. But Microsoft tried something much more ambitious.
Rather than "failed," The Next Web reports that for now the project may have only been delayed.
I think that you are confused about java-the-language, java-the-standard-library and java-the-platform. Android is java only as far as first one is concerned. And I don't think that this is giving any troubles with possible porting.
Basic subset of C is quite portable, isn't it? Then according to your logic, game written for Xwindows+opengl should work against MSWindows+DirectX without any issues...
The Android API is some thousands of functions. Android and Google already implemented that API on top of Linux . I don't see any fundamental reason that a company with Microsoft's resources -couldn't- implement the same API as follows:
Android.textbox.Draw(blah, x, y) {
Winforms.textbox.Draw(x, y, blah);
}
Simple... Android.textbox.Draw, and Winforms.textbox.Draw usually don't have the exact same semantics. In fact, usually the APIs are structurally different. Often there simply isn't analagous functionality on one or other platform.
Furthermore, even if you somehow magically managed to make all of that work out properly, you'd still be stuck with a bunch of functionality that's subtly different. The behaviour of the controls is subtly different, and that can make or break the functionality of an application.