Dezvoltarea de Aplicații
pentru Telefoane Mobile
(DATM)
- curs 1 -
Marcel Cremene, Conf.dr.ing.
2012-2013
02.10.2012 1
Conținutul prezentării
Obiectivele și conținutul cursului
Cunoștințe prealabile necesare
Contextul în care dezvoltăm aplicații mobile Serviciile mobile și infrastructura acestora
Terminale mobile – caracteristici și sisteme de operare
Domeniul de cercetare Ubiquitous/Pervasive Computing
Bibliografie
02.10.2012 2
Obiectivele cursului
Învățarea prin aplicare practică
Cunoașterea unor aspecte cheie:
managementul proiectelor software
modele de proiectare (design-patterns)
paradigme, tehnologii, framework-uri
limbaje de programare: Java, C++, C#, Objective C
convenții de scriere a codului
Identificarea și rezolvarea problemelor specifice
aplicațiilor destinate dispozitivelor mobile
Dobândirea abilităților practice necesare dezvoltării
de aplicații mobile complexe
02.10.2012 3
Cursul include:
Gestiunea proiectelor software (Project Management)
Paradigme utilizate: componentă, serviciu, middleware, agent, aspect
Design pattern-uri (modele de programare)
Platforme vizate: J2ME – Polish
Android
iPhone
Windows Phone 7
Direcții de cercetare: Pervasive/Ubiquitous Computing
Context-aware Computing
02.10.2012 4
Cunoștințe prealabile necesare
Principiile OOP
Clase, obiecte, relații
Limbaje de programare
Java, C#, C++
Rețele și protocoale
TCP, UDP, HTTP, SOAP
Sisteme de comunicații mobile
GSM, 3G, Bluetooth, WiFi
Sisteme de operare și arhitecturi de calculatoare
02.10.2012 5
Metodologie de lucru
Utilizarea de tehnici de muncă intelectuală: Problematizare
Gândire critică
Gândire laterală
Brainstorming
Lucrul în echipă
Justificarea teoriei pornind de la necesitățile practice
Suport WEB: mercur.utcluj.ro/mobile
02.10.2012 6
Context – infrastructura telecom (1)
Tendințe:
Integrarea domeniilor:
-> Telecomunicatii
-> Internet
-> Audio-vizual
- Debite cat mai mari
- Oferirea unui QoS garantat
- Ubiquitous/Pervasive Computing
- Semantic web
02.10.2012 7
Context – infrastructura telecom (2)
Mobilitate extinsă
1G -> 2G -> 2.5G -> 3G -> 4G …
Mobilitate într-o arie limitată
WiFi : 802.11, 802.11.b, 802.11.a …
WiMax : 802.16
Mobilitate în aria personală
Bluetooth v.1, v.2
02.10.2012 8
Context – infrastructura telecom (3)
Tendințe:
-> rețea comună de transport, bazată
pe IP
-> rețele de acces diverse conectate
la o aceeași rețea de transport
-> schimbarea modului de acces să
fie transparent pentru utilizator
02.10.2012 9
Context – infrastructura telecom (4)
02.10.2012 10
Care sunt asemănările/diferențele dintre soluțiile de conectivitate fixe
respectiv mobile?
Zone de mobilitate
11 02.10.2012
Context – piața serviciilor (1)
Cerințe:
-> Serviciile să țină cont de
nevoile specifice ale
utilizatorilor
-> Serviciile să fie
personalizabile
-> Să se poată garanta o
anumită calitate pentru un
anumit cost
02.10.2012 12
Context – caracteristicile
terminalelor mobile (1)
02.10.2012 13
Care sunt asemănările/diferențele dintre caracteristicile unui telefon mobil
respectiv ale unui PC? Dar în ceea ce privește contextul de utilizare al
acestora?
Context – consumul de energie
14 02.10.2012
Baterii
Sisteme de operare – generalități
Asigură accesul la resursele hardware
Este necesar să existe pe orice mașină de calcul programabilă
Aplicațiile accesează sistemul de operare la nivelul API-urilor
Utilizatorul accesează funcțiile sistemului de operare prin intermediul unei console sau GUI dedicat
Funcții: execuția programelor, întreruperi, gestiune: sistem fisiere, periferice, rețea, memorie, procese,
securitate, etc.
Sisteme de operare pentru
mobile – Windows
Terminale: PDA-uri, Smart-phone, Pochet PC, Handheld PC
Rata utilizare: 15% dintre smartphone
Windows Mobile 6 Functionalitati:
320x320 and 800x480 (WVGA) screen resolution support
Office Mobile support for Smartphones
Operating System Live Update[23]
Improved Remote Desktop access[24](Available for only certain Pocket PCs)[25]
VoIP (Internet calling) support with AEC (Acoustic Echo Cancelling) and MSRT Audio Codec
Windows Live for Windows Mobile[26]
Customer Feedback option[27]
Enhanced Microsoft Bluetooth Stack
Storage Card Encryption (encryption keys are lost if device is cold-booted).
Smartfilter for searching within programs
Improved Internet Sharing
HTML email support in Outlook Mobile
Search ability for contacts in an Exchange Server Address Book
AJAX, JavaScript, and XMLDOM support on Internet Explorer Mobile
Out of Office Replies with Microsoft Exchange 2007
Unlicensed Mobile Access (UMA) support for select operators
Server Search on Microsoft Exchange 2007
.NET Compact Framework v2 SP2 Preinstalled in ROM
Microsoft SQL Server 2005 Compact Edition Preinstalled in ROM
OneNote Mobile as a companion to Microsoft Office OneNote
Office Mobile 6.1 announced[28] with support for Office 2007 document formats (pptx, docx, xlsx).
Windows Phone 7 Foarte similar cu Android ca funcții si arhitectură
Bazat pe tehnologiile Silverlight, HTML, XNA, JavaScript
Aplicații: C#
Masina virtuală: CLR (hardware divers)
Sisteme de operare pentru mobile –
Symbian OS
Terminale: telefoane mobile, smartphone
Rata utilizare: 67% dintre smartphone
La 11.02.2011 Nokia anunta
migrarea de la Symbian la
Windows Phone 7
Symbian OS 9.4 Core OS
Security, Privacy and Content Protection
• Application capability management
• Application data caging
• Cryptographic algorithms – DES, 3DES,
RC2, RC4, RC5 and AES
• Cryptographic token framework
• DRM framework and reference
implementation
• IPSec and VPN client support plus SSL
and TLS
Open Environments
• Standard C environment
• Standard libraries including partial POSIX
support (P.I.P.S.)
Location-Based Services
• GPS, A-GPS (terminal-assisted / terminalbased)
and network-based positioning
• Mobile originated and mobile terminated
requests (including emergency requests)
Telephony
• Multimode Etel (2.5G / 3G)
• GSM Phase 2+
• HSCSD
• GPRS, classes A, B and C (R97/98)
• EDGE (CSD and GPRS)
• WCDMA (3GPP R4 and R5 IMS support)
• HSDPA
• SMS (3GPP TS 23.040 V6.5.0)
• EMS (3GPP TS 23.040 V4.5)
• SIM Application Toolkit
• SIM and USIM support
• Quality-of-Service framework
• Support for multiple primary and
secondary PDP contexts
• Third party OTA API
Networking & Comms
• Bluetooth v2.0 (L2CAP, RFCOMM, SDP,
GAP and SPP) plus profile support
• Bluetooth stereo headset support
• USB v2.0 High Speed (Mass storage, ACM,
WHCM) and USB On-The-Go support
• WLAN
• IrDA & serial
• OBEX over Bluetooth, IrDA and USB
• TCP, IPv4, IPv6, MSCHAP v2, PPP
• TCP/IP plug-in framework
• HTTP plug-in framework
- HTTP 1.1
- Pipelining
• WAP push
• Connectionless WSP
• Multihoming, NAPT
Multimedia
• Video capture and playback framework
• Audio capture and playback framework
• Camera interface supporting multimegapixel
cameras and advanced features
• Tuner interface
• Hardware abstraction layer for multimedia
acceleration
• Audio and video codec interfaces
compliant with OpenMax IL 1.0
• Image conversion (all common formats)
with scaling enhancements
Graphics
• Bitmap and vector font support with
advanced font effects
• 2D and 3D graphics support including
OpenGL ES
Persistent Data Services
• Embedded SQL database
Generic OS Services
• Extensive language support including:
Thai, Arabic, Hebrew, Japanese, Chinese,
Hindi, Brahmic and Vietnamese scripts
• Unicode 3.0
Kernel & Hardware Services
• ARMv5, v6 and v7 support
• L2 cache support
• Defragmentation of physical RAM
• Demand paging of read-only code and data
• Hardware-dependent support for “VFP”
floating point acceleration and accelerated
maths functions
• High performance file server
• MMC and SD card support including
media >2GB
Generic Middleware
Security Management
• Cryptographic services
• Certificate management (X509 certificates)
• Secure Software Install
• MIDP 2.0 support
Application Protocols
• White/black list URI service for WAP push
• SIP/SDP
Multimedia Middleware
• High-level multimedia service abstraction
• RTP, RTCP
System GUI Frameworks
• Flexible application and UI frameworks
• Control and windowing environments
Application Services / Logic
Remote Management Application Daemons
• Over-the-air firmware upgrade (FOTA)
• OMA Client Provisioning v1.1
• OMA Data Synchronization v1.2
• OMA Device Management v1.2
Enterprise Application Services
• Calendaring including vCalendar v1.0 and
interoperability with Microsoft Exchange
and Lotus Notes servers
• Contacts management including
vCard v2.1
• IMAP4 including IDLE support, RFC2177
and RFC 3501
• POP3 implementation compliant with
RFC 1939
• SMTP implementation compliant with
RFC 2821
• SMTP Service Extension for
Authentication, RFC 2554, Secure SMTP
over Transport Layer Security, RFC 3207
• Secure email using TLS with IMAP, POP3,
and ACAP, RFC 2595
• Extensible framework for push
email solutions
Sisteme de operare pentru mobile
– Palm OS
Terminale: PDA, power mobile devices
Palm OS Garnet 5.4
Functionalitati: Simple, single-tasking environment to allow launching of full screen applications
with a basic, common GUI set
Monochrome or color screens with resolutions up to 480x320
Handwriting recognition input system called Graffiti 2
HotSync technology for synchronization with desktop computers
Sound playback and record capabilities
Simple security model: Device can be locked by password, arbitrary application records can be made private
TCP/IP network access
Serial port/USB, Infrared, Bluetooth and Wi-Fi connections
Expansion memory card support
Defined standard data format for personal information management applications to store calendar, address, task and note entries, accessible by third-party applications.
Sisteme de operare pentru mobile
– Linux mobile
Android (Google)
Android
Functionalitati: Application framework enabling reuse and replacement of
components
Dalvik virtual machine optimized for mobile devices
Integrated browser based on the open source WebKit engine
Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)
SQLite for structured data storage
Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
GSM Telephony (hardware dependent)
Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
Camera, GPS, compass, and accelerometer (hardware dependent)
Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE
Apple iOS (iPhone OS)
Sistem proprietar - nu se bazează pe o masină virtuală (dar nu suportă hardware multiplu)
Aproximativ 26% din piață, 500.000 aplicatii iOS în Apple Store în 2010
UI bazată pe manipulare directă (ecran tactil)
Accelerometru intern
Sistem de operare Unix-like
Aplicațiile de dezvoltă în limbajul Objective-C
Comparație între principalele platforme
Google Android
Microsoft
Windows
Phone 7
Apple iOS
Sursa aplicații Android Market App Marketplace AppStore
API Interfață
utilizator
Java Application
Framework Silverlight Cocoa
Browser Webkit Internet Explorer Webkit
API grafica 3D OpenGL DirectX OpenGL
Limbaj aplicații Java C# Objective-C
Masină virtuală Dalvik VM CLR -
Sistem operare Linux Windows Unix-like
27 02.10.2012
Alte sisteme de operare/platforme
BlackBerry
Qualcomm Brew (Binary Runtime Environment for
Wireless)
…
Tehnologii, limbaje
Symbian OS C++
Windows Mobile C#, .NET Compact Framework
VBasic, .NET Compact Framework
Java 2 Micro Edition J2ME LCDui, MIDP, CLDC/CDC
J2ME Polish
Android Java
Apple iOS Objective-C
Ubiquitous/Pervasive Computing
Viziune: servicii mobile omniprezente –
accesibile oriunde, oricând
1 user … N dispozitive/terminale/servicii
30 02.10.2012
Probleme fundamentale ale
aplicațiilor mobile
Adaptarea aplicațiilor/serviciilor:
la caracteristicile rețelei
la caracteristicile ecranului, puterii de procesare, memoriei
optimizarea utilizării bateriei
la preferintele utilizatorului (ex. localizare fizică sau socială)
Accesul nomad – gestiunea schimbării terminalelor
Adaptare transparentă versus adaptarea cu implicarea
utilizatorului
Gestiunea datelor replicate (replica reconciliation)
gestiunea deconectărilor
caching, prefetching
31 02.10.2012
Aspecte legate de cercetare în
domeniul ”Mobile Computing”
Problema centrală: dinamicitatea contextului cauzată în
special de mobilitate
Context:
Infrastructura hardware:
Dispozitive: memorie, CPU, screen, etc.
Rețele de comunicații: debit, deconexiuni
Utilizator:
Preferințe - dependente de localizare, condiții de mediu înconjurător
Mediul înconjurător:
Proximitatea față de anumite obiecte, persoane, zgomot, lumină
ambiantă, etc.
Adaptarea la context
Cine se adaptează? În functie de ce? Când? Cu ce
scop?
Exemple:
Adaptarea calității unui flux de date (ex. video) la debitul
disponibil
Adaptarea interfeței utilizator la tipul de ecran/tastatură
Gestiunea replicării datelor în condiții de deconexiune
Adaptarea calității serviciului la resursele terminalului (memorie
disponibilă, putere procesare)
Adaptarea serviciului la o nouă nevoie a utilizatorului (de
exemplu cauzată de schimbarea locației)
Bibliografie Introduction to Mobile Communications: Technology,
Services, Markets, Autori:Tony Wakefield, Dave
McNally, David Bowler, Editura:Auerbach
Publications
http://bnrg.eecs.berkeley.edu/~randy/Courses/CS29
4.S96/MobiComp.pdf
02.10.2012 34
Top Related