Иконка приложения - это первое с чем сталкивается пользователь после инсталляции. Безусловно, она играет очень важную роль в формировании отношения к программе. Иконка, как и многие другие параметры приложения, определяется в информационном файле AIF. В этом файле определяются следующие свойства:
AIF файл можно задать в mmp файле проекта:
aif MyGame.aif \MyGame\aif\ MyGameAif.rss c8 Icon1.bmp Icon1Mask.bmp
Расшифруем синтаксис:
aif<aif файл="" приложения=""><расположение aif файла><aif ресурсы=""> <палитра иконки> <иконка1><маска для иконки1> <иконка2><маска для иконки2> …</aif></aif>
Приложение может иметь несколько иконок с различным видом и размером. В качестве иконки для системной оболочки выбирается наиболее подходящая по размеру. Обычно иконки имеют размер 44x44 и 8-битную палитру. Вы также можете включить в приложение дополнительные иконки, которые будут отображаться, например, на панели состояния (если она отображается) запущенного приложения. Файл ресурсов (*.rss) для aif определяет параметры приложения:
#include <aiftool.rh> RESOURCE AIF_DATA { // UID приложения app_uid=0x1000ABCD; // Заголовок приложения на каждом языке caption_list= { CAPTION { code= ElangEnglish; caption= “MyGame”; } }; // Тип данных, ассоциирующийся с приложением datatype_list= { DATATYPE { priority= EdataTypePriorityHigh; type= “application/x-NokiaGame-Data-12345678”; } }; // Число иконок в AIF файле (не считая масок; каждая // иконка должна иметь маску) num_icons=1; // Свойства embeddability= KappNotEmbeddable; hidden= KappNotHidden; newfile= KappDoesNotSupportNewFile; }</aiftool.rh>
Если приложение содержит aif, не забудьте включить сгенерированный файл в sis пакет. Обратите также внимание, что если UID в AIF файле не соответствует UID приложения, это не вызовет сообщения об ошибке, однако после установки приложения его иконка не будет отображаться.
Pkg файл определяет содержание пакета инсталляции (sis). Он содержит UID приложения, список поддерживаемых языков, UID целевого продукта и список файлов, входящих в sis пакет:
; MyGame.pkg ; Определяет файл инсталляции для MyGame ;Язык &EN ;Заголовок #{“MyGame”},(0x1000ABCD),1,0,0 ;Требуемая линейка Series60 устройств. Определяется UID ;целевого продукта. (0x101F6F88),0,0,0,{“Series60ProductID”} “\epoc32\release\thumb\urel\MyGame.app”-“!:\ system\apps\MyGame\MyGame.app” “\epoc32\release\thumb\urel\MyGame.rsc”-“!:\ system\apps\MyGame\MyGame.rsc” “\epoc32\release\thumb\urel\MyGame.mbm”-“!:\ system\apps\MyGame\MyGame.mbm” “\epoc32\release\thumb\urel\MyGame.aif”-“!:\ system\apps\MyGame\MyGame.aif” “..\MyGame\MyGameSample.wav”-“!:\system\apps\MyGame\MyGameSample.wav”
UID продукта определяет требуемую для приложения среду. Приложение не будет инсталлироваться на устройства с неподходящей средой. Большинство версий Series 60 Platform обратно совместимы между собой. Это значит, что программа, написанная для Series 60 Platform 1.2, запустится и на Series 60 Platform 2.0 устройстве. В следующей таблице приведены UID самых распространенных Series 60 устройств:
Nokia 7650 | 0x101F6F87 |
Nokia 3650 | 0x101F7962 |
Nokia 9210 and 9290 | 0x10005E33 |
Nokia N-Gage™ Mobile Game Deck | 0x101F8A64 |
Siemens SX1 | 0x101F9071 |
Series 60 Platform v0.9 | 0x101F6F88 |
Series 60 Platform v1.0 | 0x101F795F |
Series 60 Platform v1.1 | 0x101F8201 |
Series 60 Platform v1.2 | 0x101F8202 |
Series 60 Platform v2.0 | 0x101f7960 |
Вы можете управлять процессом инсталляции в зависимости от устройства. Например, для разных устройств Вы можете установить различные версии файлов. Это можно сделать, настроив pkg файл:
; ; Файл для инсталляции ; IF MachineUID=0x101fb3dd ; Для Nokia 6600 “..\MyFiles\FileFor6600.dat”-“!:\system\apps\MyGame\MyData.dat” ELSEIF MachineUID=0x101f466a ;Для Nokia 3650 “..\MyFiles\FileFor3650.dat”-“!:\system\apps\MyGame\MyData.dat” ELSE ; Для других устройств “..\MyFiles\FileForOthers.dat”-“!:\system\apps\MyGame\MyData.dat” ENDIF
Таким образом, Вы легко можете создать один инсталляционный файл для нескольких устройств. Помимо MachineUID существует множество различных атрибутов, например MemoryRAM и CPU. Заметьте, что Machine UID это не то же самое, что Product UID. Ниже приведены некоторые Machine UID.
Nokia 7650 | 0x101F4FC3 |
Nokia 3650 | 0x101F466A |
Nokia 6600 | 0x101FB3DD |
Nokia 9210 and 9290 | 0x10005E33 |
Nokia N-Gage™ Mobile Game Deck | 0x101F8C19 |
Win32 Emulator | 0x10005F62 (см. epoc32\include\hal_data.h) |
Используя следующий код, чтобы узнать machine uid устройства
#include // добавим связь с hal.lib TInt machineUid = 0; HAL::Get(HALData::EmachineUid, machineUid);
Приведенный выше код Вы можете использовать, чтобы создать инсталлятор для конкретных устройств.
Перевод:aRix