Sunteți pe pagina 1din 50

AIDM – Aplicații Informatice pentru Dispozitive Mobile

Cui se adresează – studenților CTI anul 4

Cunoștințe necesare:
− fundamente Java: clase, variabile, structuri de control
− ce este API (Application Programming Interface)
− ce este IDE (Integrated Development Environment)
− fundamente XML

1
Cuprins
Mobile app ...............................................................................5
IDE ...........................................................................................6
Android ....................................................................................8
Software necesar ....................................................................12
Tipuri de aplicații mobile ......................................................15
Android Studio.......................................................................16
Configurarea Android Studio ................................................20
Android SDK .........................................................................22
Crearea unui proiect în AndroidStudio ..................................25
Rulare .....................................................................................30
Etapele compilării ..................................................................41
Procesul de realizarea a unei aplicații mobile .......................42

2
Structura unui proiect AndroidStudio....................................45
Componentele unei Mobile app .............................................51
Activity ..................................................................................52
Exemplu – Curs1 ...................................................................60
Exemplu – Buton ...................................................................70
Conectarea la Internet ............................................................79
Permisiuni ..............................................................................83
Fire de execuție ......................................................................85
Task asincron .........................................................................87
Exemplu – InternetConnection ..............................................88
Exemplu – RSSExample........................................................96
Exemplu – OperatoriCuIntregi ............................................114
Baze de date .........................................................................124

3
Exemplu - BazaDate ............................................................131
Exemplu – FileIO ................................................................135
Componente aplicații mobile ...............................................138
Exemplu FereastraSecundara ..............................................142
Android Studio Shortcuts ....................................................147

4
Mobile app
• specifice pentru o platformă și pentru un tip de dispozitiv
mobil,
• pot fi comerciale sau free,
• GUI orientat pe evenimente cu utilizatorul,
• folosesc camera foto, geolocația GPS, accelerometru,
compas, sistemul de fișiere, notificări (text, sunet,
vibrație), memorie.

SO pentru mobile: iOS, Android, Balckberry, Windows,


webOS, SymbianOS, Obada.

5
IDE
− AndroidStudio,
− Eclipse,
− PhoneGap (cross platform – același cod poate fi compilat
pentru iOS, Android),
− Xamarine,
− Visual Studio Community (cod în HTML5 + CSS +
JavaScript și poate fi compilat pentru mai multe SO),
− etc.

6
Avantaje Mobile App:
− Rulează de obicei mai repede pe Mobile app decât într-o
pagină web,
− Pot fi disponibile off-line,

Dezavantaje Mobile App:


− O aplicație bussiness ar trebui să fie disponibilă pe mai
multe SO.
− accesul la market este controlat de o firmă (Apple,
Android),
− upgrade-ul se face prin intermediul market (download and
install).
− Trebuie update periodic și mentenanță tehnică.

7
Android
Android este dezvoltat de Google (din 2008, prin intermediul
consorțiului comercial Open Handset Alliance), pentru
dispozitivele mobile (smartphone, tablete, reader, auto, tv,
wear).
Cuprinde:
– sistem de operare,
– middleware,
– aplicaţii de bază (client de e-mail, program de SMS,
calendar, hărţi, browser, agendă pentru date de contact,
etc.).

http://developer.android.com/index.html

8
Android este un mediu dinamic – număr mare de versiuni.
API se schimbă constat: pentru fixarea unor bug-uri,
îmbunătățirea performanțelor, îmbunătățiri la nivelul bateriei,
securității, accesibilității, etc.
https://developer.android.com/about/dashboards/index.html

Începând cu versiunea 5.0 au fost introduși diferiți senzori


(exemplu, senzori de mișcare, senzori pentru ritmul cardiac al
persoanei care atinge dispozitivul).

9
10
Arhitectura SO Android:
• aplicații
• API framework – comunică cu serviciile sistemului
(Windows manager, Notification manager) și cu serviciile
media, pentru accesul la hardware.
• HAL – definește o interfață standard astfel încât
producătorii de dispozitive mobile să poată dezvolta
drivere la nivel low-level, fără a afecta funcționalitățile la
nivel high-level.
• Linux kernel – permite dezvoltarea driverelor ca și în
Linux. Sunt disponibile mai multe versiuni de kernel
https://source.android.com/source/building-kernels.html.

11
Software necesar

• Java JDK – pentru compilarea claselor Java


http://www.oracle.com/technetwork/java/javase/downloads/in
dex.html
Trebuie setată o variabilă de mediu către SDK: System
Variable – Name: Java_Home, Value: c:\Program
Files\Java\jdk1. \
Se recomandă folosirea ultimei versiuni de Java disponibile
(pentru a afla versiunea instalată în calculator –
cmd: java –version).

• Aplicaţiile pentru Android se bazează pe limbajul de


programare Java.

12
• Android Studio – este un IDE oficial susținut de Google
bazat pe platforma IntelliJ IDEA (creat de JetBrains) în
versiunea lui free (Community Edition) - pentru compilarea
în pachete Android și rulare. Pot fi instalate mai multe
versiuni simultan)
http://developer.android.com/sdk/index.html

• API – documentaţia claselor Android


http://developer.android.com/reference/classes.html

• Cel puțin un dispozitiv mobil cu Android (diferă


producătorul, dimensiunea ecranului, rezoluția). Este indicat
ca testarea să se facă pe dispozitive cât mai multe și mai
variate.

13
• Emulator Android (se instalează odată cu Android Studio).
La 8Gb de Ram se recomanda 2Gb pentru emulator.
Dimensiunea memoriei Ram influențează câte emulatoare
pot rula simultan. Fiecare emulator consumă între 1.5 și
2Gb.
• Intel emulator Accelerator – HAXM – crește viteza
emulatorului.
• Verificarea periodică pentru Updates.
• Pentru aplicații noi versiunea de Android SDK minim
cerută este API level 15.
• Android SDK Build Tool (Android Studio
Manager/Android SDK/SDK Tools) – pot fi instalate
simultan mai multe versiuni.

14
Tipuri de aplicații mobile
• Aplicații native – create pentru a fi folosite doar pe
dispozitive mobile (smartphone, tabletă). Sunt create
de obicei pentru un număr restrâns de dispozitive.
Folosesc tehnologii SDK. Au nevoie de instalare și
update de pe store.
• Aplicații mobile web – accesează un server web pentru
comunicații de date folosind un browser. Folosesc
tehnologii web (HTML, CSS, Asp.net, Java, Php).
Sunt cross-platform. Nu au nevoie de instalare, iar
update-ul este generalizat.
• Aplicații hibride – sunt o combinație a celor două de
mai sus și pot rula online sau offline. Sunt scrise
folosind tehnologii web (HTML5, CSS).

15
Android Studio
– IDE care cuprinde:
o Editor de cod - code template, code completion, code
highlith
o Editor de UI – manager de poziționare, drag-and-drop
o Net tools – urmărirea performanțelor, grad de utilizare,
versiuni
o Bazat pe Gradle (sistem de creare automată a
aplicațiilor bazat pe plugin-uri – compilare, rulare
instantanee, debug pentru Java și C++, testare. Este
open source).
o Gradle – creează multiple aplicații folosind același
proiect.
o Dispozitive virtuale
o Android SDK Tools
o Android Platform-tools
16
o Folosește GitHub – sistem de control al versiunilor
(păstrează un istoric al modificărilor într-un repository,
asigură colaborare între programatori, upload-
download unei noi versiuni). GitHub.com oferă spațiu
pentru păstrarea proiectelor în diferite versiuni. Meniul
VCS – Version Control System.
o Import de exemple de la Google în fereastra inițială.

17
o Manager TODO – se pot introduce comentarii cu
TODO care apoi pot fi vizualizate în fereastra TODO.
Exemplu de TODO în fișierul xml
<!-- TODO de adaugat un nou item -->
Exemplu de TODO în fișierul java
// TODO de adaugat functia ptr ActionBar

18
19
Configurarea Android Studio
• File-Settings – setează comportamentul și modul de
vizualizarea al IDE-ului.
• Appearance & Behaviour
• Keymap – schimbă comportamentul shortcut pentru
taste
• Editor – schimbă comportamentul pentru editorul de
cod (line numbers, methods separators, Font)

20
21
Android SDK
(Software Development Kit)
• compilează codul unei aplicaţii într-un pachet Android, care
este o arhivă cu extensia .apk, care apoi poate fi instalată pe
orice dispozitiv care rulează Android.
• Include un emulator de dispozitiv mobil virtual
AVD (Android Virtual Device) care rulează pe computer.
Emulatorul permite dezvoltarea şi testarea aplicaţiilor
Android fără a fi nevoie de dispozitivul fizic. Interacţiunea
cu emulatorul se realizează prin mouse în loc de
touchscreen-ul dispozitivului şi taste în loc de butoane.

• Android SDK are un manager prin care se pot instala


documentaţii şi alte pachete.

22
• Din Android SDK Manager se instalează o versiune de
Android.

23
• Trebuiesc instalate minim:
o Android SDK Tools
o Android SDK Platform-tools
o Android SDK Build-tools
o Emulator system (exemplu, Google APIs Intel x86
Atom_64 System Image)

În folderul Android X.X minim trebuiesc instalate:


o Android SDK Platform
o Sources for Android

24
Crearea unui proiect în AndroidStudio
• În Android Studio - File – New – New Project
• Project Name - este numele proiectului. Numele proiectului
dă și numele pachetului de clase java și numele aplicației
mobile.
• Company domain – un nume care va fi adăugat la numele
pachetului în care va fi salvat proiectul. Are aceeaşi
structură ca la Java. Folderul src – conţine fişierele sursă
java. Numele pachetului declarat iniţial trebuie să fie format
din cel puţin 2 module separate prin punct. Dacă se dorește
ca aplicația să fie listată pe Market, atunci acest nume de
pachet trebuie să fie unic.
• Package name – poate fi schimbat și setat identic la mai
multe aplicații pentru a crea un singur pachet.

25
• Build Target – este versiunea de Android SDK în care va fi
compilat proiectul.
• Minimum SDK – indică cea mai veche versiune pe care va
rula aplicația. Help me choose – afișează o statistică a
versiunilor de Android și utilizarea lor. Informații
suplimentare la
https://developer.android.com/about/dash
boards/index.html
• Application Name – numele aplicaţiei care va apare pe
dispozitivul mobil
• Trebuie selectate dispozitivele pentru care este destinată
aplicația în fereastra Target Android Devices.
• În fereastra Add an Activity to Mobile se alege un șablon de
activitate pentru interfața grafică a aplicației. De obicei se

26
alege Empty Activity. Numele Activity dă numele clasei
java și a fișierului Xml pentru layout (manager grafic).
• În fereastra de vizualizare a proiectului nu se vede implicit
structura de directoare de pe disk a proiectului. Aceasta se
activează cu selectarea opțiunii view din Android în Project.

Main Activity – se creează automat clasa de bază, subclasă a


clasei AppCompatActivity, care va rula aplicaţia. În această
clasă este rescrisă metoda onCreate(...) unde trebuie făcute
toate iniţializările, inclusiv interfaţa grafică.

27
28
Setarea minSDK
• pentru nivelul minim de SDK în care aplicația va funcționa.
• Setarea unui SDK foarte vechi garantează funcționarea pe
dispozitive mai vechi, dar vine cu dezavantaje: crearea de
versiuni compilate pentru diferite API (unele deprecated),
lipsa unor funcționalități (ex., widget pentru home screen,
Android Tv).

Setarea targetSDK
• Arată versiunea în care s-a făcut testarea.

29
Rulare
• Pe un dispozitiv mobil – se conectează dispozitivul prin
Usb la dispozitivul pe care se dezvoltă. Apoi, în Android
Studio se dă Run și se alege dispozitivul mobil din
fereastra Select Deployment Target. Pentru debug și
rulare este nevoie de instalarea pe Windows a unui driver
ADB (Android Debug Bridge) pentru unele dispozitive
conectate prin USB. Se verifică în Control Panel, Device
Manager. Drivere pot fi găsite la
https://developer.android.com/studio/ru
n/oem-usb.html#Drivers
Pe dispozitiv se deschid Settings – About Phone- Build –
se dă click de mai multe ori până apare mesajul de
înregistrare ca Developer. Astfel, apare în Setting,
opțiunea Developer Options. Se bifează opțiunea USB
Debugging Feature. Apoi în Android Studio în tabul
30
Android Devices apare dispozitivul listat. Pentru a nu mai
folosi dispozitivul pentru testare se selectează în dispozitiv
Settings – Developer Options – Revoke USB Debugging
Authorizations.

31
• Pe un emulator -
1. Se lansează Android Virtual Device Manager din
meniul Tools > Android > AVD Manager sau iconița

.
2. Se alege Create Virtual Device în fereastra Your
Virtual Devices.

32
3. Se alege un dispozitiv mobil în fereastra Select
Hardware.

33
4. Se alege imaginea dorită pentru AVD în fereastra
System Image. Dacă nu există o imagine sistem dorită,
aceasta se poate downloada. Se pot schimba
dimensiunea ecranului și rezoluția, nivelul API,
orientarea, camera, network, ram, heap, enable
keyboard. Dimensiunea emulatorului depinde de ecran.
5. Se rulează aplicația din Android Studio cu Run . În
fereastra Select Deployment Target se alege
emulatorul dorit.
• Pornirea Emulatorului poate dura câteva minute.
• Pentru pornirea emulatorului, în BIOS trebuie aleasă
opțiunea Virtual Technology.

34
• Pe un emulator rularea unui fișier apk-
Se verifică dacă este instalat Android SDK Platform-Tools în
meniul Tools—Android—SDK Manager.

35
AVD Manager – permite pornirea dispozitivelor create cu
Start.
Rularea prin emulator are avantajul că permite testarea pe mai
multe tipuri de dispozitive, fără a le avea fizic.
Pentru pc-urile cu procesoare Intel, pentru a crește viteza de
execuție trebuie instalat Intel HAXM. Emulatorul x86 se
bazează pe un driver special numit HAXM care permite
virtualizare hardware.
Pentru instalarea HAXM se deschide meniul Tools-Android-
SDK Manager-tabul SDK Tools – se verifică să fie în listă. În
arborele de fișiere trebuie căutat un fișier IntelHAXM.exe.
pentru a instala emulatorul.
Dimensiunea ferestrei cu emulatorul poate fi modificată.
Unele au și o bară cu unelte pentru controlul dispozitivului
emulat (Back, Home, Overview, Rotate, Camera, Extendet
Controls..., Phone, Location).
36
37
38
Alternativa emulatoarelor puse la dispoziție de Android
Studio sunt cele din aplicația Genymotion, Andy, Bluestacks,
Droid4x, Koplayer, Memu, Nox (sunt mai rapide sau
dedicate, exemplu jocuri).

39
40
Etapele compilării
APK –Android Package (o formă specială de arhivă zip)
ADB – Android Debug Bridge

Gradle Jar
signer ADB
Android • Byte code
build • Resources Install on
Project sign
• Manifest device

APK

41
Procesul de realizarea a unei aplicații mobile
• Proiectare (design) –
o fluxul de ecrane, fără detalii și fără specificații de
acțiuni (de exemplu, ce se întâmplă când dau click pe o
component grafică, ce informație se dorește să se
afișeze, ce se va calcula, ce se întâmplă când schimb
fereastra),
o task-uri cheie.
• Prototip (detalii) –
o acțiuni (cele din specificații),
o funcții contextuale (copy, paste, cut),
o baze de date,
o securitate
o imagini/icon-uri (sugestive), animații, manager de
afișare (layout manager potrivit pentru unul sau mai

42
multe tipuri de dispozitive mobile). Prototipul de GUI
poate fi făcut pe hârtie (imagini statice sau dinamice se
fac mai multe poze statice care se combină cu o
aplicație de stop-motion, ex. PicPac, StopMotionPro,
DragonFrame, MaonkeyJam) sau printr-o aplicație (ex.
Flinto on-line).
• Dezvoltare – implementarea prototipului prin cod.
• Produs final (supus testării) –
o Testarea funcțională (se verifică funcționalitatea task-
urilor) – compatibilitate (pe diferite dispozitive
mobile), interfața grafică (meniuri, componente
grafice, setări, flux de navigare, istoric, bookmarks),
servicii (online/offline), ergonomie (ușor de folosit,
intuitivă), resurse de low level (încărcarea memoriei,
baze de date locale), performanțe (2G, 3G, 4G, Wifi,

43
consum baterie), instalare/dezinstalare, operațional
(backup și recovery), securitate, internaționalizare
(diferite limbi și alfabete).
o Testarea hardware – procesor, memorie
(funcționalitate), ecran cu rezoluție și dimensiune,
camera, bluetooth, wifi, hard/virtual keypad, SO,
operator de telefonie mobilă (GSM, CDMA, LTE),
producător (Samsung, Nokia, Apple, HTC, etc.).
o Testarea manuală/automată
o Testarea pe dispozitive reale (costisitoare)/emulate
(lipsește elementul surpriză dat de imperfecțiuni sau
condiții de mediu)/mixtă.
o Testarea folosind aplicații dedicate (MobiReady,
SIGOS Mobile Testing, Responsivepx,
cloudcomputing).

44
Structura unui proiect AndroidStudio
• Fișierul build.gradle – specific proiectului –
configurează Gradle build tool. Are 3 componente:
 buildscript (configurează codul pentru build),
 com.android.application (plugin-ul care
va fi folosit),
 android (configurează parametrii pentru aplicație).
• Fișierul build.gradle – specific Module: app – conține
setări ale versiunilor de Android
• Fișierul local.properties – conține setări pentru
configurarea proiectului. Linia cu sdk.dir conține calea
către Android SDK, specifică fiecărui proiect. Atunci
când se mută un proiect de pe un calculator pe altul,
această linie se șterge și va fi generată la deschiderea
noului proiect.

45
• Directoarele .gradle și .idea conțin configurații despre
mediul de dezvoltare și pot fi ignorate.
• Directorul .build conține fișiere generate de Android
Studio folosite în procesul de lucru cu pachetele.
• Directorul .app conține proiectul propriu-zis.
Reprezintă un modul. O aplicație poate avea mai multe
module.
• Directorul .app.build conține fișiere generate automat.
• Directorul .app.libs conține aplicația executabilă sub
formă de fișier .jar.
• Fișierul .app.build.gradle conține configurația pentru
versiunea de SDK, dependențe, compilator.
• Fișierul .app.proguard-rules.pro – este folosit pentru a
minimiza pachetul aplicației executabile și pentru a

46
face mai grea decompilarea (a obține sursele din
executabile).
• Fișierul .app.main.AndroidManifest.xml – memorează
activitățile, serviciile și alte componente ale aplicației.
• Directorul .app.src.main.res conține resurse (imagini,
icon). Subdirectoare
o .res/values – fișiere XML care conțin valori (de
exemplu, șiruri de caractere, numerice)
o res/values/strings.xml – fișier care definește șiruri
de caractere care pot fi folosite în aplicație sau în
alte fișiere din res. Pot fi referite prin:
 în Java: R.string.string_name
 în XML: @string/string_name

47
o .res/values/colors.xml – fișiere XML care definește
liste de culori (exemplu, <color
name="translucent_red">#80ff0000</color>)
 în Java: R.color.color_name
 în XML: @[package:]color/color_name
o res/values/arrays.xml - definește vectori de valori
(șiruri de caractere, culori) care sunt folosite în mai
multe locuri în proiect. Apelul se face astfel:
 în Java: R.array.array_name
 în XML: @[package:]array.array_name
Exemplu de fișier arrays.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<array name="tari">
<item>Romania </item>
<item>Grecia</item>
<item>Franta</item>

48
</array>
</resources>

o .res/drawable – fișiere de tip imagine (ex. Bmp)


o .res/layouts – fișiere xml pentru managementul
poziționării componentelor grafice în ferestre.
o .res/mipmap – fișiere imagine pentru icon-uri
o .res/menu – fișiere XML care definesc meniuri
o .res/animator – fișiere XML cu proprietățile
animațiilor
• Directorul .app.main.java – fișiere java
• Directoarele .app.src.AndroidTest (teste specifice) și
.app.sec.test (teste unitare)
• R.class – este generată la compilare și conține
constante care identifică dinamic diferite componente
din directorul res.
49
• Aplicația executabilă se găsește în directorul
.app.build.outputs.apk

50

S-ar putea să vă placă și