Разработка Приложений Для Tizen. Tizen SDK
Total Page:16
File Type:pdf, Size:1020Kb
Операционная система Tizen для разработчика Ренат Няжеметдинов Старший специалист по новым мобильным платформам, Samsung Russia Содержание • Введение в Tizen • Архитектура Tizen • Разработка приложений для Tizen 2 Введение в Введение в Tizen. О платформе • Операционная система: – открытый исходный код – ядро Linux • Архитектура: x86, ARM • Поддержка: – Linux Foundation – Tizen Association: • OEM: • Операторы: 4 Введение в Tizen. Основные черты Tizen • Web-ориентированная платформа – Высокий уровень поддержки стандартов HTML5 http://html5test.com – WebKit2 – Web-компоненты для интерфейса пользователя – Доступ к функциям устройства через Web API • Нативный API (C/C++) – Glibc, libstdc++, libxml2 – OpenGL® ES, OpenAL и OpenMP® – Высокий уровень совместимости с bada 2.0 API • Встроенный магазин приложений – Бесплатная регистрация – Предустановлен на все устройства Tizen 5 Введение в Tizen. Разновизности Tizen Мобильные Компьютеры Информационно- устройства (Tizen PC) развлекательные системы автомобилей (Tizen IVI) И другие устройства: • Телевизоры • Бытовая техника • Носимая электроника Часы (Gear 2) Камеры (NX300M) • Медицинская техника 6 Введение в Tizen. Profiles • Mobile – мобильные устройства • IVI – развлекательные системы для транспортных средств • PC – desktops, laptops • TV – DTV/STB/IPTV • Wearables – носимые устройства (например, Samsung Gear 2) • … 7 История Tizen 8 История релизов Tizen Mobile Profile Tizen 2.2.1 Tizen 2.2 Minor Update Tizen 2.1 Commercial Ready - Privacy menu in w/ Enhanced UX settings Tizen 2.0 Hybrid Web/Native, - H/W Menu & Back - Applications Enhanced Security, and installed in SD Web/Native dual key Tizen 1.0 Optimized Perf. cards framework - Better Font Legibility - Hybrid Web и native app - H/W LED Notification Add-on SDK Web-centric - Native API - Content security policy - Integration of Apps w/ - Accelerated platform - Униф. SDK для Web & - Trusted inter-app sharing Contact computing - Поддержка HTML5 native - Account management - Native API for Secure (OpenCL & - Tizen Device Web - Web Runtime – WebKit2 - QR code and image Element WebCL) API - Web Audio, HTML Media recognition - UI Customizer - Bada app - Web UI framework Capture - Systemd replacing init - Live Web App. Editing migration - HTML Drag & Drop, (основана на daemon - In app purchase Clipboard jQueryMobile - Twitter Extension) Апр. 2012 Фев. 2013 Май 2013 Июль 2013 Нояб.2013 Tizen 3.x - Multi-user - 64 bit architecture Q3 2014 - 3D UI Framework - Wayland based compositor 9 Архитектура (Mobile Profile) Архитектура Tizen 11 Архитектура Tizen. HW Adaptation Layer 12 Архитектура Tizen. Компоненты системы 13 Архитектура Tizen. Безопастность • SMACK - Simple Mandatory Access Control Kernel. Обеспечивает защиту системы (системных демонов, файлов, сетевых интерфейсов, IPC …). • SMACK обеспечивает изоляцию приложений (sandboxing) от несанкционированного доступа. 14 Архитектура Tizen. Web 15 Архитектура Tizen. WRT Обеспечивает: • жизненный цикл Web-приложения • выполнение Web-приложения • доступ к ресурсам устройства из JS • контроль доступа Web-приложения 16 Архитектура Tizen. Графика EFL – Enlightenment Foundation Libraries Набор графических библиотек для построения графических приложений. 17 Разработка приложений для Разработка приложений для Tizen. Типы приложений Tizen Store • Нативные приложения • Web-приложения • Гибридные приложения • Системные приложения 19 Разработка приложений для Tizen. Native Framework 20 Разработка приложений для Tizen. Пространства имён App Media Telephony Base Messaging Text Content Net Ui Graphics Security Uix Io Shell Web Locales Social Locations System 21 Разработка приложений для Tizen. Жизненный цикл нативного приложения 22 Разработка приложений для Tizen. Web Framework 23 Разработка приложений для Tizen. Жизненный цикл web-приложения 24 Разработка приложений для Tizen. Web, нативные и гибридные Web Hybrid Native Скорость и стоимость разработки + +/- - Портируемость + +/- - Производительность - + + Полный доступ к устройству - + + Формат установочного файла .wgt .wgt* .tpk 25 Разработка приложений для Tizen. Концепция гибридного приложения “Bridge” Native Service Web App • Message Port • Websocket • JavaScriptBridge plugin 26 Разработка приложений для Tizen. Системные приложения • Исчерпывающие возможности для доступа к устройству • Исчерпывающая производительность • Обычно разрабатываются OEM или разработчиками платформы • Не гарантируется обратная совместимость • Не публикуется в Tizen Store • Возможно добавить в официальные репозитории через формальную процедуру 27 Разработка приложений для Tizen. Tizen SDK • IDE на базе Eclipse • Документация • Примеры приложений • Кроссплатформенность – Linux: Ubuntu® – Microsoft Windows® XP (x86) – Microsoft Windows® 7 (x86, x64) – Apple Mac OS® X: 10.7 Lion/10.8 Mountain Lion (x64) • Live Images (ISO): https://developer.tizen.org/forums/sdk-ide/tizen-sdk-live-dvd 28 Разработка приложений для Tizen. Tizen SDK+ Tizen Native Tizen Web • Компиляторы GCC 4.5, LLVM 3.1 • W3C/HTML5, CSS3, JavaScript • C++ ANSI ISO 14882 2003 • Code Editor, Project Explorer, Connection • Glibc, libstdc++, libxml2 Explorer • OpenGL® ES, OpenAL и OpenMP® • Web UI Framework • Code Editor, Project Explorer, Connection • Web UI Builder (WYSIWYG) Explorer • jQuery • UI Builder (WYSIWYG) • jQuery Mobile • UI Effect Builder • Web Simulator • Отладчик (GDB) • Device Emulator • Инструменты для профилирования • Event Injector (OProfile, Valgrind, Dynamic Analyzer) • CLI • Device Emulator (QEMU-based) • Event Injector • Unit-Test Tool • CLI 29 Разработка приложений для Tizen. Сторонние инструменты https://www.tizen.org/about/partner-tools • Appcelerator – Более 60 000 мобильных приложений – Более 175 млн. устройств – http://www.appcelerator.com/titanium/ • Intel XDK – HTML5, JavaScript, CSS3 – Web-симулятор – Tizen, Android, iOS – http://xdk.intel.com/ • Marmalade – Быстрая и простая разработка – Большая популярность – https://www.madewithmarmalade.com/ • Sencha Touch – Самый популярный HTML5 фреймворк – Поддержка темы Tizen – http://www.sencha.com/products/touch/ • DevExtreme – HTML5 фреймворк и плагин для разработки в Visual Studio. – https://www.devexpress.com/products/html-js/ 30 Разработка игр для Tizen https://www.tizen.org/about/partner-tools • Project Anarchy by Havok – Игровой движок на C++ – Havok Vision Engine – Инструменты физики, анимаций, ИИ – http://www.projectanarchy.com/ • GameSalad Creator – Быстрые проектирование и публикация – Нет необходимости в коде – http://gamesalad.com/creator • YoYo Games GameMaker: Studio – Рекордно быстрое и дешевое создание игр – http://yoyogames.com/studio • Unity Games – Издательский отдел Unity Technologies – Помощь в распространении игр – http://www.unitygames.com/ 31 Разработка платформы. Роли в проекте 32 Разработка платформы. Права и обязанности участников Участник Описание деятельности Права и обязанности Architect Наблюдение, советы, Прогресс в целом направление развития Разработка технических целей Maintainer Поддержка пакетов и Внесение изменений в пакет обеспечение прогресса Отвечает за качество пакета Участие в release Reviewer Принятие решений Решения относительно изменений относительно изменений Участие в review Участие в release Release Engineer Создание предрелизных и Создание образов релизных образов Smoke test образов Участие в release Developer Разработка кода, другой Разработка кода вклад в разработку Внесение изменений Ревью Участие в дискуссиях QA Engineer Обеспечение качества Тестирование образов релиза 33 Разработка платформы. Алгоритм работы 34 Разработка платформы. Подготовка к работе (пререквизиты) 1. Регистрация на www.tizen.org 35 Разработка платформы. Подготовка к работе (пререквизиты) 2. Войдите на www.tizen.org 36 Разработка платформы. Подготовка к работе (пререквизиты) 3. Войдя на review.tizen.org, добавьте SSH Public Key (см. подробное описание в “How to Generate an SSH Key” на текущей странице сайта) 37 Разработка платформы. Подготовка к работе (пререквизиты) 4. Следуйте подробному описанию https://source.tizen.org/ru/documentation/developer- guide/environment-setup) – п.1.2. Убедитесь, что у вас есть доступ по ssh: 38 Разработка платформы. Подготовка к работе (пререквизиты) 5. Сконфигурируйте Git (https://source.tizen.org/ru/documentation/developer- guide/environment-setup) – п.1.3). Убедитесь, что Git настроен должным образом: 39 Разработка платформы. Как изменения становятся частью проекта Tizen Основные понятия 1. Change – изменения, которые будут приняты в случае положительного решения. Для каждого Change есть свой уникальный ChangeId 2. Commit – изменения, входящие в Change (термин Git’а) 3. Patch Set – изменения, входящие в Change (термин Gerrit’а) Patch Set это Commit отправленный на ревью и верификацию. Change может включать один или несколько Patch Set’ов, решение о принятии относится к последнему из них. 40 Разработка платформы. Как изменения становятся частью проекта Tizen Основные критерии при принятии изменений (Change) Объективные /Технические • это компилируется? • нет ли ошибок в изменении (Change)? • это изменение (Change) делает то, о чём заявляется? • изменение (Change) следует правилам кодирования? • изменение (Change) вносится в нужную ветку Tizen? Субъективные • изменение (Change) в духе идеологии TSG, архитектора, мейнтейнера? • добавляет ли изменение (Change) риск нестабильности? • данное решение наилучшее? • изменение (Change) сделано в подходящее время? 41 Разработка платформы. Как изменения становятся частью проекта Tizen Для положительного решения о принятии изменения (Change) код