[Curs Android] C02 - Aplicatii (IPW 2011)
Upcoming SlideShare
Loading in...5
×
 

[Curs Android] C02 - Aplicatii (IPW 2011)

on

  • 1,478 views

These slides are part of the Android Development Course which I taught to 10 students, while participating in the IP Workshop Summer School 2011.

These slides are part of the Android Development Course which I taught to 10 students, while participating in the IP Workshop Summer School 2011.
http://www.scoaladevara.info/2011/?page_id=39

Statistics

Views

Total Views
1,478
Views on SlideShare
1,478
Embed Views
0

Actions

Likes
0
Downloads
47
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

[Curs Android] C02 - Aplicatii (IPW 2011) [Curs Android] C02 - Aplicatii (IPW 2011) Presentation Transcript

  • Android Securitate, Aplicatii, Manifest, Structura, Resurse, Componente, Context Vlad PETRE vlad@vladpetre.com http://twitter.com/vladpetre88 http://facebook.com/vladpetre88 http://www.linkedin.com/in/vladpetre881 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Securitatea Aplicatiilor (I) • Implementata in kernelul Linux: – Sistem de fisiere ext3 (ext4 incepand cu 2.3) – Fiecare aplicatie ruleaza sub un alt utilizator Linux • Determinat de semnatura digitala a aplicatiei – Utilizatorii pot scrie doar in directorul lor – Pot scrie in: • /data/<package_name>/ • /sdcard/ – Valabil pentru orice tip de aplicatie Android • Standard Dalvik / AJAX / NDK2 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Securitatea Aplicatiilor (II) • Implementata in bibliotecile Android: – Pe baza de permisiuni declarate in Manifest – Permite accesul la functiile telefonului: • Retea • Aparat Foto • GPS • Internet – Utilizatorul este informat la instalare – Functioneaza doar pentru aplicatiile normale Dalvik3 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Aplicatiile Dalvik (I) • Scrise in limbajul orientat obiect Java • Uneltele din SDK compileaza codul Java, impreuna cu alte fisiere resursa necesare, intr-un pachet Android *.apk • Un pachet apk este o aplicatie Android • Fiecare aplicatie traieste in propriul spatiu de memorie virtualizat – sandboxing • Fiecare aplicatie ruleaza in cadrul propriului ei proces Linux4 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Aplicatiile Dalvik (II) • Nu exista main()  • Formate din diferite componente ce exista ca niste entitati separate, cu un rol bine definit: – Activitati - Activities – Servicii - Services – Furnizorii de Continut – Content Providers – Receptorii de Difuzare – Broadcast Receivers5 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Semnatura Digitala • Fiecare pachet apk trebuie semnat pentru a putea fi instalat pe telefon • In functie de utilizare, semnaturile digitale sunt de doua tipuri: – Pentru dezvoltare • Generata de SDK-ul Android – Pentru productie (publicarea pe Android Market) • Autosemnata • Autentica - reprezinta autorul aplicatiei (persoana fizica / companie / organizatie)6 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Fisier APK • Un pachet apk este o arhiva ZIP, similar pachetelor JAR. • Un pachet apk reprezinta o aplicatie Android • Contine: – Executabilul Dalvik .dex – Resurse • Imagini • Fisiere XML – Fisierul cu informatii Manifest7 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Structura unui proiect Android Surse ResurseleFisiere generate de ADT unui proiect Fisiere RAW Drawables Structura & metadata proiectului 8 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Resursele unui proiect • anim/ - fisiere xml ce descriu animatii de obiecte • color/ - fisiere xml ce descriu culori • drawable/ - fisiere bitmap de tip PNG, JPEG, GIF sau de tip XML ce descriu forme de obiecte Drawable sau stari pentru butoane. • layout/ - fisiere xml ce descriu layout-ul vizual • menu/ - fisere xml ce descriu meniuri • raw/ - pentru fisiere raw • values/ - fisiere xml ce pot descrie valori utile aplicatiei voastre • xml/ - pentru alte fisiere xml (e.g. cele ce descriu un PreferenceScreen)9 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Fisierul AndroidManifest.xml • Descrie informatii esentiale despre aplicatie: – Defineste pachetul Java al aplicatiei – trebuie sa fie unic! – Descrie componentele aplicatiei (activitati, servicii, etc) – Declara permisiunile necesare aplicatiei (Internet, GPS, etc) – Declara nivelul minim de API necesar functionarii aplicatiei – Listeaza bibliotecile necesare rularii aplicatiei (e.g. com.google.android.maps) – Specifica tipurile de ecrane suportate10 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Activities • Componenta a aplicatiilor Dalvik. • O activitate reprezinta un singur ecran cu o singura interfata pentru utilizator. • Desi activitatile conclucreza pentru a cea o experienta coeziva, ele sunt totusi independente. • Trebuie declarate in Manifest! • Nu este penru procesare multa! – Daca devine unresponsive, sistemul va cere permisinea utilizatorului sa o inchida!11 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Ciclu de viata al unei activitati (I) 12 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Ciclu de viata al unei activitati (II) 13 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Metode de callback (I) • public class ExampleActivity extends Activity { @Override public void onCreate (Bundle savedInstanceState) { super.onCreate(savedInstanceState); // The activity is being created. // Obligatoriu sa fie declarata } @Override protected void onStart() { super.onStart(); // The activity is about to become visible. } @Override protected void onResume() { super.onResume(); // The activity has become visible (it is now "resumed"). }14 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Metode de callback (II) • @Override protected void onPause() { super.onPause(); // Another activity is taking focus (this activity is about to be "paused"). } @Override protected void onStop() { super.onStop(); // The activity is no longer visible (it is now "stopped") } @Override protected void onDestroy() { super.onDestroy(); // The activity is about to be destroyed. } }15 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Tasks and Back Stack (I) • Un task este o colectie de activitati cu care utilizatorul interactioneaza la un moment dat. • Activitatile sunt aranjate sub forma de stiva, in ordinea in care au fost pornite • HomeScreen-ul reprezinta punctul de plecare • La atingerea unei iconite din HomeScreen sau Launcher, taskul aplicatiei respective este adus in foreground sau este creat. • Un task nu mai exista cand toate activitatile sunt eliberate din stiva.16 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Tasks and Back Stack (II)17 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Services • Componenta a aplicatiilor Dalvik. • Ruleaza in fundal (background). • Destinata pentru procesare. • In general, este mai stabila in timp. • Trebuie declarat in Manifest.18 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Content Providers • Componenta a aplicatiilor Dalvik. • Baze de continut pentru oferirea de informatii. • Singura modalitate prin care aplicatiile pot paraja date. • Trebuie declarati in Manifest. • Bazate pe URI-uri – e.g. content://android.provider.Contacts.Phones.CONTENT_URI • Ex: Android pune la dispozitie un ContentProvider ce gestioneaza contactele utilizatorului.19 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Broadcast Receivers • Componenta a aplicatiilor Dalvik. • Receptioneaza anunturi generale cu informatii publice: – SCREEN_ON – SCREEN_OFF – BOOT_COMPLETED – SHUTDOWN • Trebuie declarati in Manifest.20 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Context (I) • Generat de Dalvik la pornirea aplicatiei si pasat ca parametru. • Este definit de o clasa abstracta, extinsa de: – Activity – Service – ContentProvider – …21 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Context (II) • Permite accesul la: – mediul aplicatiei (environment) – resurse si clase – metode prin care putem • porni activitati • distribui Intent-uri • recepta Intent-uri22 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Referinţe • http://pdm.ipworkshop.ro • http://developer.android.com/guide/publishing/app-signing.html • http://developer.android.com/guide/topics/fundamentals.html • http://developer.android.com/guide/developing/projects/index.html • http://developer.android.com/guide/topics/manifest/manifest-intro.html • http://developer.android.com/guide/topics/resources/index.html • http://developer.android.com/guide/topics/fundamentals/activities.html • http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.ht • http://developer.android.com/guide/topics/providers/content-providers.html23 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • Întrebări?24 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea