Mobile Software Development

neversinkhurriedΚινητά – Ασύρματες Τεχνολογίες

12 Νοε 2013 (πριν από 3 χρόνια και 11 μήνες)

82 εμφανίσεις

Mobile Software Development

Technology Overview

By

Dr. Maged Nofal


On July
20
th

2008
, our name has
changed from



to

Contents



Smartphone definition.

Smartphone Architecture.

Mobile Software Development Challenges.

Smartphone Operating Systems.

Mobile Programming Models.

Mobile Programming Languages.

Mobile Input.

Hardware Limitations.

Solution to Challenges.

Future Trends.










Smartphone vs Mobile Phone

Software Architecture for Smartphones

Embedded Operating System







Software Framework

GUI

SDKs/APIs

Native Applications

Interpreters/Virtual Machines

3
rd

Party Applications

Mobile Software Development Challenges

Different Operating Systems.


Different Screen Size.


Different Input methods.


Different Hardware Architectures.


Limited computing capabilities.



Mobile Software Development Challenges

Code Signing.


Lack of good language support.


Installed applications.


Cracking.


Reverse Engineering


Smartphone Operating Systems

Symbian (S
60
/UIQ/MOAP/Other)

Windows Mobile

Embedded Linux (MontaVisa/Android/Other)

BlackBerry OS

BREW

iPhone

ACCESS (Palm OS)





Mobile Programming Models

Web Based

Server Based.

Client/Server (Distributed Application).

Standalone (client based)

Native

Interpreted



Programming Languages

C/C++

.NET

Java ME

FlashLite

SilverLight Mobile

JavaFX

HTML/WML/JAVASCRIPT/AJAX

JAVA Micro Edition (JAVA ME)

Source: www.HowTo.org

Mobile Input

Keyboard(Keypad


Keyboard


Soft Keyboard)

TrackBall/Joystick.

Pen (Handwriting).

Touch

Microphone (Voice Command).

Camera (Image Recognition)

GPS

Hardware Limitations


Battery Power

CPU Speed

RAM

ROM

Floating Point Support

Graphics Support

Microphone Support

Camera Resolution

Solutions to Challenges

Multi Modal Interface.

Simplified Algorithms (Speed vs Accuracy).

Mathematical Transformation.

Fixed Point Processing. (Speed vs Accuracy).

Data Compression (Size vs Speed).

Pre
-
Computing (Speed vs Size).

Adaptive Systems.







Solutions to Challenges

Distributed Computing.

Programming Language Selection.

Screen independent graphical coordinates or
layout managers.

Unicode Support

Using Anti Cracking Techniques.

Use Obfuscation for managed code.


Future Trends

More powerful real
-
time Applications.

GPS aware applications.

More distributed Applications.

More AJAX web applications for mobile phones.

More multi
-
threading.

Dr. Maged Nofal

E
-
mail: maged.nofal@its.ws