Friday, November 18, 2011

J2ME ක්‍රමලේඛණය සඳහා ආරම්භයක්

පසුගිය ලිපියේ අපි J2ME සඳහා හැඳින්වීමක් සහ J2ME සමග වැඩකිරීමට සඳහා අවශ්‍යවන මෘදුකාංග පිලිබඳ සොයා බැලුවා. අපි මෙම ලිපියෙන් අදහස් කරන්නේ Java ME යොදාගෙන මෘදුකාංග සංවර්ධනය කිරීමේදී දැනගත යුතු මූලික සංකල්ප පිලිබඳවයි.

මුලින්ම අපි බලමු sun wireless toolkit එක යොදාගෙන J2ME ව්‍යාපෘතියක් ආරම්භ කරන ආකාරය. ඔබගේ පරිගණකයේ සාර්ථකව sun wireless toolkit එක ස්ථාපනය කර ඇත්නම් desktop හි Java(TM) ME Platform SDK නමින් shortcut එකක් තිබිය යුතුයි. එසේ නොමැතිනම් all programs හි Java(TM) ME Platform SDK යටතේ එය සොයාගත හැකියි.


  • අලුතෙන් ව්‍යාපෘතියක් පටන්ගන්නා අන්දම.
File->New Project යටතේ MIDP Application තෝරා ගන්න.

ඉන්පසු ලැබෙන වින්ඩෝ එකෙහි ව්‍යාපෘතිය සඳහා නමක් ලබාදෙන්න.

 Default Platform එක සඳහා පහත screenshot එකේ අන්දමට සැකසුම් ලබාදෙන්න.
 එවිට සැදෙන නව ව්‍යාපෘතිය සරල midlet එකක්  දැන් ඔබට දැකගත හැකිවනු ඇති. අපට අවශ්‍ය අන්දමින් ව්‍යාපෘතිය ඉදිරියට ගෙනයාම සඳහා එහි ස්වයංක්‍රීයව generate වී ඇති hello පැකේජය මකාදමන්න.





ඉන්පසු ඔබගේ ව්‍යාපෘතිය මත right click කර එහි properties හි ඇති delete කරන ලද midlet එකේ නම midlet suit list එකෙන් ඉවත් කරන්න.

දැන් ව්‍යාපෘතිය තුල සුදුසු නමකින් අලුත් midlet එකක් සාදාගන්න (new -> midlet ) එවිට පහත අන්දමේ කේත කොටසක් අලුත් midlet class එක තුල  ඔබට දැකගත හැකිවනු ඇති.
import javax.microedition.midlet.*;

/**
 * @author Kanishka
 */
public class MidletGUIDEmo extends MIDlet {
    public void startApp() {
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }
}
  • Midlet lifecycle
අපි මීට පෙර Applet , Thread යනාදියේ life cycle පිලිබඳ සාකච්ඡා කර තිබෙනවා. life cycle  එකක් නිරූපණය කරනුයේ state transition diagram එකකිනි. පහත දැක්වෙන Midlet lifecycle එකෙහි නිරූපණය වනුයේ Midlet එකක ප්‍රධානම state 4 නිරූපණය කරන state transition diagram එකකි. එනම් midlet lifecycle එකයි.
midlet එක install කර  ඇති ජංගම දුරකතනයට ඇමතුමක් ලැබීමේදී  midlet එක pause state එකට පැමිණීම සිදුවේ. midlet එකෙන් exit වූ පසු එය destroyed state එකට පැමිණේ. මෙම states පිලිබඳ වැඩිදුර අවබෝධයක් ඉදිරි අධ්‍යයනයන්හිදි ලබාගත හැකිය.

  • J2ME යොදාගෙන මෘදුකාංග ලිවීමේදී අනුගමනය කල යුතු රීති
  • සරල බව
application එක සරල විය යුතුය. උදා : සංකීර්ණ menus නොයෙදීම. කුඩා කාර්යයක් සිදුකිරීමටත් forms ගනනාවක් අතර යාමට ඉඩ නොතැබීම.  inheritance hierarchy එකෙහි height එක අඩු අගයක පවත්වාගැනීම, modules කිහිපයක්  ඇත්නම් ඒවා අතර low coupling එකක් පවත්වාගැනීම ආදියයි.

  • Memory භාවිතය අඩුවෙන් පවත්වාගැනීම
ජංගම දුරකතන යනු desktop හෝ laptop පරිගණක වැනි ඉහල ධාරිතාවයකින් යුතු RAM එකක් අන්තර්ගත කර ඇති devices නොවේ. ඇතැම් අවස්ථාවල එය මෙගාබයිට් කිහිපයක් විය හැකිය. කෙසේවෙතත් Midlet ධාවනය සඳහා KVM එකට ලැබෙන Memory ප්‍රමාණය එහි RAM එකේ ප්‍රමාණය මෙන් අර්ධයකටත් වඩා අඩුවිය හැකිය. එම නිසා අප විසින් ලියනු ලබන වැඩසටහනෙහි logic එක හා එය හා සම්බන්ද algorithm අඩු memory භාවිතයක් සඳහා සැලසුම් කල යුතුය.

  • Midlet එකෙහි විශාලත්වය කුඩා අගයක පවත්වාගැනීම
මෙයද ඉතාවැදගත්වේ. application එකෙහි ප්‍රමානය ඉතාවැඩිනම් එය භාගත කරගැනීමට වැඩි ඩේටා ප්‍රමානයක් වැයවීම සිදුවේ. එමෙන්ම ඇතැම් device හි Midlet එකෙහි ප්‍රමාණය සඳහා සීමා තිබේ උදා : samsung e900 දුරකථනයක midlet එකක් උපරිම 700KB ප්‍රමාණයක් විය යුතුය ඊට වැඩි midlet එහි ස්ථාපනය කල නොහැක.  

  • සරළ GUI(Graphical user interface) පවත්වාගැනීම
Desktop , laptop පරිගණක හිදී මෙන් නොව mobile device එකක screen resolution එක කුඩාය. අනෙකතට ඩෙස්ක්ටොප්, ලැප්ටොප් පරිගණකවල සංකීර්ණ ගැෆික් අතුරුමුහුණත් භාවිතා කිරීම සඳහා නිසිආකාර input ක්‍රමවේදයක් ඇත (උදා : mouse pointer, touch input)  නමුත් ජංගම දුරකතනයන්හිදී එය සීමා සහිතවේ. දැන් තිබෙන touch input සහිත device වලදී වුනද සංකීර්ණ GUI හැසිරවීමට බාධක තිබේ.

  • Network connection භාවිතය අවම කිරීම
දැන් දැන් ජංගම දුරකතන HSPA තාක්ෂණයන් ගෙන් සමන්විතව වෙළඳපොලට ඒමත් data සඳහා දැන් වැයවන මුදලත් ඉතා අඩු අගයක තිබීමත් නිසා යමෙකුට හිතෙන්න පුලුවන් මෙය එතරම් සැලකිල්ලකට ගතයුතු දෙයක් නොවන බව. නමුත් අමතක නොකල යුතු කාරණය නම් බහුතරයක් දුරකතන වේගවත් දත්ත හුවමාරු කිරීමේ තාක්ෂණයන්ගෙන් සමන්විත නොවන බවත් network connection හරහා දත්ත බහුලව හුවමාරු කිරීම දුරකතනයේ බැටරිය විසර්ජනය වීම(discharge)  වේගවත් කල හැකි සාධකයකි. එම නිසා network resources හැකිතාක් අඩුවෙන් භාවිතාවන අන්දමට application එක design කල යුතුය. (උදා : proxy design pattern එක යෙදීම )

  • විශාල processing power එකක් අවශ්‍ය මොඩියුල් server එකක ස්ථාපනය කර ඒවායේ සේවය ලබාගැනීම
ජංගම දුරකතනයක ඉතා විශාල processing power එකක් නොමැත. එමනිසා විශාල processing power එක් අවශ්‍ය තැන්හිදී එම මොඩියුලය සර්වර් එකක ස්ථාපනය කිරීම එක් විසඳුමකි. ඉන්පසු එම මොඩියුලයේ සේවාව ලබාගැනීමට web services, Java RMI (remote method invocation) වැනි ක්‍රමවේදයක් භාවිතා කල හැක.

  • හැකි සෑම විටම එක දුරකතනයක specification සඳහා සීමා නොවීම
අප විසින් සැලසුම් කරන වැඩසටහන specific screen resolution එකක් ඉලක්ක කරගෙන සිදුකිරීමෙන් ඇතැම් විට වෙනත් දුරකතන වලදී එම වැඩසටහනෙන් නිසි ප්‍රයෝජනයක් ගත නොහැකි විය හැකිය. එමෙන්ම එක් එක් vendor විසින් ලබාදෙන එම brand එකට ආවේනික API (application programming interface) භාවිතය අඩුකර cldc හා midp specification එකටම හැකි සෑම විටම අනුගත වීම කල හැක.

මේ අන්දමින් තවත් රීති කිහිපයක් ඇත ඒවා අපි ඉදිරි පාඩම්වලදී සුදුසු අවස්ථාවන්හිදී සාකච්ඡා කරමු. මෙම රීතින් ජංගම දුරකතන භාවිත යෙදුම් සැකසීම සඳහා වන අනෙකුත් තාක්ෂණයක්(උදා : Android, iOS) සඳහාද අනුගමනය කල හැකිය.

අපි ඊලඟ පාඩමෙන් J2ME තාක්ෂණය යොදාගෙන ජංගම දුරකතන සඳහා අතුරු මුහුණත් සැකසීම ගැන අධ්‍යයනය කරමු.

11 comments:

  1. පට්ට වැදගත් ලිපි පෙළක් දිගටම ලියන්න. අපි බලාගෙන ඉන්නවා.

    ReplyDelete
  2. digatama liyanna.. :)

    ReplyDelete
  3. Nice post.digatama liyanna.jaya wewa!!

    ReplyDelete
  4. වැදගත් ලිපියක්.කරුණාකරලා ඔබට පුළුවන් නම් Netbeans යොදාගෙන මෙය සිදුකරන ආකාරයත් පැහැදිලි කල හැකිනම් අගනෙයි.

    ReplyDelete
  5. GUI forms හදන්න cmd එකේ ලියන codes ගැන ටිකක් සරලව විස්තර කරල දෙන්න පුලුවන් වෙයිද?

    ReplyDelete
  6. @All
    ඔබ සැමගේ අදහස් වලට ස්තුතියි.

    @Anonymous November 19, 2011 8:52 AM
    මෙම පාඩමෙහිදී භාවිතා කර ඇත්තේ sun wireless toolkit එකයි. netbeans වලදීද මේ ආකාරයටම අපට codes ලියන්න පුලුවන්. ඊට අමතරව forms ඉතාම පහසුවෙන් graphically connect කිරීමටද පුලුවන්. මේ පාඩම් සඳහා netbeans තෝරානොගත්තේ form අතර සම්බන්දතාවය ගොඩනගන අන්දම ආදී මූලික දේවල් පිලිබධව පැහැදිලි අවබෝධයක් ලබාදීමට අවශ්‍ය නිසයි. wireless toolkit එකෙන් පුරුදු වූ පසු netbeans යොදාගෙන වැඩකිරීම ඉතා පහසුයි.

    @මලිති
    ඉදිරි පාඩම් වලදී GUI සැකසීම ගැන තිබෙනවා.

    ReplyDelete
  7. නියම වැඩක්. . . හරිම පැහැදිලියි.හරි සරලයි. ඔහොම යං ඔහොම යං. . . ජය වේවා!

    ReplyDelete
  8. godak vatinawa bn,
    godak pin

    ReplyDelete
  9. ela wadak keep it up machan

    ReplyDelete
  10. Keep up the good work. This is a great help for the beginners. Thanks!!

    ReplyDelete