Btw ovo je tako glupo i nekonzistentno testiranje za oba mobitela!

Krivo si vidio, kod otvaranja prve aplikacije Samsung stvarno otvori prije, na iphoneu još traje animacija dok je na samsungu dialer već otvoren.
Teški /facepalm
Sve napredni korisnik moze imati kao i android kad ga jailbreaka...a danas je jailbreak sveden da doslovno odes u preglednik upises neznam ajmo reci chimera(jedan od jailbreaka) i preko samog preglednika ti nudi instalaciju unutar telefona, stisnes ok, pokrenes aplikaciju stisnes start jailbreak i za doslovno 2 minute je jailbreakan, mozes promjenit sve do malog zrna...ikone,animacije,tipkovnice, dobijes download manager, file manager, od kodi-a(multimedijalnog centra) sve do dos emulatora itd... To ce onaj kojega zanima znati
Sve u duhu just works....
Da to je načina na koji mali Ivica vidi svijet al to ne mijenja činjenicu da je samsung u svim pokretanjima aplikacija koje sam vidio (nisam cijeli video pogledao) bio brži, jasno se vidi, crno na bijelo, nebitno koga on favorizira, tko mu je sponzor, hoće li ga kasnije poklanjat itd.
Takvih videa ima na stotine i ni na jednom iPhone nije brži, ne samo vs Samsung već i druge marke, očito vas ne zanima istina pa ne gledate dalje od jednog videa koji sam samo dao kao primjer. Inače dnevno slažem strankama i iPhone i Samsung i druge telefone i sam sam preso na Samsung, i definitivno je brži Netreba mi nikakav video da to vidim.
EDIT:To je bila poanta mojeg gore posta, i naslov ove teme, možda bi trebao Apple početi "mariti" o ramu pošto je iphone nekad bio kralj po fluidnosti, startanju aplikacija i brzini multitaskanja, a danas ga lagano pobjedi u tome kineski flagship za trećinu cijene.Ili da možda ubace brži NAND u taj novi telefon od 500gb koji košta 14000kn u našim krajevima, pa bi se i na njemu brže loadale igrice i startale aplikacije kao na recimo jeftinim mid range Samsung telefonima koji koštaju jednu osminu cijene...
Da li je Android runtime baziran na Javi?
NE.
NE NE NE NE NE NE NE NE NE i NE!
Source može biti pisan u bilo kojem programskom jeziku za koji postoji Android kompajler. Preporučen je Kotlin, U najširoj upotrebi su Kotlin, Java, C++ (Android Studio SDK & NDK; Unreal Engine, AIDE...), C# (Unity, Xamarin), HTML5... a imaš i C, Lua, Pascal, Basic...
Zbog backward kompatibilnosti, kompajlirani byte code (nazovimo ga neoptimiziranim binary kodom, odn. optimiziranim za Dalvik) je u dex formatu (i za ART!), koji je ujedno "exe" file za Dalvik VM (JIT).
JIT Android .apk (aplikacija) je de facto zipani .dex.
dex nije Java već "neoptimizirani" binary za ART. Koji se prilikom instalacije kompajlira u "pravi" binary.
Ono što tebe muči je da se nekada isključivo Java kod (za Java VM) kompajlirao u .dex za (Dalvik VM).
"AOT" odnosno ART (Android RunTime) kompajlira dex u "pravi" binary ELF ("exe"):
https://en.wikipedia.org/wiki/Android_Runtime
Once an application is compiled by using ART's on-device dex2oat utility, it is run solely from the compiled ELF executable
Ako si ikad išta kompajlirao, onda znaš da u postavkama kompajlera možeš optimizirati kompajliranje točno (optimalno) za tvoj komp/uređaj. E, pa zato se aplikacija distra u dex (byte code) a ne elf (exe binary) formatu, kako bi se prilikom instalacije prilagodila tvom uređaju.
Čak i Kotlin koji spominješ se prekompajlirava
Ne prekompajlirava se :D već kompajlira, jednako kao i C, C++, C#... praktički svaki prog. jezik danas se kompajlira - ako se ne vrti u interpreteru (virtualnoj mašini). A počesto i tada (> JIT).
Da li je JIT generalno sporiji od AOT compilea za isti kod? Ti tvrdiš da nije...
Ovisi o aplikaciji/namjeni(pisanju/kompajleru. Odnosno:
Aplikacija odn. program koji je optimiziran za neki hardware će brže raditi od onog koji za njega nije optimiziran, bez obzira je li riječ o JIT ili ART.
Ovako to zvuči logično i prebanalno, ali razmisli o tome. Android apk su, za razliku od iPhonea, namjenjene (i primjenjive) za stotine proizvoda desetina proizvođača. Buduće ART aplikacije namijenjene (i optimizirane) za budući hardver će raditi lošije na današnjem (tada starom) hw nego li JIT aplikacije optimizirane za taj stari hw.
Detaljno:
odex je optimizirani dex byte code (JIT). To je binary ("byte code"), ali nije elf već je optimiziran za Dalvik VM.
Usporavanje može biti zbog ove just-in-time kompilacije i interpretera (VM). Naravno, i zbog lošeg koda, lošeg hardwarea, sunčevih pjega...
JIT i byte code je "hibrid", nešto između klasičnog interpretera (VM), npr za Javu ili Python i "pravog" runtime. On je binary (mašinski kod), ali je "polu-preveden", točnije optimiziran za dinamičko izvršavanje u interpreteru.
Ovisno o optimizaciji (namjeni), JIT može biti jednako brz kao "pravi exe", odnosno čak i brži ako je potonji loše napisan.
Drugo potencijalno usporavanje je zbog same prirode interpretera (interpretacije/emulacije), koje je povijesno bilo sporije nego li klasični kompajlirani izvršni kod.
No to više ne mora biti slučaj. Virtualne mašine u slučaju Jave, Pythona, Androida... nisu klasične VM, gdje npr DosBOX (software!) na ARMu emulira x86 hardware.
Ne postoji originalni "Java CPU" (hardware) kojeg treba emulirati. To nije tako ni zamišljeno.
Virtualke su (odn. mogu biti) na ovakvim mobile SOCovima hardver, a ne softver (grubo pojednostavljeno).
Posljedično, kao pravi hardware, mogu biti jednako brze kao i pravi hardware (jer to i jesu - nisu više interpreteri već ehm koprocesori)
Današnji SOCovi su hardverski ("koprocesorima", npr GPU) optimizirani za sve moguće i nemoguće zadatke.
Tipičan primjer ti je gdje neki prastari Raspberry Pi potpuno glatko vrti Full HD video. Ali zato jedva pogoni Chrome.
Ili: iPhone vrši "multitasking" pomoću hardware optimized "fast switchinga" (kao i npr sliku u slici itd).
Ili: Microsoft pokreće x86 Windowse na ARM SOCu pomoću specijalnog hardverski implementiranog emulatora na Snapdragon kojem-li-već SOCu.
Ili: Huawei MATE 10 "Kirin" SOC sad ima osim 5G, GPU i "NPU" - neural processing unit.
No, kako se opet radi o dodatnoj "emulaciji" (vrlo diskutabilan termin za npr Javu), pa makar i hardverskoj, interpreter / VM je, u teoriji, uvijek sporija od nativnog mašinskog koda, pa makar samo mjerljivo u mikrosekundama. No, za korisnika to može biti nemjerljivo maleno.
A loš kod koji ne oslobađa memoriju je i dalje prisutan u brojnim aplikacijama na Google Playu.
Trololo. A moj tata je jači od tvog. :D
Gle, imaš milijune aplikacija za Android, stotine tisuća više nego li za iOS. Zakonom velikih brojeva, statistički ako želiš, neke aplikacije su loše napisane.
Ili: tolliko je apsa za Android da su brojne i te loše napisane. Kao i za svaki široko rasprostranjeni sustav.
Ako misliš da Apple svojom fašistoidnom kontrolom radi bolju selekciju - pa gle, ja sam se na iPhoneu igrao na gameboy emulatoru skrivenom u drugoj aplikaciji koja je na iStoreu bila gotovo godinu dana prije nego li je to Apple skužio (i zabranio je). Sad zamisli kolika je i kakva stvarna kontrola iOS aplikacija, izvan PRa i "religije".
JIT aplikacije, logikom stvari (namijenjene su za vrtiti se od smart TVa do ...Chromebooka), ne oslobađaju "garbage" idealno za svaki uređaj. No opet - JIT aplikacije su prošlost.
Znači iOS nema multitasking? Što je onda to kad razgovaram na telefon i koristim GPS u isto vrijeme? To što MT na iOS-u razlikuje BG i FG aplikacije ne znači da nema MT, koji je između ostaloga znatno efikasniji nego ovo što ima Android
NE.
Odgovorio sam ti gore (kao i u prethodnom postu).
Kad imaš hardware accelerated fast switching, razlike za korisnika na iPhoneu gotovo da i nema (od pravog multiaskinga). Samo što je onda takav uređaj, logično, bitno skuplji. Ali opet ne možeš činiti paralelno stvari koje možeš sa pravim multitaskingom.
To što ti koristiš GPS u isto vrijeme jednako je multitasking kao i da kažeš da puniš mobitel istovremeno dok slušaš muziku na njemu - da, formalno je i to multiasking.
Na telefonu ti to možda nije bitno, ali to ti je npr razlog zašto iPad nikad neće zamijeniti laptope - jer iOS nije zamišljen kao desktop sustav. Doduše nije ni Android, ali može tako raditi.
FYI: ja sam doista, odavno, na mobitelu skidao preko torrenta stvari na mobitelu dok sam paralelno apgrejdao appse i surfao po netu, a jednom prilikom čak i 7-zipao u pozadini nešto za backup.
Ili:
pogledaj kako radi AIDE (ili Aide Web): piši kod na Androidu (samom uređaju kojem je namijenjen), izvršavaj ga, kompajliraj i koristi - sve na istom smartfonu / tabletu. Java/xml, C/C++ (za Android) HTML5, CSS, JavaScript (za web).
("real-time error checking, refactoring and smart code navigation, run your app with a single click and use the Java debugger to find bugs.")
Na iOSu - iPadu (kamo li iPhoneu) to naprosto ne možeš. Ni blizu. Odnosno, može pretvoriti skupi iPad u *nix SSH terminal (tehnologija kao prije xx godina) i spajati se na Google Cloud.
Iskustvo iOS "opsesivca" (his words) iz prve ruke:
https://andrewbrookins.com/tech/can-you-write-code-on-an-ipad/
https://andrewbrookins.com/technology/coding-on-ipad-pro-2019/
Sistemski procesi rade zasebno u pozadini, to tak mora biti, inače ne bi dobivao ni poruke ni pozive, itd.
Ali kad neka 3rd party aplikacija hoće raditi dok je u backgroundu, onda ne može.
Ne.
To je kao da kupiš skupi Mercedes koji može potegnuti 340km/h (i zato je između ostalog skup), ali ti je blokiran na 180km/h - jer ti realno, brže ne treba (nigdje nije dopušteno brže voziti).
Sistemske (predinstalirane) aplikacije i servisi IMAJU multitasking. No bilo koja od 2+ milijuna aplikacija koju kupiš u iStoreu ne može direktno komunicirati s drugom (razmjenjivati podatke) u realnom vremenu. Također, nema pristup jedinstvenom file-sustavu (ne može ga direktno dijeliti).
Probaj na iPadu skidati film sa npr Amazona ili muziku sa Spotify (a ne iStorea /dedicated apps) i staviti to u bkg.
Download će se prekinuti.
(aplikacija + download se nakon par minuta neaktivnosti pauzira. No, druga strana, npr Spotify, će nakon dovoljno vremena neaktivnosti prekinuti komunikaciju)
Ovo je pak normalno za Android:
https://www.androidauthority.com/best-torrent-apps-android-711563/
Napominjem, zvuči groznije nego li je, u praksi cca 90% iKorisnika neće biti ničim "oštećeno". S druge strane, baterija će im vjerojatnije duže trajati jer neće (točnije ne može, ne smije) biti dužih aktivnih procesa u pozadini (osim sistemskih, dozvoljenih).
Riječ je o nakaradnom, ali funkcionalnom pristupu - dok dobro radi, briga te što se dešava unutri.
Btw: jailbreakani iPhone IMA (dopušten) pravi multitasking :)
npr: EasyAccess je odličan ali radi samo na jailbreakon iPhoneu//iPadu:
https://www.idownloadblog.com/2018/12/14/easyaccess/
S druge strane, Tasker je normalna stvar za Android (i neizvedivo na ne-jailbreakanom iPhoneu//iPadu).
https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm
Ne.
To je kao da kupiš skupi Mercedes koji može potegnuti 340km/h (i zato je između ostalog skup), ali ti je blokiran na 180km/h - jer ti realno, brže ne treba (nigdje nije dopušteno brže voziti).
Nije. Mercedes ti je isporucio auto koji moze ici 340 km/h a blokira te zakon. Apple ti da auto koje moze ici 340 km/h i sam ga blokira.....
Ne.
To je kao da kupiš skupi Mercedes koji može potegnuti 340km/h (i zato je između ostalog skup), ali ti je blokiran na 180km/h - jer ti realno, brže ne treba (nigdje nije dopušteno brže voziti).
Autobahn ?
Ne.
To je kao da kupiš skupi Mercedes koji može potegnuti 340km/h (i zato je između ostalog skup), ali ti je blokiran na 180km/h - jer ti realno, brže ne treba (nigdje nije dopušteno brže voziti).
Autobahn ?
Naravno; brojke sam izvukao iz gujce - da sam napisao 130 iKorisnici bi se uvrijedili; također - nemaš ni Mercedes koji može potegnuti 340 afaik.
Ali možemo onda postaviti i paralelu da li se ajfon kupuje kako bi preko noći postao ponešto ograničeni Njemac? :D
Inače, njemčija je iznimka: na autobahnu nema ograničenja, ali u EU je svugdje 120-130 koliko se sjećam (wiki check: samo Bugarska i Poljska i djelomično Austrija 140). Pa ti je 180 dosta i za "iznimne situacije", recimo.
Neka krajnja psihološka granica sigurnog upravljanja vozilom, po nekim studijama, je u stvari 200kmh.
Jel vi kupujete telefon na temelju toga kako radi u svakodnevnom korištenju ili na temelju specifikacija na papiru?
Da budem iskreni nije mi bas previse jasan ovaj frenzy sa ramom... Koj k ce ti vise od 4gb rama na mobu (ne trollam, iskreno pitanje)... dok recimo prostor vidim kao problem...
Ja kao nekakav joe average koristim mob za surfanje, tu i tamo koja igrica za wc :), telefon... app....
Nikad nisam dobio "not enough memory"....
Dobro pitanje, u svakom slučaju.
Postoje aplikacije koje troše više i manje RAM-a, a veći RAM je tu da ti omogući multi tasking s velikim brojem aplikacija. Ako koristiš par aplikacija, koju jednostavnu igricu i slično, tebi je 4 GB RAM-a i više nego dosta (ako ne i previše). No imaj na umu kako ima ljudi koji doslovno imaju mobitel pun igara, te drugih zahtjevnih aplikacija. Neki ljudi žele da istovremeno mogu imati više otvorenih zahtjevnih aplikacija i ti korisnici biraju uređaj koji ima što više RAM-a.
Ja sam osobno na starom HTC Desire 610 iskusio nedostatak memorije. Mobitel ima 1 GB RAM-a i pokreće ga Android Kit Kat. Kada ažuriraš sve aplikacije na najnovije verzije (što je preporučeno, što zbog najnovijih mogućnosti, što zbog sigurnosti), primjetit ćeš da su aplikacije sve zahtjevnije i teže kako dobivaju nove mogućnosti. Pogledaj Chrome za Android ili YouTube na primjer; dok na slabijim mobitelima starije verzije će raditi normalno i brzo, novije verzije će dosta lagati, a možda se i prisilnog gasiti. Na spomenutom HTC-u (kojeg još imam, ali ga koristim kao daljinski za Chromecast) više ne možeš imati otvoreno više od dvije aplikacije. Ovisno o njihovim zahtjevnostima, nekada jedva jednu aplikaciju. Recimo, više ne možeš koristiti Chrome i u pozadini slušati FM radio (da, FM radio koji doslovno ne troši ništa RAM-a). Odeš li na težu stranicu ili otvoriš li tri kartice u Chrome-u, radio se gasi, a njegovim ponovnim pokretanjem, Chrome se ponovno ispočetka otvara. Zbog toga je meni RAM jedna od bitnijih stvari jer volim multi tasking. Volim nastaviti raditi u aplikaciji gdje sam stao.
Što se tiče gaming mobitela s 8 ili 16 GB RAM-a, mislim da je to overkill. Bar za sada, dok aplikacije nisu još toliko zahtjevne, ali jednoga dana će nam to postati sasvim normalno. Just for reference, moja računala doma imaju po 8 GB RAM-a, moj mobitel ima 4.
iOsu treba duplo manje memorije nego Androidu, jer je Android baziran na Javi i što drukčije hendla background aplikacije.
S obzirom da radi toga iOs uređaji imaju duplo manje memorije, Apple nigdje to ne reklamira, jer bi kupci onda uspoređivali količinu memorije s Androidom, a to je generalno nebitan podatak.
Smatram da je 4 GB RAM-a dovoljno za sada, ali pošto su svi Apple-ovi proizvodi već toliko overpriceani, ne bi im pala kruna s glave da su dodali veći RAM; ako zbog ničeg drugog, bar zbog boljeg multi taskinga. I da stave više RAM-a uređaj bi opet bio overpriced zbog Appleovog poreza.
Ne.
To je kao da kupiš skupi Mercedes koji može potegnuti 340km/h (i zato je između ostalog skup), ali ti je blokiran na 180km/h - jer ti realno, brže ne treba (nigdje nije dopušteno brže voziti).
Autobahn ?
Naravno; brojke sam izvukao iz gujce - da sam napisao 130 iKorisnici bi se uvrijedili; također - nemaš ni Mercedes koji može potegnuti 340 afaik.
Ali možemo onda postaviti i paralelu da li se ajfon kupuje kako bi preko noći postao ponešto ograničeni Njemac? :D
....
340 ne ali preko 300 nekoliko serijskih modela. Siguran sam da ih puno vise moze preko 300 ali su elektronski ograniceni radi sigurnost....
Jel vi kupujete telefon na temelju toga kako radi u svakodnevnom korištenju ili na temelju specifikacija na papiru?
Ja kupujem da dobijem sto vise za sto manje.... A iphone je upravo suprotno od toga.....
Ne.
To je kao da kupiš skupi Mercedes koji može potegnuti 340km/h (i zato je između ostalog skup), ali ti je blokiran na 180km/h - jer ti realno, brže ne treba (nigdje nije dopušteno brže voziti).
Sistemske (predinstalirane) aplikacije i servisi IMAJU multitasking. No bilo koja od 2+ milijuna aplikacija koju kupiš u iStoreu ne može direktno komunicirati s drugom (razmjenjivati podatke) u realnom vremenu. Također, nema pristup jedinstvenom file-sustavu (ne može ga direktno dijeliti).
Probaj na iPadu skidati film sa npr Amazona ili muziku sa Spotify (a ne iStorea /dedicated apps) i staviti to u bkg.
Download će se prekinuti.
(aplikacija + download se nakon par minuta neaktivnosti pauzira. No, druga strana, npr Spotify, će nakon dovoljno vremena neaktivnosti prekinuti komunikaciju)
Ovo je pak normalno za Android:
https://www.androidauthority.com/best-torrent-apps-android-711563/
Napominjem, zvuči groznije nego li je, u praksi cca 90% iKorisnika neće biti ničim "oštećeno". S druge strane, baterija će im vjerojatnije duže trajati jer neće (točnije ne može, ne smije) biti dužih aktivnih procesa u pozadini (osim sistemskih, dozvoljenih).
Riječ je o nakaradnom, ali funkcionalnom pristupu - dok dobro radi, briga te što se dešava unutri.
Btw: jailbreakani iPhone IMA (dopušten) pravi multitasking :)
npr: EasyAccess je odličan ali radi samo na jailbreakon iPhoneu//iPadu:
https://www.idownloadblog.com/2018/12/14/easyaccess/
S druge strane, Tasker je normalna stvar za Android (i neizvedivo na ne-jailbreakanom iPhoneu//iPadu).
https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm
Kontam, al tunein radio(aplikacija) kad pustis i spustis on i dalje svira, a to je 3rd aplikacija, i radi cak dok surfas...
Neznalica se vise ne javlja.
Toliko si toga napisao da mi je naporno samo pročitati, a kamoli odgovoriti. Zato ukratko:
1. Android ne može bez Jave, većina Androida je napisana u Javi, većina aplikacija se piše u Javi, sve se vrti oko Jave. Ti možeš napraviti aplikaciju u nečem drugom, no većina tih alata radi tako da to prebaci prvo u Javu i onda radi build i većina ih je u .dex formatu. To što možeš pisati kod u Pythonu ili nečem drugom je stvar toolinga i što egzotičnije tehnologije koristiš to je rezultat neizvjesniji i imaš više problema. Iako je moguće koristiti desetke raznih jezika, ako radiš aplikacija za Android ne bih preporučio ništa drugo osim Jave i Kotlina (zadnjih par godina je postao ozbiljna opcija za razvoj), a najmanje bih ikome preporučio razne alate bazirane na HTML5 ili Xamarin - ostalo nisam isprobavao.
2. Loš kod je loš kod i nema smisla uspoređivati performanse loše aplikacija na ART i idealno optimiziranog koda na JIT. Ako se svede na isto codebase ART je gotovo uvijek bolji, postoje neki slučajevi gdje je čak bolje koristiti JIT, no to je dosta specifično i to je "iznimka koja potvrđuje pravilo".
3. MT ne znači imati sve aplikacija u foreground i trošiti jednako resurse na aplikaciju koju koristiš i aplikaciju koju si zatvorio prije par dana i uopće si zaboravio da si je otvarao. S druge strane, ako iOS nema MT onda su je****o dobar posao napravili da ne primjećuješ to u radu. I nije uopće memory management više bauk - od kada je RAM jeftin i Androidi funkcioniraju da čovjek dobije dojam da je OS optimiziran.
4. Zašto bih ikada pisao kod na iPadu ili nekom drugom tabletu? To nije namjena tableta i pokušaji da nađeš "silver bullet" su uzaludni - pokušavao sam sa raznim kombinacijama doći do onoga što zovu konvergencija i da bi to imao moraš puno kompromisa prihvatiti pa stoga radije to rješavam na način da koristim cloud sync i opet na svim uređajima imam sve. Telefon i table ne može zamijeniti računalo (bar ne u developmentu), isto kao što za neke stvari nećeš koristiti laptom umjesto mobitela.
Neki imamo život i redovne obaveze pa ne stignemo visiti na forumu i pokušavati obrazovati bubuljičaste srednjoškolce.
Neki imamo život i redovne obaveze pa ne stignemo visiti na forumu i pokušavati obrazovati bubuljičaste srednjoškolce.
Bas si mi odgovorio.
Zali boze tko tebe zaposli.
Neki imamo život i redovne obaveze pa ne stignemo visiti na forumu i pokušavati obrazovati bubuljičaste srednjoškolce.
Bas si mi odgovorio.
Zali boze tko tebe zaposli.
Mislim da je odgovor puno bolji od tvojeg pitanje. Ne volim se spuštati na takvu razinu, no kad me povučeš za jezik...
Čisto radi fore me zanima što ti radiš u životu? Pretpostavljam neki županijski ured ili nešto takvo?
Neki imamo život i redovne obaveze pa ne stignemo visiti na forumu i pokušavati obrazovati bubuljičaste srednjoškolce.
Bas si mi odgovorio.
Zali boze tko tebe zaposli.
Mislim da je odgovor puno bolji od tvojeg pitanje. Ne volim se spuštati na takvu razinu, no kad me povučeš za jezik...
Čisto radi fore me zanima što ti radiš u životu? Pretpostavljam neki županijski ured ili nešto takvo?
Odrzavanje, nadziranje i unaprijedjenje vmware, azure infrastrukutre. Analiziranje securitya i jos miljun malih i velikih gluposti.
1. Android ne može bez Jave, većina Androida je napisana u Javi, većina aplikacija se piše u Javi, sve se vrti oko Jave. Ti možeš napraviti aplikaciju u nečem drugom, no većina tih alata radi tako da to prebaci prvo u Javu i onda radi build i većina ih je u .dex formatu. To što možeš pisati kod u Pythonu ili nečem drugom je stvar toolinga i što egzotičnije tehnologije koristiš to je rezultat neizvjesniji i imaš više problema. Iako je moguće koristiti desetke raznih jezika, ako radiš aplikacija za Android ne bih preporučio ništa drugo osim Jave i Kotlina (zadnjih par godina je postao ozbiljna opcija za razvoj), a najmanje bih ikome preporučio razne alate bazirane na HTML5 ili Xamarin - ostalo nisam isprobavao.
2. Loš kod je loš kod i nema smisla uspoređivati performanse loše aplikacija na ART i idealno optimiziranog koda na JIT. Ako se svede na isto codebase ART je gotovo uvijek bolji, postoje neki slučajevi gdje je čak bolje koristiti JIT, no to je dosta specifično i to je "iznimka koja potvrđuje pravilo".
3. MT ne znači imati sve aplikacija u foreground i trošiti jednako resurse na aplikaciju koju koristiš i aplikaciju koju si zatvorio prije par dana i uopće si zaboravio da si je otvarao. S druge strane, ako iOS nema MT onda su je****o dobar posao napravili da ne primjećuješ to u radu. I nije uopće memory management više bauk - od kada je RAM jeftin i Androidi funkcioniraju da čovjek dobije dojam da je OS optimiziran.
4. Zašto bih ikada pisao kod na iPadu ili nekom drugom tabletu? To nije namjena tableta i pokušaji da nađeš "silver bullet" su uzaludni - pokušavao sam sa raznim kombinacijama doći do onoga što zovu konvergencija i da bi to imao moraš puno kompromisa prihvatiti pa stoga radije to rješavam na način da koristim cloud sync i opet na svim uređajima imam sve. Telefon i table ne može zamijeniti računalo (bar ne u developmentu), isto kao što za neke stvari nećeš koristiti laptom umjesto mobitela.
1) OK; napišeš aplikaciju u C++ (Android NDK) i kompajliraš to u .dex. Gdje ti je tu Java?
ponovit ću: .dex nije java. Možeš pljuvati po Dalviku, to bi bar okvirno imalo smsila.
Ti nisi trol nego imaš neki žešći denial problem. Je li ti Java učinila nešto ružno u djetinjstvu? :D
2. ART vs JIT (AOT vs DVM): "ART je gotovo uvijek bolji" - naravno, ali BIG ALI: razlika je često zanemariva a lomiš kompatibilnost sa milijunima postojećih uređaja koji ART ne podržavaju.
Inzistiranje na tome je analogno identično inzistiranju na mikrokernelu vs "monolitnom" (makar je i XNU u konačnici bio prisiljen biti hibridni "polumonolitni" kernel). Zbog te teoretske prednosti (i fanatizma, odn. nemogućnosti auto-deniala kod Jobsa), Jobs je jalovo spiskao cca 1/4 milijarde $ (danas valjda vrijedno pola milje) samo u NeXT i uspio ugraditi taj akademski atavizam i u iOS, koji - pojednostavljeno - iziskuje specijalno prilagođen hardware kako bi imao jednake performanse "standardnom" kernelu a potencijalno veću stabilnost i sigurnosni (i modularni, što god to kod iPhonea značilo) benefit.
Kod Huaweia (Harmony OS) pa čak i Googlea (Fuchsia), mikrokernel ima smisla - ali kad će to Apple proizvoditi IoT pametne perilice, "fližidere", radijatore, pegle ili pećnice?
3 "ako iOS nema MT onda su je****o dobar posao napravili da ne primjećuješ to u radu." - s time se slažem. Ali je "riješenje" ... bizarno. "Ajmo vezati ruke korisnicima da bi imali bolje iskustvo" - tako to ja vidim. Problem je da je tih cca 10% "naprednih" LOL korisnika prisiljeno jailbreakati uređaj kako bi zaobišlo ograničenja. Što dovodi do dodatne negativne selecije iOS korisnika u "nazadne" korisnike.
4. Naprosto, Tasker na Androidu (telefonu!) je običan alat - ne smatram to nužno privilegijom nekih geekova.
Ovo "zašto bi korisnici" je bio argument ajfonaša i za nfc, notifikacije... pun kufer tehologija koje nisu imali - da bi kasnije rekli "amazing".
Ispravno pitanje je "zašto ne bi" (ako ti to skupo plaćeni hw dozvoljava).
Real multitasking i pristup filesystemu je... čudno da to moram u XXI stoljeću napisati ... normalna stvar. Standard. Pretpostavka bilo čeg ozbiljnog.
1) OK; napišeš aplikaciju u C++ (Android NDK) i kompajliraš to u .dex. Gdje ti je tu Java?
ponovit ću: .dex nije java. Možeš pljuvati po Dalviku, to bi bar okvirno imalo smsila.
Ti nisi trol nego imaš neki žešći denial problem. Je li ti Java učinila nešto ružno u djetinjstvu? :D
2. ART vs JIT (AOT vs DVM): "ART je gotovo uvijek bolji" - naravno, ali BIG ALI: razlika je često zanemariva a lomiš kompatibilnost sa milijunima postojećih uređaja koji ART ne podržavaju.
Inzistiranje na tome je analogno identično inzistiranju na mikrokernelu vs "monolitnom" (makar je i XNU u konačnici bio prisiljen biti hibridni "polumonolitni" kernel). Zbog te teoretske prednosti (i fanatizma, odn. nemogućnosti auto-deniala kod Jobsa), Jobs je jalovo spiskao cca 1/4 milijarde $ (danas valjda vrijedno pola milje) samo u NeXT i uspio ugraditi taj akademski atavizam i u iOS, koji - pojednostavljeno - iziskuje specijalno prilagođen hardware kako bi imao jednake performanse "standardnom" kernelu a potencijalno veću stabilnost i sigurnosni (i modularni, što god to kod iPhonea značilo) benefit.
Kod Huaweia (Harmony OS) pa čak i Googlea (Fuchsia), mikrokernel ima smisla - ali kad će to Apple proizvoditi IoT pametne perilice, "fližidere", radijatore, pegle ili pećnice?
3 "ako iOS nema MT onda su je****o dobar posao napravili da ne primjećuješ to u radu." - s time se slažem. Ali je "riješenje" ... bizarno. "Ajmo vezati ruke korisnicima da bi imali bolje iskustvo" - tako to ja vidim. Problem je da je tih cca 10% "naprednih" LOL korisnika prisiljeno jailbreakati uređaj kako bi zaobišlo ograničenja. Što dovodi do dodatne negativne selecije iOS korisnika u "nazadne" korisnike.
4. Naprosto, Tasker na Androidu (telefonu!) je običan alat - ne smatram to nužno privilegijom nekih geekova.
Ovo "zašto bi korisnici" je bio argument ajfonaša i za nfc, notifikacije... pun kufer tehologija koje nisu imali - da bi kasnije rekli "amazing".
Ispravno pitanje je "zašto ne bi" (ako ti to skupo plaćeni hw dozvoljava).
Real multitasking i pristup filesystemu je... čudno da to moram u XXI stoljeću napisati ... normalna stvar. Standard. Pretpostavka bilo čeg ozbiljnog.
Možeš napisati aplikaciju u C++-u, ali 95% ih nije napisano nego su Java, isto kao što možeš napraviti Windows aplikaciju u assembleru, ali vrlo malo ljudi to radi. Ako radiš za Android onda je gotovo izvjesno da ćeš raditi u Javi, eventualno Kotlinu, makar koliko sam vidio još uvijek se nije toliko "zalovio" za produkciju. Ako koristiš Xamarin onda si stvarno mazohist.
Ne znam da li si bio u ovom poslu krajem 90-ih pa da se sjećaš koji je "gušt" bio raditi u Javi? Da, javno priznajem da imam frustracije uzrokovane Javom
Osobno sam spreman žrtvovati dio funkcionalnosti (pogotovo one koja mi ne treba) za to da imam stabilniji i sigurniji sustav. Sve bitne MT funkcionalnosti na iOS-u su implementirane, a koliko god moćan telefon bio NE može zamijeniti računalo jer mu to nije shvrha. Pokušavao sam nešto slično postići u prošlosti i to je put koji je za mene završio frustracijama i nadalje imam čistu podjelu što je telefon, što tablet, a što računalo. Da kodiram na mobitelu? Ne, hvala, pa makar u iOS 14 izađe XCode u punkrvnoj verziji.
A kad mi zatreba takva neka funkcionalnost koju spominješ vrlo lako se prebacim na Android ako će mi trebati. Do sad nisam naišao na razlog za promjenu platforme, a tko voli nek izvoli. Aplikacije poput Taskera nekima su bitne, meni osobno ni najmanje. A nekima su samo argument da Android nešto može, a iOS ne može. Ok, nemam problema s time. Možda je to posljedica toga što sam se jedno vrijeme bavio sistemaškim poslovima, no više cijenim "minimalizam" i ako nešto ne želim koristiti onda "zašto ne bi to imao" nije neki argument. Ista stvar s Windows 10 - frustriraju me više nego me Java nekad jer mrzim imati hrpu nepotrebnih featurea s razlogom "ako hardver podržava zašto ne bi imao".
Možeš napisati aplikaciju u C++-u, ali 95% ih nije napisano nego su Java, isto kao što možeš napraviti Windows aplikaciju u assembleru, ali vrlo malo ljudi to radi. Ako radiš za Android onda je gotovo izvjesno da ćeš raditi u Javi, eventualno Kotlinu, makar koliko sam vidio još uvijek se nije toliko "zalovio" za produkciju. Ako koristiš Xamarin onda si stvarno mazohist.
Za Xamarin se slažem. De Icaza je općenito jedinstvena pojava
(iz mazohizma i dalje često koristim Gnumeric, a na C64 Mini Midnight Commander; Moj Mate DE je baziran na starom Gnometu tako da sam itekako upoznat s "likom i djelom"; ...neki bi rekli "što bi sve Dr Faust učinio za zelenu kartu").
Gle, ako želiš možemo otvoriti novu diskusiju naziva "Swift je smeće, a ne Kotlin (Java...)"... (moj tata je jači od tvog). :D
Razlog zašto se na Androidu često Java koristi jest u tome da je lakše/brže preuzeti nešto (gotovo) nego li novo razvijati. A jave ima na lopate.
S naznakom da ti u NDK možeš koristiti java / kotlin klase samo onoliko koliko ti je to prihvatljivo.
Što ne znači da je "95% napisanog - java" - po toj logici se nikada ne bi makli od Borland C ili Delphija (...Objective C u Apple slučaju). A makli smo se - Kotlin, C++ za Android je tu. Kotlin je sadašnjost a ne budućnost, a "time critical" dijelove kotiln/java koda možeš paralelno pisati u C/C++.
FYI: vjerojatno već sad imaš više Kotlin nego li Swift developera.
Glede C++ (developera), to je bazično znanje i glupo je negirati da će skilled dev doista koristiti stečeno znanje umjesto da se hrva s npr Javom (ako to već nije apsolvirao).
dex file u native android app (C++) je "auto-generated".
ILI: java builded dex apps možeš reverse engineeringom (npr dex2jar) dekompilirati - vratiti u (pseudo) java kod.
Za native builded dex to ne možeš, (teoretski možeš ali ne u Javu već C/C++).
Zbog povijesnog naslijeđa (iskustva), i dalje se često koristi Java u developmentu (i to je dozvoljeno), ali - nepotrebno.
Postoji JNI "Java Native Interface", koji omogućava korištenje (vezanje) java klasa u C/C++ kodu. Tako da ne moraš izmišljati toplu vodu već možeš koristiti već napisane java libs. Ali to nije nužnost.
https://developer.android.com/ndk/guides/concept
While it is possible to completely avoid Java, you are likely to find the Android Java framework useful for tasks including controlling the display and UI.
Odnosno, ako ne želiš javu uopće, samo u manifestu deklariraš/dodijeliš android:hasCode u "false".
https://developer.android.com/ndk/guides/concepts#na
Ne znam da li si bio u ovom poslu krajem 90-ih
Nisam developer. :D Eventualno hobby dev, ali uglavnom čak ni to.
koliko god moćan telefon bio NE može zamijeniti računalo jer mu to nije shvrha.
Pa Damon (Blur, Gorillaz) komponira na iPadu (a i Ripper iz Pipsa).
A Chromebook? Nova mantra Googleta jest da su krombuci / kromtableti ("hibridi") idealna platforma za development.
Imaš ljude koji to žele jednako, baš kao i za i iPad/iOS. npr ovaj ovdje
https://www.aboutchromebooks.com/news/how-to-code-on-a-chromebook-crostini-pixel-slate/
OK, makar su Android apps danas standard, to je Chrome OS a ne Android OS; ali se za dev podrazumijeva (sugerira) Android Studio, Termux.
ILI: sad AIDE (Android app) preferira chromebooke & multi-window način za dev platformu iirc.
Nije telefon, (ev. tablet/hibrid) ali nije ni laptop računalo.
Možda je to posljedica toga što sam se jedno vrijeme bavio sistemaškim poslovima, no više cijenim "minimalizam"
Hm, ja bih prije rekao "ako nešto dobro radi ono što želim, briga me za ostalo" nego li "minimalizam". "iEkosustav" je u biti vrlo složen, ali je zadržao (prividnu) jednostavnost za korisnika. (ne govorim to u kontekstu dobro/loše).
Meni osobno smeta kad "netko" razmišlja umjesto mene što ja (ne) želim - i ono što je još poraznije - što ja smijem. Istina, tako je lakše/optimalnije (život je prekratak za ...pisdarije), ali valjda sam ostao neprilagođen.
Ovo sa RAMom je neka strateška pisdarija da izvineš, vjerojatno kupovanje vremena da bi se kasnije pojavio novi model sa "čak" 8GB rama (umjesto 5G, foldable uređaja itd).