Windows Phone 8.1 for developers – App packaging with appx

This blog post is part of a series about how Windows Phone 8.1 affects developers. The series is written in collaboration with Microsoft evangelist Peter Bryntesson, check out his blog here.

When it comes to packaging and distribution of apps – Xap is out, Appx is in. Appx is the package model used by the Windows Store and offers some additional features over xap.

Appx generation

To generate an appx package for your app, you invoke the Store menu, and choose to create application package.

You then get to choose what platform and configuration you want to build – and also whether to create an app bundle or not, more on that later.

This process generates one binary appxupload file per configuration, and a folder postfixed Test that contains the appx and other files, for deployment testing before upload to the Store.

And looking inside one of the Test folders, we find the actual appx file, together with a binary appxsym file:

Appx overview

An appx contains the entire app, it is actually just a zip file with a different extension. Looking inside the actual appx file, and the Assets folder, we find all the files for the app:

                      

Noteworthy here is:

App.xbf    With the XAML stack from Windows comes the Xaml Binary Format, pre-compiled Xaml – a big performance win, especially on app startup

.scale-240.png    Apparently the app ships with scaling level 240 – on Windows we have 100, 140 and 180.

Bundles

App bundles allow the resources of an app to be partitioned based on three parameters:

  • Localization

  • Scaling

  • DirectX feature level

When creating a bundle, you enable the Windows Phone Store to only download the resources needed for that specific device.

To demonstrate this I’ve added some resource files to the project, both a different scaling level and two more languages (en-us Is the default).

You choose to create a bundle on the package creation page:

And the resulting package files are instead just one big bundle.

Looking inside the appx for the bundle we find one appx per non-default resource-partition.

Links

BUILD 2014: App Packaging and Deployment for Windows Devices

Packaging, deployment, and query of Windows Store apps

App packaging

Games with resource packages sample

Package your Windows Store DirectX game

This Post Has 7 Comments

  1. Do you know how to build zxing on windows phone 81.(store app).I know silverlight wp can use the PhotoCameraLuminanceSource to decode camera preview ,but not support store app .
    Thanks.

    1. You can upgrade a SL80 project to SL81 and make use of almost all the new features of WP81.
      SL81 will package into a XAP (not appx) and still be Silverlight.

      1. oh,i know that.
        I test zxing on wp store 8.1,and run ok .but the camera preview size is very small ,so how can i change this size ? can then take picture.

        1. I think you should enumerate possible preview resolutions from the camera, then starting preview using one of the enumerated values – that will give you another resolution.

  2. Yeah . i have update the resolution,but still not find best way to fix it . the preview is still small . i can push my code oh my github here:https://github.com/79144876/ZXingStoreApp
    Two problems here:
    1.the preview frame size is not full screen.
    3.take picture and save the disk ,you will find that the picture is landscape ,not normal Portrait.
    You can test my project.
    Thanks for your help.

    1. I would love to take a look at it, but I’m pretty swamped. I will look if I can find the time – or you could ask on stackoverflow and hopefully get an answer sooner. Or the Msft forums.

      1. Oh,yeah,man,of cause i can understand .but i really wish you can clone my demo and test it ,if you have find anyway for this please push your request when you have some times.
        Really thanks again!.

Leave a Reply

Close Menu