lab td android 1 - introducere

12
Introducere ˆ ın Android SDK 1 Obiectivul lucr˘ arii Lucrarea de laborator urm˘ares , te prezentarea not , unilor de baz˘a referitoare la limbajul de programare Android SDK. 2 Introducere Android este un sistem de operare pentru dispozitive mobile care a ˆ ınceput s˘ a fie dezvoltat init , ial ˆ ın 2005 de Android Inc., iar mai apoi de c˘atre Google. Platforma software este una complet˘a, avˆ and la baz˘ a o versiune modificat˘ a de Linux deasupra c˘ areia s-a integrat un nivel software care permite dezvoltarea de noi aplicat , ii (Figura 6). Android este open source s , i gratuit, oferind acces programatorilor la toate funct , iile dispozitivelor mobile. Nu exist˘ a taxe de licent , iere, testare sau certificare [8]. 2.1 Arhitectura Android ˆ In Android, interpretarea fluxului de bit , i se face prin intermediul mas , inii virtuale Dalvik (Dalvik VM) care ˆ ınlocuies , te JVM (Java Virtual Machine). Dalvik VM este o mas , in˘ a virtual˘ a optimizat˘ a s , i este proiectat˘ a luˆ and ˆ ın considerare limit˘ arile specifice dispozitivelor mobile (putere de calcul, memorie, energie) [7], [4]. Android SDK (Software Developement Kit) suport˘ a o mare parte din libr˘ ariile din JAVA SE dar pune la dispozit , ia programatorilor o platform˘ a nou˘ a pentru definirea interfet , elor utilizator ın locul Swing s , i AWT) [1]. Libr˘ ariile din Android SDK ofer˘ a suport pentru: Crearea interfet , ei utilizator (butoane, cˆ ampuri text). Baze de date (SQLite). Fis , iere audio s , i video (H.264, MPEG4, MP3, AAC, JPEG, PNG, etc). Conectivitate Wi-Fi, Bluetooth, GSM/EDGE, WiMAX, etc. Acces la hardware (Senzori, camer˘ a video, GPS). 1

Upload: illesadrianstefan

Post on 19-Nov-2015

36 views

Category:

Documents


1 download

DESCRIPTION

LAB TD ANDROID

TRANSCRIPT

  • Introducere n Android SDK

    1 Obiectivul lucrarii

    Lucrarea de laborator urmares,te prezentarea not,unilor de baza referitoare la limbajul deprogramare Android SDK.

    2 Introducere

    Android este un sistem de operare pentru dispozitive mobile care a nceput sa fie dezvoltat init, ialn 2005 de Android Inc., iar mai apoi de catre Google. Platforma software este una completa,avand la baza o versiune modificata de Linux deasupra careia s-a integrat un nivel software carepermite dezvoltarea de noi aplicat, ii (Figura 6). Android este open source s, i gratuit, oferind accesprogramatorilor la toate funct, iile dispozitivelor mobile. Nu exista taxe de licent, iere, testare saucertificare [8].

    2.1 Arhitectura Android

    In Android, interpretarea fluxului de bit, i se face prin intermediul mas, inii virtuale Dalvik (DalvikVM) care nlocuies,te JVM (Java Virtual Machine). Dalvik VM este o mas, ina virtuala optimizatas, i este proiectata luand n considerare limitarile specifice dispozitivelor mobile (putere de calcul,memorie, energie) [7], [4].

    Android SDK (Software Developement Kit) suporta o mare parte din librariile din JAVA SEdar pune la dispozit, ia programatorilor o platforma noua pentru definirea interfet,elor utilizator(n locul Swing s, i AWT) [1]. Librariile din Android SDK ofera suport pentru:

    Crearea interfet,ei utilizator (butoane, campuri text).

    Baze de date (SQLite).

    Fis, iere audio s, i video (H.264, MPEG4, MP3, AAC, JPEG, PNG, etc).

    Conectivitate Wi-Fi, Bluetooth, GSM/EDGE, WiMAX, etc.

    Acces la hardware (Senzori, camera video, GPS).

    1

  • Telefon Setri telefon Camer video

    Activity Manager Notification Manager View System

    Package Manager Content Providers Location Manager

    Window Manager

    Telephony Manager

    Resource Manager

    Surface Manager Media Framework SSL

    WebKit Audio Manager Libc

    SQLite

    Open GL/ES

    FreeType

    Keypad Driver Camera Driver Power Management

    Flash Memory Audio Driver Binder Driver

    Wi-Fi Driver

    Display Driver

    Nucleu Linux

    Platforma Software

    Librrii Android

    Aplicaii

    . . .

    Figura 1: Arhitectura Android

    Comunicat, ii n ret,ea (SSL).

    Mesagerie SMS s, i MMS.

    Navigare pe Internet (WebKit).

    2.2 Activitat, ile Android

    In Android, o activitate este interfat,a grafica prin intermediul careia utilizatorul interact, ioneazacu aplicat, ia. In general aplicat, iile Android sunt compuse din mai multe activitat, i. Totus, i, oaplicat, ie poate sa nu cont, ina activitat, i.

    Activitatea trece prin mai multe stari din momentul n care aceasta apare vizibila pe ecran s, ipana la nchiderea ei. Aceste stari compun ciclul de viat, a al unei activitat, i, care este prezentatn Figura 2.

    2

  • Figura 2: Viat,a unei activitat, i n Android

    Metodele din Figura 2 sunt mos,tenite din clasa Activity s, i pot sa fie suprascrise.

    onCreate() este apelata atunci cand activitatea este creata pentru prima data. Estemetoda n care se creeaza/instant, iaza obiectele din aplicat, ie (ex. obiectele corespunzatoareelementelor grafice de tip View). Obiectul Bundle din semnatura metodei cont, ine stareaanterioara a activitat, ii (daca aceasta exista). Toate activitat, ile Android implementeazametoda onCreate().

    onStart() este apelata atunci cand activitatea devine vizibila pe ecran.

    onResume() este apelata cand activitatea ncepe sa interact, ioneze cu utilizatorul prinintermediul elementelor grafice.

    3

  • onPause() este apelata cand activitatea curenta intra n starea de as,teptare iar ceaanterioara este reluata/continuata.

    onStop() este apelata atunci cand activitatea nu mai este vizibila pe ecran.

    onDestroy() este apelata nainte ca activitatea sa fie distrusa de catre sistemul de operare.

    onRestart() este apelata cand activitatea a fost oprita iar apoi renceputa.

    Pentru a naviga ntre activitat, ile unui proiect se utilizeaza un obiect de tip Intent. Deasemenea, acest tip de obiect permite transferul de informat, ii ntre activitat, i. Un exemplu deutilizare, n care o activitate pornes,te s, i n acelas, i timp trimite un mesaj altei activitat, i dinacelas, i proiect, este prezentat n Cod sursa 1 s, i 2.

    Cod sursa 1: Exemplu Intent (Activity A)

    public void onClick(View v) {Intent myIntent = new Intent(ActivityA.this, ActivityB.class);myIntent.putExtra("key", "Message from Activity A to B");ActivityA.this.startActivity(myIntent);

    }

    Cod sursa 2: Exemplu Intent (Activity B)

    Intent intent = getIntent();String value = intent.getStringExtra("key");

    Exista situat, ii n care una dintre activitat, i trebuie sa as,tepte un raspuns de la alta activitate(ex. validarea datelor dintr-un formular). Un exemplu de utilizare a Intent-ului este prezentatn Cod sursa 3 s, i 4.

    Cod sursa 3: Exemplu Intent (MainActivity)

    int request_Code = 1;

    public void onClick(View view) {startActivityForResult(new Intent("android.intent.action.AuthFormActivity")

    , request_Code);}

    public void onActivityResult(int requestCode, int resultCode, Intent data){if (requestCode == request_Code) {

    if (resultCode == RESULT_OK) {Toast.makeText(this,"Response from AuthFormActivity: "+data.getData().

    toString(), Toast.LENGTH_SHORT).show();}

    }}

    4

  • Cod sursa 4: Exemplu Intent (AuthFormActivity)

    public void onClick(View view) {Intent data = new Intent();EditText username = (EditText) findViewById(R.id.username);//send the username back to the MainActivitydata.setData(Uri.parse(username.getText().toString()));setResult(RESULT_OK, data);//close the current activityfinish();

    }

    In acest caz, pentru a putea identifica activitatea care cont, ine formularul, este necesaraadaugarea unui filtru n Android Manifest, n blocul XML corespunzator acestei activitat, i (Codsursa 5).

    Cod sursa 5: Exemplu Intent (AndroidManifest.xml)

    5

  • 3 Desfas, urarea lucrarii

    3.1 Crearea unui nou proiect pentru Android n Eclipse

    In continuare vor fi prezentat, i pas, ii necesari pentru crearea unui proiect nou Android.1 In Eclipse se selecteaza File New Project.

    Figura 3: Pas 1 s, i 2

    2 Extindet, i Android Android Application Project.

    Figura 4: Pas 3 s, i 4

    6

  • 3 Denumit, i aplicat, ia HelloWorld iar pachetul com.td.helloworld. Selectat, i API8 pentruMinimum Required SDK, Target SDK s, i Compile With.

    4 Selectat, i opt, iunile pentru proiect la fel ca n Figura 4.

    Figura 5: Pas 5 s, i 6

    5 Configurat, i un logo pentru aplicat, ie.6 Selectat, i opt, iunea Create Activity BlankActivity.

    Figura 6: 7

    7 Aleget, i o denumire pentru activitate s, i apasat, i pe butonul Finish.

    7

  • 3.2 Crearea unui nou AVD pentru rularea aplicat, iei

    Pentru a putea simula aplicat, iile pentru Android, este nevoie de crearea unui dispozitiv virtual(AVD: Android Virtual Device): Window Android Virtual Device Manager New (Figura7).

    Figura 7: Crearea unui nou AVD pentru simulare

    3.3 Executarea unei aplicat, ii

    Figura 8 prezinta pas, ii necesari pentru a executa o aplicat, ie Android (Run as AndroidApplication).

    8

  • Figura 8: Executarea unei aplicat, ii pentru Android

    3.4 Modificarea aplicat, iei HelloWorld

    Pentru a crea/modifica interfat,a cu utilizatorul se va lucra cu fis, ierul activity main.xml localizat ndirectorul HelloWorld\res\layout. Android permite modificarea acestui fis, ier prin intermediulinterfet,ei grafice Graphical Layout sau prin editarea codului sursa n fomat XML (eXtensibleMarkup Language). In continuare se vor introduce n UI (User Interface) o eticheta text s, i unbuton utilizand cea de-a doua metoda.

    Cod sursa 6: activity main.xml

    9

  • Fis, ierul MainActivity.java localizat n directorul HelloWorld\src cont, ine codul sursa Java.Pentru a face legatura ntre campurile/variabilele Java s, i elementele grafice introduse anteriorse va utiliza metoda findViewById(int). Parametrul din antetul metodei findViewById(int)are sintaxa: s, i este de fapt un numar ntreg (identificator) asociat elementuluigrafic corespunzator din fis, ierul XML prin proprietatea: .

    Aplicat, ia prezentata n Cod sursa 7 va afis,a textul HelloWorld n urma apasarii butonului.

    Cod sursa 7: MainActivity

    package com.td.helloworld;

    import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.widget.Button;import android.widget.TextView;

    public class MainActivity extends Activity {TextView msg;Button btn;

    @Overrideprotected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);

    msg= (TextView) findViewById(R.id.textField);btn= (Button) findViewById(R.id.button);

    btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {

    msg.setText("Hello World!");}

    });}

    }

    Se va introduce un nou camp text care are codul XML prezentat n Cod sursa 8.

    Cod sursa 8: Adaugarea unui camp text n activity main.xml

    10

  • Se dores,te afis,area cont, inutului campului text cu id-ul editText la apasarea butonului. Incazul n care campul text este vid se va afis,a mesajul HelloWorld. Cod sursa 9 prezintamodificarile metodei onClick(View). Pentru ca aplicat, ia sa funct, ioneze este necesara declarareaunui camp de tip EditText s, i de asemenea conectarea acestuia cu elementul grafic corespunzatorprin findViewById(int).

    Cod sursa 9: Modificarea metodei onClick(View)

    public void onClick(View v) {String s=inputTxt.getText().toString();if (s.equals("")) msg.setText("Hello World!");else {

    msg.setTextColor(Color.RED);msg.setText(s);

    }}

    4 Probleme propuse

    1. Sa se creeze o aplicat, ie care cont, ine o eticheta text s, i doua butoane (Plus, Minus). Etichetareprezenta un contor init, ializat cu valoarea 0. La apasarea butonului Plus, contorul va fiincrementat iar la apasarea butonului Minus acesta va fi decrementat.

    2. Sa se creeze o aplicat, ie formata din trei activitat, i (A, B s, i C). Prin intermediul unorbutoane, activitatea A va permite utilizatorilor sa lanseze n execut, ie activitat, ile B sau Ccare vor afis,a pe ecran rezultatul apelului metodei: this.getClass().toString();. Deasemenea, cele doua activitat, i vor cont, ine butoane de inchidere a activitat, ii curente s, irevenire la activitatea principala A.

    3. Modificat, i aplicat, ia anterioara astfel ncat activitat, ile B s, i C sa afis,eze pe ecran un mesajprimit de la aplicat, ia A.

    4. Sa se modeleze/implementeze n Android un aparat radio care permite pornirea/oprirearespectiv modificarea volumului s, i a frecvent,ei dispozitivului. Valorile celor trei campuri(pornit/oprit, volum, frecvent, a) vor fi afis,ate pe ecran.

    5. Sa se implementeze un modul de autentificare compus din doua activitat, i. Activitateaprincipala cont, ine un buton care pornes,te formularul de autentificare s, i as,teapta un raspuns.Formularul permite introducerea datelor utilizatorului (nume, parola). La apasarea unuibuton, datele introduse sunt verificate s, i se trimite un raspuns cu numele utilizatoruluicurent spre activitatea principala (care l afis,eaza pe ecran).

    11

  • 5 Bibliografie

    [1] Grant Allen. Beginning Android 4. Apress, 2012.

    [2] Norman Bonnor. A Brief History of Global Navigation Satellite Systems. Journal ofNavigation - Cambridge University Press, 65:114, 2012.

    [3] Tracy M. L. Brown, Steven A. McCabe, and Charles Wellford. Global Positioning System(GPS) Technology for Community Supervision: Lessons Learned. NOBLIS Technical Report,August 2007.

    [4] Shane Conder and Lauren Darcey. Android Wireless Application Developement - SecondEdition. Addison-Wesley, 2011.

    [5] Robert Grisso, Mark Alley, and Conrad Heatwole. Precision Farming Tools: GlobalPositioning System (GPS). Virginia Polytech, August 2009.

    [6] Elliott D. Kaplan and Christopher Hegarty. Understanding GPS: Principles and Applica-tions. Artech House Publishers, 2 edition, November 2005.

    [7] Satya Komatineni and Dave MacLean. Pro Android 4 - Android 4 platform SDK techniquesfor developing smartphone and table apps. Apress, 2012.

    [8] Wei-Meng Lee. Beginning Android 4 Application Developement. Wrox Press, 2012.

    [9] Domenico A Maisano, Jafar Jamshidi, Fiorenzo Franceschini, Paul Maropoulos, LucaMastrogiacomo, Antony Mileham, and Geraint Owen. Indoor GPS: System functionalityand initial performance evaluation. International Journal of Manufacturing Research,3(3):335349, 2008.

    [10] Elvis Ngah. GPS Technology - Optimizing Car Navigation, 2006.

    [11] Frederic Snider. GPS: Theory, Practice and Applications. PDH Online Course, 2012.

    [12] Trimble. GPS Tutorial. Online: http://www.trimble.com/gps_tutorial.

    [13] Jean-Marie Zogg. GPS Basics Introduction to the system - Application overview. u-bloxOnline Publication, 2002.

    [14] Jean-Marie Zogg. GPS Essentials of Satellite Navigation - Compendium. u-blox OnlinePublication, 2009.

    12

    http://www.trimble.com/gps_tutorial

    Obiectivul lucrariiIntroducereArhitectura AndroidActivitatile Android

    Desfasurarea lucrariiCrearea unui nou proiect pentru Android n EclipseCrearea unui nou AVD pentru rularea aplicatieiExecutarea unei aplicatiiModificarea aplicatiei HelloWorld

    Probleme propuseBibliografie