...

понедельник, 9 сентября 2013 г.

Обзор Tizen SDK. Native

Снова здравствуйте, хабражители!

В предыдущей статье мы сделали обзор web-части Tizen SDK. Сегодня мы сделаем обзор нативной части для тех, кому необходима максимальная производительность и полный доступ к функционалу устройства в своих приложениях.


image


Всех заинтересованных приглашаем под кат.



Введение




В предыдущей статье мы уже вкратце рассказали, что такое Tizen, с чем его едят и какая у него специфика. Мы узнали, что Tizen — это открытая операционная система на базе Linux, которая предназначена для широкого круга устройств, таких как смартфоны, планшетные компьютеры, автомобильные информационно-развлекательные системы, ультрабуки, «умные» телевизоры, цифровые камеры, офисная, бытовая и медицинская техника и прочая носимая электроника. Мы смотрели на него глазами web-разработчика. Сегодня, мы взглянем на Tizen SDK с другой, нативной стороны.

Архитектура Tizen




image

Вспоминаем из прошлой статьи, что самый нижний слой архитектуры представляет из себя ядро Linux (для Tizen SDK 2.2 версия 3.4+) с драйверами устройств.


Чуть выше располагаются другие подсистемы ядра:



  • App Framework. Реализует функционал управления приложениями, в том числе запуск других приложений. Обеспечивает уведомление приложений об основных системных событиях, таких как недостаток памяти, низкий заряд батареи, изменение ориентации экрана и push-уведомления.

  • Graphics & UI. Реализует функционал, связанный с графикой и UI, в том числе EFL (Enlightenment Foundation Libraries), оконная подсистема, OpenGL и т.п.

  • Multimedia. Обеспечивает поддержку мультимедиа: видео, аудио, изображения, VoIP, управления метаданными.

  • Location. Представляет функционал для геопозиционирования (GPS, WPS, Cell ID, сенсоры).

  • Messaging. Реализует функционал, связанный с SMS, MMS, email и IM.

  • Web. Реализует Tizen Web API и включает в себя WebKit, обеспечивает поддержку web-приложений.

  • Security. Реализует функционал, связанный с безопасностью, контролем доступа, управления сертификатами и т.п.

  • System. Отвечает за взаимодействие с устройством (сенсоры, дисплей, вибратор), управление электропитанием, мониторинг событий от таких компонент, как USB, MMC, зарядное устройство, ear jack, управление пакетами, обновление устройства, взаимодействие с alarm-сигналами.

  • Base. Содержит ряд системных библиотек, реализующих, помимо базовых функций, функционал для взаимодействия с базами данных, локализации и работы с XML.

  • Connectivity. Отвечает за всё, что связано с сетевыми взаимодействиями (3G, WiFi, Bluetooth, HTTP, NFC).

  • Telephony. Реализует функционал, относящийся к связи и работе модема (UMTS, CDMA, GSM).

  • PIM (Personal Information Management). Отвечает за такой функционал, как взаимодействие с календарём, контактами и задачами.




Можно сделать вывод, что среди функционала есть практически всё, что может понадобиться для разработки самых разных приложений.

Верхний слой представляется из себя пользовательские приложения, которые, напомним, в Tizen бывают трёх типов: web, нативные и гибридные.


Доступ к перечисленным выше подсистемам из приложений осуществляется посредством двух фреймворков: Web Framework и Native Framework. Как и договаривались, сегодня мы остановимся на последнем.


Native Framework




В Tizen Native Framework всё необходимое для доступа к функциональности описанных ваше компонент ядра скомпоновано в лаконичную структуру из 19 пространств имён:





































AppMediaTelephony
BaseMessagingText
ContentNetUi
GraphicsSecurityUix
IoShellWeb
LocalesSocial
LocationsSystem

О назначении каждого из пространств имён можно догадаться по названию: это управление жизненным циклом приложения, работа с основными типами данных, управление контентом, работа с 2D- и 3D-примитивами, текстом, изображениями, файлами, базами данных, реестрами, гопозиционирование, работа с аудио и видео, сообщениями различного типа, сетевое взаимодействие, криптография, управление доступом и работа с сертификатами, управление внешним интерфейсом устройства, управление встроенными аппаратными возможностями, телефония, управление графическим интерфейсом как на стандартном, так и на продвинутом уровнях, работа с сенсорами, работа с web – иными словами, абсолютно полный неограниченный доступ к функционалу Tizen.

При разработке нативных приложений с помощью Tizen Native Framework, необходимо помнить следующее:



  • Разработка ведётся на языке C++ ANSI ISO 14882 2003 (GCC, LLVM)

  • В Tizen Native Framework не используются стандартные исключения C++. Это не означает, что вы не сможете задействовать этот механизм в своём коде, но внутри фреймворка этот механизм не используется.

  • В Tizen Native Framework вместо исключений используются коды возврата.

  • Создание объектов двухфазное (вначале конструктор, а затем явный вызов метода Construct() для объекта).

  • Суффикс ‘N’ для названий функций, которые передают возвращаемый объект во владение разработчику. Т.е. разработчик ответственен за самостоятельное удаление таких объектов после вызова соответствующих функций.

  • Повсеместно используется и поощряется использование идиомы RAII (Resource Acquisition Is Initialization, получение ресурсов есть инициализация).




Нативные приложения в Tizen разделяются на 2 типа: UI-приложения и сервисные приложения. И те, и другие обладают неограниченным доступом к функционалу устройства с максимальной производительностью. Жизненный цикл UI-приложений несколько отличается от жизненного цикла сервисных приложений.

В комплект Tizen SDK также таже входит множество примеров приложений, разработанных с помощью Tizen Native Framework. Опираясь на эти примеры, вы можете с лёгкостью приступить к разработке своего приложения.


А теперь, как и обещали, мы познакомим вас с инструментарием, который предлагает Tizen SDK.


Tizen IDE




Интегрированная среда разработки, входящая в состав Tizen SDK, основана на Eclipse с набором необходимых дополнений и адаптаций для разработки приложений для Tizen. Перспективы Tizen Web и Tizen Native несколько отличаются. Ниже показан скриншот Tizen IDE с перспективой Tizen Native.

image


Интерфейс IDE интуитивно понятен и содержит всё необходимое для разработки, отладки, тестирования и профилирования приложений. Здесь также доступен Event Injector, с помощью которого можно эмулировать различные события, позволяя, таким образом, при разработке обойтись эмулятором.


Для нативной разработки Tizen IDE предлагает следующие инструменты/помощники:



  • API and Privilege Checker. Этот инструмент позволяет выявить нарушения привилегий или API. Он поможет вам, например, если вы используете какой-либо функционал, требующий определённых привилегий, которые отсутствуют в настройках вашего приложения, или если вы используете устаревший API.

  • Applications Settings Editor. Инструмент, позволяющий редактировать настройки вашего приложения.




image

  • Call Stack View. Этот инструмент показывает информацию об отлаживаемом приложении в ситуации отказа.

  • Content Assist. Помогает писать код быстро и эффективно, предоставляя контекстную помощь при написании кода.




image

  • Manifest Text Editor. Позволяет редактировать манифест приложения. В манифесте хранится основная информация о приложении, а также различные глобальные настройки, такие как требуемые привилегии доступа и т.п.

  • Oprofile. Инструмент для профилирования приложения.




image

  • Project Wizard. Мастер создания проектов. Разработчику доступны следующие типы проектов: Empty Application, Form-based Application, IME Application, Library, OpenGL Application, Service Application, Tab-based Application, Theme Application.

  • Smart Launch. Инструмент, позволяющий запустить приложение на устройстве (или эмуляторе) из IDE.




image

  • Snippets. Средство управления заранее приготовленными фрагментами кода.




image

  • Unit Test Tool. Инструмент для блочного тестирования, который позволяет создавать unit-test-проекты, управлять тест-кейсами и наборами тест-кейсов, анализировать покрытие кода тестами.

  • Valgrind. Инструмент для профилирования памяти на эмуляторе.




image

Dynamic Analyzer




В составе Tizen SDK есть ещё один очень полезный инструмент для разработчика нативных приложений. Это Dynamic Analyzer. Он позволяет анализировать поведение вашего приложения в реальном времени, записывая изменения всех параметров в единый отчёт. Посмотреть, сколько памяти затрачивает приложение, насколько загружает процессор, как обращается к файловой системе и многое-многое другое позволяет Dynamic Analyzer.

image


UI Builder




Следующий инструмент — это Native UI Builder. Как вы уже догадались, это WYSIWYG-редактор пользовательского интерфейса. Не больше и не меньше.

image


UI Effect Builder




Если вам наскучил стандартный пользовательский интерфейс и душа требует сложных графических эффектов, вам понравится инструмент UI Effect Builder. Он позволяет моделировать интерактивные эффекты на основе физических законов и анимации. К сожалению, формат статьи не позволит передать то, как всё это выглядит. Но результат очень легко посмотреть, если собрать и запустить приложение EffectsApp, которое входит в состав примеров из Tizen SDK.

image


Tizen Emulator




И последний инструмент из состава Tizen SDK, который, без сомнения, будет полезен разработчикам нативных приложений, — это Tizen Emulator. Эмулятор представляет из себя виртуальную машину, основанную на QEMU. Он позволяет в «условиях, приближённых к боевым» испытать ваше приложение.

image


Command-Line Interface (CLI)




И конечно же, никуда без командной строки для тех, кто без неё по каким-либо причинам не может.






























native-genГенерирует новый проект.
native-makeСобирает проект.
native-packagingУпаковывает проект.
native-installУстанавливает приложение на устройство (или эмулятор).
native-uninstallУдаляет приложение с устройства (или эмулятора).
native-runЗапускает приложение на устройстве (или эмуляторе).
native-debugЗапускает отладку приложения на устройстве (или эмуляторе).

На этом мы ставим точку в нашем развернутом обзоре. Разве что, осталось упомянуть достаточно подробную документацию, которая также входит в состав Tizen SDK.

Как вы сами убедились, в Tizen SDK есть всё для быстрого старта полноценной разработки нативных приложений для Tizen, к которому вы теперь полностью готовы, а если успели прочитать наш обзор web-части, то ещё и web- и гибридных приложений. Непосредственно о разработке приложений для Tizen мы надеемся рассказать вам в следующих статьях.


Более детальное описание инструментов Tizen SDK можно найти ЗДЕСЬ. Техническую поддержку и ответы на вопросы мы осуществляем здесь: dev.cis@samsung.com


Всего наилучшего и до встречи в следующих статьях!


Tizen Eva Group


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends:



Комментариев нет:

Отправить комментарий