Windows Phone 7 Facts: .xap to Replace .cab
XDA member and moderator Da_G has showed us some interesting facts about Windows Phone 7 in the WP7 Development and Hacking section. In the following weeks, we will be covering the more technical side of the currently unreleased OS by Microsoft. We’ll try to make it as easy to read as possible, so get yourself a cup of coffee, sit back, and read!
Most of you probably know about the .cab files. We’ll be talking about the Cab file used for Windows Mobile. Cab files are nothing more than installation packages that copy the files and registry edits from the package to the desired folder on your device. These ‘cabinet’ files, which originally were called ‘Diamonds’, were used since the very first Windows Mobile devices.
Well these files seem to get banished from the coming Windows Phone 7, internally still called Windows Mobile 7. The new files to replace the cabinets are called ‘.xap’ files. So what are the exact changes between the two files?
First of all, .xap files are nothing more than renamed .zip files. There are a number of possible .xml files that could be included inside the .xap. These determine things like required security access level, to tell the system which .dll contains the main() for the application, and more setup options. Initially, xap files will only be available for deployment through the Marketplace.
Because of the sometimes bad experiences from users about laggy and slow Stock ROMs, Microsoft added some very strict requirements for preloaded apps:
Originally posted by Da_G
Preloaded App Requirements (which will be distributed as .xap) as follows:
- Maximum of 6 preloaded applications on the device, not to exceed 60MB
- All preloaded apps must pass Marketplace submission process (some extended APIs are available to OEM/MO so the process is slightly relaxed in that regard)
- The application(s) and all future updates must be free of charge.
- The apps must launch without dependency on network availability.
- The apps must persist through a “hard reset”.
- The apps must be updatable and revocable (!!!!) through the Marketplace.
- The apps must notify the user at first launch of any capabilities to be utilized and get user consent (to access compass, accelerometer, network, etc.)
Most of the requirements aren’t bad at all for the end-user, though I think the OEMs are probably not very happy with these requirements.