| The secret was .NET Native and C++/CX. Contrary to Windows Phones, Android was still mostly JIT compiling, with Dalvik. Windows Phone 8, used technology from Singularity, .NET Native apps were compiled on the cloud and what was downloaded was MDIL (Machine Dependent IL), on device only linking was performed. Starting with Windows 10, everything was done on cloud and you got a binary targeted to device. Android had to go through AOT compiler in version 5, 6, reintroduction of JIT with AOT on idle on 7, staring of PGO data across devices on 8, until it got into a similar kind of performance. And to this day, NDK sucks compared with Windows Phone 8 C++/CX experience. |
And WP 8.0 < didn't offer AOT for .NET apps. AoT only came as experimental on WP 8.1 with WinRT apps if I recall right. And on W10 and W10 Mobile, it comes as default for all UWP .NET apps.