Agora
Media
Libraria Byblos



AgoraNews  





PC Magazine Ro  




NET Report   




Ginfo   




agora ON line   





PC Concrete   





Liste de discuții   




Cartea de oaspeți   




Mesaje   





Agora   





Clic aici
PC Magazine





Soluții - PC Magazine Romania, Aprilie 2004

MIDP - programare pe înțelesul mobilelor

Mircea Scărlătescu

Ați avut ocazia să citiți în numerele trecute despre ce înseamnă programarea pentru telefoane mobile JavaEnabled. Desigur că cea mai bună metodă de învătare este experimentarea API-ului și a uneltelor de dezvoltare. Aici însă vă oferim o serie de sfaturi din punctul de vedere al ergonomiei și al eficienței programelor pe care le veți realiza.

Orice program (din orice domeniu, didactic, programare în timp real, grafică etc.) va fi întodeauna catalogat din punctul de vedere al vitezei de execuție. Deși, în cazul PC-urilor de azi, și mai ales în domeniul serverelor, viteza nu mai este o problemă atât de stringentă (puține programe utilizează serios un calculator în ziua de azi) pentru un device mobil, care folosește procesoare mult mai lente și cu resurse mult limitate, viteza de execuție redevine o problemă de actualitate.

Cum îmbunătățim viteza de execuție a unui program? Nu sunt puțini programatorii care sunt de acord că un program rulează de obicei 75% din perioada de viață într-o zonă de cod care este cam 10% din totalul programului. Așadar, aceste zone trebuie identificate, și e obligatoriu să găsim cei mai buni algoritmi pentru aceste zone de execuție. Având în vedere faptul că un program în ziua de azi poate să însemne în mare parte apeluri către biblioteci deja făcute de alții, modul de funcționare al acestor biblioteci trebuie atent studiat. Dacă un apel către o funcție de bibliotecă ce nu vă aparține durează prea mult până se execută, atunci poate e un semn să folosiți altă funcție, altă bibliotecă sau să vă scrieți chiar voi o bibliotecă, mai bună decât cea existentă. De asemenea, atunci când proiectați un soft pentru un telefon mobil, țineți cont de capacitățile și specificațiile acestuia. Viteza unui program pe două tipuri de telefoane diferite poate să varieze semnificativ. Totodată, încercați să fiți cât mai la curent cu schimbările realizate de producătorii telefonului în arhitectura lui, influența acestor schimbări putând fi semnificativă.

Interfața grafică a unui program este deosebit de importantă pentru performanțele unui soft pentru J2ME. Și la calculatoarele personale, grafica unui joc este cea care de cele mai multe ori vă va face să constatați că sistemul dumneavoastră este rămas în urmă. Același lucru este valabil pentru un telefon. Grafica unui program nu trebuie să fie prea încărcată, nu trebuie să conțină elemente care să nu aibă o funcționalitate directă (imagini fără rost, eventual și de dimensiuni mari J). Problema devine ceva mai complicată atunci când discutăm de MIDlet-uri care sunt jocuri. Atunci valoarea programatorului iese cel mai bine în evidență. Evitați operațiunile de "repaint" a ecranului când nu este cazul. Dacă se poate, redesenați doar porțiunea care de la un frame la altul se schimbă. Efectul viziual este același, în schimb procesorul este mai puțin utilizat, operația devenind mai rapidă.

Programamea multi-thread în cadrul unui program poate să aducă importante beneficii. Task-uri care se pot executa în paralel cu o operație de transmitere pe rețea via HTTP spre exemplu se pot implementa în thread-uri separate, și astfel crește mult eficiența programului. Thread-urile se pot aștepta unele pe altele dacă este nevoie, dar cert este că eficiența va crește simțitor, mai ales la programele care lucrează cu rețeaua de comunicație. De asemenea, în aceeași sferă a comunicației cu alte device-uri mobile, proiectați protocoalele de comunicație cât mai eficient, tinând seama că rețelele wireless de azi nu au viteza unei rețele Ethernet. Și este neplăcut dacă un program afișează un icon de gen "Loading" sau "Uploading" mult prea des în execuție. Desigur, aici modul de programare ține mult de experiență, și de studiul comportării unui cod pe un device real, sau pe un emulator de calitate.

Reducerea dimensiunii arhivelor JAR este deosebit de importantă pentru un utilizator. Traficul generat pentru încărcarea pe telefon printr-o rețea a unui JAR de cele mai multe ori se plătește, și nimeni nu vrea costuri mari pentru o factura, nu? :) Deci trebuie avut în vedere că o arhivă JAR va fi mai mare sau mai mică în funcție de dimensiunea fișierelor pe care le conține. Așadar, în programarea J2ME e de multe ori mai bine să nu încărcați biblioteci mari, din care folosiți metode prea puține.

Demodata metodă "Ctrl-C -> Ctrl-V" pentru metode și funcții se poate dovedi foarte eficientă, din acest punct de vedere.

V-am prezentat 4 puncte de reper pentru eficientizarea programării pentru device-uri mobile. Desigur, există și multe alte soluții, dar la acestea vom mai avea timp să ne referim.

Mult succes!


PC Magazine Ro | CD ROM | Redactia | Abonamente | CautareArhive

Copyright © 1999-2004 Agora Media.

[email protected]

LG - LifeŽs Good

www.agora.ro

deltafri

www.agora.ro

www.agora.ro

www.agora.ro