SlideShare a Scribd company logo
1 of 44
Download to read offline
Android
Sistem, platformă, tipuri de
aplicații

Drd. Ing. Alexandru RADOVICI
Bibliografie

1. Mark MURPHY, Beginning Android 2, Apress,
   2010
2. Satya KOMATINENI, Sayed HASHIMI, Pro
   Android 2, Apress 2010
3. Android Application Fundamentals,
   http://developer.android.com/guide/topics/f
   undamentals.html
4. Google IO, http://code.google.com/intl/ro-
   RO/events/io/2010/
                                                 2
Google Android




                 3
Platforma Android

 • Android
    – Sistem de operare
    – Platforma
 • Tipuri de aplicații
    –   Activități
    –   Servicii
    –   Baze de conținut
    –   Intenții
    –   Receptori


                           4
NU doar un sistem de operare

 • Radio Firmware
    – Sistemul de telefonie
       • GSM/CDMA / UMTS
 • Linux
    – Kernel 2.6.36
       • Android Cupcake (2.1)
    – Optimizat pentru ARM
 • Biblioteci User Space
    – Bionic
    – SQLite
    – WebKit
 • Platformă pentru aplicații

                                 5
Schema Android




                 6
Kernel
 • Sistemul de operare
 • Nu se vede
 • Mașina extinsă
    – Abstractizare a hardware-ului
 • Conține driver-ele
 • Gestionarea
    – Proceselor
    – Perifericelor
        •   Audio
        •   Video
        •   GPS
        •   WiFi
    – Intrare/Ieșire
    – Stiva de rețea
                                      7
Kernel - Optimizări

 • Gestionare de memorie
    – Fară swap
    – Sistem de inchidere de
      aplicații la nevoie
 • Gestionarea consumului
    – WAIT_LOCK
 • IPC specific
    – Binder
       • AIDL
       • Apeluri sincron între procese


                                         8
Gestiunea consumului de putere




                                 9
Biblioteci User Space

 • Biblioteci pentru
   programare
    – Fac legărura între kernel
      și program
    – Afișare pe ecran
       • printf (…)
       • scanf (…)
    – Acces la rețea
       • socket (…)
 • Bionic
    – Libc pentru Android

                                  10
Biblioteci User Space

 •   SQlite
 •   WebKit
 •   Surfaces
 •   FreeType
 •   Media Framework
 •   OpenGL|ES
 •   SSL
 •   …

                        11
Dalvik - Android Runtime

 • Mașină virtuala (Java)
    – Java 1.5 SE
       • Aproximativ
       • Lipsesc
           – AWT / Swing
           – Imprimare
           – Alte componente speciale
    – Optimizată pentru mobile
       • Spațiu mic de memorie
       • Colectare de gunaoie rapidă
    – Format de fișiere diferit
       • .class -> .dex
 • Compilator JIT
                                        12
Bibliotecile Android

 • Pentru Dalvik
    – Nu sunt biblioteciile user
      space!
 • Scrise în Java
 • Access la funcțiile
   telefonului
    – Telefonie
    – Mesaje
    – Senzori
 • Servicii
    – Manager de ferestre
    – Manager Audio


                                   13
Schema Android




                 14
Facilități

 • API pentru dezvoltarea de   • Sezori
   aplicații                       –   Aparat foto
     – Dalvik                      –   GPS / AGPS
 • Browser integrat                –   Magnetometru
 • Grafică                         –   Accelerometru
     – 2D optimizată           • Platformă de dezvoltare
     – 3D – OpenGL ES 1.0          – Linie de comandă
 • SQLite                          – Eclipse
     – Baza de date
 • Support Multimedia
     – Audio / Video
 • GSM
 • Conectivitate
     – Bluetooth
     – WiFi
     – GPRS / EDGE / 3G

                                                           15
Posibilități de programare
 • Dalvik (Aplicație)
     – În Java
     – Viteză medie
     – Acces la multe biblioteci
 • AJAX
     – În Browser (WebKit)
     – Lent
     – Programare JavaScript
 • Native Development Kit (NDK)
     –   C/C++
     –   Număr limitat de biblioteci
     –   Rapid
     –   Suport JNI
     –   Nerecomandat
          • Beta
 • C/C++ (direct pe sistem)
                                       16
Securitatea Aplicațiilor
 • Implmentată in kernel
    – Politica din Linux
        • Sistem de fișiere ext3
        • Utilizatorii pot scrie doar în
          directorul lor
    – Fiecare aplicație rulează sub alt
      utilizator
        • Determinat de semnătura digitală!
    • Grupuri de permisiuni
        • Verificare subsitemul de rețea
    – Poate scrie în
        • /data/nume.pachet.aplicație/
        • /SDCard/
    – Funcționează pentru orice tip de
      apliucație
        • Dalvik / AJAX / NDK / C/C++

                                              17
Securitatea Aplicațiilor
 • Implmentată in bibliotecile Android
    – Drepturi (Permission)
        • Declarate de aplicație în Manifest
        • Access la funcțiile telefonului
            –   Rețea
            –   Telefon / mesaje
            –   Aparat foto
            –   GPS
        • Access la componentele altei aplicații
            – Drepturi impuse de aplicația respectivă
    – Utilizatorul va fi avertizat la instalare
    – Funcționează doar pentru aplicațiile
      Dalvik
                                                        18
Programe (Dalvik)

 • Nu exista main()
 • Formate din componente
   –   Activiăți
   –   Servicii
   –   Intenții
   –   Baze de conținut
   –   Receptori de evenimente
 • Componentele pot rula
   separat

                                 19
Aplicație (Dalvik)

 • Fișier APK
    – JAR nearhivat
       • Componente
           – Fișier .dex
       • Resurse
           – Imagini
           – Fișiere XML
       • Manifest
           – Fișier de informații
    – Semnătura digitala
       • Pentru dezvoltare
       • Pentru producție
           – Autentică
           – Autosemnată

                                    20
Componentele aplicației




                          21
Task (aplicație cu interfață grafică)
 • Rulează într-un process
    – în general!
    – există excepții
 • Stivă de activități
    – Activitate rădăcină
        • Root activity
    – Adăugarea
        • Afișare
        • push
    – Ștergerea
        • Ascundere
        • pop
    – Activiăți din altă aplicație
                                        22
Task (aplicație cu interfață grafică)
 • Rulează într-un process
    – în general!
    – există excepții
 • Stivă de activități
    – Activitate rădăcină
        • Root activity
    – Adăugarea
        • Afișare
        • push
    – Ștergerea
        • Ascundere
        • pop
    – Activiăți din altă aplicație
                                        23
Activitatea




              24
Funcții importante
 • Clasa Activity
    –   void onCreate (…);
    –   void onStart (…);
    –   void onRestart (…);
    –   void onResume (…);
    –   void onPause (…);
    –   void onStop (…);
    –   void onDestroy (…);
 • Trebuie apelate funcțiile
   și funcțiile din părinte
    – super.onCreate (…);
    –…                         25
Activitatea

 • Fereastră
 • Supraviețuiește
   procesului
    – Serializarea
    – Parțial controlată de
      programator
 • Nu este pentru
   procesare multă



                              26
Servicii

 • Componentă Android
 • Specială pentru
   procesare
 • Rulează în fundal
   (background)
 • Proces
    – Prioritate mai mică
    – Mai stabil (în timp)



                             27
Implementarea serviciilor

• Extinde clasa Service
   – Serviciu simplu
      • void onCreate ();
      • void onStart (Intent intent,
                      int startID);
      • void onDestroy ();
   – Folosind AIDL
      • void onBind (Intent intent);
      • void onUnbind();




                                       28
Implmentarea unui serviciu

 1. Extinderea clasei Service
   –   Implmentarea funcțiilor
   –   Crearea unor fire de execuție
 2. Declararea în manifest
 3. Pornirea / oprirea
   –   startService (…)
   –   stopService (…)




                                       29
Baze de conținut / Receptori

 • Baze de conținut          • Receptori
   – Oferire de informații     – Observatori
   – Legătură cu SQLite        – Sunt informați despre
   – Bazate pe URL-uri           evenimente publice
                                  • SCREEN_ON
                                  • SCREEN_OFF
                                  • BATTER_STATUS_CHANGED




                                                         30
Dezvoltare

• Android SDK
  – Compilator DEX
  – Simulator
  – Programe pentru depanare
• Eclipse
  – Plugin Android
• Telefon Android
  – Preferabil cu drept de root

                                  31
Simulator vs. Telefon Real

 • Simulator
    – Real
       • Bootează Linux
    – Diferite versiuni
       • 1.5
       • 1.6
       • 2.1
    – Se pornește separat!
 • Telefon real
    – USB Debugging
       • Applications/Developent


                                   32
Depanare - DDMS




                  33
Scheletul unei aplicații

 •   AndroidManifest.xml
 •   build.xml
 •   default.properties
 •   bin
     – fișierele compilate
 • res
     – drawable
     – layout
     – values
 • assets
     – resurse
 • src
     – fișierele sursă

                             34
Resurse Automate în cod Java

 • Drawable
   – Imagini
   – R.drawable.nume
      • R.drawable.icon
      • R.drawable.img1
      • R.drawable.img2
 • Layout
   – Containere
   – R.layout.nume
      • R.layout.main
      • R.layout.people

                               35
Resurse Automate în XML

 • Drawable
   – Imagini
   – @drawable/nume
      • @drawable/icon
      • @drawable/img1
      • @drawable/img2
 • Layout
   – Containere
   – @layout/nume
      • @layout/main
      • @layout/people

                          36
Construcția GUI cu XML
 •   Componentă complexă
 •   Cod simplu
 •   Fără cod Java
 •   În codul activității
     – this.setContentView (R.layout.nume);




                                              37
Exemplu de fișier GUI XML




                            38
Exemplu de fișier GUI XML

 • xmlns:android
    – Doar componenta rădăcină
    – necesar
 • android:layout_width
 • android:layout_height
    – necesare
    – Valori
       •   fill_parent
       •   wrap_content
       •   n px
       •   n cm

                                 39
Exemplu de fișier GUI XML

 • android:id
    – Utilizarea componentei
      în codul Java
    – @+id/nume
       • R.id.nume
    – Exemplu
       • @+id/button1
          – R.id.button1




                               40
Exemplu de fișier GUI XML

 XML                Cod Jave




                               41
Concluzii
• Paltforma Android
    – Sistem de operare Linux
    – Biblioteci de programare Android
• Modalități de programare
    – Dalvik – Java
    – AJAX – Web
    – NDK – C/C++
• Aplicațiile Dalvik sunt compuse din componente
    –   Activități
    –   Servicii
    –   Intenții
    –   Baze de conșinut
    –   Receptori de enimente
    –   Nu există main()
• Simulator real
• Task - Aplicațiile cu interfață grafică
    – Compuse din Activități
         • Supraviețuiesc procesului

                                                   42
Application Inventor




                       43
Întrebări




            44

More Related Content

Viewers also liked

[Curs Android] C07 - Liste (IPW 2011)
[Curs Android] C07 - Liste (IPW 2011)[Curs Android] C07 - Liste (IPW 2011)
[Curs Android] C07 - Liste (IPW 2011)Vlad Petre
 
[Curs Android] C01 - Introducere (IPW 2011)
[Curs Android] C01 - Introducere (IPW 2011)[Curs Android] C01 - Introducere (IPW 2011)
[Curs Android] C01 - Introducere (IPW 2011)Vlad Petre
 
Android N is now Android Nougat
Android N is now Android NougatAndroid N is now Android Nougat
Android N is now Android NougatAppinventiv
 
Code Division Multiple Access- CDMA
Code Division Multiple Access- CDMA Code Division Multiple Access- CDMA
Code Division Multiple Access- CDMA ViVek Patel
 
Android seminar-presentation
Android seminar-presentationAndroid seminar-presentation
Android seminar-presentationconnectshilpa
 
Presentation on Android operating system
Presentation on Android operating systemPresentation on Android operating system
Presentation on Android operating systemSalma Begum
 

Viewers also liked (9)

[Curs Android] C07 - Liste (IPW 2011)
[Curs Android] C07 - Liste (IPW 2011)[Curs Android] C07 - Liste (IPW 2011)
[Curs Android] C07 - Liste (IPW 2011)
 
[Curs Android] C01 - Introducere (IPW 2011)
[Curs Android] C01 - Introducere (IPW 2011)[Curs Android] C01 - Introducere (IPW 2011)
[Curs Android] C01 - Introducere (IPW 2011)
 
Ppt on android
Ppt on androidPpt on android
Ppt on android
 
Android N is now Android Nougat
Android N is now Android NougatAndroid N is now Android Nougat
Android N is now Android Nougat
 
Code Division Multiple Access- CDMA
Code Division Multiple Access- CDMA Code Division Multiple Access- CDMA
Code Division Multiple Access- CDMA
 
Android seminar-presentation
Android seminar-presentationAndroid seminar-presentation
Android seminar-presentation
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Presentation on Android operating system
Presentation on Android operating systemPresentation on Android operating system
Presentation on Android operating system
 
Android ppt
Android ppt Android ppt
Android ppt
 

Similar to Prezentare generala a platformei Android

Prezentare proiect GiSHEO - Marian Neagu
Prezentare proiect GiSHEO - Marian NeaguPrezentare proiect GiSHEO - Marian Neagu
Prezentare proiect GiSHEO - Marian Neaguvasile33
 
[Curs Android] C06 - DDMS & LogCat (IPW 2011)
[Curs Android] C06 - DDMS & LogCat (IPW 2011)[Curs Android] C06 - DDMS & LogCat (IPW 2011)
[Curs Android] C06 - DDMS & LogCat (IPW 2011)Vlad Petre
 
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...Codecamp Romania
 
Cu codul în "nori"
Cu codul în "nori"Cu codul în "nori"
Cu codul în "nori"Sabin Buraga
 
Alternative Open Source pentru mediul de afaceri-19mar2010
Alternative Open Source pentru mediul de afaceri-19mar2010Alternative Open Source pentru mediul de afaceri-19mar2010
Alternative Open Source pentru mediul de afaceri-19mar2010Agora Group
 
Arhitectura HotNews.ro
Arhitectura HotNews.roArhitectura HotNews.ro
Arhitectura HotNews.roMarius Hanganu
 
Sisteme de Operare: Introducere
Sisteme de Operare: IntroducereSisteme de Operare: Introducere
Sisteme de Operare: IntroducereAlexandru Radovici
 
Gabriel Voicu - De ce Ruby on Rails este o alegere buna in 2024 (2024.02.06, ...
Gabriel Voicu - De ce Ruby on Rails este o alegere buna in 2024 (2024.02.06, ...Gabriel Voicu - De ce Ruby on Rails este o alegere buna in 2024 (2024.02.06, ...
Gabriel Voicu - De ce Ruby on Rails este o alegere buna in 2024 (2024.02.06, ...constantadevelopers
 
[Curs Android] C04 - User Interface (IPW 2011)
[Curs Android] C04 - User Interface (IPW 2011)[Curs Android] C04 - User Interface (IPW 2011)
[Curs Android] C04 - User Interface (IPW 2011)Vlad Petre
 
Referat_Java_Creanga_An_II_INFO.pdf
Referat_Java_Creanga_An_II_INFO.pdfReferat_Java_Creanga_An_II_INFO.pdf
Referat_Java_Creanga_An_II_INFO.pdfCreangaMadalina1
 
devops.continous.deployment
devops.continous.deploymentdevops.continous.deployment
devops.continous.deploymentMarius Luca
 
Rad gs cas programatica2012
Rad gs cas programatica2012Rad gs cas programatica2012
Rad gs cas programatica2012Agora Group
 
Ce mă fac când o să fiu mare - optiuni pentru o cariera in IT
Ce mă fac când o să fiu mare - optiuni pentru o cariera in ITCe mă fac când o să fiu mare - optiuni pentru o cariera in IT
Ce mă fac când o să fiu mare - optiuni pentru o cariera in ITVlad Posea
 
Cosmin Tataru - Ce e nou in Windows 8.1 pentru ITPros
Cosmin Tataru - Ce e nou in Windows 8.1 pentru ITProsCosmin Tataru - Ce e nou in Windows 8.1 pentru ITPros
Cosmin Tataru - Ce e nou in Windows 8.1 pentru ITProsITSpark Community
 
LOAD 2014 - Prezentare Zitec - Microsoft
LOAD 2014 - Prezentare Zitec - MicrosoftLOAD 2014 - Prezentare Zitec - Microsoft
LOAD 2014 - Prezentare Zitec - MicrosoftSilviu Cojocaru
 
Lupu Vitaliy Bachelor thesis Presentation
Lupu Vitaliy Bachelor thesis PresentationLupu Vitaliy Bachelor thesis Presentation
Lupu Vitaliy Bachelor thesis Presentationlogan123
 
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc''Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'Otilia-Loredana Tudor
 

Similar to Prezentare generala a platformei Android (20)

Prezentare proiect GiSHEO - Marian Neagu
Prezentare proiect GiSHEO - Marian NeaguPrezentare proiect GiSHEO - Marian Neagu
Prezentare proiect GiSHEO - Marian Neagu
 
[Curs Android] C06 - DDMS & LogCat (IPW 2011)
[Curs Android] C06 - DDMS & LogCat (IPW 2011)[Curs Android] C06 - DDMS & LogCat (IPW 2011)
[Curs Android] C06 - DDMS & LogCat (IPW 2011)
 
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
Remus Pereni - Remus Pereni - JavaScript, from dark ages to renaissance, the ...
 
Cu codul în "nori"
Cu codul în "nori"Cu codul în "nori"
Cu codul în "nori"
 
Webpack
Webpack Webpack
Webpack
 
Alternative Open Source pentru mediul de afaceri-19mar2010
Alternative Open Source pentru mediul de afaceri-19mar2010Alternative Open Source pentru mediul de afaceri-19mar2010
Alternative Open Source pentru mediul de afaceri-19mar2010
 
Arhitectura HotNews.ro
Arhitectura HotNews.roArhitectura HotNews.ro
Arhitectura HotNews.ro
 
Sisteme de Operare: Introducere
Sisteme de Operare: IntroducereSisteme de Operare: Introducere
Sisteme de Operare: Introducere
 
Gabriel Voicu - De ce Ruby on Rails este o alegere buna in 2024 (2024.02.06, ...
Gabriel Voicu - De ce Ruby on Rails este o alegere buna in 2024 (2024.02.06, ...Gabriel Voicu - De ce Ruby on Rails este o alegere buna in 2024 (2024.02.06, ...
Gabriel Voicu - De ce Ruby on Rails este o alegere buna in 2024 (2024.02.06, ...
 
[Curs Android] C04 - User Interface (IPW 2011)
[Curs Android] C04 - User Interface (IPW 2011)[Curs Android] C04 - User Interface (IPW 2011)
[Curs Android] C04 - User Interface (IPW 2011)
 
Referat_Java_Creanga_An_II_INFO.pdf
Referat_Java_Creanga_An_II_INFO.pdfReferat_Java_Creanga_An_II_INFO.pdf
Referat_Java_Creanga_An_II_INFO.pdf
 
devops.continous.deployment
devops.continous.deploymentdevops.continous.deployment
devops.continous.deployment
 
Rad gs cas programatica2012
Rad gs cas programatica2012Rad gs cas programatica2012
Rad gs cas programatica2012
 
Ce mă fac când o să fiu mare - optiuni pentru o cariera in IT
Ce mă fac când o să fiu mare - optiuni pentru o cariera in ITCe mă fac când o să fiu mare - optiuni pentru o cariera in IT
Ce mă fac când o să fiu mare - optiuni pentru o cariera in IT
 
Cosmin Tataru - Ce e nou in Windows 8.1 pentru ITPros
Cosmin Tataru - Ce e nou in Windows 8.1 pentru ITProsCosmin Tataru - Ce e nou in Windows 8.1 pentru ITPros
Cosmin Tataru - Ce e nou in Windows 8.1 pentru ITPros
 
2 Firebird Technical Ro
2 Firebird Technical Ro2 Firebird Technical Ro
2 Firebird Technical Ro
 
LOAD 2014 - Prezentare Zitec - Microsoft
LOAD 2014 - Prezentare Zitec - MicrosoftLOAD 2014 - Prezentare Zitec - Microsoft
LOAD 2014 - Prezentare Zitec - Microsoft
 
Axiologic quark
Axiologic quarkAxiologic quark
Axiologic quark
 
Lupu Vitaliy Bachelor thesis Presentation
Lupu Vitaliy Bachelor thesis PresentationLupu Vitaliy Bachelor thesis Presentation
Lupu Vitaliy Bachelor thesis Presentation
 
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc''Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
 

Recently uploaded

Igiena sistemului digestiv , biologi clasa 11-a
Igiena sistemului digestiv , biologi clasa 11-aIgiena sistemului digestiv , biologi clasa 11-a
Igiena sistemului digestiv , biologi clasa 11-aCMB
 
Ghidului privind tehnica și tactica ventilării operaționale la incendii – ISU...
Ghidului privind tehnica și tactica ventilării operaționale la incendii – ISU...Ghidului privind tehnica și tactica ventilării operaționale la incendii – ISU...
Ghidului privind tehnica și tactica ventilării operaționale la incendii – ISU...bdngeorge11
 
Literatura polonă pentru copii tradusă în limba română
Literatura polonă pentru copii tradusă în limba românăLiteratura polonă pentru copii tradusă în limba română
Literatura polonă pentru copii tradusă în limba românăBibliotecaMickiewicz
 
Strategii-pentru-educatia-remedială-ppt.pptx
Strategii-pentru-educatia-remedială-ppt.pptxStrategii-pentru-educatia-remedială-ppt.pptx
Strategii-pentru-educatia-remedială-ppt.pptxMoroianuCristina1
 
Catalogul firmei de exercițiu Ancolex 2024.pptx
Catalogul firmei de exercițiu Ancolex 2024.pptxCatalogul firmei de exercițiu Ancolex 2024.pptx
Catalogul firmei de exercițiu Ancolex 2024.pptxCori Rus
 
Sistemul excretor la om, biologie clasa 11
Sistemul excretor la om, biologie clasa 11Sistemul excretor la om, biologie clasa 11
Sistemul excretor la om, biologie clasa 11CMB
 
ziua pamantului ziua pamantului ziua pamantului
ziua pamantului ziua pamantului ziua pamantuluiziua pamantului ziua pamantului ziua pamantului
ziua pamantului ziua pamantului ziua pamantuluiAndr808555
 
Agricultura- lectie predare -invatare geografie cls 10
Agricultura- lectie predare -invatare geografie cls 10Agricultura- lectie predare -invatare geografie cls 10
Agricultura- lectie predare -invatare geografie cls 10CrciunAndreeaMaria
 

Recently uploaded (8)

Igiena sistemului digestiv , biologi clasa 11-a
Igiena sistemului digestiv , biologi clasa 11-aIgiena sistemului digestiv , biologi clasa 11-a
Igiena sistemului digestiv , biologi clasa 11-a
 
Ghidului privind tehnica și tactica ventilării operaționale la incendii – ISU...
Ghidului privind tehnica și tactica ventilării operaționale la incendii – ISU...Ghidului privind tehnica și tactica ventilării operaționale la incendii – ISU...
Ghidului privind tehnica și tactica ventilării operaționale la incendii – ISU...
 
Literatura polonă pentru copii tradusă în limba română
Literatura polonă pentru copii tradusă în limba românăLiteratura polonă pentru copii tradusă în limba română
Literatura polonă pentru copii tradusă în limba română
 
Strategii-pentru-educatia-remedială-ppt.pptx
Strategii-pentru-educatia-remedială-ppt.pptxStrategii-pentru-educatia-remedială-ppt.pptx
Strategii-pentru-educatia-remedială-ppt.pptx
 
Catalogul firmei de exercițiu Ancolex 2024.pptx
Catalogul firmei de exercițiu Ancolex 2024.pptxCatalogul firmei de exercițiu Ancolex 2024.pptx
Catalogul firmei de exercițiu Ancolex 2024.pptx
 
Sistemul excretor la om, biologie clasa 11
Sistemul excretor la om, biologie clasa 11Sistemul excretor la om, biologie clasa 11
Sistemul excretor la om, biologie clasa 11
 
ziua pamantului ziua pamantului ziua pamantului
ziua pamantului ziua pamantului ziua pamantuluiziua pamantului ziua pamantului ziua pamantului
ziua pamantului ziua pamantului ziua pamantului
 
Agricultura- lectie predare -invatare geografie cls 10
Agricultura- lectie predare -invatare geografie cls 10Agricultura- lectie predare -invatare geografie cls 10
Agricultura- lectie predare -invatare geografie cls 10
 

Prezentare generala a platformei Android

  • 1. Android Sistem, platformă, tipuri de aplicații Drd. Ing. Alexandru RADOVICI
  • 2. Bibliografie 1. Mark MURPHY, Beginning Android 2, Apress, 2010 2. Satya KOMATINENI, Sayed HASHIMI, Pro Android 2, Apress 2010 3. Android Application Fundamentals, http://developer.android.com/guide/topics/f undamentals.html 4. Google IO, http://code.google.com/intl/ro- RO/events/io/2010/ 2
  • 4. Platforma Android • Android – Sistem de operare – Platforma • Tipuri de aplicații – Activități – Servicii – Baze de conținut – Intenții – Receptori 4
  • 5. NU doar un sistem de operare • Radio Firmware – Sistemul de telefonie • GSM/CDMA / UMTS • Linux – Kernel 2.6.36 • Android Cupcake (2.1) – Optimizat pentru ARM • Biblioteci User Space – Bionic – SQLite – WebKit • Platformă pentru aplicații 5
  • 7. Kernel • Sistemul de operare • Nu se vede • Mașina extinsă – Abstractizare a hardware-ului • Conține driver-ele • Gestionarea – Proceselor – Perifericelor • Audio • Video • GPS • WiFi – Intrare/Ieșire – Stiva de rețea 7
  • 8. Kernel - Optimizări • Gestionare de memorie – Fară swap – Sistem de inchidere de aplicații la nevoie • Gestionarea consumului – WAIT_LOCK • IPC specific – Binder • AIDL • Apeluri sincron între procese 8
  • 10. Biblioteci User Space • Biblioteci pentru programare – Fac legărura între kernel și program – Afișare pe ecran • printf (…) • scanf (…) – Acces la rețea • socket (…) • Bionic – Libc pentru Android 10
  • 11. Biblioteci User Space • SQlite • WebKit • Surfaces • FreeType • Media Framework • OpenGL|ES • SSL • … 11
  • 12. Dalvik - Android Runtime • Mașină virtuala (Java) – Java 1.5 SE • Aproximativ • Lipsesc – AWT / Swing – Imprimare – Alte componente speciale – Optimizată pentru mobile • Spațiu mic de memorie • Colectare de gunaoie rapidă – Format de fișiere diferit • .class -> .dex • Compilator JIT 12
  • 13. Bibliotecile Android • Pentru Dalvik – Nu sunt biblioteciile user space! • Scrise în Java • Access la funcțiile telefonului – Telefonie – Mesaje – Senzori • Servicii – Manager de ferestre – Manager Audio 13
  • 15. Facilități • API pentru dezvoltarea de • Sezori aplicații – Aparat foto – Dalvik – GPS / AGPS • Browser integrat – Magnetometru • Grafică – Accelerometru – 2D optimizată • Platformă de dezvoltare – 3D – OpenGL ES 1.0 – Linie de comandă • SQLite – Eclipse – Baza de date • Support Multimedia – Audio / Video • GSM • Conectivitate – Bluetooth – WiFi – GPRS / EDGE / 3G 15
  • 16. Posibilități de programare • Dalvik (Aplicație) – În Java – Viteză medie – Acces la multe biblioteci • AJAX – În Browser (WebKit) – Lent – Programare JavaScript • Native Development Kit (NDK) – C/C++ – Număr limitat de biblioteci – Rapid – Suport JNI – Nerecomandat • Beta • C/C++ (direct pe sistem) 16
  • 17. Securitatea Aplicațiilor • Implmentată in kernel – Politica din Linux • Sistem de fișiere ext3 • Utilizatorii pot scrie doar în directorul lor – Fiecare aplicație rulează sub alt utilizator • Determinat de semnătura digitală! • Grupuri de permisiuni • Verificare subsitemul de rețea – Poate scrie în • /data/nume.pachet.aplicație/ • /SDCard/ – Funcționează pentru orice tip de apliucație • Dalvik / AJAX / NDK / C/C++ 17
  • 18. Securitatea Aplicațiilor • Implmentată in bibliotecile Android – Drepturi (Permission) • Declarate de aplicație în Manifest • Access la funcțiile telefonului – Rețea – Telefon / mesaje – Aparat foto – GPS • Access la componentele altei aplicații – Drepturi impuse de aplicația respectivă – Utilizatorul va fi avertizat la instalare – Funcționează doar pentru aplicațiile Dalvik 18
  • 19. Programe (Dalvik) • Nu exista main() • Formate din componente – Activiăți – Servicii – Intenții – Baze de conținut – Receptori de evenimente • Componentele pot rula separat 19
  • 20. Aplicație (Dalvik) • Fișier APK – JAR nearhivat • Componente – Fișier .dex • Resurse – Imagini – Fișiere XML • Manifest – Fișier de informații – Semnătura digitala • Pentru dezvoltare • Pentru producție – Autentică – Autosemnată 20
  • 22. Task (aplicație cu interfață grafică) • Rulează într-un process – în general! – există excepții • Stivă de activități – Activitate rădăcină • Root activity – Adăugarea • Afișare • push – Ștergerea • Ascundere • pop – Activiăți din altă aplicație 22
  • 23. Task (aplicație cu interfață grafică) • Rulează într-un process – în general! – există excepții • Stivă de activități – Activitate rădăcină • Root activity – Adăugarea • Afișare • push – Ștergerea • Ascundere • pop – Activiăți din altă aplicație 23
  • 25. Funcții importante • Clasa Activity – void onCreate (…); – void onStart (…); – void onRestart (…); – void onResume (…); – void onPause (…); – void onStop (…); – void onDestroy (…); • Trebuie apelate funcțiile și funcțiile din părinte – super.onCreate (…); –… 25
  • 26. Activitatea • Fereastră • Supraviețuiește procesului – Serializarea – Parțial controlată de programator • Nu este pentru procesare multă 26
  • 27. Servicii • Componentă Android • Specială pentru procesare • Rulează în fundal (background) • Proces – Prioritate mai mică – Mai stabil (în timp) 27
  • 28. Implementarea serviciilor • Extinde clasa Service – Serviciu simplu • void onCreate (); • void onStart (Intent intent, int startID); • void onDestroy (); – Folosind AIDL • void onBind (Intent intent); • void onUnbind(); 28
  • 29. Implmentarea unui serviciu 1. Extinderea clasei Service – Implmentarea funcțiilor – Crearea unor fire de execuție 2. Declararea în manifest 3. Pornirea / oprirea – startService (…) – stopService (…) 29
  • 30. Baze de conținut / Receptori • Baze de conținut • Receptori – Oferire de informații – Observatori – Legătură cu SQLite – Sunt informați despre – Bazate pe URL-uri evenimente publice • SCREEN_ON • SCREEN_OFF • BATTER_STATUS_CHANGED 30
  • 31. Dezvoltare • Android SDK – Compilator DEX – Simulator – Programe pentru depanare • Eclipse – Plugin Android • Telefon Android – Preferabil cu drept de root 31
  • 32. Simulator vs. Telefon Real • Simulator – Real • Bootează Linux – Diferite versiuni • 1.5 • 1.6 • 2.1 – Se pornește separat! • Telefon real – USB Debugging • Applications/Developent 32
  • 34. Scheletul unei aplicații • AndroidManifest.xml • build.xml • default.properties • bin – fișierele compilate • res – drawable – layout – values • assets – resurse • src – fișierele sursă 34
  • 35. Resurse Automate în cod Java • Drawable – Imagini – R.drawable.nume • R.drawable.icon • R.drawable.img1 • R.drawable.img2 • Layout – Containere – R.layout.nume • R.layout.main • R.layout.people 35
  • 36. Resurse Automate în XML • Drawable – Imagini – @drawable/nume • @drawable/icon • @drawable/img1 • @drawable/img2 • Layout – Containere – @layout/nume • @layout/main • @layout/people 36
  • 37. Construcția GUI cu XML • Componentă complexă • Cod simplu • Fără cod Java • În codul activității – this.setContentView (R.layout.nume); 37
  • 38. Exemplu de fișier GUI XML 38
  • 39. Exemplu de fișier GUI XML • xmlns:android – Doar componenta rădăcină – necesar • android:layout_width • android:layout_height – necesare – Valori • fill_parent • wrap_content • n px • n cm 39
  • 40. Exemplu de fișier GUI XML • android:id – Utilizarea componentei în codul Java – @+id/nume • R.id.nume – Exemplu • @+id/button1 – R.id.button1 40
  • 41. Exemplu de fișier GUI XML XML Cod Jave 41
  • 42. Concluzii • Paltforma Android – Sistem de operare Linux – Biblioteci de programare Android • Modalități de programare – Dalvik – Java – AJAX – Web – NDK – C/C++ • Aplicațiile Dalvik sunt compuse din componente – Activități – Servicii – Intenții – Baze de conșinut – Receptori de enimente – Nu există main() • Simulator real • Task - Aplicațiile cu interfață grafică – Compuse din Activități • Supraviețuiesc procesului 42