13
ХИЧЭЭЛИЙН ТОДОРХОЙЛОЛТ А. Нүүр хуудас Хичээлийн нэр: Утасгүй хөдөлгөөнт програм хангамж Хичээлийн код: SE310 Хичээлийн жил: 2009-2010 намар Өмнөх холбоо: Хамтрах холбоо: Хичээлийг үзэх мэргэжлийн чиглэл: Компьютерийн ухаан Хичээлийн ангилал: Хичээлийн кредит, 7 хоногийн цаг: 3кр, 2:0:2:5 (лекц:семинар:лаборатори:бие даалт) Хичээлийн веб хуудас: http://www.csms.edu.mn/bauirbek Хичээл заах багш: Овог нэр: Салдатханы Бауырбек Цол, зэрэг: Багш Ажлын өрөө, ажиллах цаг: Өрөө 202 Да, Ба, 12.00-21.30, Лх, Пү: 16.00-21.30 Хаяг, утас: [email protected], 99145367 Хувийн веб хуудас: Туслах багш: Овог нэр: Цол, зэрэг: Ажлын өрөө, ажиллах цаг: Хаяг, утас: Хичээлийн товч тодорхойлолт: Java програмчлалын суурь мэдлэгтэй оюутнуудад j2me буюу гар утасны програмчлал, wap буюу гар утасны веб програмчлалын мэдлэгийг олгоно. Хичээлээр хэрхэн яаж MIDP2.0, CLDC, MIDLET, JAD, SPRITE, COLLISION, ANNIMATION ны тухай мөн хэрхэн гарны утасны event үүдийг бариж авах мэдлэгтэй танилцах болно. Сурах бичиг: 1. Wireless J2ME Platform Programming - The Suns MicroSystems, Inc., ISBN-0-13-044914-8, 2004 Хичээлийн зорилго, гарах үр дүн: Хичээлийн зорилго нь утасгүй хөдөлгөөнт програмчлалын талаар, j2me г түүнийг ашиглан хэрхэн програм бичихэд орших болно. Нэмэлт материал: 1. J2ME_Game_Development_with_MIDP2, by Jason Lam, Мэдлэгийн үнэлгээ: Оноо Ирц & идэвхи: 5 оноо Явцын сорил: 8-р долоо хоног: ………………… 10 оноо 15-р долоо хоног:...…………....... 10 оноо Бие даалт :............. 24 оноо Лаборатор:……………………………21 оноо Нийт: …………………………… 70 оноо

14. SE310 - Mobile Programming

  • Upload
    -

  • View
    485

  • Download
    1

Embed Size (px)

Citation preview

Page 1: 14. SE310 - Mobile Programming

ХИЧЭЭЛИЙН ТОДОРХОЙЛОЛТ

А. Нүүр хуудас

Хичээлийн нэр: Утасгүй хөдөлгөөнт програм хангамж

Хичээлийн код: SE310 Хичээлийн жил: 2009-2010 намар

Өмнөх холбоо: Хамтрах холбоо:

Хичээлийг үзэх мэргэжлийн чиглэл: Компьютерийн ухаан

Хичээлийн ангилал:

Хичээлийн кредит, 7 хоногийн цаг: 3кр, 2:0:2:5 (лекц:семинар:лаборатори:бие даалт)

Хичээлийн веб хуудас: http://www.csms.edu.mn/bauirbek

Хичээл заах багш: Овог нэр: Салдатханы Бауырбек

Цол, зэрэг: Багш

Ажлын өрөө, ажиллах цаг:

Өрөө 202 Да, Ба, 12.00-21.30, Лх, Пү: 16.00-21.30

Хаяг, утас: [email protected], 99145367

Хувийн веб хуудас:

Туслах багш: Овог нэр:

Цол, зэрэг: Ажлын өрөө, ажиллах цаг:

Хаяг, утас: Хичээлийн товч тодорхойлолт:

Java програмчлалын суурь мэдлэгтэй оюутнуудад j2me буюу гар утасны програмчлал, wap буюу гар утасны веб програмчлалын мэдлэгийг олгоно. Хичээлээр хэрхэн яаж MIDP2.0, CLDC, MIDLET, JAD, SPRITE, COLLISION, ANNIMATION ны тухай мөн хэрхэн гарны утасны event – үүдийг бариж авах мэдлэгтэй танилцах болно.

Сурах бичиг: 1. Wireless J2ME Platform Programming - The Suns MicroSystems, Inc., ISBN-0-13-044914-8, 2004

Хичээлийн зорилго, гарах үр дүн:

Хичээлийн зорилго нь утасгүй хөдөлгөөнт програмчлалын талаар, j2me – г түүнийг ашиглан хэрхэн програм бичихэд орших болно.

Нэмэлт материал: 1. J2ME_Game_Development_with_MIDP2, by Jason Lam,

Мэдлэгийн үнэлгээ: Оноо Ирц & идэвхи: 5 оноо Явцын сорил:

8-р долоо хоног: ………………… 10 оноо 15-р долоо хоног:...…………....... 10 оноо

Бие даалт :............. 24 оноо Лаборатор:……………………………21 оноо

Нийт: …………………………… 70 оноо

Page 2: 14. SE310 - Mobile Programming

Лекц 1 Sun корпорац нь технологи хөгжихийн хэрээр үүсэн буй асуудлуудыг шийдвэрлэх онцлогтой нь холбогдуулан Java платформыг гурав хуваан тусд нь хөгжүүлж эхэлсэн:

J2EE : Java 2 Platform Enterprice Edition.

Сервэр компьютеруудад тавигдах томоохон системүүдийг бичихэд хэрэглэнэ.

J2SE : Java 2 Platform Standart Edition.

Персональ компьютеруудад ашиглагдах системүүдийг бичихэд хэрэглэгдэнэ.

J2ME : Java 2 Platform Micro Edition.

Жижиг төхөөрөмжүүдийг програмчлахад хэрэглэгдэнэ.

J2SE : Java 2 Platform Standart Edition.

Персональ компьютеруудад ашиглагдах системүүдийг бичихэд хэрэглэгдэнэ.

Нэгэнт Motorola, Nokia, NTT DoCoMo, Palm Computing, RIM, Siemens болон бусад корпорациуд KVM –г сонирхож эхэлсэн тул Java – ийн стандартчлалыг бий болгох шаардлагатай болсон.

Java хөрвүүлэгчид:

Java 2 Second Edition : For desktop application

Java 2 Enterprice Edition : For server application

Java 2 Micro Edition : For small devices such as cell phone, PDА…

Онцлог

Хэмжээгээр илүү бага

Санах ой болон процессорын бага хүч шаардана

Цөөн тооны класс агуулсан

Төхөөрөмжүүд ч хоорондоо санах ой, боломжоороо эрс ялгаатай тул J2ME нь улам задран хувилбаруудад хуваагдсан

Connected Device Configuration (CDC) : Илүү их хэмжээний санах ойтой төхөөрөмжүүдэд зориулагдсан хувилбар. Жишээ PDА.

Connected Limited Device Configuration (CLDC) : Бага санах ой, жижиг дэлгэцтэй төхөөрөмжүүдэд зориулагдсан хувилбар. Жишээ гар утас.

CLDC 1.0 , CLDC 1.1 хувилбарууд гарсан.

Mobile Information Device Profile (MIDP) :

Гар утаснуудад зориулагдсан пакэжуудийг агуулдаг.

MIDP 2.0 requirements:

Дор хаяж 96х54 хэмжээтэй дэлгэц

256 kb тогтмол санах ой (for MIDP implementation)

Ажиллаж буй програмын өгөгдлийг хадгалах 8 kb тогтмол санах ой

Java виртуаль санах ойд зориулан 128 kb санах ой

Сүлжээнд өгөгдөл дамжуулах боломж

Дуу тоглуулах боломж

Лекц 2 Тоглоомын төрлүүд:

Page 3: 14. SE310 - Mobile Programming

Ихэнх тоглоомууд дараах төрлүүдийн аль нэгэнд багтана:

Arcade / Action: Хурдан хөдөлдөг, өндөр хэмжээний график, тоглогч тоглоомын харилцаа өндөр. Жишээ : Quake, Counter Strike

Puzzle: Тетрис мэтийн логик шаардах тоглоомууд

Card: Карт ашиглах тоглоомууд. Жишээ нь хөзөр.

Strategy: Сэтгэлгээ их шаардана, менежмент хийх, тактик гаргах. Жишээ : Command and Conquer, World of Warcraft

RPG: Ямар нэг дүрд тоглох, цаг хугацааны туршид хөгжих.

Sport: Спортыг дууриалгасан тоглоом

Гар утасны тоглоомын ирээдүй:

Гар утасны тоглоомын програмчлалын давуу талууд :

Зардал бага

1-5 хүний бүрэлдэхүүнтэй баг

Тусгай тоног төхөөрөмж хэрэглэгдэхгүй байдал

Олон хэрэглэгчийн тоглоомыг хэрэгжүүлэх боломж

Jad файл нь утасны програмын менежерт MIDlet-тухай үндсэн мэдээллийг өгдөг:

Main функц нь хаана байгаа

Icon болон бусад зургийн файлуудын байршил

Jad болон mf файлууд нь манай jar файл доторх MIDlet-үүдийн тухай мэдээллийг өгч байдаг. Jar дотор олон MIDlet байж болох ба MIDlet бүрийн тухай мэдээллийг MIDlet-1, MIDlet-2 ... гэх мэтээр мэдээллүүдийг нь хадгалдаг.

Лекц 3 MIDlet life cycle:

MIDP 2.0 packages:

MIDP 2.0-д дараах үндсэн 11 пакэж байдаг. Эдгээр нь заримыг нь J2SE-с авсан боловч утсанд зориулан жижигсгэн хялбаршуулсан, зарим нь шинэ пакэжүүд юм.

java.io : Оролт гаралтын үйл ажиллагааг хариуцах классууд байрлана.

java.lang : Мөн л байх ёстой үндсэн пакэж. Boolean, Byte, Integer гэх мэт үндсэн элементүүд байрлана.

java.util : Vector, timer, санамсаргүй тоо үүсгэгч болон бусад хэрэгтэй зүйлс энд байдаг.

Page 4: 14. SE310 - Mobile Programming

javax.microedition.io : MIDP 1.0-д байсан сүлжээний үйлдлүүдийг сайжруулан нэмэгдүүлэн агуулсан. Жишээ нь энд дараах боломжууд байдаг :

Socket Stream Udp Datagram Secure connection

javax.microedition.lcdui : awt классын үүргийг гүйцэтгэдэг. График интерфэйстэй холбоотой классууд байрлана.

javax.microedition.lcdui.game : MIDP 2.0 – с эхлэн гарч ирсэн шинэ пакэж. Тоглоомын график үйлдлүүдийг (collision, animation …) агуулдаг.

javax.microedition.media : MIDP 2.0-д нэмэгдсэн шинэ пакэжүүдийн нэг. Дууг дахин цигклдэн тоглуулах, илүү олон төрлийн дууны форматыг дэмжих болон бусад нэмэлт функцүүд нэмэгдсэн.

javax.microedition.media.control : Дууг дахин тоглуулах болон дууны чанга сулыг тохируулах болон бусад дуутай холбоотой тохиргоог гүйцэтгэх цөөн хэдэн классууд энд байрлана.

javax.microedition.midlet : MIDlet-г тодорхойлох үндсэн класс байрлана.

javax.microedition.pki : Secure connection-д ашиглах sertificate-г энд хийж өгдөг.

javax.microedition.rms : J2ME-н нэг security загвар. Энэ нь утасны файлын системд шууд бичилт хийлгэлгүйгээр харин энэ пакэж доторх үүсгэх, бичих, унших үйлдлүүдийг ашиглан түлхүүр/утга хосуудыг утсанд бичих боломж өгдөг.

Бичих класс болон интерфэйсүүд :

Constants : Бусад классуудад ашиглагдах тогтмолуудыг агуулах интерфэйс.

SlideTask : Тодорхой хугацаанд идэвхжин ажиллах трэд класс. Энэ нь Canvas-г repaint( ) хийх үүрэгтэй.

SlideCanvas : Зургийг өөр дээрээ дүрслэх үүрэгтэй Canvas. Дотроо хоёр зургийг агуулах ба paint( ) хийгдэх бүр зургуудаа сольно.

ImageSlideShow : Дээрх классуудын обьектуудыг дотроо үүсгэн тохируулж, ажиллуулах үндсэн MIDlet класс.

Лекц 4 Animation:

Зургуудыг сольж үзүүлэх замаар анимац хийж болно. Асуудал :

Олон файл тус бүр их хэмжээ эзэлнэ.

Файл тус бүрийг шахалтаас нь задлан ажиллахад бэлэн болгоход хугацаа зарцуулагдана.

Үүнээс илүү дээр арга нь анимацийн зургуудыг нэг зургийн файлд хийгээд зургийг хэсэг хэсгээр нь үзүүлэх явдал юм.

MIDP 1.0-д зургийн хэсгийг хялбараар үзүүлэх арга байдаггүй байсан. Гэхдээ дэлгэцийн clip буюу дэлгэцийн харагдах хэсгийг тодорхойлон өгснөөр энэ асуудлыг шийддэг байв.

Double buffering:

Зарим утсан дээр тоглоомууд хөдлөхдөө дүрс нь анивчин жигд харагдахгүй байж болно.

Үүний шалтгаан нь програмын paint( ) функц дэлгэцээ бүрэн зурж амжаагүй байхад утас нь өөрөө дэлгэцээ refresh хийх явдал юм.

Page 5: 14. SE310 - Mobile Programming

Жишээ нь paint( ) функц нь дэлгэцээ цэвэрлээд дүрсээ зурж амжаагүй байхад утас нь дэлгэцээ refresh хийвэл түр хар дэлгэц (цэвэрлэсэн өнгийн дэлгэц) харагдаад тэр дороо дүрс нь дараа нь харагддаг.

Энэ асуудлыг double buffering аргаар шийддэг.

Заримд утасд энэ асуудал байдаггүй. Учир нь тийм утаснууд нь өөртөө double buffering технологи агуулсан байдаг.

Double Buffering гэж юу вэ? Энэ нь дээрх проблемийг шийдэх арга юм.

Хоёр буфер ашиглана.

Front Buffer : Энд дэлгэц дээр одоо байж байх зургийг хадгална.

Back Buffer : Энд шинээр зурагдах зургийг зурж оруулна.

Лекц 5 Геометр дүрсүүд:

Утасны програмчлалыг бичиж байх явцад санах нэг дүрэм нь :

Аль болох боломжтой бол bitmap хэрэглэлгүй дүрсүүдийг зурж байх явдал юм. Энэ нь санах ойг маш ихээр хэмнэж өгдөг.

Гарны event-тэй ажиллах:

Маш олон төрлийн утас байдгаас болж тэдний товчлууруудын байрлал шал ондоо ондоо байж болдог. Энэ нь тоглоом болон зарим програмын оролтыг програмчлахад хэцүү болгодог. Энэ асуудлын улмаас Canvas класст getGameAction() функц байдаг. Энэ функц нь дарагдсан товчийн кодыг аваад ямар үүрэгтэй товч дарагдсан болохыг буцаадаг.

Soft buttons:

J2ME-ийн нэг давуу тал нь soft button хэмээх ойлголтыг хэрэгжүүлдэгт байдаг. Ихэнх утаснууд ядаж хоёр ийм товчтой байдаг. Эдгээр нь дэлгэцийн баруун зүүн хоёр доод талд ихэвчлэн байрласан байдаг.

Лекц 6 Forms and Screens:

Screen - ээс дараах үндсэн 4 төрлийн компонентууд удамшсан байдаг нь :

Alert

List

TextBox

Form

Эдгээр нь хэрэглэгчийн оруулсан утгуудыг (текстийг скролл хийх, курсорыг хөдөлгөх ...) өөрсдөө хүлээн авах боловч Soft Button хэрэглэх үеийн үйлдлийг програмистууд хийж өгөх ёстой байдаг.

Page 6: 14. SE310 - Mobile Programming

List нь олон сонголтоос сонгох боломж олгодог компонент.

Alert нь хэрэглэгчид ямар нэг текст мэдээллийг бүтэн дэлгэцийн горимд мэдээлдэг.

TextBox нь хэрэглэгч мэдээлэл оруулах зориулалттай компонент юм.

Лекц 7 Form:

Форм нь компонент гэхээсээ илүү container юм. Формд Item классаас удамшсан компонентуудыг нэмж болдог.

MIDP 2.0 – д ийм төрлийн 8 компонент байдаг :

ChoiseGroup

CustomItem

DataField

Gauge

ImageItem

Spacer

StringItem

TextField

ChoiseGroup:

ChoiseGroup нь List-тэй ижилхэн үүрэгтэй. Утаснаасаа хамаарч CheckBox, RadioButton болон ямар ч төрхтэй харагдаж болно. Мөн програмист өөрийн гэсэн зургийг өгч болдог.

CustomItem:

CustomItem нь програмистад өөрийн гэсэн контрол үүсгэхэд хэрэглэгддэг.

Компонент бүрд байдаг хэрэглэгчийн үйлдлийг барих болон paint( ) функцүүд энэ класст байдаг.

График контрол үүсгэхэд хэрэгтэй бүх функцүүдээр энэ класс нь хангагдсан байдаг.

DataField:

DataField компонент нь хэрэглэгчид өгөгдлийг үзүүлэх болон өгөгдлийг оруулахад хэрэгтэй компонент юм.

Жишээ нь цаг, огноог оруулах гэх мэт. Утаснаасаа хамаарч энэ тохиолдолд календар болон бусад интерфэйс гарч ирж болзошгүй байдаг.

Gauge:

Gauge нь хялбархан ProgressBar гэж хэлж болно.

Gauge нь хоёр төрөл байдаг :

Interactive : Хэрэглэгч товч даран утгыг нь ихэсгэн багасгах

Non interactive : Хэрэглэгч утгыг нь зөвхөн харах зориулалттай, жишээ нь load хийх процессийг үзүүлэх гэх мэт.

ImageItem:

ImageItem нь форм дээр bitmap зураг гаргахад хэрэглэгддэг.

Spacer:

Spacer нь форм дээрх бусад компонентуудын хооронд зай тавьж өгөхөд хэрэглэгддэг.

StringItem:

StringItem нь контролуудын хажуугаар статик текст тавьж өгөхөд хэрэглэгддэг.

TextField:

Page 7: 14. SE310 - Mobile Programming

TextField нь TextBox тэй ижил хэрэглэгч текст оруулах компонент юм.

Формд компонентуудыг нэмэх:

Форм нь өөртөө агуулж буй компонентуудыг массив хэлбэрээр дотроо агуулж байдаг.

Формд элементүүдийг нэмэх амархан боловч эдгээрийг хэрхэн байрлуулахыг удирдаж болох уу?

MIDP 1.0 - д энэ талаар маш хязгаарлагдмал байсан.

MIDP 2.0 - д компонентийн layout гэсэн ойлголт нэмэгдсэнээр илүү боломжтой болж ирсэн.

Лекц 8 Game API:

Гар утасны тоглоомын програмчлалд тусгайлан зориулсан классууд юм. Javax.microedition. lcdui.game пакэж дотор оршдог. Бидний өмнө үзэж байсан Canvas обьект нь хэдийгээр bitmap болон геометрийн дүрс зурж, гарны оролтыг авах боломжтой боловч илүү хурдтай, нарийн тоглоом дээр хязгаарлагдмал болж ирдэг. Энэ хязгаарлалтаас болж илүү тоглоомын програмчлалд тохирсон GameCanvas классыг гаргасан байна.

GameCanvas-н олон давуу талуудаас хамгийн чухал нь нэг зэрэг дарагдсан олон товчнуудтай ажиллах чадвар юм.

Layer:

Layer нь абстракт класс юм. Энэ классаас удамшсан дараах хоёр класс нь тоглоомын програмчлалын цөм болж өгдөг :

Sprite

TiledLayer

Ерөнхийдөө Layer бол хөдөлгөж, гүнийг нь өөрчилж, алга болгож, координатыг нь тогтоож болдог зураг гэж хэлж болно.

Гүнийг нь өөрчилснөөр зурагнууд бие биеийнхээ дээр доор орох боломжийг өгдөг.

Sprite:

Sprite нь обьектийг тоглоом дотор хөдөлгөхөд хэрэглэгддэг.

Жишээ нь гүйж буй хүн, буудсан сум гэх мэт.

Зарим утасны hardware нь Sprite хурдасгууртай байж болдог. Энэ тохиолдолд Sprite ашигласнаар тоглоомын хурд илүү сайн болдог. Sprite нь зөвхөн зураг үзүүлж хөдөлгөх ч биш мөн

анимац үзүүлэх

зургуудын давхцал, мөргөлдөөнийг илрүүлэх

зургийг эргүүлэх

толин хувиргах зэрэг олон үйлдлүүдийг хийх чадвартай.

Sprite –ийн том давуу тал нь зургийг хувиргах боломжид оршдог. Өөрөөр хэлбэл зургийг зурахаас өмнө түүнийг эргүүлж, толин хувиргаж болно.

Collision буюу мөргөлдөөн:

Sprite –ийн өөр нэг давуу тал нь бусад Sprite, Tile, Image-тэй мөргөлдөж буйгаа мэдрэх боломжтой байдагт оршино. Мөргөлдөөн нь хоёр янз байдаг :

Цэгийн мөргөлдөөн

Хүрээний мөргөлдөөн

Лекц 9

Page 8: 14. SE310 - Mobile Programming

TiledLayer:

Game API –ийн дараачийн чухал хэсэг бол TiledLayer юм. Энэ нь дэлгэцийн цаадах background орчныг дүрслэх үүрэгтэй байдаг. Өөрөөр хэлбэл map нь болно гэсэн үг. Энэ обьект дээгүүр шилжиж, скролл хийж, мөн янз бүрийн анимацын эффект ч үзүүлж болдог.

Тоглоомын график нь үндсэндээ 2 хэсгээс тогтоно :

Sprite-ууд : Дэлгэц дээр хөдлөгч идэвхтэй обьектууд

TileLayer : Дэлгэцийн background бөгөөд Sprite-уудын орших орчинг үүсгэх, тэдэнтэй харилцах зэрэг үүрэгтэй.

Зургийн энэ давтагдаж буй хэсгүүдийг Tile гэж нэрлээд тэдгээрийг тусд нь хадгалан том зургийг эдгээрийг янз бүрээр нийлүүлэх замаар үүсгэх нь том хэмжээтэй зургийн асуудал болон, динамик газрын зураг үүсгэх зэрэг асуудлуудыг шийдэж өгдөг.

Sprite болон Tile – уудын мөргөлдөөн,

Хиймэл Оюун

болон бусад зүйлд энэ арга маш их хэрэгтэй байдаг.

Tile гэдэг нь тэгэхээд дөрвөлжин bitmap зураг юм. Эдгээрийг угсран том зураг үүсгэдэг.

Лекц 10 LayerManager:

Sprite болон TiledLayer-аа өөрсдөө paint( ) функцээр нь дуудан зурж болох боловч үүнийг илүү хялбараар LayerManager классыг ашиглан хийж болдог. LayerManager класс дотор sprite-ууд, TilerLayer – ээ хийж өгснөөр энэ класс нь тэдгээрийг наана цаана харагдахыг тохируулан нэг функцээр бүгдийг нь зурж өгдөг.

LayerManager-т нэг обьект нэмэхдээ дараах функцийг нь ашиглана :

Обьектуудыг нь зурахдаа дараах функцийг нь ашиглана :

g : Дээр нь зурагдах графикийн заагч.

x, y : Уг графикийн аль координатаас эхлэн зурахыг заана.

LayerManager-т хийсэн элемент өмнө орсон элементүүдийнхээ цаана нь зурагддаг.

Тиймээс эхэлж хийсэн обьект хамгийн наад талд зурагдана гэсэн үг.

append( ) функц нь хамгийн цаад талд нь л нэмж өгдөг.

Хэрэв энэ жагсаалтын дунд нь өөрөө нэмж өгөхийг хүсвэл дараах функцийг нь ашиглана :

Лекц 11

Page 9: 14. SE310 - Mobile Programming

MIDI файл:

MIDP 1.0 үед гар утасд дуу дуугаргах боломжгүй байдаг байсан.

Beep() ээс бусдыг.

MIDP 2.0 – с Media API бий болсноор жишээ нь WAV, MP3 төрлийн файлуудыг тоглуулах боломжтой болсон. Гэхдээ ихэвчлэн MIDI форматаар гар утасд дуу дуугаргадаг. MIDI (Musical Instrument Digital Interface) файл нь дижитал хөгжмийн хэрэгслүүд хоорондоо дууны мэдээлэл солилцоход хэрэглэгдэх стандарт протоколоор 1983 онд зохиогдсон юм.

Media API:

MIDI файл нь дотроо ямар нэг нотыг дуугаргахыг заасан командуудаас тогтдог.

Нэгэнт дууны мэдээллийг өөртөө агуулдаггүй учраас хэмжээ нь маш жижиг байдаг. Энэ шалтгаанаас болоод гар утас дээр дуу тоглуулахад энэ формат илүү тохиромжтой байсан.

Media API-д дараах гурван класс байдаг :

Manager

Player

Control

Manager класс нь Player классыг үүсгэх, зарим энгийн нотуудыг дуугаргах боломжтой.

Player класс нь дууг тоглуулах, эхлүүлэх, зогсоох зэрэг үйлдлүүдийг хийнэ.

Control класс нь дууны чанга сулыг тохируулах зэрэг тохиргооны үйлдлүүдийг хийдэг.

Лекц 12 Санамсаргүй тоо үүсгэх:

Random классыг ашиглан санамсаргүй тооны үүсгүүрийг үүсгэж авна. Үүсгэхдээ байгуулагчид нь үүсгэхэд ашиглах бүхэл тоон өгөгдөл дамжуулна.

Collection:

J2ME-д дараах Collection – ий классууд байдаг:

Vector

HashTable

Page 10: 14. SE310 - Mobile Programming

Vector-ийг багтаамжтайгаар нь үүсгэхдээ :

Thread ашиглах:

Thread-г J2ME-д хоёр янзаар үүсгэдэг.

TimerTask классыг ашиглах

Thread класс, Runnable интерфэйс ашиглах.

Гар утсанд мэдээлэл хадгалах:

Гар утасны файлын системд J2ME нь шууд хандалтыг зөвшөөрдөггүй. Гэхдээ тоглоомын статистик болон бусад мэдээллийг хадгалахын тулд дараах классыг ашиглан хадгалж болдог.

RecordStore

RecordStore нь нэг үгээр хэлбэл энгийн жижигхэн өгөгдлийн сан юм.

Үүнийг үүсгээд бичлэгүүдийг нэмэх, хасах, засварлах үйлдлүүдийг хийдэг.

Бичлэг бүр өөрийн гэсэн дугаартай байдаг (recordID). Үүгээр нь уг бичлэгт хандах боломжтой.

Өгөгдлүүдээ байт хэлбэрээр хадгалдаг.

MIDlet-ийг утаснаас uninstall хийхэд баз нь мөн хамт устдаг.

Нэг MIDlet suite (jar) дотор байгаа олон MIDlet – үүд дундаа базаа хуваалцан ажиллах боломжтой.

Лекц 13 Хувийн мэдээлэл хадгалагч:

Personal болон Business гэсэн хоёр баз үүсгэж ажиллана.

Page 11: 14. SE310 - Mobile Programming

Хэрэв хэрэглэгч MENU-ээр орж DETAIL командыг сонговол уг базын мэдээллийг дэлгэцэнд үзүүлнэ. :

Хэрэв хэрэглэгч OK команд дарвал дотор нь байгаа хүмүүсийн жагсаалтыг үзүүлнэ.

Дараах классуудыг бичиж өгнө :

CreateAddressBook : Базыг үүсгэн өгөгдлүүдийг утсанд хадгална.

RMSMIDlet : Үндсэн MIDlet.

SimpleComparator : Бичлэгүүдийг харьцуулахад хэрэглэгдэнэ. Хүмүүсийн мэдээллийг уг хүний нэрээр нь эрэмбэлэн гаргахад хэрэглэнэ.

SimpleRecord : Шинэ бичлэг үүсгэх, бичлэгээс нэрүүдийг салган буцааж өгөх зэрэг үйлдлүүд хийнэ.

Лекц 14 Харийнхны довтолгоо тоглоом:

Тоглоомын санаа:

Нисдэг таваг зүүнээс баруун руу явна.

Баруун ирмэгт тулбал нэг мөр доошлон дахин баруун талруу зүүнээсээ явна.

Хэрвээ тавгийг буудаад устгавал оноо авах ба таваг дахин дээрээс явах ба гэхдээ илүү хурдтайгаар хөдөлнө.

Тоглогч баруун, зүүн сумаа дарж буугаа хөдөлгөнө.

Хэрэв дэлгэцийн доор хүрвэл харийнхан ялна.

Тоглолт дуусангуут авсан оноог нь базд байгаа гурван оноотой шалгаад тэдний аль нэгээс их байвал уг бага утгыг дараад шинэ оноог бичнэ.

• Оноонууд нь ихээсээ бага руу эрэмбэлэгдэн харагдана.

Програмын класс диаграм:

Page 12: 14. SE310 - Mobile Programming

Лекц 15 Wireless network:

Сүлжээний хурдыг Bandwidth гэж нэрлэдэг. Гар утасны сүлжээнүүд технологиосоо хамаарч (CDMA, GSM) янз бүрийн хурдтай байдаг. Хэрэв 1Mb/ps (1 Mega bit per second) хурдтай бол энэ нь 220 бит буюу 128 kb (килобайт) юм. Сүлжээний мэдээлэл нь төрөл бүрийн давтамжаар (frequency) илгээгдэх радио долгионууд юм. Америкт эсвэл Европд ашиглагдах долгионы давтамжийн хязгаарыг тусгай байгууллага зааж өгсөн байдаг. Үүнээс болж Америкаас авсан утас Европийн сүлжээнд ажиллахгүй болдог.

Multiplexing : Хувийн утасны компаниуд зөвшөөрөгдөх долгионы давтамжийн хязгаарыг худалдан авсны дараа нь ямар технологи (multiplexing) хэрэглэн уг давтамжаар хэрэглэгчддээ утасны үйлчилгээ үзүүлэхээ сонгодог.

Өрсөлдөгч гол multiplexing технологиуд нь :

TDMA : Time Division Multiple Access технологи.

CDMA : Code Division Multiple Accees технологи.

Гар утасны үйлчилгээг PCS (Personal Communication Service) гэдэг бөгөөд энэ үйлчилгээ нь TDMA эсвэл CDMA аргын аль нэгийг ашиглан явуулдаг. Одоо өрсөлдөгч гол гурван үйлчилгээ нь :

GSM (Global System for Mobile Communication) : Европт стандарт болсон технологи юм. TDMA дээр үндэслэгдсэн. Дамжуулалтын хурд 14.4 kilobit ps.

cdmaOne : CDMA технологи дээр үндэслэгдсэн. Хурд нь 14.4 kilobit ps.

GPRS (General Packet Radio Service) : GSM сүлжээг өргөтгөн гарч ирсэн үйлчилгээ юм. Хурд нь 14.4 kb – 115.2 kb хүрэх боломжтой. Эхний хоёр технологи нь хүмүүс ярьж байхад ч холбоос нь тасрахгүй мэдээлэл дамжигдаж байдаг бол энэ технологи нь мэдээллийг пакет пакетаар дамжуулдаг тул хэрэв хүн ярихгүй байвал мэдээлэл дамжигдахаа больдог.

Одоо ашиглагдаж буй энэ технологиуд нь 2-р үеийн (2G буюу second generation) технологиуд юм. 1G нь 1980-1990 оны үеийнхийг хэлдэг.

GPRS технологийг 2,5G гэж нэрлэж байна.

Харин удахгүй 3G үе эхлэх гэж байна. Аль хэдийн 3G стандартууд тодорхойлогдсон байгаа. Зарим газар мөн хэрэгжиж эхэлсэн.

3G технолог нь 144kb – 2Mb хүртэл хурдыг олгох онцлогтой.

QUALCOMM корпораци cdmaOne технолгийг өргөтгөн CDMA2000 3G технологи гаргасан.

Лекц 16 Сүлжээний програмчлал:

Сүлжээний програмчлалын технологийн хоёр хэлбэр байдаг нь :

Page 13: 14. SE310 - Mobile Programming

Client/Server : Сервэр рүү олон клиент холбогдон ажиллах систем.

P2P (Peer to Peer) : Сервэргүй систем. Энд програмууд шууд бие бие рүүгээ холбогддог. Холбогдсон нэг үзүүрийг peer гэж нэрлэдэг.

MIDP2.0 хувилбараас эхлэн энэ хоёр төрлийн холболтыг дэмждэг болсон.

Stream socket : TCP протоколыг ашигласан сокет. “Найдвартай” холбоог үүсгэдэг. Холбоос дээр үндэслэгдсэн. Өөрөөр хэлбэл өгөгдөл илгээж, авахын тулд холбоосыг хаалгүй нээлттэй байлгаж байх ёстой.

Datagram socket : UDP протоколыг ашигласан сокет. “Найдваргүй” холбоог үүсгэдэг. Пакет дамжуулалтад үндэслэгдсэн. Өгөгдөл илгээхэд холбоос үүссэн байхыг шаарддаггүй.

Гар утасны хувьд Сервэр програм нь бодит IP хаягтай компьютер дээр ажиллаж буй ямар нэг програм байна. Харин клиент програм нь утсан дээр суун сервэртэй холбогдон ажиллах юм. Сүлжээгээ бид multi thread ашиглан хийвэл гар утаснууд дахь клиентууд хоорондоо тоглох, харилцах боломжтой болох юм.

Гар утасны сүлжээг ашиглан дараах системүүдийг жишээ нь хийж болно :

Гар утсаа хэрэглэн олон хүмүүс хоорондоо зэрэг тоглох.

Байгууллагын ажилчдын зар тараах систем

Олон хүмүүсийн хоорондох хурал, ярилцлага.

Утасны мэссэнжер.

Гар утсаар дэлгүүрээс юм худалдаж авахаар захиалах.

Дэлгүүр нь сервэр програм байна.

Гар утасны форум

Утаснаасаа форум дээр асуулт тавьж, хариулт өгч, хариултуудыг үзэх.

MIDlet-ийг утсанд суулгах:

MIDlet-ийг утсанд гурван аргаар суулгаж болно :

Blue Tooth : Blue tooth технологи дэмждэг гар утас, notebook ашиглан суулгана. Суулгах арга нь гурвуулаа ижил.

Infrared : Бүх гар утсанд infrared холбоос хийх боломж байдаг. Infrared холбоос дэмждэг notebook ашиглана.

Serial эсвэл USB кабел хэрэглэх : Утасныхаа тохирох кабелийг install driver CD-ийн хамт худалдан авна. Ямар утсанд ямар төрлийн кабел тохирохыг утасныхаа сайтаас олж харах хэрэгтэй.

Жишээ нь Nokia 6070 утсанд CA-42 кабел таардаг.

Дагалдан ирэх CD-д MIDlet-ийг утсанд суулгах програм хамт ирдэг.