Windows 8.1 — пакеты ресурсов и объединение приложений

Одна из наибольших работ, которая была проделана для улучшения  Windows 8.1 — это та, при которой вы могли бы иметь приложение, которое сможет поддерживать целый ряд различных вариаций:

  • архитектура процессора (x86, x64, ARM)
  • язык (например, английский, французский)
  • масштабирование дисплея (например, 80, 100, 140, 180)
  • и даже больше эзотерических вариантов, таких как уровень поддержки DirectX

Как правило, эти вещи никак не отобразятся на системе пользователя и поэтому  был смысл разделить код приложения и ресурсы, так, чтобы во время развертывания система была достаточно сообразительна, чтобы загрузить только те данные, которые необходимы для определенного пользователя (устройства).

В Windows 8.0 данной возможности не было, и различные архитектуры также были представлены в магазине отдельно, но для Windows 8.1 данный вариант изменяют пакеты ресурсов и  объединение приложений.

Данный вариант очень подробно объясняется на MSDN и я понял, что это действительно стоит прочитать. В общем, мое упрощенное понимание:

  • App Packages — новый тип пакета, который содержит только ресурсы для конкретной комбинации языка / масштабов / и т.д..
  • App Packages могут быть объединены в комплект таким образом, что (например) архитектуры (x86/x64/ARM) могут оказаться в одной связке, а также ряд пакетов ресурсов, и все это можно выложить в магазин на одном дыхании
  • Система стала умной и теперь во время развертывания она будет скачивать и устанавливать только то, что необходимо для конкретного пользователя на конкретном компьютере

Вот интересный пример на данную тему: Application resources and localization sample при сборе пакета которого можно заметить, как английские, так и французские, японские ресурсы, а также ресурсы (изображений в данном случае) в различных масштабах:

  png;base64333d00c671f6c13c

 

png;base64b8166a2e82948b35

 

В итоге получится appxbundle файл (переименовываем его в ZIP-файл.).

png;base649440c91955b43cc4

png;base6486ba6a6ae9ef6f8b

И вы сможете увидеть разделенные ресурсы масштабов и языков (французский, японский). Обратите внимание, что не все ресурсы будут разделены, т.к.  ресурсы для языка по умолчанию должны присутствовать.

Вы также можете покопаться в папке AppMetadata и увидеть XML, в котором описывается разделение. Вот что получилось в моем случае:

 

  1. <?xml version=»1.0″ encoding=»UTF-8″ standalone=»no»?>
  2. <Bundle xmlns=»http://schemas.microsoft.com/appx/2013/bundle&#187; SchemaVersion=»1.0″>
  3.    <Identity Name=»Microsoft.SDKSamples.ApplicationResources.CS» Publisher=»CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US» Version=»2013.919.1827.1392″/>
  4.    <Packages>
  5.        <Package Type=»application» Version=»1.0.0.0″ Architecture=»neutral» FileName=»ApplicationResources_1.0.0.0_AnyCPU_Debug.appx» Offset=»76″ Size=»161818″>
  6.            <Resources>
  7.                <Resource Language=»EN»/>
  8.            </Resources>
  9.        </Package>
  10.        <Package Type=»resource» Version=»1.0.0.0″ ResourceId=»split.language-fr» FileName=»ApplicationResources_1.0.0.0_language-fr.appx» Offset=»161993″ Size=»4488″>
  11.            <Resources>
  12.                <Resource Language=»fr-fr»/>
  13.            </Resources>
  14.        </Package>
  15.        <Package Type=»resource» Version=»1.0.0.0″ ResourceId=»split.language-ja» FileName=»ApplicationResources_1.0.0.0_language-ja.appx» Offset=»166580″ Size=»33307″>
  16.            <Resources>
  17.                <Resource Language=»ja»/>
  18.            </Resources>
  19.        </Package>
  20.        <Package Type=»resource» Version=»1.0.0.0″ ResourceId=»split.scale-140″ FileName=»ApplicationResources_1.0.0.0_scale-140.appx» Offset=»199984″ Size=»22592″>
  21.            <Resources>
  22.                <Resource Scale=»140″/>
  23.            </Resources>
  24.        </Package>
  25.        <Package Type=»resource» Version=»1.0.0.0″ ResourceId=»split.scale-180″ FileName=»ApplicationResources_1.0.0.0_scale-180.appx» Offset=»222673″ Size=»27150″>
  26.            <Resources>
  27.                <Resource Scale=»180″/>
  28.            </Resources>
  29.        </Package>
  30.    </Packages>
  31. </Bundle>

Ссылка на источник: Windows 8.1–Resource Packages and App Bundles

 

 

Реклама
Tagged with: , , ,
Опубликовано в Development, Windows 8

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

%d такие блоггеры, как: