450 likes | 474 Views
Understanding Tizen Platform. Syllabus. Main text No regular textbooks References Tizen.org Tizen Developers Conference Tizen Source Code Grading policy (subject to change) Attendance: 5% Final exam: 35% Team Project: 60%. Team Project. Contributing Tizen Open Source
E N D
Syllabus • Main text • No regular textbooks • References • Tizen.org • Tizen Developers Conference • Tizen Source Code • Grading policy (subject to change) • Attendance: 5% • Final exam: 35% • Team Project: 60%
Team Project • Contributing Tizen Open Source • Should modify Tizen Linux kernel or Tizen Platform • No application-level work • Should demonstrate your work at Tizen-ported Odroid-U3 board. • Schedule • Proposal: 10/27, Demo & Report: 12/8 • Team: 3~4 students • Graded by professor (50%) and other students (50%) • Or Study and Present a Tizen-related Topic (1hr)
Device • Odroid-U3 • 1.7GHz Quad-Core processor and 2GByte RAM • 10/100Mbps Ethernet with RJ-45 LAN Jack • 3 x High speed USB2.0 Host ports • Audio codec with headphone jack on board • GPIO/UART/I2C ports
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 • 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
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 Architecture Overview OSP(Open Services Platform, C++ APIs)
Tizen Architecture Overview (cont) • Linux kernel and H/W Abstraction • Linux kernel • Device Drivers • Hardware Adaptation Layer • Core • 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 • Native framework • Supports full-featured native application development and provides a variety of features like background service, image and face recognition, and TTS/STT • will be deprecated
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
Core Framework • Common features • Various native, Web APIs are implemented using the core 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
Native Framework • Released since Tizen 2.0 • Set of C++ namespaces with more than 10,000 APIs • Base, IO, App, Security, Graphics and UI, Network, Messaging, Social, Locations, Web, etc. • Support for standard C/C++, and popular open source libraries • eglibc, STL, libstdc++, libxml2, OpenGL ES, OpenAL, OpenMP • Multiprocessing support • OpenMP, GCD
Web vs. Native Framework • Native and Web frameworks are complementary to each other • Web is Storing in portability, ease of app development, and has a minimal learning curve • Native is relatively better in terms of performance and memory consumption • Native enables reusing the existing engine and libraries written in C & C++ in app development • Web and Native App can be mixed into Hybrid App
Native vs. Core Framework • Both are native (C, C++), but focusing on different aspects • Core focuses on: • Providing common functionalities to Web and native frameworks • No need to guarantee application binary compatibility (ABC) • Performance and power optimization • Native framework focuses on: • Application development productivity while guaranteeing ABC • Well-documented API references, developer guide, sample codes, and associated tools
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 • Core 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
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, paronama, etc)
Multimedia (cont) • 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: • System Manager • Runs as a daemon process • Monitors device and system status and handles events from devices (battery, USB, MMC, charger, earjack, etc) • Sensor Manager: Handling sensor events from various sensors • Device Manager: Setting/getting device values such as brightness • Power Manager: Controls LCD display backlight and application sleep
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, car emulator • Wi-Fi • Scanning and connecting Access Points • Connecting hidden Access Points, car emulator
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