2-1._Mobilne_Aplikacije
Download
Report
Transcript 2-1._Mobilne_Aplikacije
Danijel Pobi, dipl. Ing. Računarstva
Hardwer
Pregled mobilnih OS-ova
Android
fragmentacija
SDK, ADK, ADT, NDK
OOP
Eclipse
Arhitekture:
ARM (Cortex A8, Snapdragon, Tegra, ...)
x86 ULV i embedded (Intel Atom, AMD Z, VIA
Nano,...)
ULV = Ultra low voltage
SoC = System on Chip
Glavne potrebe mobitela:
Mala dimenzije
Malo zagrijavanje i potrošnja
Velike performanse (?)
Smartphone OS-ovi:
Windows Phone (Microsoft)
Android (Google)
iOS (Apple)
Blackberry (RIM)
Symbian !EOL (Nokia, Motorola,...)
Windows Mobile (Microsoft)
Crome OS (Google)
Linux Mobile
Windows Phone
Microsoft
Licenca
Visual Studio
Definitrana
platforma
C#, VB, C++
Marketplace
Sigurnost
(SandBox )
Android
Google
Otvoren ?
Eclipse
Ogromna
fragmentacija
Java, C++, Py,...
Store
Antivirus s Stora
obavezan!
iOS
Apple
Zatvoren
Xcode
Definirana
platforma
Objective-C, C++
iTunes
Iluzija sigurnosti
postoji
integracija Google servisa
Popularan
Velika podrška velikih proizvođača
Hrpa aplikacija na Store-u
Otvoren (~=?) (nadzire se problem)
Ima jak hardware (top end, ali tu i počinju
problemi)
Veliki broj revizija i verzija (problem eskalira)
Mukotrpno za programere
Baza linux, ali...
Microsoftu plaćaju za svaki prodani Android uređaj zbog
korištenja njihove tehnologije
File System implementacija, Memory management implementacija,
sustav za povezivanje na PC, SM API, ...
Oracle-u plaćaju patente za dijelove Java-e i JVM
implementacije
Sigurnost veliki problem
Zbog Linux kernela podložno postojećim virusima
Zbog otvorenosti OS-a, tj. otvorenosti kernela, lagano
napraviti novi maliciozni program
Višestruki Store-ovi i nema sustava kontrole aplikacija
Nema kontrole malicoznog softwarea
Eksplicitni sadržaj (vjerovali ili ne, ovo je razlog uspjeha androida!)
Ovdje nastaju najveći problemi za developere
Jako velika fragmentacija
Procesorske jezgre single core – octa core
Frekvencije procesora ~400 MHz – 2GHz
Arhitekture ARMv6 – ARMv8, x86-64
RAM 64MB – 4GB
Arhitekture RAM-a
Grafika još veći jaz (PowerVR, Qualcom, Nvidia, Intel,
TI,...)
Memorija kapaciteti i brzine
Ekrani rezolucije od 320x240 do 1920x1080
Nema standardizacije! (Odličan primjer hardware
standardizacije je Microsoft s WQVL)
Jako mnogo verzija i revizija
Time mislim na jako veliki broj verzija u
upotrebi (Gingerbread, Jelly Bean, Ice Cream
Sandwitch,...)
Dobra stvar je da to pokazuje da se stalno radi
na razvoju
Loše je što uvodi sve veću fragmentaciju u već
kaotičan sustav
OOP
Glavni razvojni jezik je JAVA
Android SDK (Android Software developement
Kit)
ADT (Android Developer Tools)
NDK (Native Developement Kit)
NDK je za nativne aplikacije, znači C++
Primarni IDE za razvoj na Android platformi je
Eclipse
Moguće koristiti i Visual Studio (C#), ali samo sa
određenim frameworcima (Xamarine, Mono,..)
SDK vs NDK
Managed vs Native
Java vs C++
Kada koristiti šta?
Native:
aplikacije gdje je brzina i kontrola programa jako
važna (igrice, kompresija, enkripcija,...)
ako imate već nešta napravljeno u C++
Managed:
za sve ostalo
PITANJA?
nema glupih pitanja
[email protected]
zadaće nikom neriješavam, ako ih
bude ;)