• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    SHINIGAMIAndroid - otevřená mobilní platforma
    ADM
    ADM --- ---
    JOHNY_G: njn, me na tyhle filozofii proste triggeruje to, ze jako uzivatel takovou zasadni vec nemam pod kontrolou tak jako na pocitaci
    KULA
    KULA --- ---
    RAINBOF: už je to vymyšlené :) zítra ráno to bude dělat radost někomu dalšímu.
    JOHNY_G
    JOHNY_G --- ---
    PEJR: Nechám stranou, nakolik je vhodné se na podobné věci ptát ChatGPT a nakolik je ta odpověď přesná, a jen upozorním na to, že původní dotaz vedl na Clear all v Recent apps, a můj nejsilnější point byl v tom, že odswipnutí ani clear aplikace neukončuje :-)).
    PEJR
    PEJR --- ---
    btw.. co říká chatgpt:

    proč nevypínat aplikace na androidu
    ChatGPT
    Nevypínání aplikací na Androidu se často doporučuje z několika důvodů:

    Rychlejší spuštění: Android ukládá aplikace do paměti (RAM) i po jejich zavření, což umožňuje rychlejší spuštění při následném použití. Pokud často zavíráte a znovu spouštíte aplikace, může to způsobit zbytečnou zátěž na systém a zpomalit jeho výkon.

    Šetření baterie: Opakované spouštění aplikací může spotřebovávat více energie, než by zůstávaly v paměti. To může vést k vyššímu využití baterie.

    Správa paměti: Android má mechanismus řízení paměti, který automaticky uvolňuje paměť, když je potřeba. Pokud vypínáte aplikace ručně, můžete narušit tento mechanismus a způsobit problémy se správou paměti.

    Aktualizace a upozornění: Některé aplikace mohou potřebovat běžet v pozadí, aby mohly aktualizovat data nebo vám zasílat důležitá upozornění. Pokud je vypnete, můžete ztratit důležitá oznámení.

    Stabilita systému: Android je navržen tak, aby mohl efektivně spravovat běžící aplikace. Vypínání aplikací může způsobit nestabilitu systému nebo problémy s funkcemi, které spoléhají na pozadí běžících procesů.

    Místo toho je lepší nechat Android spravovat běžící aplikace a spoléhat se na jeho schopnost správy paměti a energie. Pokud se setkáte s problémy spojenými s výkonem nebo baterií, je lepší se zaměřit na optimalizaci nastavení a aplikací než na ruční vypínání aplikací.
    DUNICAN
    DUNICAN --- ---
    Mám ještě dotaz ohledně ovládání hlasitosti, který mi na Androidu dlouhodobě přijde velmi špatný. Konkrétně bych chtěl, aby 1) ovládání bylo mnohem jemnější (ta nejnižší nenulová pozice mi přijde šíleně hlasitá), 2) aplikace neměly možnost zablokovat ztlumení (např. během hovoru na Whatsappu nelze telefon ztlumit na nulu, což mi přijde vyloženě skandální).

    Vyzkoušel jsem různé aplikace, které tohle chování mění, ale žádná mi nepřišla dobrá. Máte někdo nějaký tip v tomhle směru?
    JOHNY_G
    JOHNY_G --- ---
    ADM: Jo a úplně jsem zapomněl zareagovat na ten WhatsApp/Viber/Signal. Messengery se v principu po bootu spouštět nepotřebují. Notifikace chodí z Firebase, a teprve po kliknutí potřebuješ otevřít nějaký chat a doptat se serveru, co je nového. V praxi to samozřejmě není pravda a skoro určitě se spouští, protože tyhle konkrétní aplikace si musí naplánovat synchronizace, backupy, aktualizovat šifrovací klíče a bůhví co ještě, ale v principu není chatovací aplikace něco, co by muselo běžet na pozadí, i když tak intuitivně působí.
    JOHNY_G
    JOHNY_G --- ---
    ADM: Zkusím to napsat jednoznačněji. Spustit se po bootu může úplně každá aplikace, a to bez zvláštního oprávnění. Ale dělat nemůže skoro nic, dokud se nedostane do popředí, takže zůstane v suspendovaném stavu, bez nároků na systémové prostředky. Já třeba pro jednoho klienta dělám aplikace, které vyžadují nepřetržitou konektivitu na Bluetooth. Tj. permanentní scan, automatické spojení, nepřerušená komunikace. Abych toho dosáhl, mám v manifestu registrované spuštění po bootu, ale hned poté spouštím službu na popředí, která se ohlásí notifikací ve stavovém řádku, a tam už musí po celou dobu běhu služby zůstat. Aby tam nevisela jen tak naprázdno, využívám ji k informování o aktuálním stavu spojení a základní interakci se zařízením (máme tam tlačítka), ale být tam musí. Pokud ty u dané podezřelé aplikace žádnou nevidíš (a tedy sám sis ji ručně v informacích o aplikaci neskryl, což jako uživatel můžeš), tak ta aplikace nic nedělá. Maximálně tu a tam nějaký malý nárazový task. Jestli doručení pushky umí spustit aplikaci, tak to na celém principu nic nemění a je to stejny příběh jako s tím bootem. Možná se spustí, ale nedělá nic. Dokonce ani neví, že nějakou notifikaci dostala, a už vůbec ne co v ní je :-).
    ADM
    ADM --- ---
    JOHNY_G: jeste jsem si to teda cetl, a mozna je to tak, ze po bootu muze aplikace vyuzit jen omezenych a presne definovanych API androidu, a ne spoustet svuj (cely) vlastni kod
    ADM
    ADM --- ---
    JOHNY_G: jo, dival jsem se a opravdu ten pripad s boltem je push notifikace z firebase cloud messages, to me nenapadlo (bylo mi to divny, kdyz jsem aplikaci nepouzil nejaky ten mesic)

    pouzivam microg, tak jsem se kouknul, a muzu registraci aplikace k FCM vypnout, a mam i volbu vypnout "start app on push message" (coz jsem u par aplikaci ihned udelal), takze tohle muze byt ten mechanismus, jak se aplikace typu whatsapp/viber/signal apod. dostane k lizu a vubec se spusti - porad uvazuji situaci po cistym bootu

    pokud by to bylo pouze takhle, tak je to naprosto v poradku, a je to v souladu s tim, co pises

    stale mam ale pocit, ze minimalne v minulosti v manifestu konkretnich app ta moznost spusteni aplikace po bootu byla, a nebo se toho dalo nejak oklikou dosahnout, a pritom se nejednalo se o user controlled privilege, coz je dle meho zasadni chyba, na mem zarizeni mam mit moznost rozhodovat o tom, jaky aplikacni kod se ma spoustet a kdy ja chci.

    moznost spustit aplikaci az na push FCM message to samozrejme resi a tak je to v poradku a spravne (pokud tedy zavru obe oci nad extremni vendor lock-in zavislosti na googlu), ale protoze sam nevim, jaka je aktualni situace (rekneme v A13) chtel bych potvrdit ci vyvratit, zda vyvojar aplikace dokaze dosahnout situace, ze po bootu bez uzivatelske interakce dosahne spusteni aplikace bez FCM push message

    pises "prakticky nemozne", no ja tomu taky tak rozumim , ale driv to slo a s tim jak se to rychle meni, tak nevim zda je to mozne i ted, a ty jako vyvojar bys to treba mohl vedet
    RAINBOF
    RAINBOF --- ---
    JOHNY_G: to plati v linuxu ale android je svoje kategorie :)
    JOHNY_G
    JOHNY_G --- ---
    RAINBOF: I 99 % je brzo :-). Plná paměť je užitečná paměť. Povinností operačního systému je ji v případě potřeby uvolňovat, ne držet prázdnou.
    JOHNY_G
    JOHNY_G --- ---
    ADM: Po bootu se může spustit libovolná aplikace bez oprávnění, ale jen v mezích, které jsem naznačil. Když má sychronizační službu, může se jednou za čas sychronizovat. Má-li widget, může ho jednou za čas aktualizovat. Pokud chce dělat cokoli vytrvalejšího, musí to být podmíněné zobrazením notifikace o službě na popředí. Pokud tam není, nic velkého neběží. Co se týče notifikací, tak tam jsou dva druhy:

    1) Lokální notifikace - ty můžou být buď vyvolané nějakou aktivitou uživatele, když je aplikace v popředí, nebo naplánovaným úkolem, a jejich spouštění řídí systémový plánovač. Když telefon používáš, tak to vyskočí v nastavený čas, když ne, tak v časovém okně vyhrazeném doze modem.
    2) Push notifikace odesílané serverem - ty chodí prakticky okamžitě bez ohledu na to, jestli je telefon zhasnutý nebo ne, ale už několik let nemají aplikace přístup ke cloud messagingu, pokud zrovna nemají aktivitu v popředí - tj. nekoukáš na jejich obrazovku. V ostatních případech je doručují Služby Google Play, které jsou součástí operačního systému, a aplikace se o její existenci dozví pouze v případě, že na ni klikneš. S extrémní pravděpodobností v ten moment aplikace vůbec neběží, i když z tvého pohledu zobrazila notifikaci. Proč nefungují po vynuceném ukončení aplikace, to je mi momentálně samotnému záhadou. Přísahal bych, že dříve to tak nebylo, ale bude to nějaký implementační detail Googlu, kterému nepotřebuju rozumět, jen o něm musím jako vývojář vědět :-)).

    Většina marketingových upozornění bývá typicky pushka.

    Tedy že by se aplikace "spouštěly a na pozadí něco dělaly" už je v posledních iteracích Androidu prakticky nemožné. Vždycky musíš něco vidět (obrazovku, notifikaci), aby mohla aplikace dělat něco víc, než pár sekund práce jednou za hodinu (ty hodnoty jsem vytáhnul z nosu, neber mě za slovo).
    RAINBOF
    RAINBOF --- ---
    ARIAEL: urco myslis tu osklivost pro exchange ze.


    JOHNY_G: zkusim to popatrat 50% je fakt brzo.
    ADM
    ADM --- ---
    JOHNY_G: skvely vysvetleni a shrnuti, diky za cas

    jak je tomu s opravnenim ... nazev varim z vody - run after boot ? protoze v seznamu managovatelnych opravneni to neni, a mam pocit, ze se na pozadi spousti kdejaka veledulezita appka, aby mi pak napriklad poslala notifikaci, ze jsem dlouho nejel boltem, a ma pro me slevu na pristi jizdu.

    tohleto jsem nikdy nepochopil, proc se spousteji a na pozadi neco delaji aplikace, ktery ja povazuji za ciste interaktivni, nebo minimalne vyzadujici user interakci az po ktere mohou provadet aktivitu na pozadi.
    ARIAEL
    ARIAEL --- ---
    RAINBOF: Mel jsem ho kdysi kdyz jsem musel - moc me to nezaujalo i kdyz v te dobe to melo neco do sebe - kdyz to bylo novy. Ale ja mel mnohem vic do cineni s tim jejich zazrakem na Win server.... Memory leaky a podobny veci - o to se jejich tvurci zrovna moc nestarali...
    JOHNY_G
    JOHNY_G --- ---
    RAINBOF: Opruz hláška je na BlackBerry naprosto typická - dělá ji Power Center a dá se díky bohu vypnout v jeho nastavení. Je to naprosto dementní implementace, která zobrazí hlášku při 50 % využité paměti, což je absurdní hned z několika důvodů. Jednak je paměť od toho, aby se využívala, a volná RAMka ti absolutně k ničemu není (už kvůli níže zmíněnému aplikačnímu heapu), a jednak ji Android uvolňuje zcela automaticky, kdykoli jí potřebuje víc. Takže existuje pramálo důvodů vůbec vědět, kolik ji máš volné, natož na to uživatele upozorňovat.

    Proč to pomáhá? Tady bude nejspíš určitou roli hrát výrobce (když jsem se kdysi o BB zajímal, tak si power useři stěžovali na mizerný process management) a zejména stáří operačního systému. Na osmičce si můžou celkem nerušeně běžet stará vlákna, která si aktivita vytvořila, když byla ještě vidět, a tudiž může ukončení aktivity skutečně zastavit probíhající práci. Pak můžu ještě fabulovat o různých specifikách toho konkrétního telefonu (třeba chyba v implementaci životního cyklu, blbě implementované recent apps jako takové, kdy samotné množství aplikací může využívat nepřiměřené množství systémových prostředků, atp.), ale nezanedbatelnou roli bude hrát i placebo.
    RAINBOF
    RAINBOF --- ---
    ARIAEL: "programatorskym umem" ? to rozved. pouzivam BB tak dlouho ze si pamatuju jak byl "novy G1" smesny telefon a to co popisujes zni jako oblibena urban legend. Nebo snad BB mas ? Hadam ze jsi se mozna setkal s KeyOne kde to bylo desny (ale to jsem si nekoupil]
    ARIAEL
    ARIAEL --- ---
    RAINBOF: No za prve jde o Android 8 = coz je hodne stary. S kazdou generaci se nastineny principy zavadeli vic a vic...
    Za druhy jde o Blackberry - jsi si jisty ze to neni upravene?
    A za treti o jakou aplikaci se jedna? O App od Blackberry? tam bych se tomu fakt nedivil, jejich aplikace byli vzdy zname svym "programatorskym umem"...
    RAINBOF
    RAINBOF --- ---
    JOHNY_G: No dobre. hele mam android 8 (blackberry key2) a v posledni dobe pokud neudelam to co ty rikas ze je k nicemu visi mi tam opruz hlaska ze ma system malo pameti. Proc to pomaha ? system je skutecne vidtelne rychlejsi.
    Kliknutím sem můžete změnit nastavení reklam