|
Table of Contents
|
Team Members
Rom Lemarchand, Jarek Wilkiewicz, Dan Maycock, Jonathan Tsai
Project Goals
- To evaluate the various mobile device platforms that include both open source and close source
- Use the following criteria for platform evaluation:
- Technical platform specifications
- Architecture
- Development environment
- License
- Revenue model
- Portability
- Features and functionalities
- Hardware specifications/limitations
- Web browsing support
- Ease of development (Hello World Application)
- Platform choices per target market
- Market penetration (per geographic area)
- Market penetration (per population)
- Available handsets: current vs. 1-year estimation
- Carrier support
Project Scope
Research into the following 8 mobile platforms
Open Source
# OpenMoko
# LiMo Foundation
# Maemo
# Android
Close Source
# Symbian
# Windows Mobile
# Blackberry OS
# iPhone OS
Task Allocation
- Rom Lemarchand - LiMo, Blackberry OS<br>
- Jarek Wilkiewicz - Android, Windows Mobile<br>
- Dan Maycock - Maemo, Symbian<br>
- Jonathan Tsai - OpenMoko, iPhone OS<br>
Mobile Platform Evaluations
OpenMoko
Project sponsor
Backed by FIC, a large computer hardware design company based in Taiwan
Project overview
A project that aim at creating Linux-based open source mobile phones
2 Goals
- Open Source Software
- OpenMoko Linux and OpenMoko software stack
- Allow developers to create differentiated products
- Bottom-up approach (defined and implemented by the community)
- Open Source Hardware
- Open mobile device hardware design (CAD files)
- Allow designers to customize the device to their needs i.e. make it into a medical device, point of sales, etc.
Technical platform specifications
- Linux Kernel 2.6.x
- GUI is built using X.org, GTK+, Matchbox window manager, QT, and Enlightenment 17
- Native development using C\C++
- Various native libraries such as glibc (C library), SQLite, gstreamer (multimedia), WebKit, Cairo (graphic)
- Frameworks such as SSH, rsync (network), gsmd (phone management), Avahi (network)
- Supports mobile JVM Jalimo
- Applications such as Pidjin, Poky (dev envir), Qtopia (dev envir), ekiga (VoIP)
Development environment
- Host-based (on a desktop) development with Xoo and Xephyr simulators
- Tools can be downloaded as an OpenMoko toolchain
- Use Python to scripting phone functionalities and graphical user interfaces
- Use QEMU (processor emulator) to emulate OpenMoko platform
License model
GPL and LGPL license
Revenue model
- 3-phase development model
- Phase 0: Developers preview (give away free phone to developers to try out)
- Phase 1: Official developer launch (sell device online)
- Phase 2: Mass market sale (Online, retail sales)
Portability
- Due to Linux's portability, OpenMoko is able to run mobile devices that are Linux-compatible
Features and functionalities
- Software
- Boot
- Phone Functionality
- Messaging Functionality
- Person Information Management
- Media Player
- GPS
- Bluetooth
- Battery Life
- Software Keyboard
- Uses the open source Jalimo JVM (Java virtual machine)
Hardware specifications / limitations
- Touchscreen
- GPS
- WiFi - 802.11 b/g
- Processor at 400Mhz
- 2 3D Accelerometers
- 256MB Flash
- LED's illuminating the 2 external buttons on the phone
- No camera
Web browsing support
- OpenMoko web browser
- Can install Mozilla-based Minimo web browser
- Develop your own browser using WebKit library
Ease of development (Hello world application)
- Development process not easy to follow on Openmoko's Wiki
- Openmoko wiki site provides a tool chain, however, encountered several compile errors from the downloaded sample project (needed to debug the configuration file for the Ubuntu enviornment)
- Was able to bring up QEMU emulation on Ubuntu (using Automatic emulation in Ubuntu article)
- [[Image:Screenshot-QEMU-3.png]] [[Image:Screenshot-QEMU.png]] [[Image:Screenshot-QEMU-1.png]] [[Image:Screenshot-QEMU-4.png]] [[Image:Screenshot-QEMU-5.png]]
Platform choices per target market
- FreeRunner is a completely open device, users will be able to choose which platform they want to use
Market penetration (per geographic area)
** No existing market just yet since it is still in prototyping stage (both software and hardware)
- '''Market penetration (per Population):'''
** No existing market just yet since it is still in prototyping stage (both software and hardware)
- '''Available handsets:'''
** Current
* Neo1973 $300 (Sold out)
1-year estimation
*** Neo FreeRunner $399 (Just became available)
- '''Carrier support:'''
** No official carrier as this is a prototype used by developers
LiMo
- Foundation backed by several industry players: Mozilla, Verizon, NTT DoCoMo, SFR, SK Telecom, Motorola, NEC, Orange, Samsung, Vodafone…
- The goal is to create a standardized Linux phone platform to allow the secure download and distribution of apps on these phones
- License model: Mix of proprietary and open-source, preferred OS license: FPL
- Architecture http://www.limofoundation.org/what-is-the-platform.htm
- Available handsets
** http://www.limofoundation.org/solutions/index.php
- Several carriers: Orange, SFR, NTT DoCoMo, Vodafone, Verizon, SK Telecom…
- Features
** No standardized hardware feature set, but a standard middleware framework that doesn't include any of the graphics/GUI applications.
- Targeting mostly feature-rich middle of the road phones
- No published 3rd party SDK yet (even though it was announced earlier)
- An emulator is available from Azingo
Maemo
[[Image:2477571259_3971704091_m.jpg]]
*Technical platform specifications
*Architecture
**Open Source, Mobile Linux OS
*Development environment
**Maemo SDK provided by Nokia - the maemo development environment supports the C programming language but you may add support for other programming languages
*License
**Creative Commons
*Revenue model
**Nokia sells n800/n810 hardware, and provides the development enviorment & OS software for no cost
*Portability
**Very, it goes where you go
*Features and functionalities
**GPS Operability, Conferencing with Front-facing Camera & Microphone, Support for Bluetooth 2.0, Support for WiFi, Touch Screen, SD Card Slot Utilities, Built out-of-the-box for Internet Chat & Browsing. Very little comes with the OS, with the option to install a large variety of open source applications
*Hardware specifications/limitations
TI OMAP 2420, up to 400MHz (on-demand frequency scaling 165/266/320/400MHz)
DDR RAM 128MB
Flash 256MB
2GB internal memory (Samsung MoviNAND eMMC)
Support for compatible miniSD and microSD memory cards (with extender). Supports cards up to 8GB. SD cards over 2GB must be SDHC compatible.
4.1-inch, 800x480 touch screen with up to 65536 colors
Epson S1D13745 display controller
640x480 web camera
WLAN: 802.11b/g (STMicroelectronics STLC4550)
Bluetooth specification: 2.0.
USB 2.0
GPS (TI GPS5300 chipset)
Slide out (backlight) QWERTY keyboard
Hardware lock key
Brightness sensor (Texas Advanced Optoelectronic Solutions TSL2563)
RGB LED (National Semiconductor LP5521)
3.5mm Audio jack
Battery: BP-4L
Volume: 128 cc
Weight: 226 g
Length: 72 mm (2.83 inches)
Width: 128 mm (5.03 inches)
Thickness: 14 mm (0.55 inches)
(Metal) Silver body
*Web browsing support
**Internal Maemo Browser provided, with ability to install Firefox and/or Opera
*Ease of development (Hello World Application)
**Easy to start, hard to master
*Platform choices per target market
**Exclusively on Nokia Internet Tablets
*Market penetration
**High penetration in Europe, with little to no penetration in Asia, and varied penetration in Urban US areas. Typically areas with large amounts of available WiFi, so it's hit and miss within the US markets. Nokia coming out with N810 WiMax edition to solve this problem, though no nation-wide WiMax is available to date.
*Available handsets: current vs. 1-year estimation
**None
*Carrier support
**None
==== Android ====
- '''Technical platform specifications'''
** General Information
* Intro videos
** (1/3) http://www.youtube.com/watch?v=Mm6Ju0xhUW8
** (2/3) http://www.youtube.com/watch?v=ITfRuRkf2TM&NR=1
** (3/3) http://www.youtube.com/watch?v=iiD4fGjjXcc&feature=related
- '''Architecture'''
** Linux 2.6 - based hardware abstraction
** Native libraries (C/C++)
* Surface Manager (renders images from all apps onto the screen)
* OpenGL ES (3D library), supports accelerationBu
* 2D and 3D can be combined in the same app
* Media Framework - Packet Video-provided (member of Open Handset Alliance, includes codecs)
* Fonts - FreeType based
* SQL Lite used for data storage
* WebKit - based browser (same as the one Safari uses)
Runtime
* Dalvik virtual machine, runs .DEX files, bytecodes converted from Java .class files
** Multiple instances of the VM running at the same time
** Core Libraries
* Collections, utitilies, IO
App framework
* Java-based
* Activity manager - manages all apps running
* Package manager - manages app installation
* Window manager - abstraction of top of surface manager
* Telephony manager - APIs for phone applications
* Content providers - fwk to allow apps to share data across them (clipboard-like?)
* Resource manager - used to store localized bitmaps, strings, layout
* View system - contains buttons, lists, event dispatching
* Location manager, notification manager, XMPP services
Applications
* Home, Contacts, Browser, 3rd party apps
Technical specs : Building applications
* Building an Android Application requires decomposing it into four parts
** Activity (typically an UI component)
** IntentReceiver - register code triggered by external events, registered via XML, eg. when the phone rings
** Service - faceless, runs in the background, can be talked to
** Content Provider - used to share data with other applications
* Designed for application reuse and data sharing, the app uses an Intent, and the system picks the best app to satisfy the Intent
* Built-in components can be replaced, eg. Photo Gallery can be replaced to use an online photo provider
* Each application runs in its own process
* App composition uses memento pattern (state is saved when app composition chain is invoked)
* Location manager allows events to be fired when certain proximity events occur
* XMPP Service - allows any app to send device-to-device messages to any user. Data messages are intents with name/value pairs
* Notification manager - allows for notifications to be put into status bar.
* View system
** list view, grid, gallery, standard widgets
** multiple input methods, screen sizes, touch screen also supported
** map view used for tight integration with geographic data, it can be embedded in an application
**** browser can also be embedded (Web view)
- '''Development Environment'''
** Android comes with an SDK, an emulator and an Eclipse-based plug-in. A Hello World application, launched using the Eclipse plug-in and running in the Adroid simulator is shown in the figure below.
[[Image:Android-Emulator.png|600px]]
- '''License'''
** Most of the components are available under Apache v2.0 open source license.
- '''Revenue model'''
** Unclear. Android is integrated with Google Maps and Google App Engine thus will drive traffic to its site.
- '''Portability'''
** Android has been ported to
* Nokia N810 [http://www.talkandroid.com/65-google-android-nokia-n810/]
* HTC Vogue [http://www.googlemobileplatform.com/news/2008-04-15-30]
- '''Web browsing support'''
** Comes with a WebKit-based web browser
- '''Ease of development (Hello World Application)'''
** The SDK comes with a Hello Wold Application. Application composition and IDE support are Android's true strengths.
- '''Platform choices per target market'''
** T-Mobile announced support for Android in the US , HTC also announced [http://www.crunchgear.com/2008/06/17/android-to-appear-on-htc-handsets-this-year-with-winmo-7-to-follow-shortly-after/ an Android-based phone
- '''Market penetration (per geographic area)'''
** Nada
- '''Market penetration (per population)'''
** Nada
- '''Available handsets: current vs. 1-year estimation'''
** Today : none, a handful of handsets within one year due to a potential schedule slip
- '''Carrier support''' (through Open Handset Alliance)
** China Mobile Communications Corporation
** KDDI CORPORATION
** NTT DoCoMo, Inc.
** Sprint Nextel
** T-Mobile
** Telecom Italia
** Telefónica
==== Symbian ====
[[Image:Nokia-nseries-theme-for-symbian-s60.jpg]]
*Technical platform specifications
*Architecture
**Proprietary Closed-Source C++ OS built for mobile devices
*Development environment
**C++ enviornment w/ SDK provided by Company, though JVM can be installed on some devices for J2ME
*License
**Symbian has licensed OS development & use
*Revenue model
**OS comes with mobile devices, licensed as part of the selling price of the device
*Portability
**Very
*Features and functionalities
From website: It is designed for the specific requirements of advanced 2.5G and 3G mobile phones. Symbian OS combines the power of an integrated applications environment with mobile telephony, bringing advanced data services to the mass market.
*More at http://www.symbian.com/files/rx/file9468.pdf
*Hardware specifications/limitations
**Only supported on mobile devices
*Web browsing support
**Native OS browser
*Ease of development (Hello World Application)
**Very difficult, especially when coding GUI elements
*Platform choices per target market
**Sony Ericsson, Nokia, Samsung, FOMA
*Market penetration (per geographic area)
Very widespread penetration in Europe, and Asia, as well as large pockets within US OS is installed on Nokia's flagship mobile devices, especially popular in Europe (N95/96)
Can scale down to lower-end cell phones, but is most often seen on smartphones within US
*Available handsets: current vs. 1-year estimation
**Vast array of handsets to date, very limited in US however. This should grow substantially as Nokia continues to introduce n-series smartphones.
*Carrier support
**Carriers using 3G Networks, no mobile device on CDMA network using Symbian at this time
==== Windows Mobile ====
- '''Architecture'''
** Integrated with Microsoft's email, VPN, and content management platforms (Exchange, ISA, SharePoint) ([http://www.microsoft.com/windowsmobile/en-us/business/solutions/enterprise/architectural-overview.mspx])
** Based on Windows CE (see [http://i.msdn.microsoft.com/Aa924061.3264aa78-f20f-46b8-bea6-bc203863a50c(en-us,MSDN.10).gif for architectural diagram
** Memory divided into two main regions - 2G for Kernel space and 2G for user space ([http://www.google.com/url?sa=t&ct=res&cd=1&url=http%3A%2F%2Fdownload.microsoft.com%2Fdownload%2F5%2Fb%2F9%2F5b97017b-e28a-4bae-ba48-174cf47d23cd%2FWCE031_WH06.ppt&ei=qjdoSJKrJoHysAO4hOipDQ&usg=AFQjCNHXXAPs9KEce94obeY9FlFishn-bw&sig2=vGIdoKsQY882HT6i5f_wOQ])
- '''Development environment'''
** .NET Compact Framework (CE) and SQL Server Compact Edition come bundled in all WM 6.x phone ROMs
** SQL Server CE supports database up to 4G in size and database synchronization with full version of MS SQL Server
** .NET CE uses Microsoft's virtual machine (Common Language Runtime (CLR)) to simplify application development with C# and CLR's garbage collection. Additionally, .NET CF 2.0 have direct access to the Component Object Model (COM).
** Developing Windows Mobile applications requires Microsoft Visual Studio (commercial) and the free Windows Mobile SDL. Simulator is included as a part of the SDK - see below for a screen shot of the simulator and Visual Studio running Hello World application
** [[Image:WM6-HelloWorld.png|600px]]
** While the SDK is a free download, MS Visual Studio (commercial product) is required for development
- '''License'''
** Commercial, per-unit license charges
- '''Revenue model'''
- '''Portability'''
- '''Features and functionality'''
- '''Hardware specifications/limitations'''
** ARM-based architectures
- '''Web browsing support'''
** Comes with Internet Explorer
- '''Ease of development (Hello World Application)'''
- '''Platform choices per target market'''
- '''Market penetration (per geographic area)'''
** Popular in the US
- '''Market penetration (per population)'''
** 12 % in Q4 2007 ([http://www.techcrunch.com/2008/06/25/the-state-of-open-mobile-oses/])
- '''Available handsets: current vs. 1-year estimation'''
** The following manufacturers currently offer Windows Mobile Phones ([http://www.microsoft.com/windowsmobile/en-us/help/more/mobile-operator-device-manufacturer-links.mspx])
** Acer
** AnexTEK
** ASUS
** Creative
** Cyberbank
** Dell
** Dopod
** E-TEN
** Hand Held Products, Inc
** Hitachi
** HP
** i-mate
** iriver
** Itronix
** Lenovo
** MiTAC
** MM02
** Motorola
** MoviStar
** Packard Bell
** Proximus
** Samsung
** Smart
** Symbol Technologies
** Toshiba
** Tripod Data Systems
** ViewSonic
** Yakumo
- '''Carrier support''' ([http://www.microsoft.com/windowsmobile/en-us/help/more/mobile-operator-device-manufacturer-links.mspx])
** AT&T
** Orange
** Sprint
** Telefonica
** Telstra
** T-Mobile
** Verizon Wireless
==== Blackberry OS ====
[[Image:HelloBlackBerry.jpg|200px|right]]
- Backed by Research in Motion (RIM) ltd
- The Blackberry platform encompasses all phones in the Blackberry family
** The company is a hardware vendor, they are trying to create a sense of community by opening up their SDK
** This is most likely fueled by competition from the iPhone and Android
** Targeted at the enterprise market
- License model: OS is proprietary, closed source
- Architecture:
** http://na.blackberry.com/eng/developers/started/solutions.jsp
- Available handsets
- All major carriers
- Features
** Hardware: phone dependent
** Software
* Full integration with enterprise solutions
* Full integration with major webmail providers
* Internet
* Calendar
*** SDK: JDE and simulator available here: http://na.blackberry.com/eng/developers/downloads/
==== iPhone OS ====
- '''Project sponsor:''' Backed by Apple, Inc.
- '''Project overview:'''
** Leverages the maturity of the Mac OS X architecture and framework stack to provide a reliable and already tested platform
** Leverages the familiarity of Mac OS X developers to develop applications on this platform
** Smaller OS < 1/2 GB
- '''Technical platform specifications:'''
** Based off Mach kernel (developed by CMU) that is found in Mac OS X
** Mac OS X runs off Darwin - an open source Unix OS
** Cocoa Touch (UI) framework includes UIKit (Objective-C), Foundation (events)
** Media framework includes OpenGL, QuartzCore (animation), CoreAudio, MediaPlayer (video)
** Core services framework includes network, security, SQLite, XML support
** Core OS supports threading (POSIX), networking, file-system, standard I/O, memory management, data management, math computation
- '''Architecture:'''
** [[Image:iphonearch.png]]
- '''Development environment:'''
** iPhone SDK - release in March 2008
** Extensive support for third party development
* Development IDE, tools
* Interface Builder
* Simulator
* Documentation
* Video tutorial
Developer program
* $99 - to distribute free apps in App Store
* $299 - to sell apps in App Store (70% profit share)
** SDK contents
* Audio & video
* Data management
* General
* Graphics and animation
* Networking & internet
* Performance
* Security
* User Experience
*** No plan for Java support
- '''License model:''' iPhone OS is closed source with open source components (i.e. Darwin, etc.)
- '''Revenue model:'''
** Original revenue model is monthly revenue-sharing with AT&T Wireless, however, in June 2008 AT&T announced to instead purchase iPhones from Apple to bring in more subscribers and therefore more charged data usages among the users
** Apple will also be setting App Store to sell iPhone applications for download
- '''Portability:'''
** Even though iPhone OS is based from OS X and Darwin (an open source Unix OS), however it also contains proprietary software which makes it not portable to other mobile devices at this time
- '''Features and functionalities:'''
** Multi-Touch
** Media Handling
** Hardware Access
** Networking
** Data Management
** Does not support third party native apps
- '''Web browsing support:'''
** Build-in Safari web browser
- '''Ease of development (Hello world application):'''
** [[Image:iPhoneIB.png]]
- '''Platform choices per target market:'''
** iPhone OS platform on iPhone
- '''Market penetration (per geographic area):'''
** Mainly in U.S., however, with the recent launch of iPhone 3G, it will be available in more than 70 countries
** iPhone owns 28% of U.S. smartphone market and 6.5% of the world's smartphone market
- '''Market penetration (per population):'''
** Started with the general public but now also entering the enterprise users domain with Microsoft Exchange, Cisco VPN security, etc.
- '''Available handsets:'''
** Current
* iPhone Store
* 8GB - $199
* 16GB - $299
1-Year Estimation
*** More capabilities, cheaper phones, lower subscription rate
- '''Carrier support:'''
** AT&T Wireless