Introducere in Platforma Android
description
Transcript of Introducere in Platforma Android
Platforma Android
• Sistem de operare• Android Auto (mai nou)• Android Wear• Diverse variante de Android pentru camere digitale, console etc.
Open-source Linux-based platform
Dalvik(JVM optimizata)
Cea mai populara platforma
Create de Google
Platforma Android - mobile
Structura Android
Software Stack
Structura Android
• Linux Kernel• versiunile 3.4/3.10, in principal• diferente arhitecturale (de optimizare) fata de kernel-ul Linux
• Open-source(partial, intrucat cele mai multe device-uri vin in combinatie cu proprietary software, pentru a accesa diverse servicii Google)• Diverse optimizari:• de memorie (fara swap)• d.p.d.v al IPC (Intents, bundles, binders)
Biblioteci User Space
• Bionic• SQLite• SSL• OpenGL• Surfaces• ...
Dalvik (JVM) Interpreter
• Sursa Java este compilata in bytecode
• Bytecode-ul este un tip de msi(machine instruction set)
• Dalvik interpreteaza bytecode-ul Java
• Dalvik optimizeaza in mod diferit bytecode-ul pentru masinile Android, spre deosebire de clasicul JVM
Versiuni Android
• Marshmallow (6.0)• Lollipop (5.0-5.1.1)• KitKat (4.4-4.4.4)• Jelly Bean (4.1-4.3.1)• ...
• Alegand un anumit API, in functie de versiunea SO-ului, putem adauga noi functionalitati aplicatiilor pe care le cream
API - functionalitati vs. cota de piata
• Default, in Android Studio, este API 15 (Ice Cream Sandwich 4.0.3)• Un API level mare ne ofera functionalitati mai variate• In acelasi timp, un API mic poate acoperi o mai mare parte din device-
urile Android de pe piata• In functie de aplicatia pe care o cream,putem alege un API
corespunzator
Posibilitati de programare
• Android SDK - Java• folosind Android Studio (in principal, din 2014)• folosind Eclipse, cu ADT(Android Development Tools)
• Android NDK - C/C++• Folosit pentru a implementa parti ale aplicatiei cu ajutorul unor anumite
limbaje(C/C++)• Use cases: aplicatii care solicita mult CPU-ul (game engines, signal processing
etc.)
• Framework-uri• Kivy(Python), Qt for Android etc.
Securitate• Fiecare aplicatie ruleaza sub propria identitate
• Semnaturi digitale diferite• sandbox=un spatiu alocat fisierul, proceselor etc. pentru fiecare aplicatie, izolat de restul sistemului de fisiere
• Sistemul Android mediaza comunicarea intre UI si periferice in cadrul aplicatiei(GPS, camera, microfon, touchpad etc.)• Sistem de fisiere ext3• Fiecare aplicatie isi "declara" propriile permisiuni• patch-urile de securitate ating doar o parte din sistemele Android, lasand
87% din device-uri neprotejate, in acest sens
Android si restul...
Android si restul...
• Cele patru platforme principale de pe piata sunt • Android• Windows Phone• iOS• BlackBerry OS
• Aproximativ 97% din utilizatori folosesc Android sau iOS
Android vs. iOS
Android vs iOS
• Android:• Developer (30$ o data)• Java• open-source• flexibilitate mai buna
• iOS• Developer (100$ anual)• Swift, Objective C• closed-source• RAM/memory management + securitate mai buna