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 ;)