Post on 05-Dec-2014
description
transcript
1 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
AndroidSecuritate, Aplicatii, Manifest, Structura,
Resurse, Componente, Context
Vlad PETRE
vlad@vladpetre.com
http://twitter.com/vladpetre88
http://facebook.com/vladpetre88
http://www.linkedin.com/in/vladpetre88
2 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 / NDK
3 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 Dalvik
4 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 Linux
5 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 Receivers
6 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)
7 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 Manifest
8 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Structura unui proiect Android
Structura & metadata proiectului
Surse
Fisiere generate de ADT
Drawables
Resursele unui proiect
Fisiere RAW
9 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)
10 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 suportate
11 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!
12 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Cicl
u de
via
ta a
l une
i acti
vita
ti (I)
13 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Cicl
u de
via
ta a
l une
i acti
vita
ti (II
)
14 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"). }
15 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. }}
16 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.
17 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Tasks and Back Stack (II)
18 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.
19 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.
20 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.
21 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– …
22 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-uri
23 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.html• http://developer.android.com/guide/topics/providers/content-
providers.html
24 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Întrebări?