Новости S40 S60 |
Телефоны S40 |
Смартфоны S60 |
Статьи и документация |
Программы для S40 S60 |
Игры для S40 S60 |
Темы для S40 S60 |
База ссылок по S40 S60 |
Написать редактору |
Системная библиотека платформы Symbian OS содержит множество предопределенных классов для работы с графикой, диалогами, строками, массивами, функциями печати, контролем над событиями, получаемыми с клавиш телефона и многим другим. В названиях классов используются префиксные английские заглавные буквы, подразделяющие классы на категории. Применяя такую систему работы с классами, можно очень легко добиться прозрачности и понятности использовании созданных классов в любом месте исходного кода всей программы.
При работе с классами в Symbian OS используются префиксные английские заглавные буквы: С, R, М и Т, обозначающие ту или иную область использования данного класса. Еще употребляется буква D, но этот вид классов применяется в низкоуровневом программировании для ядра системы Symbian OS. Необходимо иметь в виду, что при работе с классами с, R, М и Т система очистки или механизм освобождения захваченных ресурсов абсолютно разный.
Классы с заглавной префиксной буквой C - это любые производные или наследуемые классы от основного класса CBase. При создании производных классов от CBase на основе оператора new (ELeave), все создаваемые члены класса данного объекта автоматически обнуляются. Классы С по умолчанию находятся в динамически распределенной памяти (в куче). По окончанию работы с классами С объекты должны обязательно удаляться из памяти.
Классы, начинающиеся с буквы R, ассоциируются с классами ресурсов. При создании объектов этих классов, они по умолчанию размещаются в динамически распределяемой памяти. По окончанию работы с классами R необходимо позаботиться о явном освобождении захваченных ресурсов и выгрузке объектов из памяти. Сделать это можно с помощью системной функции Close ().
Классы, использующие заглавную букву Т, являются базовыми классами для всех типов данных в API Symbian OS. В связи с этим классы Т не имеют деструктора, а работа с такими классами подобна работе с типами данных. При создании объектов классов Т их размещение может происходить в любой области памяти. Так как распределение памяти не происходит, то и требования для очистки минимальны.
В API Symbian OS с заглавной буквы М начинаются названия всех интерфейсов. В состав интерфейсов входит набор предопределенных виртуальных функций, доступ к которым можно получить через классы, реализующие данный интерфейс. Все классы, реализующие тот или иной интерфейс, начинаются с заглавной буквы М.
Статические классы не имеют определенных правил написания. В Symbian OS статические классы применяются в основном как контейнеры для библиотечных функций.
В системной библиотеке Symbian OS есть несколько видов функций, два из них - это уходящие функции (leaving function) и неуходящие функции (non-leaving function). Эти технические термины влияют на сущность двух видов функций.
Symbian OS очень компактная система, работа которой рассчитана на устройствах с минимальными системными ресурсами. Вследствие этого в Symbian OS концепция освобождения захваченных ресурсов является важнейшим действием, которое необходимо учитывать при создании программ. Сидя за компьютером при "зависании" операционной системы, вы с легкостью можете перегрузить ее при помощи кнопки Reset на системном блоке, что абсолютно недопустимо для телефона. Поэтому в Symbian OS применяется одна из наиболее продуманных систем освобождения ресурсов. Например, работая с одной из программ в Symbian OS, вы пытаетесь загрузить какой-то файл ресурса этой программы, и по каким-то независящим от вас обстоятельствам данного ресурса нет. Вызвав функцию, вы создаете поток и соответственно выделяете память. Если в итоге вызов этой функции терпит неудачу, то система обязана позаботиться о корректном ее завершении. В Symbian OS такой метод реализован программно на основе уходящего вида функций, которые используют в конце своего названия заглавную букву L, например, NewL (), CreateL (), RunL () и так далее. Но это не значит, что вы можете сделать в программном коде массу ошибок и надеяться, что системные функции все за вас сделают. Этот вид функций заботится лишь об освобождении системных ресурсов, так что исправить свои ошибки сможете только вы сами.
Этот вид функций не имеет каких-либо отличий, но, как правило, это английский глагол, написанный с заглавной буквы и означающий действие, выполняемое функцией. Обычно неуходящие функции выполняют различные обобщенные действия, например, Exit () - выход.
Еще один вид уходящих функций системной библиотеки имеет в конце названия заглавные буквы LC. Эти функции необходимы при работе со стеком. Стек -это область памяти, где содержится адрес возврата при вызове функции. Такой вид функций размещает определенные данные в стек и впоследствии заботится об освобождении или очистке ресурсов, связанных с вызовами этих функций.
Функции, использующие в своих названиях слово Set, например, SetPen-Color (), применяются для установки различных данных, свойств или параметров. То есть этот вид функций, просто задает набор данных для дальнейшей работы с ними. Например, с помощью функции SetColor () можно задать цветовую компоненту для графического элемента.
Функции, использующие в названиях слово Get, например, GetCurrent-Item (), призваны обеспечивать получение определенных комплексных данных. Например, ширина и высота дисплея телефона, на основании которых будет происходить дальнейшая работа с графическим контекстом.
В приложениях под Symbian OS применяются структуры С-подобного стиля. В API содержится небольшое количество структур, особенно они актуальны для 6 и 5 версий Symbian OS. Системная библиотека версии Symbian OS 7 уже менее привязана к структурам, но поскольку имеется обратная совместимость поздних версий API с ранними версиями, то на использование структур ограничений нет. Тем не менее, рекомендуется применять классы Т вместо структур в своих проектах.
Для работы с различными типами данных в Symbian OS определены свои простые типы данных, на основе которых создаются переменные в исходном коде. Чтобы простые типы данных были доступны, в программу нужно подключить системный заголовочный файл e32defs.h. Рассмотрим типы данных в Symbian OS:
Добавить в закладки: