• ú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í
    ZACK
    ZACK --- ---
    DRIZDIK: Co to projit jednou, kazdymu pixelu priradit int hodnotu a rozhazet podle barvy do int map? Pak si uz jen sahnes pro spravnou mapu, nic pixel po pixelu nezkoumas.
    FALCO
    FALCO --- ---
    DRIZDIK: bytmapa...
    DRIZDIK
    DRIZDIK --- ---
    Ahoj, snazim se maskovat obrazku, mam barevnou klikmapu a obrazek, ze ktereho potrebuji zobrazit jen oblast, ktera odpovida barve v te klikmape na kterou jsem tapnul. Oboji bitmapa. Napada nekoho rychlej způsob jak to vymaskovat? Zkousel jsem AvoidXfermode, ale ten na nekterych verzich androida nezafungoval, zkousel jsem vselijake kombinace porter duff, ale nebyl jsem schopen dosahnout vysledku. ColorFilterMatrix nevim jestli jde donutit odstranit nebo nalezt jednu barvu a tak jsem ztracenej.
    Momentalne to delam prochazenim bytmapy po jednom pixelu ale to je strasne pomaly.
    RUTHAN
    RUTHAN --- ---
    Ahoj,
    tak zkusim jeste jeden, doporucite mi nejakou utilitu, ktera dovoli namapovat na touch buttony ve hrach, ty fyzicky - fyzickou klavesnici nebo Xbox/PS3 ovladac?

    Proste idealne neco ala jsou mapovaci softy u Nvidia shieldu nebo Archos Mapping tool etc.. zkousel jsem Tincore a GameKeyboard a neuspel jsem, ikdyz mam zarizeni rootnuty a cely mi to prislo oproti toolu zminenym vyse zbytecne komplikovany a nedotazeny.
    DRIZDIK
    DRIZDIK --- ---
    Pracuje tu někdo s Expansion filama? Mám problém při mountování OBB souboru a nevím jestli to vzdát a použít zip, nebo dělám něco špatně. Nikdy mi to nezavolá listener po přimountování, ale vidím, že mount se zdařil.
    MAKROUSEK
    MAKROUSEK --- ---
    FAERTIS: Ja nezavisle na tom jsem zkousel opublikovat na tom jejich marketu. A) neumi placene aplikace, jenom in-app purchases. B) po registraci jejich system zapomnel muj email, takze jsem si tri dni dopisoval s jejich supportem, nez mi uzivatele recreatovali a propojili s publikovanim me appky. Suma sumarum jsem pak okamzite unpublishnul a nazdar.
    FAERTIS
    FAERTIS --- ---
    NECROMAN: Celkem to šlo, zajímavý bylo když vysvětloval proč se rozhodli pro vlastní market (80% lidí v rozvojových zemí kam cílí, nemá kreditní karty a oni mají smlouvy s operátory a bude se to kupovat přes ně). Nějaký příklady jak co naportovat hned a co půjde naportovat časem. Taky se tam daly vyzkoušet aplikace na reálných zařízeních a kdo měl problémy s portací, tak se mohl zeptat na detaily. Telefon nebyl, nabíječka nebyla, tričko ani hrnek ... akorát gumová kačenka, která nic nedělá :)
    NECROMAN
    NECROMAN --- ---
    Byl jste dneska nekdo na tom NokiaX day? Jake z toho mate pocity? :)
    DRIZDIK
    DRIZDIK --- ---
    DATEL: Přesně z toho důvodu jsem zvolil ActiveAndroid .. nadefinuješ entity, přidáš předka aplikaci, meta tag do manifestu a databaze funguje, zadnej dalsi zbytecnej kod
    DATEL
    DATEL --- ---
    ROTTWEILER: před pár dny jsem taky řešil, jak co nejrychleji zprovoznit DB. Kvůli nedostatku času na zkoumání jiných knihoven jsem zkončil u toho, že jsem vytvořil třídy pro entity, pak pro každou entitu / tabulku třídu "data source", která pracuje s DB, vytváří entity, konvertuje data atd. Pak tam kde potřebuju dostat něco z DB (aktivita, fragment, ...) vytvořím pro každou "akci" třídu z AsyncTask, kde se na pozadí pracuje s data sourcem a v metodě pro main vlákno se to pak cpe do UI (případně adaptérů atd.). Není to moc elegantní, ale bylo to rychlé. Mít víc času, tak prozkoumám taky nějaké hotové knihovny.
    RUTHAN
    RUTHAN --- ---
    Ahoj,
    snazim se nainstalovat Androidx86 4.4 na svuj netbook a potreboval bych poradit, jak spravne nastavit grub. Jde o to, ze mi ted Android porad bootuje jako live distribuce a pokud udelam zmeny, tak se po restartu ztrati, protoze se mi asi nepovedlo spravne rootnout partici.

    Muj postup byl nasledujici:
    - stahnul jsem si x86 iso
    - jsem pomoci unetbootinu hodil na USB flashku
    - partici na z USB flashky jsem zkopiroval pomoci EasyUS partition manageru na pevnej disk
    - do jiz existujiciho linuxovyho Grub2 zavadece jsem pridal zaznam(viz nize), kterej by mel Android zavest
    - android se dokonce i zavede, ale jak jsem psal jen jako live, po restartu zase vsechno jeden znova

    Grub entry:

    menuentry "Android x86 by RuThaN" {
    insmod ext2
    set root='(hd0,6)'
    linux /kernel quiet SDCARD=/dev/sda6 root=UUID=3A6B-EC34 androidboot.hardware=android_x86 acpi_sleep=s3_bios,s3_mode video=-16 quiet splash
    initrd /initrd.img
    }

    To co je v tom grubu jsem splacal z toho, oc jsem hned nasel na netu, ten parametr SDCARD ocividce nefunguje. Nejak jsem si naivne rikal, ze tohle bude fungovat out of box.. a moc nechapu, proc to porad bootuje jako live, jestli to neni vlastnost, uz ten live distribuce, coz doufam, ze ne.

    ROTTWEILER
    ROTTWEILER --- ---
    DRIZDIK: Tak to je jasné, je to IO operace, ale spíš jde o to, že většina ORM používá reflexi, která se volá v době, kdy to ještě v jiném vlákně neběží.
    DRIZDIK
    DRIZDIK --- ---
    Veskera prce s DB je pomala a mela by se delat na jinem vlakne. Ja doporucuju ActiveAndroid, ktery pouzivam.
    ROTTWEILER
    ROTTWEILER --- ---
    Jakou knihovnu byste doporučili na práci s databází? Nějaké ORM? Nebo používat raději, co nabízí sám Android, protože knihovny jsou moc pomalý?

    Zatím jsem koukal na

    GreenDAO
    ActiveAndroid
    Sprinkles
    SQLiteProvider
    Cupboard
    OrmLite
    Sugar
    DRIZDIK
    DRIZDIK --- ---
    DATEL: To jsem nejdříve dělal pomocí Observable přímo z java.util, nyní to řeším pomocí RoboGuice a jejich EventBusu, kterej je velice jednoduchej, jen s fragmentama ještě lehce zabugovanej, ale pořád lepší než bez toho. Jen ze všech eventů odkládat práci pomocí post(Runnable), abys neblokoval delegaci eventu do ostatní observerů.
    DATEL
    DATEL --- ---
    DRIZDIK: díky za tip, někdy na to kouknu.

    Zatím jsem to vyřešil jednoduše (celkově zatím ne úplně ideálně) - třídy pro entity, pak třídy pro DataSource (abstraktní + pro konkrétní tabulky) a v aktivitách / fragmentech mám pro jednotlivé požadavky na DB AsyncTask třídy, které tahají data a pak je ládujou do GUI. Zbývá vyřešit nějaké automatické upozorňování na změny (tj. Observer), ale pro počáteční vývoj to zatím stačí tak jak to je.
    DRIZDIK
    DRIZDIK --- ---
    DATEL: Používám ActiveAndroid, dotazy pouštím pomocí generickýho asynctasku, který dostane jako paramaetr dotaz a co má vrátit a jen implementuju co s tím na konci udělat.
    ROTTWEILER
    ROTTWEILER --- ---
    NECROMAN: Tak ten bus už je na cestě a byl v některých městech, ale nepodařilo se mi najít referenci, ale zkoušel jsem hledat v angličtině, možná kdybych hledal ve francouzštině nebo italštině, tak zmínku najdu.
    NECROMAN
    NECROMAN --- ---
    ROTTWEILER: na Mobile World Congresu rozdavali mobily jak na bezicim pasu kazdemu, kdo tam na svem notebooku ukazal obrazovku z Nokia Storu s odeslanou aplikaci, ani jsi ji poustet nemusel :)
    Nevim, jak moc to bude i u toho portovaciho busu, ale mozne to je, pokud je zaujmes :)
    DATEL
    DATEL --- ---
    Měl bych dotaz k tomu, jakým způsobem implementujete práci s SQLite DB. Prošel jsem kupu článků a diskuzí na netu a nějak nevím, jaký způsob použít.

    1. je jasné, že práce s DB musí běžet v samostatném vlákně
    2. jasná je základní třída z SQLiteOpenHelper, dále asi třídy pro jednotlivé entity
    3. přijde mi zbytečné používat CursorLoader a ContentProvider, když nechci poskytovat svá data ven z aplikace (naopak, je to nežádoucí)
    4. narazil jsem na CWAC-loaderex knihovnu, která právě řeší Loader bez ContentProvideru - jenže autor tuto cestu opustil s tím, že knihovnu dál vyvíjet nebude (Why are Loaders bad in Android)
    5. z výše uvedených bodů tak nějak vyplývá, že by asi bylo nejlepší vytvořit vlastní třídu z AsyncTask - jenže taky už nějak nevím, jak přesně bych to udělal, i podle toho, na co jsem narazil na netu, by to asi muselo být tak, že pro každou metodu, která získává nebo ukládá data, by musela být vlastní AsyncTask třída, což mi přijde dost divoké.

    Rád bych se tedy zeptal, jaký zpúsob v dnešní době používáte vy? Nejde mi o konkrétní kód, spíš jen o princip. Díky.
    ROTTWEILER
    ROTTWEILER --- ---
    NECROMAN: Tím mobilem jsi si jistý?
    MAKROUSEK
    MAKROUSEK --- ---
    NECROMAN: Nejenom, taky tam maj ty telefonky, zkus klikat vic.
    Kliknutím sem můžete změnit nastavení reklam