Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #71, ОКТЯБРЬ 2006 г.

высокохудожественный симбиоз

ДМИТРИЙ ТАРАСОВ AKA DEM@N

Спецвыпуск: Хакер, номер #071, стр. 071-074-2


CXaObject *xaObj = new CXaObject;

CleanupStack::PushL(xaObj);

Часто в коде одной функции создается несколько объектов, и после того, как они уже были использованы и больше не нужны, необходимо освободить ресурсы и удалить объекты из CleanupStack, что делается следующим образом:

CleanupStack::PopAndDestroy(xaObj);

В случае, если после выполнения функции созданные локальные объекты не будут удалены, наша программа аварийно закроется при выполнении. Работа с освобождением ресурсов - очень важный момент при кодинге под Symbian, поэтому рекомендую тщательно изучить соответствующую документацию.

[что есть что в Application Framework]

У начинающих кодеров под Symbian при созерцании взятого из SDK простейшего примера приложения типа HelloWorld возникает вопрос: «А зачем тут столько файлов и классов?». Действительно, каркас приложения с графическим интерфейсом (консольные приложения под series 60 также можно создавать, но они не представляют никакого интереса) состоит как минимум из четырех классов.

Класс application служит для запуска приложения и для создания так называемого документа приложения.

Класс document представляет собой движок приложения и создает объект класса интерфейса пользователя.

Класс AppUi служит для обработки действий пользователя и команд и представляет наибольший интерес, поскольку именно в этом классе определяют такие любопытные виртуальные функции базового класса «base» как:

- HADLEKEYEVENT(), ВЫЗЫВАЕМУЮ ПРИ НАЖАТИИ НА КЛАВИШУ СМАРТФОНА;

- HANDLESWITCHONEVENTL(), ОБРАБАТЫВАЮЩУЮ СОБЫТИЯ ПРИ СТАРТЕ СМАРТФОНА;

- HANDLECOMMAND(), ВЫЗЫВАЕМУЮ ДЛЯ ОБРАБОТКИ КОМАНД ПОЛЬЗОВАТЕЛЯ.

Класс Container требуется для отображения данных на экране смартфона.

При разработке собственного приложения целесообразно использовать данный шаблон, который идет с любым SDK и наращивать функциональность указанных классов.

[как подружить ПО с родной речью.]

Вполне возможно, что ты захочешь использовать в своем приложении надписи и диалоги на русском языке (хотя ориентироваться на отечественного потребителя в большинстве случаев бессмысленно). Все надписи на пунктах меню, диалогах и строки хранятся в файле ресурсов. Для того чтобы вместо абракадабры на экране мобилы отображалась нормальная кириллица, достаточно сохранить этот файл в кодировке utf-8. Разумеется, для этого подойдет наш любимый Блокнот :).

[как заставить программу автоматически запускаться при старте телефона.]

Как ты, наверное, знаешь, в Symbian нет такого понятия как реестр. Автозагрузки, соответственно, тоже нет. Поэтому для автозапуска приложения обычно приходится извращаться, используя рекогнайзеры - программы, либо части кода проекта, которые служат для связывания определенных типов приложений (текстовые файлы, графика, и т.д.) с определенными программами, служащими для их открытия. Соответственно, если написать рекогнайзер, ставящий в соответствие файл нашей программы приложению, создающему процесс при загрузке телефона (apprun.exe, к примеру), то можно заставить этот процесс запускать нашу прогу :). Кодинг рекогнайзеров - тема довольно обширная, поэтому я не буду углубляться сейчас в детали. Я предлагаю воспользоваться уже готовой разработкой от парней с http://newlc.com. Продукт называется ezboot и представляет собой sis-файл, который легко интегрируется с нашим проектом. Прога эта бесплатна для некоммерческого использования, что очень приятно. На том же сайте есть и исходник для особо интересующихся. Для того чтобы заставить запускаться прогу при старте телефона, потребуется:

Назад на стр. 071-074-1  Содержание  Вперед на стр. 071-074-3