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.

webmaster@pcmagazine.ro

LG - Life´s Good

www.agora.ro

deltafri

www.agora.ro

www.agora.ro

www.agora.ro