370 likes | 404 Views
Introduction to Tizen v2.3. 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.
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