Univerzitet u Novom Sadu Fakultet tehničkih nauka Odsek za računarsku tehniku i računarske komunikacije Projektovanje Namenskih Računarskih Struktura 1 Sistemi zasnovani na Androidu Uvod u Android platformu
Android je Platforma za mobilne telefone, prvenstveno Sada je platforma za namenske (engl. embedded) uređaje mobilni telefoni tablet računari AndroidTV/GoogleTV STB TV Google Wear Automotive Postoji i verzija za PC uređaje http://www.android-x86.org/ RemixOS (zastareo) 2019 PNRS1 2
Izazovi usled raznolikosti upotrebe Različiti način upotrebe (use case), drugačiji zahtevi Na primer Kod prenosivih uređaja, potrošnja je veoma bitna Takođe, dimenzije su bitne Korisnička sprega je veoma različita, prilagođena upotrebi Upotreba nije ista ukoliko imate daljinski upravljač umesto ekrana osetljivog na dodir Dodatni servisi (GSM, DVB, automotive) usložnjavaju realizaciju 2019 PNRS1 3
Operativni sistem ili platforma? Zadaci operativnog sistema: Rukovanje resursima sistema u zavisnosti od ograničenja i prioriteta (procesor, memorija, disk, I/O) Zaštita pristupa i podataka (korisnički nalozi, izolacija procesa) Apstrakcija hardvera (drajveri) Obezbeđivanje jednolikog programskog interfejsa na raznim hardverskim platformama (npr. POSIX) Zvaćemo platformom 2019 PNRS1 4
Istorija Androida 2002 Andy Rubin Kompanija Dange razvija telefon Sidekick. 2003 Andy Rubin Osnovao kompaniju Android 2005 Google Kupuje Android 2008 Android 1.0 2009 Prvi Android uređaji na tržištu 2019 PNRS1 5
Opšte činjenice od Androidu Otvorena platforma operativni sistem je open source, ali model razvoja je drugačiji Android Open Source Project SDK je besplatan NDK je besplatan http://developer.android.com/index.html Platforma je bazirana na Linux jezgru (Linux kernel) jezgro i drajveri su u kernel prostoru (kernel space) nativne biblioteke su u korisničkom prostoru (user space) aplikacije se izvršavaju u Java VM (Dalvik) Java biblioteke za vezu aplikacija sa nativnim bibliotekama 2019 PNRS1 6
Model razvoja Androida Android jeste otvorenog koda, ali je razvoj diktiran od strane Google Namenski razvojni tim u Google Odluke u skladu sa poslovnom politikom Google Postoji slab uticaj zajednice na razvoj, većinom u formi ispravke grešaka Google objavljuje nove verzije Androida nakon objave odabranih modela na tržištu (Nexus linija proizvoda) 2019 PNRS1 7
Android AOSP http://source.android.com/ Android OS se sastoji od 34 miliona linija koda uključujući 8 miliona linija XML, 11 miliona linija C/C++ 15 miliona linija Java Koristi se GIT sistem za kontrolu verzija https://android.googlesource.com/platform/manifest Linux kernel source po pravilu NIJE deo AOSP! 2019 PNRS1 8
Komponente Linux jezgro Raspoloživost izvornog koda Androida Željena Android platforma Izvori Linux jezgro sa kernel.org AOSP sa sajta source.android.com Android platforma je u user space Ali je uticao i na Linux jezgro usled rasprostranjenosti Modifikacije Linux jezgra Unifikacija 2019 PNRS1 9
Verzije Android OS Verzije i API: 1.5 Cupcake (API v3) 1.6 Donut (API v4) 2.0-2.1 Eclair (API v7) 2.2 Froyo (API v8) 2.3.x Gingerbread (API v9-10) 3.x.x Honeycomb (API v11-13) 4.0 Ice Cream Sandwich (API v14-15) 4.1, 4.2, 4.3 Jelly Bean (API v16-18) 4.4 Kit Kat (API v19-20) 5.0 Lollipop (API 21) 5.1 Lollipop (API 22) 6.0 Marshmallow (API 23) 7.0 Nougat (API 24-25) 8.0, 8.1 Oreo (API 26-27) 9.0 Pie (API 28) Fragmentacija! 2019 PNRS1 10
Udeo raznih verzija Androida https://en.wikipedia.org/wiki/android_version_history 2019 - Pritisak na programere - Moraju biti svesni kompromisa - Trend prihvatanja se usporava PNRS1 11
Udeo Androida na tržištu 2019 PNRS1 12
Udeo rezolucije ekrana - Osmišljavanje GUI - Testiranje - Fragmentacija Data collected during a 7-day period ending on October 26, 2018. Any screen configurations with less than 0.1% distribution are not shown. 2019 PNRS1 13
Softverske licence 1 Softverska licenca je dokument koji pravno reguliše upotrebu i distribuciju softvera uz koji je vezan (priložen). Izvedeni rad Copyleft LGPL, GPL Zahtevaju da i izvedeni rad bude pod istom licencom Pogodni za projekte od opšte koristi, nepogodni za komercijalne projekte Copyright Apache, BSD, MIT Ne zahtevaju da i izvedeni rad bude pod istom (manje liberalnom) licencom Pogodni za komercijalne projekte, ne garantuju vraćanje rezultata zarad opšteg dobra 2019 PNRS1 14
Softverske licence 2 Android se distribuira pod Apache 2 licencom Linux jezgro se distribuira pod licencom GPL v2 2019 PNRS1 15
Pregled softverskih licenci https://tldrlegal.com Licenca Apache License 2.0 BSD 2-clause License MIT License Mozilla Public License 2.0 (MPL) Eclipse Public License (EPL) GNU Lesser General Public License v2.1 (LGPL-v2.1) GNU General Public License v2.0 (GPL-v2) GNU General Public License v3.0 (GPL-v3) Pogodnost upotrebe za komercijalne svrhe Da Da Da Delimično Delimično Delimično Ne Ne 2019 PNRS1 16