Android este un sistem de operare mobil bazat pe o versiune modificată de Linux (pentru gestiunea componentelor hardware, a proceselor și a memoriei) și biblioteci Java (pentru telefonie (audio/video), conectivitate, grafică, programarea interfețelor cu utilizatorul). Este un produs open-source (putând fi dezvoltat de producătorii de dispozitive mobile cu extensii proprietare pentru a-și particulariza platforma), dezvoltat în prezent de compania Google, conceput pe ideea transformării dispozitivelor mobile în adevărate mașini de calcul. Comunitatea Android este în creștere, mai multe companii renunțând la propriul sistem de operare în favoarea acestuia, pentru a putea face față fenomenului iPhone.
În condițiile în care pe piața dispozitivelor mobile aplicațiile sunt cele care aduc avantajul competițional, beneficiul Android este reprezentat de abordarea unitară pentru dezvoltarea aplicațiilor. Cu alte cuvinte, o aplicație dezvoltată conform API-ului Android va putea rula pe mai multe dispozitive mobile pe care este instalat sistemul de operare respectiv.
| Versiune Android | Nivel API | Data Lansării | Nume de Cod | Cota de Piață |
|---|---|---|---|---|
| 5.0 - 5.0.2 | 21 | 12.11.2014 | Lollipop | 1.6% |
| 4.4W - 4.4W.2 | 20 | 25.06.2014 | KitKat with wearable extensions | |
| 4.4 - 4.4.4 | 19 | 31.10.2013 | KitKat | 39.7% |
| 4.3 | 18 | 24.07.2013 | Jelly Bean | 6.3% |
| 4.2.x | 17 | 13.11.2012 | Jelly Bean | 19.8% |
| 4.1.x | 16 | 09.07.2012 | Jelly Bean | 18.4% |
| 4.0.3 - 4.0.4 | 15 | 16.12.2011 | Ice Cream Sandwich | 6.4% |
| 4.0 - 4.0.2 | 14 | 19.10.2011 | Ice Cream Sandwich | |
| 3.2 | 13 | 15.07.2011 | Honeycomb | |
| 3.1 | 12 | 10.05.2011 | Honeycomb | |
| 3.0 | 11 | 22.02.2011 | Honeycomb | |
| 2.3.3 - 2.3.7 | 10 | 09.02.2011 | Gingerbread | 7.4% |
| 2.3 - 2.3.2 | 9 | 06.12.2010 | Gingerbread | |
| 2.2 - 2.2.3 | 8 | 20.05.2010 | Froyo | 0.4% |
| 2.1 | 7 | 12.01.2010 | Eclair | |
| 2.0.1 | 6 | 03.12.2009 | Eclair | |
| 2.0 | 5 | 26.10.2009 | Eclair | |
| 1.6 | 4 | 15.09.2009 | Donut | |
| 1.5 | 3 | 30.04.2009 | Cupcake | |
| 1.1 | 2 | 09.02.2009 | ||
| 1.0 | 1 | 23.09.2008 |
Arhitectura sistemului de operare Android cuprinde cinci secțiuni grupate pe patru niveluri:
De vreme ce Android este un produs open-source, producătorii având posibilitatea de a-l modifica în mod gratuit, nu există configurații hardware sau software standard. Totuși, Android implementează următoarele funcționalități:
Deși platforma celor de la Apple pune la dispoziție o gamă de aplicații mult mai variată decât a celor de la Google, la sfârșitul lui 2013 Android deținea 51.8% din totalul descărcărilor, în timp ce iPhone numai 40.7%. Totuși, politica de distribuție a acestora (faptul că aplicațiile iPhone pot fi instalate numai prin intermediul App Store, în timp ce Android pune la dispoziție mai multe posibilități - Play Store, Amazon App Store, prin conexiune USB de la calculator, prin email sau prin pagina Internet a organizației) se traduce prin încasările obținute, raportul dintre Apple și Google fiind de 65% la 35%.
În privința limbajului de programare utilizat pentru dezvoltarea de aplicații mobile, iPhone folosește Objective-C, similar cu C++, care nu se bucură însă de o răspândire prea largă (cu excepția aplicațiilor pentru iPhone), în timp ce Android utilizează Java (limbajul de programare cel mai adoptat pe scară largă în cadrul corporațiilor) dar și C/C++, prin care se pot apela (cu o oarecare dificultate) aplicații native, prin suport JNI (numărul bibliotecilor disponibile în cazul C/C++ este mai redus decât în Java, însă viteza aplicațiilor este mai mare). Dezvoltarea aplicațiilor pentru iPhone se poate realiza numai folosind mașini Mac (echipate cu MacOS), în timp ce aplicațiile Android pot fi scrise în orice sistem de operare cu Java și Eclipse (atât PC-uri cât și Mac-uri echipate cu Windows, Linux sau MacOS). În această situație, se pune problema cotelor de piață ale sistemelor de operare în cadrul companiilor dezvoltatoare de software, care creează sau nu oportunități pentru dezvoltarea unui anumit tip de aplicații (la începutul lui 2014, sistemele de operare Windows dețineau 90,60% din piață, OS X 7,68%, sistemele de operare cu kernel Linux 1,60%, iar alte sisteme de operare 0,10%).
Așadar, dacă pentru utilizare personală nu se poate stabili un câștigător clar între Android și iPhone (deși produsul celor de la Apple pare să aibă un ușor avantaj printr-un număr mai mare de aplicații și prin loialitatea clienților), în cazul aplicațiilor dezvoltate de corporații situația este inversă, date fiind posibilitățile de instalare și limbajul de programare folosit.
Ajunsă deja la a cincea versiune, Android este o platformă care beneficiază de experiența a numeroși dezvoltatori ce poate fi exploatată:
student@pdsd2015:~$ file /sbin/init
java -version) și în caz afirmativ, se dezinstalează pachetul din care face parte (folosind sudo apt-get purge)/usr/local/java în care va fi instalată versiunea curentă de Javastudent@pdsd2015:~$ sudo mkdir -p /usr/local/java
tar.gz conținând SDK-ul de Java corespunzător arhitecturii mașinii pe care se dorește să se realizeze instalarea de la Java SE Development Kit 8 Downloads în directorul /tmp/usr/local/javastudent@pdsd2015:~$ cd /usr/local/java student@pdsd2015:/usr/local/java$ sudo tar xvzf /tmp/jdk-8u31-linux-<platforma>-<arhitectura>.tar.gz
unde:
platforma poate avea valorile:linux - sisteme de operare Linuxmacosx - sistemul de operare Mac OS X (doar versiuni pe 64 de biți)solaris - sisteme de operare Solariswindows - sisteme de operare Windowsarhitectura poate avea valorile:i586 - arhitecturi pe 32 de bițix64 - arhitecturi pe 64 de bițisparcv9 - arhitecturi SPARCstudent@pdsd2015:~$ rm -f /tmp/jdk-8u31-linux-<platforma>-<arhitectura>.tar.gz
JAVA_HOME prin editarea fișierului /etc/profile (se poate folosi orice editor de text, precum vi sau nano)student@pdsd2015:~$ sudo gedit /etc/profile
# ... JAVA_HOME=/usr/local/java/jdk1.8.0_31 PATH=$PATH:$JAVA_HOME/bin export JAVA_HOME export PATH # ...
student@pdsd2015:~$ sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk1.8.0_31/bin/java" 1 student@pdsd2015:~$ sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/java/jdk1.8.0_31/bin/javac" 1 student@pdsd2015:~$ sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/java/jdk1.8.0_31/bin/javaws" 1
student@pdsd2015:~$ sudo update-alternatives --set java /usr/local/java/jdk1.8.0_31/bin/java student@pdsd2015:~$ sudo update-alternatives --set javac /usr/local/java/jdk1.8.0_31/bin/javac student@pdsd2015:~$ sudo update-alternatives --set javaws /usr/local/java/jdk1.8.0_31/bin/javaws
/etc/profile ce conține variabilele de sistem globalestudent@pdsd2015:~$ . /etc/profile
/etc/profile se va face numai după repornirea sistemului de operare.
Se descarcă arhiva .tgz conținând SDK-ul de Android:
student@pdsd2015:~$ cd /tmp student@pdsd2015:/tmp$ wget http://dl.google.com/android/android-sdk_r24.0.2-linux.tgz student@pdsd2015:/tmp$ cd /opt student@pdsd2015:/opt$ sudo tar xzvf /tmp/android-sdk_r24.0.2-linux.tgz student@pdsd2015:/opt$ rm -f /tmp/android-sdk_r24.0.2-linux.tgz
Se descarcă executabilul conținând SDK-ul de Android.
student@pdsd2015:~$ cd /opt/android-sdk-linux/tools student@pdsd2015:/opt/android-sdk-linux/tools$ sudo ./android
C:\Program Files (x86)\Android\android-sdk)SDK Manager.exe (click dreapta) se accesează opțiunea Properties
Compatibility se bifează opțiunea Run this program as an administrator și se definitivează modificările accesând butonul Apply
Se descarcă arhiva .tar.gz corespunzătoare arhitecturii mașinii pe care se dorește să se realizeze instalarea în directorul /opt:
student@pdsd2015:~$ cd /tmp student@pdsd2015:/tmp$ wget http://ftp.snt.utwente.nl/pub/software/eclipse//technology/epp/downloads/release/luna/SR1a/eclipse-java-luna-SR1a-linux-gtk.tar.gz student@pdsd2015:/tmp$ cd /opt student@pdsd2015:/opt$ sudo tar xzvf /tmp/eclipse-java-luna-SR1a-linux-gtk.tar.gz student@pdsd2015:/opt$ rm -f /tmp/eclipse-java-luna-SR1a-linux-gtk.tar.gz
student@pdsd2015:~$ cd /tmp student@pdsd2015:/tmp$ wget http://eclipse.mirror.triple-it.nl/technology/epp/downloads/release/luna/SR1a/eclipse-java-luna-SR1a-linux-gtk-x86_64.tar.gz student@pdsd2015:/tmp$ cd /opt student@pdsd2015:/opt$ sudo tar xzvf /tmp/eclipse-java-luna-SR1a-linux-gtk-x86_64.tar.gz student@pdsd2015:/opt$ rm -f /tmp/eclipse-java-luna-SR1a-linux-gtk-x86_64.tar.gz
Lansarea în execuție a mediului de dezvoltare integrat se face prin /opt/eclipse/eclipse.
Se descarcă arhiva .zip corespunzătoare arhitecturii mașinii pe care se dorește să se realizeze instalarea:
/opt/eclipse/eclipseeclipse.exe din directorul în care s-a realizat instalarea
.zip corespunzătoare în directorul /opt:student@pdsd2015:~$ cd /tmp student@pdsd2015:/tmp$ wget https://dl.google.com/dl/android/studio/ide-zips/1.0.1/android-studio-ide-135.1641136-linux.zip student@pdsd2015:/tmp$ cd /opt student@pdsd2015:/opt$ sudo unzip /tmp/android-studio-ide-135.1641136-linux.zip student@pdsd2015:/opt$ rm -f /tmp/android-studio-ide-135.1641136-linux.zip
student@pdsd2015:/opt$ cd android-studio/bin student@pdsd2015:/opt/android-studio/bin$ sudo ./studio.sh
Procesul de configurare a mediului integrat de dezvoltare Android Studio implică următorii pași:
JAVA_HOME, în caz contrar generându-se un mesaj de eroare
JAVA_HOME în secțiunea System Variables prin accesarea butonului New…
JAVA_HOMEC:\Program Files\Java\jdk1.8.0_31)
studio.exe) trebuie să dețină drepturi de rulare corespunzătoare utilizatorului de tip administrator.O versiune gratuită pentru emulatorul Genymotion poate fi descărcată de pe http://www.genymotion.com după ce se creează un cont. Alternativ, executabilele pot fi descărcate de la următoarele locații:
student@pdsd2015:~$ cd /opt student@pdsd2015:/opt$ sudo wget http://pdsd2015.andreirosucojocaru.ro/resources/genymotion-2.3.1_<platforma>.bin
unde platforma are valoarea
x86 - arhitecturi pe 32 de bițix64 - arhitecturi pe 64 de bițix64_debian - distribuția Debian pe 64 de bițiEmulatorul Genymotion are nevoie de o mașină virtuală în contextul căreia să ruleze.
student@pdsd2015:~$ sudo apt-get install openbox virtualbox
Se instalează emulatorul Genymotion pornind de la executabilele descărcate.
student@pdsd2015:/opt$ sudo chmod +x genymotion-2.3.1_<platforma>.bin student@pdsd2015:/opt$ sudo ./genymotion-2.3.1_<platforma>.bin student@pdsd2015:/opt$ sudo rm -f genymotion-2.3.1_<platforma>.bin
.exe în cauzăEclipse
/opt/eclipse/eclipseeclipse.exe din directorul în care s-a realizat instalarea

Ctrl+6.
Android Studio
sudo /opt/android-studio/bin/studio.shstudio.exe din directorul în care s-a realizat instalarea


Se lansează în execuție Genymotion.
/opt/genymotion/genymotionglibc
student@pdsd2015:~$ sudo /opt/genymotion/genymotion /opt/genymotion/genymotion: /lib/i386-linux-gnu/i686/cmov/libc.so.6: version `GLIBC_2.15' not found (required by /opt/genymotion/libQtGui.so.4) /opt/genymotion/genymotion: /lib/i386-linux-gnu/i686/cmov/libc.so.6: version `GLIBC_2.15' not found (required by /opt/genymotion/libQtNetwork.so.4) /opt/genymotion/genymotion: /lib/i386-linux-gnu/i686/cmov/libc.so.6: version `GLIBC_2.15' not found (required by /opt/genymotion/libQtCore.so.4)
este necesar să se instaleze o versiune mai recentă (experimentală).
Se modifică fișierul care conține lista locațiilor de la care pot fi descărcate pachetele (/etc/apt/sources.list), specificându-se o nouă sursă:
student@pdsd2015:~$ sudo gedit /etc/apt/sources.list
# ... deb http://ftp.debian.org/debian sid main # ...
Se actualizează baza de date cu locațiile de la care pot fi descărcate pachetele.
student@pdsd2015:~$ sudo apt-get update
Se instalează pachetul eglibc.
student@pdsd2015:~$ sudo apt-get -t sid install libc6 libc6-dev libc6-dbg
(pentru platformele pe 64 de biți se va instala pachetul libc6-amd64).
În timpul instalării, unele servicii afectate vor fi repornite, fiind solicitat acceptul utilizatorului în acest sens.
Este necesară repornirea mașinii după care fișierul care conține locațiile de la care pot fi descărcate pachetele trebuie restaurat la starea inițială (cu actualizarea corespunzătoare a bazei de date).
genymotion.exe din directorul de instalare al emulatorului.Inițial, se solicită descarcarea unei imagini corespunzătoare pentru un dispozitiv mobil virtual.



pdsd și parola pdsd.



Finish.
Play.
lib32z1 cu sudo apt-get install lib32z1.
Ca alternativă la Genymotion, pot fi configurate dispozitive virtuale care vor fi rulate folosind emulatorul standard din cadrul SDK-ului de Android. De regulă, acestea sunt mai lente, consumă mai multă memorie și nu oferă la fel de multe facilități cu privire la funcționalitățile dispozitivului propriu-zis.
Configurarea unui dispozitiv virtual se face prin intermediul aplicației Android Virtual Device (AVD) Manager, livrată împreună cu SDK-ul Android.
student@pdsd2015:~$ cd /opt/android-sdk-linux/tools/ student@pdsd2015:~$ sudo ./android avd
C:\Users\Pdsd2015>cd "C:\Program Files (x86)\Android\android-sdk" C:\Program Files (x86)\Android\android-sdk> "AVD Manager.exe"
Utilitarul listează toate dispozitivele virtuale Android, oferind totodată posibilitatea de a crea unele noi.
Procesul de configurare a unui dispozitiv virtual Android implică specificarea următoarelor proprietăți:
., _ și -.ldpi, mdpi, hdpi, xhdpi, xxhdpi, tvdpi)ARM (armeabi-v7a), MIPS (mips), Intel Atom (x86)
Rezultatele procesului de configurare a dispozitivului virtual pot fi vizualizate într-o fereastră care rezumă proprietățile specifice:
$HOME/.android/avd, pentru fiecare dintre acestea fiind stocat un fișier .avd și un fișier .ini (care conțin toate proprietățile dispozitivului virtual, acestea putând fi modificate și manual).
Pentru fiecare dispozitiv virtual din listă, există mai multe opțiuni:
Lansarea în execuție poate fi realizată:
emulator aflat în subdirectorul tools al SDK-ului Androidstudent@pdsd2015:~$ cd /opt/android-sdk-linux/tools/ student@pdsd2015:~$ sudo ./emulator @Nexus_S
C:\Users\Pdsd2015>cd "C:\Program Files (x86)\Android\android-sdk\tools" C:\Program Files (x86)\Android\android-sdk\tools> emulator @Nexus_S
emulator trebuie rulat cu opțiunea -force-32bit.
Opțiunile prin care poate fi controlată lansarea în execuție sunt:
Emulatorul furnizat împreună cu SDK-ul Android conține o secțiune a ecranului și o secțiune a controalelor utilizatorului (butoane pentru controlul volumului, pornire/oprire, tastele home / menu (meniu contextual) / back / search și un pad cu tastele direcționale (de regulă, dezactivat).
Pentru a se putea rula o aplicație pe un dispozitiv mobil fizic, trebuie să se activeze posibilitatea de depanare prin USB, din Dev Tools → Developer options → Debugging → USB debugging.