Simon Jackson Mike Bow Dan North Pete Hemery

 [google] define:”mobile computing” . Mobile computing is "taking a computer and all necessary files and out into the field.“… Not a very good definition!  Form of interaction between a user and a non-static computer system. . “An untethered unit capable of advance mathematical computations.“ – U.S Bureau of Technological study.  Most mobile devices use ARM based processors . 15 billion shipped as of January 2011. . Expecting around 5 billion shipped in 2011 alone.  Industries . Consumer  Music  Banking  Phone  Gaming  Photography  Internet / Social media . Military . Medical . Business

 Smart Phones  Mobile Phones  Tablet PCs  E-Readers (some) . Apple iPad  Handheld Gaming . Samsung Galaxy Tab Devices . Microsoft 8 Metro . Amazon Kindle Fire  Gameboy  Handheld Gaming  Personal media Devices players . Nintendo 3DS  mp3 / mp4 . PSP  Digital Cameras  Netbooks  Gps

 Virtual Retinal Display Glasses . Like AirScouter  Embedding Near Field Communications in things: . Wallets containing credit card details.  Electronic Holographic ID cards  Networked Light Personal Transportation

 Industry meets the Consumer at the interface  Technology raises passions  Hard to predict which will dominate and which will fail

 "Latency kills the mobile experience“

 Desktop UI  Parallel representation on a big screen – can accommodate more  Standard Inputs (Mouse and Keyboard)  Different users can learn to use the same UI with personal style  Flexibility with application installation  Machine power (speed)  Environment – Office or Home

 Mobile UI  Sequential representation on a small screen  No standard for input buttons  Everyone has to navigate the options the same way (except shortcuts)  Fixed number of applications until new version of the phone  Fragile to bad design  Environment – Out and About, Extreme Conditions PORTABILITY

SMALL SIZE

SMALL SCREEN

SEQUENTIAL PRESENTATION

PRIORITIZATION

USER UNDERSTANDING

“Today's challenge is in bridging the distance between those designing hardware and those designing the . The difference between universal UI and custom UI is becoming more apparent in the phone experience. As devices continue to advance, carriers will need to elevate their UI expectations to compete on equal footing -- placing more pressure on handset manufacturers and developers to not just collaborate but cohabitate.”

Take 5: The Evolution Of The User Experience http://www.informationweek.com/blog/229216317

 Haptics refers to the sense of touch (from Greek ἅπτω = "I fasten onto, I touch")  Forces, vibrations e.g. Rumble Pack  Touch screen advancement  Surface acoustic wave  Ultrasonic wave passes over surface and absorbed  Resistive  Several layers, two displaced by a finger  Capacitive  Conductive or dielectric different from air  Optical  Two or more image sensors around corners of the screen, IR back light, touch comes up as shadow http://aka.ms/wpdemo

 “Android is a software stack for mobile devices that includes an operating system, middleware and key applications.” . Android developer website

 This means that Android provides support for many different hardware components, an integrated web browser, support for a number of media types (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) and an application development framework which includes an SDK, native development libraries (NDK), an eclipse integration plug-in and debugging tools.

Android is made up of a set of core runtime libraries, that provide most of the functionality of Java, used to run applications in the Dalvik VM.

Dalvik sits on top of some native libraries, all of which are driven by a 2.6 kernel which provides the hardware support etc.  Dalvik is a register based Virtual Machine  Most Java class files are converted to .dex (Dalvik Executable) files which are designed for resource constrained systems.  Dex resource savings:

 Multiple Java classes can be included in a single .dex file and duplicate strings and constants are included only once in the .dex to save space.  Dalvik Executables also use their own instruction set different to standard Java byte code.  Dalvik gets around the slow start-up time of normal VMs by sharing common classes and libraries between applications.  The Zygote process starts at boot time and creates new VMs on request using this shared memory model. When any of this shared memory is written to, it is copied into the forked VM, known as copy-on-write.

 Comes complete with a full Linux heart… where tick boxes probably don’t work…  Multi-user Linux environment in which each application is a separate user with a unique user ID for security.  Implements the ‘principle of least privilege’ which means that each application only has access to parts of the system which it requires to do its work.  Android does not have a native X Windows or support the full set of standard GNU libraries which makes it difficult to port existing Linux applications or libraries to Android. Usually, an application will look something like this:  An Activity encapsulates a single operation, which may optionally be associated with a UI window.  Activities can be linked/stacked together into ‘Tasks’ which represent the idea of applications on other platforms.  ContentProviders are used for data storage and are the only way to share data across  applications; no shared storage space.  Services perform long-running operations in the background. Another application component can start a service and it will continue to run in the background even if the user switches to another application.  An Activity's UI is defined using a hierarchy of View and ViewGroup nodes arranged in a  Own font tft-Droid  Can be built using pre-defined widgets & layouts or using custom Views.  The UI layout is commonly defined in XML, even event handlers can be specified in XML.

Its an Ice Cream  Java App

 Web runtime apps

 Source code porting (recompile)

 Native development for each platform

 Component based cross platform development (AIR / FLASH / Open GL) 1. Install the SDK with eclipse http://developer.android.com/sdk/index.html

2. Write your programme

package com.example.helloandroid;

import android.app.Activity; import android.os.Bundle; import android.widget.TextView;

public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText("Hello, Android"); setContentView(tv); } } 3. Test on emulator !  ARM Launches Free Toolkit For Android Application Developer Community 5 - 28 November 2011

 DS-5 Community Edition’s purpose is to make life easier for Android application developers. The toolkit allows one to see processor information, as well as allowing the development of Java and C/C++ code. It also includes an integrated graphical debugger.

 The toolkit features the ARM Streamline Performance Analyser, which captures information on system performance and makes it easier for developers to see problems in their code and make it more efficient.

 The goal is to help developers create amazing user experiences with their applications.

. “ARM DS-5 Community Edition offers developers an easy to use environment for debugging and optimizing C/C++ code. This allows them to take full advantage of ARM processor technology using native code to deliver the performance, power savings and functionality that consumers demand.”  The Android SDK includes a virtual emulator that runs on your computer. The emulator lets you prototype, develop, and test Android applications without using a physical device.

 The Android emulator mimics all of the hardware and software features of a typical mobile device, except that it cannot place actual phone calls. It provides a variety of navigation and control keys, which you can "press" using your mouse or keyboard to generate events for your application. It also provides a screen in which your application is displayed, together with any other Android applications running.

 Test Devices you don’t have access to !

 The emulator also includes a variety of debug capabilities, such as a console from which you can log kernel output, simulate application interrupts (such as arriving SMS messages or phone calls), and simulate latency effects and dropouts on the data channel. Android Debug Bridge (adb) is a versatile command line tool that lets you communicate with an emulator instance or connected Android-powered device. It is a client-server program that includes three components: 1. A client, which runs on your development machine. You can invoke a client from a shell by issuing an adb command. Other Android tools such as the ADT plugin and DDMS also create adb clients. 2. A server, which runs as a background process on your development machine. The server manages communication between the client and the adb daemon running on an emulator or device. 3. A daemon, which runs as a background process on each emulator or device instance.

JDWP  JavaTM Debug Wire Protocol DDMS  Dalvik Debug Monitor Server  BlackBerry OS / BBX/ QNX from RIM (closed source, proprietary)  iOS from Apple Inc (closed source, proprietary, on top of open source Darwin core OS)  OS from the (open public license) Symbian has the largest share in most markets worldwide  webOS. HP (formerly Palm)  from Microsoft (closed source, proprietary)  SHR (community-driven) Neo Freerunner  MeeGo from non-profit organization The (open source, GPL)  from Samsung Electronics (closed source,proprietary real-time operating )  Brew from Qualcomm  LiMo 4 from LiMo Foundation  from Microsoft(closed source)  The Windows CE operating system (closed source)  DangerOS from Danger, Inc. (closed source, proprietary) Kin phones  Nucleus from Mentor Graphics (closed source) LG Encore (GT550), LG Prime (GS390)  Boot 2 Gecko from non-profit organization Mozilla Foundation (open source, GPL)  from non-profit organization The Linux Foundation (open source, GPL)  Tizen is an open source project hosted by the Linux Foundation, with Intel and Samsung leading its development steering group, and support from the LiMo Foundation. According to Intel, Tizen “combines the best of LiMo and MeeGo  Windows 8 from Microsoft (closed source, properitary)

Desktop Mobile Hard-Core embedded

Large Small Small X86 Efficient Efficient Powerful Networked Do specific task Unreliable Firmware in Flash Standalone devices Windows Tax Reliability Firmware in Flash Large Storage RISC Reliability Networked Linux Variants RISC Mobile Linux / RTOS Storage

Pretty much the same !

 This will allow the next-gen products to be more power efficient as the appropriate power and silicon resources will be applied to any given tasks.

 It seems that “companion cores” are the immediate future for low-power / high- performance chips. ARM says that in theory, the A7/A15 combo could save up to 70% in terms of It’s just like … power consumption  http://www.youtube.com/watch?v=4dZsS- C6f2Q