Differences

This shows you the differences between two versions of the page.

Link to this comparison view

eim:laboratoare:laborator01 [2020/02/19 10:41]
dragos.niculescu [Versiuni Android]
eim:laboratoare:laborator01 [2022/05/30 09:46] (current)
dragos.niculescu [Caracteristici (obligatoriu)]
Line 4: Line 4:
  
 ==== Android - Prezentare Generală ===== ==== Android - Prezentare Generală =====
 +<​spoiler>​
 Android este un SO 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. Google încearcă totuși să realizeze tranziția de la AOSP (Android Open Source Project) către GMS (Google Mobile Services), peste care sunt construite cele mai multe aplicații, în încercarea de a-și apăra acest proiect în fața concurenței. În acest sens, a fost dezvoltat **proiectul Google One**, prin care este oferit un set de specificații (ecran de 4.5 inchi - 845x480 pixeli, procesor quad-core, memorie 1GB RAM, spațiu de stocare 4GB, suport pentru dual sim) pe care producătorii de dispozitive mai ieftine trebuie să le respecte astfel încât acestea să fie compatibile cu un sistem Android, fără a întâmpina probleme de performanță. Acesta include toate aplicațiile și serviciile Google, la care se pot adăuga și altele, furnizate de producător sau operatorul de telefonie mobilă. În acest fel, se asigură calitatea (păstrând renumele Android) și controlul asupra veniturilor. 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. Android este un SO 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. Google încearcă totuși să realizeze tranziția de la AOSP (Android Open Source Project) către GMS (Google Mobile Services), peste care sunt construite cele mai multe aplicații, în încercarea de a-și apăra acest proiect în fața concurenței. În acest sens, a fost dezvoltat **proiectul Google One**, prin care este oferit un set de specificații (ecran de 4.5 inchi - 845x480 pixeli, procesor quad-core, memorie 1GB RAM, spațiu de stocare 4GB, suport pentru dual sim) pe care producătorii de dispozitive mai ieftine trebuie să le respecte astfel încât acestea să fie compatibile cu un sistem Android, fără a întâmpina probleme de performanță. Acesta include toate aplicațiile și serviciile Google, la care se pot adăuga și altele, furnizate de producător sau operatorul de telefonie mobilă. În acest fel, se asigură calitatea (păstrând renumele Android) și controlul asupra veniturilor. 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. Î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.
 +
 +</​spoiler>​
  
 ==== Versiuni Android ==== ==== Versiuni Android ====
Line 55: Line 57:
  
 ==== Arhitectura Android ==== ==== Arhitectura Android ====
 +<​spoiler>​
  
 Arhitectura sistemului de operare Android cuprinde cinci secțiuni grupate pe patru niveluri: Arhitectura sistemului de operare Android cuprinde cinci secțiuni grupate pe patru niveluri:
Line 75: Line 78:
   - **Cadrul pentru Aplicații** expune diferitele funcționalități ale sistemului de operare Android către programatori,​ astfel încât aceștia să le poată utiliza în aplicațiile lor.   - **Cadrul pentru Aplicații** expune diferitele funcționalități ale sistemului de operare Android către programatori,​ astfel încât aceștia să le poată utiliza în aplicațiile lor.
   - La nivelul de **aplicații** se regăsesc atât produsele împreună cu care este livrat dispozitivul mobil (Browser, Calculator, Camera, Contacts, Clock, FM Radio, Launcher, Music Player, Phone, S Note, S Planner, Video Player, Voice Recorder), cât și produsele instalate de pe Play Store sau cele dezvoltate de programatori.   - La nivelul de **aplicații** se regăsesc atât produsele împreună cu care este livrat dispozitivul mobil (Browser, Calculator, Camera, Contacts, Clock, FM Radio, Launcher, Music Player, Phone, S Note, S Planner, Video Player, Voice Recorder), cât și produsele instalate de pe Play Store sau cele dezvoltate de programatori.
 +</​spoiler>​
  
 ==== Funcționalități Android ==== ==== Funcționalități Android ====
 +<​spoiler>​
 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 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:​
   * **stocare** - folosește SQLite, o bază de date relațională ce utilizează resurse puține   * **stocare** - folosește SQLite, o bază de date relațională ce utilizează resurse puține
Line 94: Line 98:
   * **suport pentru aplicații Flash** (până în versiunea 4.3)   * **suport pentru aplicații Flash** (până în versiunea 4.3)
   * **legătură la Internet** - suportă partajarea conexiunilor la Internet ca punct de distribuție cu fir / fără fir   * **legătură la Internet** - suportă partajarea conexiunilor la Internet ca punct de distribuție cu fir / fără fir
 +</​spoiler>​
  
 ==== Android vs. iPhone ==== ==== Android vs. iPhone ====
 +<​spoiler>​
  
 Piața de telefoane inteligente este dominată de Android (care - potrivit estimărilor - își va menține supremația până în 2018), cu 82.8% (peste un miliard de dispozitive vândute) pe întreg anul 2015, în timp ce Apple deține doar 13.9%, la nivel mondial. Piața de telefoane inteligente este dominată de Android (care - potrivit estimărilor - își va menține supremația până în 2018), cu 82.8% (peste un miliard de dispozitive vândute) pe întreg anul 2015, în timp ce Apple deține doar 13.9%, la nivel mondial.
Line 106: Line 112:
  
 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. 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.
 +</​spoiler>​
  
 ==== Comunitatea programatorilor Android ==== ==== Comunitatea programatorilor Android ====
 +<​spoiler>​
 Ajunsă deja la a șaptea versiune, Android este o platformă care beneficiază de experiența a numeroși dezvoltatori ce poate fi exploatată:​ Ajunsă deja la a șaptea versiune, Android este o platformă care beneficiază de experiența a numeroși dezvoltatori ce poate fi exploatată:​
   * [[http://​developer.android.com/​training/​index.html|Google Android Training]] conține o serie de tutoriale și exemple de clase grupate în funcție de diferite subiecte, utile pentru deprinderea cunoștințelor de bază pentru dezvoltarea aplicațiilor Android.   * [[http://​developer.android.com/​training/​index.html|Google Android Training]] conține o serie de tutoriale și exemple de clase grupate în funcție de diferite subiecte, utile pentru deprinderea cunoștințelor de bază pentru dezvoltarea aplicațiilor Android.
   * [[http://​www.stackoverflow.com/​questions/​tagged/​android|Stack Overflow]] este un forum pentru programatori editat în mod colaborativ,​ conținând întrebări și răspunsuri la acestea (cele mai bune putând fi identificate cu ușurință prin voturile primite de la participanți). Este destul de probabil ca o întrebare să își găsească deja răspunsul pe acestă resursă.   * [[http://​www.stackoverflow.com/​questions/​tagged/​android|Stack Overflow]] este un forum pentru programatori editat în mod colaborativ,​ conținând întrebări și răspunsuri la acestea (cele mai bune putând fi identificate cu ușurință prin voturile primite de la participanți). Este destul de probabil ca o întrebare să își găsească deja răspunsul pe acestă resursă.
   * [[http://​groups.google.com/​group/​android-discuss|Android Discuss]] este o listă de discuții monitorizată îndeaproape de echipa Android de la Google astfel încât reprezintă un loc unde pot fi clarificate numeroase nelămuriri putând fi însușite diferite sfaturi și trucuri.   * [[http://​groups.google.com/​group/​android-discuss|Android Discuss]] este o listă de discuții monitorizată îndeaproape de echipa Android de la Google astfel încât reprezintă un loc unde pot fi clarificate numeroase nelămuriri putând fi însușite diferite sfaturi și trucuri.
 +</​spoiler>​
  
 ===== Cerințe pentru dezvoltarea unei aplicații Android (obligatoriu) ===== ===== Cerințe pentru dezvoltarea unei aplicații Android (obligatoriu) =====
Line 120: Line 128:
   - [[eim:​tutoriale:​sdk_android|SDK-ul de Android]], pentru care se descarcă definițiile corespunzătoare unuia sau mai multor niveluri de API   - [[eim:​tutoriale:​sdk_android|SDK-ul de Android]], pentru care se descarcă definițiile corespunzătoare unuia sau mai multor niveluri de API
   - un mediu integrat de dezvoltare (IDE)   - un mediu integrat de dezvoltare (IDE)
-    - [[eim:​tutoriale:​eclipse|Elipse]],​ cu plugin-ul ADT (Android Developer Tools) 
     - [[eim:​tutoriale:​android_studio|Android Studio]]     - [[eim:​tutoriale:​android_studio|Android Studio]]
   - un dispozitiv pe care să se ruleze aplicațiile   - un dispozitiv pe care să se ruleze aplicațiile
Line 151: Line 158:
 </​code>​ </​code>​
  
-Mai multe informații sunt disponibile și la [[http://blog.janosgyerik.com/adding-udev-rules-for-usb-debugging-android-devices/]].+ 
 +Fie că ați instalat un emulator, fie un telefon conectat prin cablu USB, puteti verifica că el este pornit si este vizibil  
 + 
 +<​code>​ 
 +/​opt/​Android/​SDK/​platform-tools/​adb devices 
 +</​code>​ 
 + 
 +Dacă dispozitivul este listat, va puteti conecta ​la prompt 
 + 
 +<​code>​ 
 +/opt/Android/SDK/​platform-tools/adb shell 
 +</code> 
 + 
 + 
 +  
 + 
  
 ===== Sisteme de control a versiunilor ===== ===== Sisteme de control a versiunilor =====
 +
  
 ==== Ce este un sistem de control al versiunilor?​ ==== ==== Ce este un sistem de control al versiunilor?​ ====
 +<​spoiler>​
 Un sistem de control al versiunilor (//eng.// VCS - Version Control System) este un mecanism prin intermediul căruia sunt gestionate fișiere / proiecte în dinamică (pe măsură ce sunt modificate),​ în scopul de a se putea realiza revenirea la o anumită stare în caz de eroare (restaurarea unei versiuni stabile) și pentru a permite colaborarea între mai multe echipe care lucrează concomitent la diferite funcționalități ale unui același proiect. Un sistem de control al versiunilor (//eng.// VCS - Version Control System) este un mecanism prin intermediul căruia sunt gestionate fișiere / proiecte în dinamică (pe măsură ce sunt modificate),​ în scopul de a se putea realiza revenirea la o anumită stare în caz de eroare (restaurarea unei versiuni stabile) și pentru a permite colaborarea între mai multe echipe care lucrează concomitent la diferite funcționalități ale unui același proiect.
  
 Deși în mod curent astfel de produse sunt folosite pentru dezvoltarea de aplicații (urmărindu-se o gestionare eficientă a codului sursă și a utilizatorilor care implementează anumite funcționalități sau corectează defecte), ele pot fi folosite și pentru alte tipuri de proiecte, ce implică lucrul cu fișiere binare, pentru care diferențele între diferite versiuni se realizează mai dificil. ​ Deși în mod curent astfel de produse sunt folosite pentru dezvoltarea de aplicații (urmărindu-se o gestionare eficientă a codului sursă și a utilizatorilor care implementează anumite funcționalități sau corectează defecte), ele pot fi folosite și pentru alte tipuri de proiecte, ce implică lucrul cu fișiere binare, pentru care diferențele între diferite versiuni se realizează mai dificil. ​
 +</​spoiler>​
  
 ==== Clasificarea sistemelor de control al versiunilor ==== ==== Clasificarea sistemelor de control al versiunilor ====
 +<​spoiler>​
 În prezent, sunt folosite trei tipuri de sisteme de control a versiunilor,​ fiecare dintre acestea fiind adecvate unei anumite situații: În prezent, sunt folosite trei tipuri de sisteme de control a versiunilor,​ fiecare dintre acestea fiind adecvate unei anumite situații:
   - **sisteme locale de control a versiunilor**,​ în cazul în care se dorește monitorizarea variantelor unui fișier exclusiv pe discul local; în baza de date, versiunile sunt reținute sub forma diferențelor (rezultatul comenzii ''​diff''​) dintre versiuni succesive, astfel că se poate reveni oricând la o stare anterioară (exemplu: rcs);   - **sisteme locale de control a versiunilor**,​ în cazul în care se dorește monitorizarea variantelor unui fișier exclusiv pe discul local; în baza de date, versiunile sunt reținute sub forma diferențelor (rezultatul comenzii ''​diff''​) dintre versiuni succesive, astfel că se poate reveni oricând la o stare anterioară (exemplu: rcs);
Line 167: Line 194:
     * dezavantaje:​ în cazul când serverul dedicat pe care găsește baza de date cu tot istoricul versiunilor se defectează,​ există riscul de a se pierde toate aceste informații (dacă nu există copii de siguranță),​ păstrându-se doar versiunile salvate pe mașinile utilizatorilor;​ mai mult, într-o astfel de situație utilizatorii se află în incapacitatea de a mai transmite propriile modificări și de a consulta modificările celorlalți;​     * dezavantaje:​ în cazul când serverul dedicat pe care găsește baza de date cu tot istoricul versiunilor se defectează,​ există riscul de a se pierde toate aceste informații (dacă nu există copii de siguranță),​ păstrându-se doar versiunile salvate pe mașinile utilizatorilor;​ mai mult, într-o astfel de situație utilizatorii se află în incapacitatea de a mai transmite propriile modificări și de a consulta modificările celorlalți;​
   - **sisteme distribuite de control a versiunilor** în care consultarea stării actuale a unui fișier presupune și descărcarea,​ pe discul local, a întregului istoric de modificări astfel încât acesta să poată fi reconstituit în situații precum defectarea serverului; de asemenea, acestea au capacitatea de a gestiona mai multe depozite aflate la distanță, chiar în cazul în care acestea conțin același proiect, permițând stabilirea unor anumite fluxuri de transmitere a informației (exemple: Git, Mercurial, Bazaar, Darcs);   - **sisteme distribuite de control a versiunilor** în care consultarea stării actuale a unui fișier presupune și descărcarea,​ pe discul local, a întregului istoric de modificări astfel încât acesta să poată fi reconstituit în situații precum defectarea serverului; de asemenea, acestea au capacitatea de a gestiona mai multe depozite aflate la distanță, chiar în cazul în care acestea conțin același proiect, permițând stabilirea unor anumite fluxuri de transmitere a informației (exemple: Git, Mercurial, Bazaar, Darcs);
 +</​spoiler>​
 ===== GIT ===== ===== GIT =====
  
 ==== Istoric ==== ==== Istoric ====
 +<​spoiler>​
 Apariția Git în 2005 este strâns legată de dezvoltarea kernelului pentru Linux, proiect open-source la care lucra o comunitate destul de numeroasă de programatori. Dacă anterior actualizările erau distribuite sub forma unor arhive ce conțineau modificările (1991-2002),​ respectiv prin intermediul unui sistem distribuit de control al versiunilor denumit BitKeeper (2002-2005),​ pe măsură ce proiectul a devenit mai complex și din ce în ce mai multe persoane și-au exprimat disponibilitatea de a contribui la dezvoltarea acestuia, s-a pus problema conceperii unui produs care să satisfacă cerințele legate de viteză, arhitectură scalabilă, suport pentru dezvoltare non-liniară (numeroase ramificații la care se lucrează concomitent),​ distribuire totală, capacitate de a gestiona proiecte de dimensiuni mari. Apariția Git în 2005 este strâns legată de dezvoltarea kernelului pentru Linux, proiect open-source la care lucra o comunitate destul de numeroasă de programatori. Dacă anterior actualizările erau distribuite sub forma unor arhive ce conțineau modificările (1991-2002),​ respectiv prin intermediul unui sistem distribuit de control al versiunilor denumit BitKeeper (2002-2005),​ pe măsură ce proiectul a devenit mai complex și din ce în ce mai multe persoane și-au exprimat disponibilitatea de a contribui la dezvoltarea acestuia, s-a pus problema conceperii unui produs care să satisfacă cerințele legate de viteză, arhitectură scalabilă, suport pentru dezvoltare non-liniară (numeroase ramificații la care se lucrează concomitent),​ distribuire totală, capacitate de a gestiona proiecte de dimensiuni mari.
 +</​spoiler>​
  
 ==== Caracteristici (obligatoriu) ==== ==== Caracteristici (obligatoriu) ====
Line 192: Line 221:
   - consemnarea propriu-zisă a datelor din zona de așteptare înapoi în directorul Git.   - consemnarea propriu-zisă a datelor din zona de așteptare înapoi în directorul Git.
  
 +<note important>​
 +Git [[https://​ndpsoftware.com/​git-cheatsheet.html|cheatsheet]] - doar o mica parte dintre comenzile din cheatsheet sunt necesare pentru laboratorul de EIM. 
 +</​note>​
 ==== Instalare & Configurare (obligatoriu) ==== ==== Instalare & Configurare (obligatoriu) ====
 Instrucțiunile pentru instalarea și configurarea Git sunt disponibile [[eim:​tutoriale:​git|aici]]. Instrucțiunile pentru instalarea și configurarea Git sunt disponibile [[eim:​tutoriale:​git|aici]].
Line 463: Line 495:
  
 === Etichetarea versiunilor === === Etichetarea versiunilor ===
 +<​spoiler>​
 Unei versiuni consemnate în directorul Git îi poate fi asociată o etichetă (//eng.// tag) prin care se desemnează,​ de regulă, o anumită funcționalitate. ​ Unei versiuni consemnate în directorul Git îi poate fi asociată o etichetă (//eng.// tag) prin care se desemnează,​ de regulă, o anumită funcționalitate. ​
  
Line 506: Line 539:
   * pentru o singură etichetă, se specifică denumirea acesteia ''​git push <​remote_name>​ <​tag>'';​   * pentru o singură etichetă, se specifică denumirea acesteia ''​git push <​remote_name>​ <​tag>'';​
   * pentru toate etichetele, se folosește comanda ''​%%git push <​remote_name>​ --tags%%''​.   * pentru toate etichetele, se folosește comanda ''​%%git push <​remote_name>​ --tags%%''​.
 +</​spoiler>​
  
 === Vizualizarea istoricului de versiuni === === Vizualizarea istoricului de versiuni ===
Line 557: Line 591:
 Mai mulți utilizatori pot colabora în cadrul unui proiect Git aflat pe un server la distanță (//eng.// remote repository),​ pe care pot avea fie doar drepturi de citire fie atât drepturi de citire cât și de scriere. Operațiile pe care le pot realiza sunt descărcarea de cod sursă, respectiv încărcarea (în situația în care au drepturi suficiente). Mai mulți utilizatori pot colabora în cadrul unui proiect Git aflat pe un server la distanță (//eng.// remote repository),​ pe care pot avea fie doar drepturi de citire fie atât drepturi de citire cât și de scriere. Operațiile pe care le pot realiza sunt descărcarea de cod sursă, respectiv încărcarea (în situația în care au drepturi suficiente).
  
-=== Vizualizarea referințelor către depozitele la distanță (git remote) ===+=== Vizualizarea referințelor către depozitele la distanță (git remote) ​Obligatoriu ​===
 Prin intermediul comenzii **''​git remote''​**,​ pot fi consultate depozitele la distanță cu care se lucrează în mod curent. În mod implicit, sunt afișate doar denumirile scurte asociate acestora. În cazul în care se dorește să se afișeze și URL-ul locației corespunzătoare fiecărui depozit la distanță, se va folosi opțiunea ''​-v''​. Prin intermediul comenzii **''​git remote''​**,​ pot fi consultate depozitele la distanță cu care se lucrează în mod curent. În mod implicit, sunt afișate doar denumirile scurte asociate acestora. În cazul în care se dorește să se afișeze și URL-ul locației corespunzătoare fiecărui depozit la distanță, se va folosi opțiunea ''​-v''​.
  
Line 572: Line 606:
 Utilizatorul va avea drepturi de scriere numai pe depozitele la distanță pentru care dispune de cheile SSH corespunzătoare. Utilizatorul va avea drepturi de scriere numai pe depozitele la distanță pentru care dispune de cheile SSH corespunzătoare.
  
-=== Adăugarea unei referințe către un depozit la distanță ===+=== Adăugarea unei referințe către un depozit la distanță ​(Obligatoriu) ​===
 Pentru a putea referi un depozit la distanță prin intermediul unei denumiri (mai scurte) se va rula comenda ''​git remote add'':​ Pentru a putea referi un depozit la distanță prin intermediul unei denumiri (mai scurte) se va rula comenda ''​git remote add'':​
  
Line 585: Line 619:
 </​code>​ </​code>​
  
-=== Descărcarea de cod sursă de pe un depozit la distanță ===+=== Descărcarea de cod sursă de pe un depozit la distanță ​(Obligatoriu) ​===
 Pentru a descărca cod sursă aflat într-un depozit găzduit de un server la distanță pe discul local există trei posibilități:​ Pentru a descărca cod sursă aflat într-un depozit găzduit de un server la distanță pe discul local există trei posibilități:​
   * comanda **''​git clone <​URL>''​** realizează o copie a datelor aflate la locația indicată de URL, inclusiv a tuturor ramificațiilor (//eng.// branches), ramificația ''​master''​ (în situația în care există) de pe server fiind monitorizată pentru modificări,​ astfel încât acestea să fie integrate automat (//eng.// merged) în codul sursă din directorul de lucru <​code>​   * comanda **''​git clone <​URL>''​** realizează o copie a datelor aflate la locația indicată de URL, inclusiv a tuturor ramificațiilor (//eng.// branches), ramificația ''​master''​ (în situația în care există) de pe server fiind monitorizată pentru modificări,​ astfel încât acestea să fie integrate automat (//eng.// merged) în codul sursă din directorul de lucru <​code>​
Line 969: Line 1003:
     - kit de dezvoltare pentru limbajul de programare Java;     - kit de dezvoltare pentru limbajul de programare Java;
     - SDK pentru Android;     - SDK pentru Android;
-    - mediu integrat de dezvoltare ​Eclipse sau Android Studio cu plugin-uri pentru Android, Genymotion;​ +    - mediu integrat de dezvoltare Android Studio cu plugin-uri pentru Android, Genymotion;​ 
-    - emulator Genymotion în care se configurează un dispozitiv virtual ​Nexus S 4.1.1 - API 16 400x800;+    - emulator Genymotion în care se configurează un dispozitiv virtual ​Phone 7.- API 24 960x540;
   - Să se instaleze Git, în cazul în care nu există deja.   - Să se instaleze Git, în cazul în care nu există deja.
   - Să se acceseze [[http://​www.github.com|GitHub]] și să se creeze un cont.   - Să se acceseze [[http://​www.github.com|GitHub]] și să se creeze un cont.
Line 989: Line 1023:
 </​code>​ </​code>​
   - Să se creeze un depozit pe contul Github creat, denumit '​Laborator01'​. Inițial, acesta trebuie să fie gol (nu trebuie să bifați nici adăugarea unui fișier ''​README.md'',​ nici a fișierului ''​.gitignore''​ sau a a fișierului ''​LICENSE''​).   - Să se creeze un depozit pe contul Github creat, denumit '​Laborator01'​. Inițial, acesta trebuie să fie gol (nu trebuie să bifați nici adăugarea unui fișier ''​README.md'',​ nici a fișierului ''​.gitignore''​ sau a a fișierului ''​LICENSE''​).
-  - Să se cloneze în directorul de pe discul local conținutul depozitului la distanță de la [[https://​www.github.com/​eim-lab/​Laborator01|]]. În urma acestei operații, directorul Laborator01 va trebui să se conțină un director ''​labtaks''​ care conține proiectele ​Eclipse și AndroidStudio denumite ''​MyFirstAndroidApplication'',​ fișierele ''​README.md''​ și ''​LICENSE''​ și un fișier ''​.gitignore''​ care indică tipurile de fișiere (extensiile) ignorate. <​code>​+  - Să se cloneze în directorul de pe discul local conținutul depozitului la distanță de la [[https://​www.github.com/​eim-lab/​Laborator01|]]. În urma acestei operații, directorul Laborator01 va trebui să se conțină un director ''​labtaks''​ care conține proiectele AndroidStudio denumite ''​MyFirstAndroidApplication'',​ fișierele ''​README.md''​ și ''​LICENSE''​ și un fișier ''​.gitignore''​ care indică tipurile de fișiere (extensiile) ignorate. <​code>​
 student@eim-lab:​~$ git clone https://​www.github.com/​eim-lab/​Laborator01.git student@eim-lab:​~$ git clone https://​www.github.com/​eim-lab/​Laborator01.git
 </​code>​ </​code>​
Line 998: Line 1032:
 </​code>​ </​code>​
   - Să se ruleze aplicația schelet:   - Să se ruleze aplicația schelet:
-    - în Eclipse: //File// → //New// → //Project// → //Android Project from existing code// SAU //File// → //Import// → //Android// → //Existing Android Code Into Workspace// și se indică directorul Laborator01/​labtasks/​eclipse;​ 
     - în Android Studio: //Open an existing Android Studio project// și se indică directorul Laborator01/​labtasks/​androidstudio;​     - în Android Studio: //Open an existing Android Studio project// și se indică directorul Laborator01/​labtasks/​androidstudio;​
   - În fișierul ''​MainActivity.java''​ din pachetul ''​ro.pub.cs.systems.eim.lab01''​ (directorul ''​src''​),​ să se modifice metoda ''​onClick''​ a clasei interne ''​ButtonClickListener''​ astfel încât:   - În fișierul ''​MainActivity.java''​ din pachetul ''​ro.pub.cs.systems.eim.lab01''​ (directorul ''​src''​),​ să se modifice metoda ''​onClick''​ a clasei interne ''​ButtonClickListener''​ astfel încât:
Line 1016: Line 1049:
 </​code>​ </​code>​
   - Să se ruleze un exemplu de proiect Android, dintre cele disponibile,​ folosind dispozivitul virtual instalat în cadrul emulatorului Genymotion. Să se simuleze un eveniment de tipul rotirea ecranului și să se observe modul în care se comportă aplicația.   - Să se ruleze un exemplu de proiect Android, dintre cele disponibile,​ folosind dispozivitul virtual instalat în cadrul emulatorului Genymotion. Să se simuleze un eveniment de tipul rotirea ecranului și să se observe modul în care se comportă aplicația.
-    ​- în Eclipse, ''​AccelerometerPlay''​ din cadrul exemplelor corespunzătoare nivelului de API 16 (legacy); +    - în Android Studio, ''​AccelerometerPlay''​ , din cadrul categoriei //Getting Started//​. ​(sau https://​github.com/​googlearchive/​android-AccelerometerPlay)
-    ​- în Android Studio, ''​Action Bar Compat - Basic'',​ din cadrul categoriei //Getting Started//.+
  
 ===== Resurse Utile ===== ===== Resurse Utile =====
eim/laboratoare/laborator01.1582101665.txt.gz · Last modified: 2020/02/19 10:41 by dragos.niculescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0