Операционная система tizenВведение в tizen.О платформе 4 •...

Post on 02-Mar-2020

19 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Операционная система Tizen

для разработчика

Ренат Няжеметдинов

Старший специалист по новым

мобильным платформам,

Samsung Russia

Содержание

2

• Введение в Tizen

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

• Разработка приложений для Tizen

Введение в

Введение в Tizen. О платформе

4

• Операционная система:

– открытый исходный код

– ядро Linux

• Архитектура: x86, ARM

• Поддержка:

– Linux Foundation

– Tizen Association:

• OEM:

• Операторы:

Введение в Tizen. Основные черты Tizen

5

• Web-ориентированная платформа

– Высокий уровень поддержки стандартов HTML5

http://html5test.com

– WebKit2

– Web-компоненты для интерфейса пользователя

– Доступ к функциям устройства через Web API

• Нативный API (C/C++)

– Glibc, libstdc++, libxml2

– OpenGL® ES, OpenAL и OpenMP®

– Высокий уровень совместимости с bada 2.0 API

• Встроенный магазин приложений

– Бесплатная регистрация

– Предустановлен на все устройства Tizen

Введение в Tizen. Разновизности Tizen

6

Мобильные устройства

Компьютеры (Tizen PC)

Информационно-развлекательные

системы автомобилей (Tizen IVI)

И другие устройства:

• Телевизоры

• Бытовая техника

• Носимая электроника

• Медицинская техника Часы (Gear 2) Камеры (NX300M)

Введение в Tizen. Profiles

7

• Mobile – мобильные устройства

• IVI – развлекательные системы для транспортных средств

• PC – desktops, laptops

• TV – DTV/STB/IPTV

• Wearables – носимые устройства (например, Samsung Gear 2)

• …

История Tizen

8

История релизов Tizen Mobile Profile

9

Web-centric

platform

- Поддержка HTML5

- Tizen Device Web

API

- Web UI framework

(основана на

jQueryMobile

Extension)

Tizen 1.0 Web/Native dual

framework

- Native API

- Униф. SDK для Web &

native

- Web Runtime – WebKit2

- Web Audio, HTML Media

Capture

- HTML Drag & Drop,

Clipboard

Tizen 2.0 Hybrid Web/Native,

Enhanced Security, and

Optimized Perf.

- Hybrid Web и native app

- Content security policy

- Trusted inter-app sharing

- Account management

- QR code and image

recognition

- Systemd replacing init

daemon

Tizen 2.1

Апр. 2012 Фев. 2013 Май 2013

Commercial Ready

w/ Enhanced UX

- H/W Menu & Back

key

- Better Font Legibility

- H/W LED Notification

- Integration of Apps w/

Contact

- Native API for Secure

Element

- UI Customizer

- Live Web App. Editing

Tizen 2.2

Июль 2013

Minor Update

- Privacy menu in

settings

- Applications

installed in SD

cards

Add-on SDK

- Accelerated

computing

(OpenCL &

WebCL)

- Bada app

migration

- In app purchase

- Twitter

Tizen 2.2.1

Нояб.2013

- Multi-user

- 64 bit architecture

- 3D UI Framework

- Wayland based compositor

Tizen 3.x

Q3 2014

Архитектура

(Mobile Profile)

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

11

Архитектура Tizen. HW Adaptation Layer

12

Архитектура Tizen. Компоненты системы

13

Архитектура Tizen. Безопастность

14

• SMACK - Simple Mandatory Access Control Kernel. Обеспечивает защиту системы

(системных демонов, файлов, сетевых интерфейсов, IPC …).

• SMACK обеспечивает изоляцию приложений (sandboxing) от

несанкционированного доступа.

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

15

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

16

Обеспечивает:

• жизненный цикл Web-приложения

• выполнение Web-приложения

• доступ к ресурсам устройства из JS

• контроль доступа Web-приложения

Архитектура Tizen. Графика

17

EFL – Enlightenment Foundation Libraries

Набор графических библиотек для построения графических

приложений.

Разработка

приложений для

Разработка приложений для Tizen. Типы приложений

19

• Нативные приложения

• Web-приложения

• Гибридные приложения

• Системные приложения

Tizen Store

Разработка приложений для Tizen. Native Framework

20

Разработка приложений для Tizen. Пространства имён

21

App Media Telephony

Base Messaging Text

Content Net Ui

Graphics Security Uix

Io Shell Web

Locales Social

Locations System

Разработка приложений для Tizen. Жизненный цикл

нативного приложения

22

Разработка приложений для Tizen. Web Framework

23

Разработка приложений для Tizen. Жизненный цикл

web-приложения

24

Разработка приложений для Tizen. Web, нативные и

гибридные

25

Web Hybrid Native

Скорость и стоимость разработки + +/- -

Портируемость + +/- -

Производительность - + +

Полный доступ к устройству - + +

Формат установочного файла .wgt .wgt* .tpk

Разработка приложений для Tizen. Концепция

гибридного приложения

26

Native Service Web App

• Message Port

• Websocket

• JavaScriptBridge plugin

“Bridge”

Разработка приложений для Tizen. Системные

приложения

27

• Исчерпывающие возможности для доступа к устройству

• Исчерпывающая производительность

• Обычно разрабатываются OEM или разработчиками

платформы

• Не гарантируется обратная совместимость

• Не публикуется в Tizen Store

• Возможно добавить в официальные репозитории через

формальную процедуру

Разработка приложений для Tizen. Tizen SDK

28

• 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

Разработка приложений для Tizen. Tizen SDK+

29

Tizen Native Tizen Web

• Компиляторы GCC 4.5, LLVM 3.1

• C++ ANSI ISO 14882 2003

• Glibc, libstdc++, libxml2

• OpenGL® ES, OpenAL и OpenMP®

• Code Editor, Project Explorer, Connection

Explorer

• UI Builder (WYSIWYG)

• UI Effect Builder

• Отладчик (GDB)

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

(OProfile, Valgrind, Dynamic Analyzer)

• Device Emulator (QEMU-based)

• Event Injector

• Unit-Test Tool

• CLI

• W3C/HTML5, CSS3, JavaScript

• Code Editor, Project Explorer, Connection

Explorer

• Web UI Framework

• Web UI Builder (WYSIWYG)

• jQuery

• jQuery Mobile

• Web Simulator

• Device Emulator

• Event Injector

• CLI

Разработка приложений для Tizen. Сторонние

инструменты

30

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/

Разработка игр для Tizen

31

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/

Разработка платформы. Роли в проекте

32

Разработка платформы. Права и обязанности

участников

33

Участник Описание деятельности Права и обязанности

Architect Наблюдение, советы,

направление развития

Прогресс в целом

Разработка технических целей

Maintainer Поддержка пакетов и

обеспечение прогресса

Внесение изменений в пакет

Отвечает за качество пакета

Участие в release

Reviewer Принятие решений

относительно изменений

Решения относительно изменений

Участие в review

Участие в release

Release Engineer Создание предрелизных и

релизных образов

Создание образов

Smoke test образов

Участие в release

Developer Разработка кода, другой

вклад в разработку

Разработка кода

Внесение изменений

Ревью

Участие в дискуссиях

QA Engineer Обеспечение качества

релиза

Тестирование образов

Разработка платформы. Алгоритм работы

34

Разработка платформы. Подготовка к работе

(пререквизиты)

35

1. Регистрация на www.tizen.org

Разработка платформы. Подготовка к работе

(пререквизиты)

36

2. Войдите на www.tizen.org

Разработка платформы. Подготовка к работе

(пререквизиты)

37

3. Войдя на review.tizen.org, добавьте SSH Public Key (см. подробное описание в “How to

Generate an SSH Key” на текущей странице сайта)

Разработка платформы. Подготовка к работе

(пререквизиты)

38

4. Следуйте подробному описанию https://source.tizen.org/ru/documentation/developer-

guide/environment-setup) – п.1.2. Убедитесь, что у вас есть доступ по ssh:

Разработка платформы. Подготовка к работе

(пререквизиты)

39

5. Сконфигурируйте Git (https://source.tizen.org/ru/documentation/developer-

guide/environment-setup) – п.1.3). Убедитесь, что Git настроен должным образом:

Разработка платформы. Как изменения становятся

частью проекта Tizen

40

Основные понятия

1. Change – изменения, которые будут приняты в случае

положительного решения. Для каждого Change есть свой

уникальный ChangeId

2. Commit – изменения, входящие в Change (термин Git’а)

3. Patch Set – изменения, входящие в Change (термин Gerrit’а)

Patch Set это Commit отправленный на ревью и верификацию.

Change может включать один или несколько Patch Set’ов, решение о

принятии относится к последнему из них.

Разработка платформы. Как изменения становятся

частью проекта Tizen

41

Основные критерии при принятии изменений (Change)

Объективные/Технические

• это компилируется?

• нет ли ошибок в изменении (Change)?

• это изменение (Change) делает то, о чём заявляется?

• изменение (Change) следует правилам кодирования?

• изменение (Change) вносится в нужную ветку Tizen?

Субъективные

• изменение (Change) в духе идеологии TSG, архитектора,

мейнтейнера?

• добавляет ли изменение (Change) риск нестабильности?

• данное решение наилучшее?

• изменение (Change) сделано в подходящее время?

Разработка платформы. Как изменения становятся

частью проекта Tizen

42

Для положительного решения о принятии изменения (Change) код должен быть проверен

(поле Verified) и просмотрен кем-то из ревьюеров (+2 в поле Code-Review). После

этого автоматически произойдёт merge-процесс посланных изменений (Change). Об

этом факте будет послано уведомление (письмо). Пример:

Разработка платформы. Как изменения становятся

частью проекта Tizen

43

1. Практически работа с проектом Tizen заключается во внесении

изменений (Change) - одного или нескольких.

2. Каждое изменение (Change) включается в Tizen проект при

положительном принятии решения о его включении. Это решение

основано на верификации (поле Verified) и ревью изменения

(Change) (+2 в поле Code-Review).

3. Каждое изменение (Change) вносится посредством

автоматического merge-процесса при удовлетворении условий из

предыдущего пункта.

4. Автоматический merge-процесс осуществляется, если у данного

изменения (Change) нет зависимостей от других изменений

(Change), которые содержат ещё не замердженные родительские

Commit’ы. В противном случае merge-процесс осуществляться не

будет.

Разработка платформы. Работа (шаг за шагом)

44

1. Войдя на review.tizen.org, выберите Projects -> List. В появившемся списке выберете

samples/web/FileManager проект. Нажмите на “SSH” чтобы получить строку для

клонирования проекта:

Разработка платформы. Работа (шаг за шагом)

45

2. Далее клонируйте проект, перейдите в его директорию, посмотрите какие ветки

существуют и переключитесь в нужную вам ветку, например, tizen_2.2:

Разработка платформы. Работа (шаг за шагом)

46

3. Скопируйте commit-msg hook в директорию проекта:

scp –p –P 29418 stanslavnim@review.tizen.org:hooks/commit-msg .git/hooks/

Разработка платформы. Работа (шаг за шагом)

47

4. Работа с кодом проекта:

• cоздайте свою локальную ветку, например, с именем model_improve:

git checkout -b model_improve

• внесите в этой ветке в код свои изменения

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

Разработка платформы. Работа (шаг за шагом)

48

4. Работа с кодом проекта (продолжение):

• проверьте какие изменения ещё не добавлены : “git status”

• добавьте свои изменения: “git add js/app.model.js”

• проверьте, что изменения добавлены: “git status”

• выполните команду: “git commit -s”

Разработка платформы. Работа (шаг за шагом)

49

4. Работа с кодом проекта (продолжение):

• убедитесь, что commit содержит

Change-Id и Signed-off-by теги: “git

log”

Разработка платформы. Работа (шаг за шагом)

50

4. Работа с кодом проекта (продолжение):

• отправьте изменения (Commit) командой

git push origin ваша_локальная_ветка:refs/for/удалённая_ветка

пример:

git push origin HEAD:/refs/for/tizen_2.2

Разработка платформы. Работа (шаг за шагом)

51

4. Работа с кодом проекта (продолжение):

• используя ссылку с предыдущего слайда (см. вывод в консоль) можно посмотреть

информацию об изменении (Change, который представляет собой один Patch Set

(Commit)):

Разработка платформы. Работа (шаг за шагом)

52

4. Работа с кодом проекта (продолжение):

• для review-процесса нужно добавить ревьюеров – используя кнопку “Add Reviewer”

(напр. добавив ревьюера через его почтовый адрес)

• после этого можно ожидать review изменений

Разработка платформы. Работа (шаг за шагом)

53

4. Работа с кодом проекта

(продолжение):

• после добавления ревьюера

ему/ей придёт уведомление

(письмо)

Разработка платформы. Работа (шаг за шагом)

54

4. Работа с кодом проекта

(продолжение):

• ревьюер может (например)

высказать замечание

(comments) к этому

изменению (Patch Set), при

этом автору будет выслано

уведомление (письмо) о

факте произведённых

ревьюером действий

Разработка платформы. Работа (шаг за шагом)

55

4. Работа с кодом проекта (продолжение):

• более подробную информацию (комментарии) можно посмотреть, пройдя по ссылке,

относящейся к данному изменению (Change)

Разработка платформы. Работа (шаг за шагом)

56

4. Работа с кодом проекта (продолжение):

• кликнув там, где оставлен комментарий, можно увидеть его содержимое

Разработка платформы. Работа (шаг за шагом)

57

4. Работа с кодом проекта (продолжение):

• вносим исправления согласно комментарию и отправляем новые изменения

(Commit)

Разработка платформы. Работа (шаг за шагом)

58

4. Работа с кодом проекта (продолжение):

• пройдя по ссылке, относящейся к данному изменению (Change) можно увидеть то,

что было недавно отправлено (Patch Set 2)

Разработка платформы. Работа (шаг за шагом)

59

4. Работа с кодом проекта (продолжение):

• при этом всем ревьюрам (которые были добавлены ранее) придёт уведомление

(письмо)

Разработка платформы. Работа (шаг за шагом)

60

4. Работа с кодом проекта (продолжение):

• ревьюер может посмотреть разницу в коде – сравнив то, что стало, с тем, что было

(Patch Set 1 и Patch Set 2)

Разработка платформы. Работа (шаг за шагом)

61

4. Работа с кодом проекта (продолжение):

• удовлетворившись правкой, ревьюер может сделать +1 к изменению (Change) –

после этого автору придёт уведомление об этом (письмо)

Разработка платформы. Работа (шаг за шагом)

62

4. Работа с кодом проекта (продолжение):

• пройдя по ссылке, относящейся к данному изменению (Change), можно увидеть в

Code-Review +1. Аналогично, в Code-Review может быть поставлено +2

Разработка платформы. Работа (шаг за шагом)

63

4. Работа с кодом проекта (продолжение):

• далее данное изменение (Change) будет ожидать верификации (поле Verified) и

одобрения (+2 в поле Code-Review)

О том, что произойдет дальше (автоматический merge-процесс) уже было рассказано

выше, при этом работу по внесению изменений в проект Tizen можно считать

успешно законченной.

Разработка платформы. Что делать в случае неуспеха

(непринятии изменений)?

64

Возможные варианты:

1. в процессе верификации выяснилось, что код не работает (будет

отметка в поле Verified)

возможные решения:

• сделать так чтобы он работал

2. код проверен и работает, но что-то не устраивает - есть замечания

возможные решения:

• исправить код согласно замечаниям

3. сделан reject (-2 в поле Code-Review) – изменение не нужно:

возможное решение:

• написать в рассылке обоснование, что это изменение нужно –

возможно будет принято положительное решение

Официальные ресурсы

65

Основной сайт:

https://www.tizen.org

Для разработчиков:

https://www.developer.tizen.org

Исходный код:

https://www.source.tizen.org

Сообщения об ошибках:

https://www.bugs.tizen.org

Выводы

66

• Tizen – универсальная операционная система с открытым

исходным кодом на основе ядра Linux

• Tizen разрабатывается под покровительством Linux Foundation

• Компоненты, входящие в состав Tizen, обеспечивают высокую

производительность и безопасность

• Tizen SDK предлагает для разработчика полный набор

необходимых инструментов для разработки приложений с

помощью технологий HTML5 и/или C/C++

• Поддержка со стороны компаний-партнёров Tizen Association и

сообщества помогают быстро решать возникающие проблемы

Информация и поддержка

67

• Сайты для разработчиков

– Intel Developer Zone: http://software.intel.com/ru-ru

– Samsung Developers: http://developer.samsung.com

– Форумы для разработчиков: https://developer.tizen.org/forums

• Программа предоставления устройств разработчикам:

https://developer.tizen.org/support/development-unit-program/available-

development-units

• Инструменты

– Web-симулятор: https://01.org/web-simulator/

– Remote Test Lab: http://developer.samsung.com/remotetestlab

• Информация и новости на русском языке

– Landing page: http://www.samsung.com/ru/samsungdev/

– Хабрахабр: http://habrahabr.ru/hub/tizen/

– ВКонтакте: http://vk.com/tizen_russia

– Facebook: https://www.facebook.com/groups/rtdug/

– G+: https://plus.google.com/u/0/communities/117292026335703446671

Спасибо за

внимание!

Ренат Няжеметдинов

http://www.samsung.com/ru/samsungdev/

dev.cis@partner.samsung.com

top related