Vyuziti pameti javovych aplikaci

O různých operačních systémech (Sailfish, KaiOS, Symbian a další)

Moderátor: Moderátoři MobilMania.cz

Odeslat příspěvekod Sentry 2. 12. 2006 16:06

Dovolil jsem si zalozit nove vlakno a obracim se na programatory aplikaci v jave pro mobilni telefony.
Zajimalo by me z laickeho ci uzivatelskeho hlediska - a doufam ze nejen me, ale i sirokou obec uzivatelu MT - jakym zpusobem funguji aplikace v jave v mobilnich telefonech.
Jde mi napr. o to, ze mobilni telefony Nokia jsou zname svym omezenim pro uzivani java aplikaci, at uz omezenim velikosti samotne aplikace ci omezenou velikosti pameti vyhrazenou pro java aplikace v samotnem MT.
Take mi zajima, jaky muze mit vliv na samotny beh javovych aplikaci volna pamet vyhrazena pro samotnou javu ci celkova vnitrni pamet telefonu. Jak je tomu u ruznych znacek ci modelu MT.

Stava se mi u Nokie, ze pri behu OM mod verze, kdy si otevru vice oken najednou, mi aplikace zahlasi, ze nema dostatek volne pameti. Je mi jasne, ze to souvisi i s konfiguraci samotne OM, molik je nastaveno pro cache pamet. Jen pro doplneni volna pamet vyhrazena pro javu je neco pres 150 kB, volna pamet telefonu pak kolem 2 MB.

Myslim, ze pokud se programatorum podari nejakym laickym zpusobem vysvetlit tuto problematiku, ze to pomuze mnohym uzivatelum. Diky ...

Moderatory prosim o pripadnou upravu nazvu vlakna, tak aby lepe vystihoval podstatu diskuse.
OnePlus Nord 3 5G - 16GB / 256GB
Model: CPH2493
OxygenOS 13.1.0.592(EX01)
Sentry
Junior
Uživatelský avatar

Odeslat příspěvekod anonymni 2. 12. 2006 16:22

Java aplikace není ve strojovém kódu,ale má všechny části ve zdrojáku zabalené v JAR archívu. A proto trvá dlouho spouštění-musí se to celé kompilovat

EDIT: jo a ještě - každý telefon má také nějakou RAM pro běh aplikací,a Nokie S40 mají kolem 512KB - 1024KB...
anonymni

Odeslat příspěvekod W900i 2. 12. 2006 20:16

V mem SE W900i mam zhruba vyrovnavaci pamet pro javu 1,1MB,jinak muzu instalovat neomezene velkou aplikaci.
W900i
Trvalý BAN

Odeslat příspěvekod W900i 2. 12. 2006 20:19

3D hry a hlavne ty co vyuzivaji Geforce se po instalaci hodne zvetsi.
W900i
Trvalý BAN

Odeslat příspěvekod anonymni 2. 12. 2006 20:26

Ani ne,instalace akorát vytvoří slořku,do ní překopíruje JAR,vytvoří databázové a INI soübory,přidá zástupce... Toď vše
anonymni

Odeslat příspěvekod Jerry 4. 12. 2006 18:18

Tak psanim java aplikaci si privydelavam, ale nevim, jestli umim jednoznacne odpovedet primo na otazku, tak to zkusim tak nejak obecne ;-)

Me jako programatora J2ME aplikaci (symbian vubec neresim) trapi v podstate tri velikosti pameti. Velikost JAR souboru, heap pamet a limit RMS.

JAR soubor je asi jasny, jsou v nem zabaleny vsechny tridy aplikace a resim neustale dilema, jak aplikaci s co nejvice funkcemi dostat do nejmensiho archivu. Vetsina telefonu ma na velikost JAR souboru aplikace nejaky limit. U starsich nokie series 40 je to typicky 64 KB, u novejsich vice, treba 6310i mela 30KB. Siemensi tenhle limit nemeli nikdy, pouze doporucene maximum. Tenhle limit vadi asi nejcasteji, protoze treba en slovnik spustitelny na 7210 musi mit hodne omezenou slovni zasobu, protoze vic nez 64KB ten telefon nenainstaluje.
U novych a symbianovych telefonu by uz taky tenhle limit nemel byt zasadnim problemem.

Pak ma kazdy telefon nejaky limit na celkovou pamet obsazenou Java aplikacema, u siemensu cela pamet spolecna (obrazky, melodie, java...), u nokii je to hodne ruzne, na nekterych typech je dokonce limitovan i pocet java aplikaci.
Proc to maji nektere telefony spoustu ruznych limitu a oddelenou pamet pro javu od zbytku, se me neptejte, reseni siemensu mi prijde praktictejsi. :)

Dalsi podstatnou velikosti je heap pamet. Je to defakto totez co RAM u pocitace. Zjednodusene je tim dano, s kolika daty muze aplikace najednou pracovat, obvykle jde hlavne o obrazky. Tady je opet povestna nokia series 40 (aspon stare telefony v te rade), kdy pridelenych 200 KB pro displej 128*128 proste nestaci, protoze nelze mit nactene vsechny obrazky, ktere jsou pro beznou hru potreba a musi se pameti strasne setrit. Pro srovnani M55 ma displej 101*80 a heap 750 KB.
Novejsi telefony mivaji kolem 1.5 MB heap, ale dost se to lisi a na webu se ten parametr spatne dohledava. Komplikovane je to u telefonu s OS, ktere pamet aplikaci obvykle prideluji postupne az kdyz ji potrebuje. Pokud si aplikace predem kontroluje dostatek pameti, muze nastat problem, protoze si mysli, ze se ji data nevejdou. Dle meho chyba telefonu, protoze aplikace netusi (a nemuze to zjistit), ze jeste dostane dalsi pamet, az ji bude potrebovat.

No a pak jsem jeste chtel zminit RMS. To uzivatele zajima asi nejmene, je to pamet, do ktere muze aplikace ukladat data (RecordStore). U tech starych nokii to bylo radove 20KB (strasne malo, pokud si mail klient chce ukladat maily, ale pro hiscore dostatecne...), u Siemensu omezeno jen sdilenou pameti.
Kdyz to telefon umoznuje, tak aplikace muze ukladat i primo do file systemu, ale to nejde vsude, zatimco RMS musi umoznovat kazdy J2ME telefon.

To jestli se aplikace po instalaci nekam rozbali (SE), zustane v puvodnim JAR a JAD (siemens), nebo se dokonce provede nejaka kompilace a optimalizace (LG) zalezi jen na vyrobci a aplikace se o tom vubec nedozvi ani to nemuze ovlivnit.

Tak nevim, jestli jsem nekomu pomohl, hodne jsem to zjednodusil, ale nechtel jsem zabihat do vetsich podrobnosti, uz tak je to dost dlouhy text :)
Jerry
Junior
Uživatelský avatar

Odeslat příspěvekod Sentry 4. 12. 2006 19:03

2 Jerry

Diky moc, myslim ze tohle je zrovna v obecne rovine, tak jak to vetsine bude stacit ... aspon mne to tak staci
OnePlus Nord 3 5G - 16GB / 256GB
Model: CPH2493
OxygenOS 13.1.0.592(EX01)
Sentry
Junior
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků