130 likes | 369 Views
Mobilne Aplikacije. Danijel Pobi, dipl. Ing. Računarstva. Mobilne aplikacije. Hardwer Pregled mobilnih OS-ova Android fragmentacija SDK, ADK, ADT, NDK OOP Eclipse. Hardware mobilnih platformi. Arhitekture: ARM (Cortex A8, Snapdragon, Tegra, ...)
E N D
Mobilne Aplikacije Danijel Pobi, dipl. Ing. Računarstva
Mobilne aplikacije • Hardwer • Pregled mobilnih OS-ova • Android • fragmentacija • SDK, ADK, ADT, NDK • OOP • Eclipse
Hardware mobilnih platformi • 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 • Smartphone OS-ovi: • Windows Phone (Microsoft) • Android (Google) • iOS (Apple) • Blackberry (RIM) • Symbian !EOL (Nokia, Motorola,...) • Windows Mobile (Microsoft) • Crome OS (Google) • Linux Mobile
Smartphone OS Windows Phone Android iOS Microsoft Licenca Visual Studio Definitrana platforma C#, VB, C++ Marketplace Sigurnost (SandBox ) Google Otvoren ? Eclipse Ogromna fragmentacija Java, C++, Py,... Store Antivirus s Stora obavezan! Apple Zatvoren Xcode Definirana platforma Objective-C, C++ iTunes Iluzija sigurnosti postoji
Android • 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
Android problemi: Otvorenost • 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!)
Android problemi: hardware • 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)
Android problemi: verzioniranje • 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
Android programiranje • 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,..)
Android programiranje • 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
Kraj današnjeg predavanja PITANJA? nema glupih pitanja danijel@dmt-softver.hr zadaće nikom neriješavam, ako ih bude ;)