370 likes | 408 Views
Discover Tizen, an open-source platform for diverse devices, offering HTML5-based applications and industry support. Explore its architecture and development features.
E N D
Proprietary Platform • Manufacturers provide different applications and user experiences • Why could not manufacturers provide the same platform for their devices? • The platform has been designed for a specific embedded device. • Manufacturers do not want to share their proprietary platforms.
Tizen is, • Standard-based, cross category platform • Provide common & multiple categories of compliances • Open Source Platform • Tizen project resides within the Linux Foundation • Provides a robust and flexible environment for HTML5 based application
Tizen is W3C Standard-Based • HTML5 is being adopted rapidly, especially for mobile Web app development • Tizen has the top score in html5test.com
Industry Support • NEC, Panasonic, and Telefonica leaved Tizen Association. • Telefonica:Firefox Phone
Tizen Releases Nov.2014 Tizen 2.3 Wearable profile -New native UI builder -Support multi-project packaging. -New mobile web device APIs -Development language for native has changed -Support enlightenment foundation libraries
Tizen Releases • Tizen 2.x Mobile source code continues to be productized
Tizen Releases • Tizen 3.0 • All development happens at tizen.org • Most of code is common and close to upstream development • Moved from in-out to out-in development • Tizen IVI continues to be developed in tizen.org • Configurable and multi-product support with one code base • apps/ • tools/ • sdk/ • scm/ • test/ • doc/ • project/ • Platform • upstream/ • framework/ • Native/ • Web/ • Core/ • … IVI Product Mobile Product ivi/ mobile/ • Profile/ • Mobile/ • Platform/ • ivi/ • …
Tizen Open Source Information • Visit • http://www.tizen.org • http://developer.tizen.org/sdk • http://source.tizen.org/ • https://developer.tizen.org/documentation • Community • Mailing lists: http://www.tizen.org/community/mailing-lists • IRC Channel: #tizen • Wiki: https://www.tizen.org/community/wiki • JIRA: http://bugs.tizen.org • Tizen Developer Conference • https://www.tizen.org/conference
Open Source Projects within Tizen • Upstream projects used by Tizen: • X Windows, Cairo, EFL for UI and graphics • Gstreamer, PulseAudio, OpenAL for multimedia • ConnMan, BlueZ, libsoup, wpa_supplicant for connectivity • WebKit for Web • Smack and OpenSSL for security • Dbus, glibc for base • Sqlite for database and PIM • Linux for OS Kernel • Eclipse for Tizen SDK • QEMU, U-Boot for target emulator • GC, llvm, cmake, gbs for build • And more…
Open Source Projects within Tizen (cont) • Intel and Samsung maintain or significantly contribute to: • Linux, WebKit, EFL, GStreamer, U-Boot, FMPEG, WebCL, Cairo, BlueZ, QEMU, GCC, ConnMan, NFC, PulseAudio, Smack, Wayland, oFono, X, wpa_supplicant, Dbus, glibc, OpenGL, Geoclue, and libsoup • With notices, attributions, full license statements, and compliance to other obligations • Virtually everything newly developed for Tizen has ben open-sourced under Apache 2.0 License: • app-core, WRT(Web Runtime), system-server, sensor-fw, app-service, slp-pkgmgr, libslp-pm, msg-service, email-service, telephony-daemon, audio- session-manager, contacts-service, slp-calendar, accounts-svc, sync-fw, cert-svc, secure-storage, nfc-manager, and more. • Flora License • solely as incorporated into a Tizen Certified Platform • Encourage Tizen member companies to contribute their patents to Tizen project
Tizen v2.3 Architecture Overview Native framework is deprecated
Tizen v2.3 Architecture Overview (cont) • Linux kernel and H/W abstraction • Linux kernel • Device Drivers • Hardware Adaptation Layer • Native subsystem • Underlying layer to provide common functionalities and a security mechanism • HW adaptation layer with plug-in architecture • OpenGL ES/EGL graphics driver • Web framework • Provides state-of-the-art HTML5/W3C APIs, Web UI framework, supplementary APIs, and additional Tizen device APIs
Tizen Kernel and H/W Abstraction • Linux kernel • Modified Linux kernel • 3.0.15, 3.10.y support (for ARMv7, AArch64) • DRM, CMA, KDBUS, dma_buf, Power Manager, etc. • Device Drivers • Hardware Adaptation Layer • Plug-ins • OpenGL ES/EGL Graphics Driver • DRM-based graphics stack
Native Subsystem • Common features • Various native, Web APIs are implemented using the native modules • Unified management for • package installation and upgrade • Launching applications • Windows with E17 • Sensor management • Power management • Connectivity • Security enforcement with smack • and more.
Web Framework • W3C standard web APIs • W3C/HTML5 markup, CSS, JS • Supplementary APIs • De-facto APIs (Khronos, Mozilla, etc.) • Tizen Device APIs • Advanced access to the device capabilities • UI framework • JQueryMobile-based • Tools, such as widgets, events, effects, and animations
Web Runtime (WRT) • Package management • installation and update • Execution and life-cycle • launching, pause, and resume • Runtime security • API/network access and sandboxing • Platform integration
Webkit2 based Browser and Web Runtime • Tizen (over 2.0) using Webkit2 • Split process model for web content and UI with non-blocking APIs • UI responsiveness, robustness, security, and better use of multicore CPUs
Web 2D and 3D Graphics • HTML5 Canvas is accelerated by • Cairo OpenGL ES backed • WebGL • Directly uses OpenGL ES
Application Types • Web and Native applications • App using only public APIs to get full support for package installation and upgrade, security, backward compatibility, etc. • Many sample apps included in the SDK • Native subsystem applications • Apps using Core APIs to fully utilize device capabilities such as telephony • Usually implemented and preloaded by device implementers • Backward binary compatibility is not guaranteed
Tizen 3.0 • Tizen Common Architecture (without specific profile)
How to Create a Tizen 3.0 Common Source • Common Source + Profile based packages • Share source for common features across products • Test on reference devices Mobile Common 3D UI Automotive Multi-User 64-bit TV KDBUS Buxton Blink/Crosswalk Watch Wayland … Refrigerator
Tizen 3.0 Common Feature Highlight • Key Features 2014-Q2 release: • Multi-user • SMACK: three domains security • Wayland, Enlightenment Window Manager • Crosswalk/BLINK • 64-bit IA / ARM • New Configuration System – BUXTON • KDBUS • 3D UI & Rendering Engine • New Bluetooth Framework • WiFi Framework to combine WiFi DirectManager, Mobile AP-agent and net-config
Tizen SDK • Consists of • IDE, Web Simulator, Emulator, Event Injector, UI Builder • Documents, Sample applications, Remote Inspector, Localization Wizard, Project Wizard • …
Application Framework • Launching a new Application (AUL, app-svc) • Explicit or implicit information (Combination of Action, URI, and MIME) can be used to determine an app to launch • Allowed to launch different type of app (i.e. Web to Native and Native to Web) • Application life cycle management and handling system events (app-core) • Getting app state change notification or system events through main loop • Then, calling registered callbacks for the events • Installing/Uninstalling application (package manager) • Managing application launch history (librua) • Setting an alarm to launch at specific time (alarm-manager)
Graphics & Input • Enlightenment Foundation Libraries • Rich Widgets multiple theme supports by Elementary • Retained mode canvas by Evas (Scene-graph, OpenGL ES back-end) • Compositing Window Manager • Window System based on X11 • 3D (OpenGL ES), Font (freetype2, fontconfig) • Input Service (SCIM), Voice FW (STT, TTS), SCIM: Smart Common Input Method
Web • Provides: • Best Web experience with Browser and packaged Web Apps • Focusing on functionality(HTML5), performance (UI Responsiveness, 2D/3D Acceleration, JS Engine), Standard Compliance(W3C) • More device feature accessibility through Tizen Device API • jQueryMobile-based Tizen Web UI FW enables easy Web App development • Consists of: • WebVeiw (WebKit /EFL): JavaScriptCore, WebCore(HTML5/W3C API implementation), WebKit API • Web Runtime: Execution environment for packaged Web Apps
Multimedia • Provides: • Playback of audio and video contents (local and streaming) • Capturing images and recording audio and video • 3D Audio Sound (OpenAL) specially for games • Scanning & Playback of radio • Determining audio policy • Extracting and displaying media content information • Features: • High Quality Video Playback • Full HD(1080P) Playback (with HW codec & Render Optimization) • Support for various kind of Multimedia Streaming (HTTP, RTP/RTSP) • Support for HTML5 Video and embedded playback in Web Browser • High Quality & High Speed Camera/Recorder • High Quality Image Capture & Video Recording • Support for various kind of shooting mode (single, continuous, panorama, etc)
Multimedia (Cont’d) • Key Components: • GStreamer: Audio, Video, Recording, Streaming, Editing, Etc • Audio Session Manager: Sound Policy Management • PulseAudio: Software mixing multiple audio streams • Multiple-Format Codec: Various support of codec • Media Content Service: Content management for media files • Audio I/O: Accessing raw audio buffer to manipulate
Location • Provides: • Hybrid position information • GPS, WPS (Wi-Fi Positioning System), SPS (Sensor Positioning System) • Map Service (Geocode, POI, Route) • Key Components: • GeoClue: Deliver location info from various positioning sources • GeoClue library: An open source geo-information library • GeoClue Providers: Implement the GeoClue library API • Currently GPS Manager in GeoClue Providers is provided
System • Provides: • System monitoring and event handling functionalities • Key components: • Deviced • Runs as a daemon process • Monitors device and system status and handles events from devices (battery, USB, MMC, charger, earjack, etc) • Setting/getting device values such as brightness • Power Manager: Controls LCD display backlight and application sleep • Sensor Manager • Handling sensor events from various sensors
Connectivity • Cellular and Wi-Fi Connection • “Always-on” internet connections based on cellular(e.g.3G) and Wi-Fi . • ConnMan manages internet connections • Allowing automatic connection for available Wi-Fi access point • Managing statistics of data network • Bluetooth • Based on BlueZ and profiles (OPP, A2DP, RFCOMM, HFP, HDP, etc) • Discovering / bonding / exchanging data with remote devices • Tethering • Providing three type of tethering : USB, Bluetooth and Wi-Fi • NFC • Including NFC Manager to handling NFC plug-ins • Supporting P2P, Controlling NDEF tag, card emulation • Wi-Fi • Scanning and connecting Access Points • Connecting hidden Access Points
Telephony • Consists of cellular functionalities for communicating with modem: • Managing call/non-call info, packet-related services, network status information, SMS-related services for UMTS and CDMA • Managing SIM Application Toolkit services for UMTS. • Managing SIM files, phone book, and security • Key Components: • TAPI is available as a library for client • Defining a plug-in architecture for Telephony Server
PIM • Provides: Contact, Calendar, Account, and Sync Services • Key Components: • Account: Manage accounts to share account information on the device • Contact/Calendar: • Account based, Multiple address/calendar books for an account. • Enough features to satisfy mobile contact/calendar app requirements. • Supporting vCard 3.0 and vCalendar 1.0 respectively • Synchronization (Sync-FW)
Messaging • Provides: SMS, MMS, Email • SMS, WAP and cell broadcast messages • MMS protocols: OMA MMS 1.2. • Email protocols: SMTP, IMAP, POP3 • Key Components • Message Client API • Message Server • Transaction Manager: Manage IPC between message server and library • Main Handlers: Handle message sending/receiving/filtering/setting. • Storage Handlers: Save on DB • Plug-in Manager: Manage SMS and MMS Plug-ins
Security • Provides: • Certificate management and verification • Secure storage for confidential data • User space access control management • Cryptography and SSL support • Mandatory access control support • Security model: • No root applications/No privilege escalation • Sandboxed by SMACK • Service daemons will make use of SMACK and enforce access control in server side • Manifest-based permission policy for Apps