- Xiaomi 14T Pro - teljes a család?
- iPhone topik
- Minden készen áll a Galaxy Unpackedre
- Google Pixel 9 Pro XL - hét szűk esztendő
- QWERTY billentyűzet és másodlagos kijelző is lesz a Titan 2-ben
- Google Pixel topik
- Garmin Forerunner 970 - fogd a pénzt, és fuss!
- Milyen okostelefont vegyek?
- Megjelent a Poco F7, eurós ára is van már
- Magisk
Új hozzászólás Aktív témák
-
thiclyoon
aktív tag
Ahogy írod, pontosan!
Emiatt teszteltem le nem olyan régen, hogy mennyit foglal egy háttérben “futó” app. Nagyságrendileg a rendes RAM használat harmada jött ki dev környezetben, ami release esetén leeshet mondjuk az eredeti ötödére-tizedére. Ezzel összefügg, hogy a háttérben csak nagyon korlátozott use case-ek futhatnak, pl. lokáció (ami engedélyköteles pl.), vagy zene. A többi erőforrást elveszi az OS az apptól.
Az Androidot is jól írod kb., annyi, hogy a Dalviknak ehhez nincs köze igazából, a GC (garbage collection) pedig egy memóriafelszabadító módszer, szóval ez inkább amiatt fontos, hogy egy app által hátrahagyott memória mikor lesz újra használható. Egy baj van vele, hogy ilyen környezetben nem optimális
a futását úgy kell elképzelni, hogy néha lefut (mondjuk x ms-onként), viszont amíg fut, addig az appnak egy helyben kell állnia (tehát ez egy runtime feature, azaz futási időben számol és számol). Vagyis addig nem tud mit csinálni. Persze, megintcsak ha bika a CPU, akkor izomból letolja a feladatot, csakhogy jövőre már nagyobb appok jönnek, több RAM-ot esznek, és kezdődik elölről. IOS-en is van ez a memóriafelszabadítás természetesen, viszont itt a referenciaszámlálást használják (ARC). Ez minimálisan több figyelmet vár el a programozótól, cserébe nincs runtime overheadje, mert fordítási időben csinálja meg a dolgát. Innen azt hiszem látható az előnye, hiszen futás közben nem kell számoljon, és az app nem kell “megálljon.”
prolad: de, ahogy írod, és jött helyette az ART, és vele együtt az ahead-of-time fordítás, ami nagyon sokat spórolt a telefonok erőforrásából. Ettől függetlenül az ART mint “közvetítő réteg” megmaradt (vagyis bejött a Dalvik helyére), úgyhogy egyértelműen javult a helyzet, de ez azért az iOS-en megszokott (tényleg) natív kódtól odébb van.
(Ha rosszul írtam valamit, bocsi, Android guruk javítsanak nyugodtan
ma már iOS-re fejlesztek csak)
-
prolad
addikt
Nem úgy volt, hogy a Dalvikot Andorid 5/L-nél kivezették? Onnantól kezdtek el tényleg gyorsak éa fluidak lenni a telefonok még egy IOS/Windows Phone rendszerű telefon mellett is.
A RAM kérdést meg komplikálja, hogy hiába raknak bele sok giga RAM-ot, ha a gyártó nem engedi ezt mind kihasználni és a szoftver X idő után szép lassan kilövi az appokat. Hiába van nálam is 12 GB RAM, 6.5 felett nem láttam még egyszer sem a használatot. Mondjuk annyi haszna lett a dolognak, hogy 50 ezer alatr is kapsz 4GB RAMos telefont, ami elég majdnem mindenre. -
thiclyoon
aktív tag
pontosan, végre valaki aki egyetért velem
#5: iOS-es appok nem VM-ben, de sandbox-ban futnak. Androidon meg VM-ben és sandbox-ban, utóbbit szokták összekeverni a VM-mel
#7: TL;DR: meg lehetne oldani, igen, programozással kapcsolatos dolgokra is igaz, hogy "minden megoldható, csak legyen pénz és idő."
Kicsit hosszabban: az a helyzet, hogy a VM téma ennél sokkal mélyebb a dolog (én se értek mindent, sőt), és ezzel együtt sokkal "felszínközelibb" részeket is érint az Android (vagy bármelyik rendszer) architektúrája. Mondok egy konkrét példát, ami jól szemlélteti a problémát: adott egy use-case, a telefon elforgatása. Egyszerű, könnyen implementálható rész, a fejlesztőnek ezzel nem kell (nem kéne) foglalkoznia, hiszen az OS dönti el, hogy mikor forduljon el, OS szinten tiltható a funkció, stb. Nézzük meg, melyik platformon hogyan implementálták, ehhez nevezzünk egy képernyőnyi tartalmat Screen-nek (konkrétan ha valakit érdekel, iOS-en ez pl. a UIViewController, vagy újabban View, Androidon meg a nem-compose időkben Activity, de ezt a részletet most fedjük el a Screen névvel):
- Android: az OS eldönti, hogy forgatni kell a Screen-t, ekkor a Screent megsemmisíti, és létrehozza ugyanazzal a tartalommal, immár elfordított helyzetben
- iOS: az OS eldönti, hogy forgatni kell a Screen-t, ekkor a Screen kap egy jelzést viewWillAppear néven (egyszerűen fogalmazva persze), amire kirendereli a tartalmát elforgatva (meg animálva). A modell nem semmisül meg, nem kell drága erőforrással újra létrehozni egy komplex felépítésű ScreentMi lett az eredménye ennek az eltérésnek?
- Androidon még az újabb eszközökön is (de a középkategóriásoknál biztosan, és hiába már-már alig észrevehető, a forgatás előtt mindig van egy kis delay, és persze minél erősebb a CPU, annál inkább erőből megoldja). Ez egy régi kód, amit nem tudtak kivenni a kódbázisból, mivel olyan sokan használják, hogy nem tudnak breaking change-t tenni a source kódba (olyan változtatást, mely eltöri a régi appok működését). Úgyhogy maradt ez a működés. A mostani Compose-t már nem ismerem, ez egy új layout rendszer, lehet, hogy ez már javít a helyzeten, de meglepődnék, ha kigyalulták volna az egész problémát
- iOS-en meg vígan forog a képernyő oda, ahova akarod. A fentiek következménye, hogy egy Screent akár fokonként is lehet(ne) forgatni, nem kell folyton törölni - létrehozni a modellt, ami felesleges erőforráspazarlás+ infó: iOS-ben is vannak rossz, elavult, nem hatékony megoldások, hiszen ott is emberek dolgoznak. Sőt, mivel nem open source, így szerintem több hiba is van benne. Viszont ha találnak egy hibát, akkor azt egyből ki tudják javítani úgy, hogy kívülről nézve nem változik semmi (ezt megtehetnék Android oldalról is, csak sok változtatás publikus apikat is érinthet, ami ilyenkor iOS-en mondjuk deprecated lesz). És még egy: iOS-en nem félnek publikus apit módosítani. Konkrét példa ismét: a DatePicker komponens (az a jól ismert kerék, amiről dátumot választhatsz) iOS 13 előtt keréknek nézett ki, és nem volt más opció. Viszont 13.4-től és 14.0-től újabb részek jöttek be, és default módon nem keréknek nézett ki, amivel így eltörtek a képernyők, komponensek, UI-ok. Emiatt ki kellett javítani ezeket a régi appokban is, és pl. a gmail jópár hónapig bugos volt, és nem lehetett időzített emailt küldeni, mert a UI szétesett a fenti miatt. Egyik se jobb rendszer, mint a másik, tanulni kell a másiktól, és fejlődni
Új hozzászólás Aktív témák
Hirdetés
- újszerű iPhone 15 Pro 128GB black titanium fekete titán független 3 év garancia ajándék tok
- Apple Iphone 13 128gb csillagfény színű OLCSÓN . Csere/beszámítás
- Xiaomi Redmi 13128GB Kártyafüggetlen 1Év Garanciával
- Xiaomi Redmi 13128GB Kártyafüggetlen 1Év Garanciával
- Honor 90 256GB, Kártyafüggetlen, 1 Év Garanciával
- AKCIÓ! 16GB (2x8) G.Skill Trident Z RGB 4266MHz DDR4 memória garanciával hibátlan működéssel
- 35" ASUS ROG Swift PG35VQ curved GAMER monitor
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9800X3D 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
- Csere-Beszámítás! Asus Számítógép PC Játékra! R5 1600X / GTX 1080 8GB / 32GB DDR4 / 256SSD + 2TB HDD
- OnePlus 13 - Black Eclipse - Használt, karcmentes
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest