• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    LWEEKAndroid development
    Diskuse o vývoji aplikací pro platformu Android.
    -----------------
    Tipy, Triky, Postřehy, Začátečnický help, Nápady na nové aplikace.

    Oficiální developerská stránka: http://developer.android.com
    Něco málo v češtině na WiKi android fora: http://wiki.androidforum.cz/index.php/Programov%C3%A1n%C3%AD
    Článek na Zrojáku: http://zdrojak.root.cz/clanky/vyvoj-pro-android-ii/

    Docela zajímavé tutoriály přímo od vývojářů ze Sony Ericsson:

    na tvorbu vlastního View adapteru
    http://blogs.sonyericsson.com/developerworld/2010/05/20/android-tutorial-making-your-own-3d-list-part-1/

    zajímavý nápad na zoomování jedním prstem - aneb vytváření gest
    http://blogs.sonyericsson.com/developerworld/2010/05/18/android-one-finger-zoom-tutorial-part-1/
    rozbalit záhlaví
    FONTAN
    FONTAN --- ---
    ADAMH: ha! diky; jsem debil

    (to jsem mohl/musel byt ja - mam tam job, ktery , kdyz uz je to stazene, overuje existenci nove verze na netu, ale prvni "cistou" instalaci delam vzdy jako manual download pres... ... ... chrome)

    ===

    coz me privadi na jeste jinej dotaz: neznate nejaky doporucenihodny "framework" na planovani zavislych jobu/asynctasku?

    jedou mi tam - zatim - asi 3 male background tasky, ktere se musi spoustet ve spravnem poradi, pricemz jeden z tech tasku se spousti v nekolika iteracich (a cele to, na zivem prostredi, zabira radove tyden - ve vyvoji si ty tasky poustim v horizontu sekund/minut/hodin.)

    konkretneji:

    1) job, co se nemusi povest a muze se pokracovat dal je overeni nove verze programu
    2) job, co stahuje z netu dalsi sadu tasku, pricemz overuje, zda tuhle sadu uz nezpracovaval - bud takovou sadu najde a pokracuje se dal, nebo se rescheduluje (na zivem o 24 hodin), pricemz reschedule tohoto jobu rovnou pousti i check na novou verzi [ergo zacina se znova od 1]
    3) na zaklade nove sady ukolu se zacnou schedulovat ty tasky (paramtery mam [ukol, pocet opakovani a delay mezi jednotlivymi opakovanimi]) a kdyz vsechny tyhle subtasky skonci, tak chci znova na [1, 2]

    ted to delam tak, ze mam jednu zastresujici JobService, ktera provozuje specificke AsyncTasky (s execute().get()) a tuhle JobService ovladam (schedule/cancel) pres aktivitu pomoci Broadcastu

    a zaroven u toho premyslim, ze bych si to napsal cisteji, avsak nechci vynalezat kolo - a me android dev google fu mi furt dava jen veci, co me nezajimaji...
    ADAMH
    ADAMH --- ---
    FONTAN: Co treba google chrome s nejakou zapnutou ochranou? Nestahl si to nekdo pres nej ci neco podobneho?
    FONTAN
    FONTAN --- ---
    Nevite, jakym zpusobem se muze stat, ze mi aplikaci, vyvijenou zcela pro interni pouziti a zcela mimo Google play, "stahnul" Google (66.249.80.19 https://developers.google.com/+/web/snippet/ )?

    Asi by me uplne neprekvapilo, kdyby nejake informace o danem apk souboru "leakovalo" Android Studio, ale on to tuknul/stahnul z netove lokace, kde si delam prostredi na moznost (polo)automatickeho updatu te aplikace u nasich uzivatelu (interni zamestnanci s velmi omezenyma IT schopnostma ). Tahle lokace je sice verejne dostupna, ale na ne uplne trivialni adrese, takze se mi zda, jakoby informace o ni prisla ke google z meho telefonu, kde to (mimo jine) testuji.
    REDGUY
    REDGUY --- ---
    H_U_N_T_E_R: Kdyz udelas primo ten select, bez OrmLite, taky je to pomaly?
    H_U_N_T_E_R
    H_U_N_T_E_R --- ---
    REDTIME: nemám, ale do té malé dělám select all (přes OrmLite, takže ve skutečnosti dbContext.QueryAll). I kdyby tam ale byl nějaký where, tak přece full scan do tabulky o 50ti řádcích by neměl zabrat 8s
    REDTIME
    REDTIME --- ---
    H_U_N_T_E_R: je i není,... ale pro začátek indexy máš?
    H_U_N_T_E_R
    H_U_N_T_E_R --- ---
    Ahoj,
    řeším výkonnostní issue s SQLite (+ nad tím mám ormLite). Databáze má 2 tabulky. Jedna je větší (30k záznamů, 25MB), druhá tabulka má jen 50 záznamů o 10ti sloupcích, všechny max nvarchar(20).
    Select do té malé tabulky mi ale na relativně výkonném zařízení trvá 8s.
    To je normální? Existuje jiné řešení, než si to splitnout do dvou databází?
    JVCNC
    JVCNC --- ---
    JOHNY_G: no prave bych se chtel vyhnout nutnosti urciteho poradi, kdyz tam udelam spozdene pripojeni pinu pro prepnuti do host rezimu tak na tom poradi zaviset nebude, ale asi to zkusim jeste s nejakym tim kabelem co jsi poslal
    JOHNY_G
    JOHNY_G --- ---
    JVCNC: Co na tom chceš bastlit? Nejdřív připoj jen nabíječku, to ti bude kterýkoli z těch dvou kabelů normálně nabíjet ať už máš podporu nebo ne, a až pak do toho Áčka něco strč :-). Ten Axagon ti samozřejmě fungovat nebude, musí to být něco z toho ranku co jsem ti posílal já.
    JVCNC
    JVCNC --- ---
    JOHNY_G: diky za info, asi zkusim napred ten bastl se spozdenym prepnutim na rezim host, to snad bude fungovat na vice zarizenich a bude to mene zavisle na konkretnim modelu
    JOHNY_G
    JOHNY_G --- ---
    JVCNC: Potřebuješ něco na tento způsob (obojí mám vyzkoušené):
    ROLINE USB 2.0 propojovací OTG, 1m, černý - Datový kabel | Alza.cz
    https://www.alza.cz/roline-usb-2-0-propojovaci-otg-1m-cerny-d3913387.htm
    PremiumCord USB A/ female + Micro USB/ female - Redukce | Alza.cz
    https://www.alza.cz/premiumcord-usb-a-female-micro-usb-female-d3783672.htm

    Ale je tam velké pozor, nefunguje to se všemi telefony. Záleží na chipsetu, na konkrétním zapojení, a dokonce i na Kernelu (tedy u některých modelů řešitelné custom ROM). Do jednoho projektu jsem to potřeboval na tablet a podařilo se mi to jenom s nVidia Shield K1, jinak se všechny odmítly nabíjet, jakmile jsem něco píchnul do hostu. Ale třeba Nexus 5 to taky podporoval. Jiné telefony jsem nezkoušel.
    JVCNC
    JVCNC --- ---
    H_U_N_T_E_R: tohle primo ne, zkousel jsem tohle https://www.alza.cz/...200a22d_9062873&gclid=EAIaIQobChMIhr3unoDt3QIVyLWWCh2rfwu6EAQYBCABEgInBPD_BwE a ta funkce nabijeni a napajeni funguje jen pro pripojena zarizeni a nikoliv pro host zarizeni. To co jsi postnul bude nejspise funkcne to same, tedz OTG s moynosti externiho napajeni pro pripojena zarizeni ale bez napajeni hostu. ja prave potrebuju pripojovat k tabletu pres OTG kabel dalsi zarizeni ale jak je tablet host, tak napajeni poskztuje a neprijma, mikroSUB v tabletech je 5 pinove a ten 5. pin prepina jestli se bude tablet chovat jako zarizeni (a napeti na portu prijmat a nabijet se) nebo host (a napeti na portu poskytovat k napajeni pripojenych zarizeni) a ja potrebuju mix mezi tim, aby tablet fungoval jako host a zaroven abych ho z usb nabijel.
    JVCNC
    JVCNC --- ---
    Ahoj, resim s androidem takovou vec, lze donutit android aby fungoval jako USB host a zaroven se nabijel/byl na externim zdroji a ne na baterce? Potrebuju k nemu mit pripojenz USB-232 prevodnik dlouhodobe kterz muyu napaje todjinud, jak ale do USB na tabletu/telefonu strcim OTG kabel tak se prepne do host rezimu a do kabelu zacne 5V poustet ven, zatimco ja potrebuju je pustit dovnitr. Co sem googlil tak zadne hotove HW reseni neexistuje, jen jsem se docetl ze po tom co se zacne nabijet a az pak se prekne do host rezimu ze uz se nabijet zustane, to by asi slo resit pomoci HW, tedy vlastnim kabelem ktery host rezim zapne se zpozdenim, SW reseni jsem nenasel zminku nikde, to by mi prislo elegantnejsi. Resil jste nekdo neco podobneho?
    DACAN
    DACAN --- ---
    CHLEBEK
    CHLEBEK --- ---
    Lidi zdravím a mám na vás prosbu, jedná se mi o to že bych se potřeboval zeptat nějakého kvalifikovaného člověka než to tady zatapetuji zda by bylo možné v téhle hře
    https://play.google.com/store/apps/details?id=com.stararcade.reversi.opengl.free

    tedy z ní nějakým způsobem vyjmout úvodní splash screen logo

    Jak by se to teoreticky dělalo, nějakou dekompilací, rekompilací?

    Kde se mám eventuálně zeptat?
    ADAMH
    ADAMH --- ---
    Pokud by nekdo chtel zkusit a ma pokud mozno Android 9 tak zde

    https://play.google.com/store/apps/details?id=cz.webprovider.wifianalyzer

    Staci me dat vedet zda to udela vice jak 5 skenu ve dvou minutach. Aspon to tu trosku ozije.
    ADAMH
    ADAMH --- ---
    Ja ted v zasade jen potrebuju overit funkcnost aktualni verze na Android 9. Nic vic nic min :)
    ADAMH
    ADAMH --- ---
    MIKULAS: Protoze nejak neresim databazi moznych testeru, tj abych mel na ne emaily. Beta testing tam mam, ale to jen ze nahraju novou verzi apk a cekam zda nejsou negativni ohlasy ci pady v google play consoli. Navic ta app uz docela umira, pred lety jsem ukvapene upgradoval na v te dobe aktualni SDK a to me tu aplikaci znicilo (ve strucnosti, ma app zacla vyzadovat pristup k poloze, ostatni nemuseli)
    DRIZDIK
    DRIZDIK --- ---
    ADAMH: Neděláš nějak staged rollout a případně nabírat část uživatelů na beta channel?
    MIKULAS
    MIKULAS --- ---
    ADAMH: můžu se zeptat, proč u projektu s 1M downloads sháníš testery po fórech?
    ADAMH
    ADAMH --- ---
    Byl by tu jeste nejaky dalsi odvazlivec na otestovani aplikace na Android 9. Aplikace na google play, 1M+ stažení, veřejnou verzi.
    ADAMH
    ADAMH --- ---
    tak koukam, že konkurence řeší https://github.com/VREMSoftwareDevelopment/WiFiAnalyzer/issues/202

    "Android OS 9 introduces a restriction that allows each foreground application to scan Wi-Fi a maximum of 4 times per 2 minute period. "

    To se na ten svuj wifi analyzer a wifi heat map můžu z vysoka vykašlat. Pokud to omezení bude platit ve finále.
    JOHNY_G
    JOHNY_G --- ---
    ADAMH: Ano, sdílení souborů ze sandboxu je hodně tricky a blbě zdokumentované, ale vývojáře to neomlouvá. U foreground service nemá na výběr :-(.
    ADAMH
    ADAMH --- ---
    No ty jejich priklady byly taky matouci, at uz pro ten forground service kde to mixovali se vsim moznym. Je pravda ze brzo tam bude mit clovek v nofitikaci 10 foreground servisu a bude zmaten jeste vice :)

    Nebo i treba intent na ziskani fotky z fotaku ci fotky z uloziste. Nedivim se ze tolik aplikaci vyzaduje prava pristupu k ulozisti i presto ze potrebuji jen jednu vec co by si pres intent clovek naklikal. Stejne tak i export souboru z aplikace a sdileni pres sharer casto vyzaduje pristup k ulozisti i presto ze to jde pres fileprovider, ale ty jejich priklady na developer.android.com jsou casto tak matouci ze se tomu nedivim.

    Ja pouzivam oboje a obcas to nekomu nefunguje, ale vyzadovat pravo k fotaku a ulozisti je me proti srsti.
    JOHNY_G
    JOHNY_G --- ---
    No já zrovna z provedení té foreground service úplně na větvi nejsem. Myšlenka jistě šlechetná, ale v praxi to kulhá na obě nohy. A nejvíc ze všeho mě sere, jak má Google plnou hubu keců, jak ti na všechno stačí JobScheduler a jeho pochybní sourozenci, že Services máš používat jenom nárazově a dočasně, ideálně je nepoužívat vůbec, protože je stejně můžou kdykoli zrušit, atp. No, ale pak zjistí, že se bez toho nedá obsluhovat BLE, takže třeba Wear OS si řekne hned po prvním spuštění o všechny ty výjimky, které se zásadně nemají používat (a whitelist jejich využití je napsaný na míru Wear OS), a ve finále si jede živou background service bez notifikace, kterou nikdo neuspí a nezabije, a je to vlastně úplně OK, protože nikdo jiný tohle nepotřebuje. Jedině Wear OS, protože mistři světa z Googlu jsou na rozdíl od všech ostatních na baterku šetrní. No a pak máš v době chytré elektroniky plnou lištu debilních ikonek, aby mohly vůbec fungovat (se spotřebou hluboko pod 1 %), zatímco ti Wear drainuje baterku ve snaze najít hodinky (tohle už je opravené, ale dělo se to). Já je fakt rok od roku nesnáším o něco víc.
    ADAMH
    ADAMH --- ---
    Na druhou stranu zavedeni runtime permission modelu a foreground service bylo dobre rozhodnuti. Nicmene opet, pokud si ted u aplikace, ktera uz je na runtime permission podivam v google play na opravneni aplikace. Vidim tam vse, stejne jako u starych aplikaci a pak to vypada ze ta nova vyzaduje vzdy vsechna opravneni jako vyzadovali ty stare i presto ze to je casto jen volitelna volba bez nutnosti, coz nebudi duveru.
    DATEL
    DATEL --- ---
    ADAMH: právě že ho tam nejspíš nedají, místo toho to prý zablokují úplně, nepůjde nahrávat vůbec (bez rootu). Ale uvidíme, až to přijde na nějaký telefon. Ikdyž v emulátoru už by to asi zkusit šlo.
    ADAMH
    ADAMH --- ---
    Jo o tom pipani jsem slysel ze tam daj. Popravde to nechapu, jsou proti sobe. Ostatni vyrobci at uz bezne telefony ci jakekoli ustredny zcela jiste nepipaji kdyz nahravaji.
    DATEL
    DATEL --- ---
    ADAMH: tak se těš na devítku, podle posledních informací z webu to vypadá, že místo původního pípání každou minutu při nahrávání hovoru z tvé strany to zatrhli úplně, bez rootu to nepůjde.
    ADAMH
    ADAMH --- ---
    Tak ja čekám s každou další verzí Androida nějakej další podraz od Googlu. To co provedli ve verzi Android 6, kdy všechny aplikace pracující se scanovaním wifi (má aplikace to má jako hlavní účel) musí vyžadovat přístup k poloze byl pěknej podraz. Sám si tím google zlepšuje svoji wifi / gps databází a bylo na vývojářích aby tuto nutnost "vysvětlili" uživatelům.

    Samozřejme jednohvězdičková hodnocení jsou zcela normální, to že jsem tenkrat upgradnul na vyšší SDK byla moje chyba a důvera v google :) Až ted pod nátlakem s Google Play přechází i ostatní a ta smršt jedničkovych hodnocení je značná.

    https://www.appbrain.com/app/wifi-analyzer-pro/com.farproc.wifi.analyzer " Google Play Rating history and histogram "
    (konkurence, ne moje)

    Takže jsem opravdu zvědav čím do zas pokazí.
    Kliknutím sem můžete změnit nastavení reklam