1
O‟ZBEKISTON RESPUBLIKASI VAZIRLAR MAHKAMASI HUZURIDAGI
TOSHKENT ISLOM UNIVERSITETI
Himoyaga: «____________________»
Kafedra mudiri ________________
«___» ___________________ 2013-yil
BAKALAVR BITIRUV MALAKAVIY ISHI
Mavzu:
«Java dasturlash tilida Android tizimida milliy resurslarni
tashkillashtirish va boshqarish»
Bitiruvchi : _____________ ____________________
(imzo) (f.i.o)
Rahbar: ____________ ____________________
(imzo) (f.i.o)
Taqrizchi: ____________ ____________________
(imzo) (f.i.o)
Toshkent - 2013
2
O‟ZBEKISTON RESPUBLIKASI VAZIRLAR MAHKAMASI
HUZURIDAGI
TOSHKENT ISLOM UNIVERSITETI
Fakultet : Fiqh, iqtisod va tabiiy fanlar
Kafedra: Informatika va axborot texnologiyalari
Yo‘nalish: Informatika va axborot texnologiyalari
«TASDIQLAYMAN»
Kafedra mudiri: ______________
«___ » ____________ 2013-yil
Bitiruv malakaviy ishni bajarishga
TOPSHIRIQ
Razakova Marifat Faxridinovna
(familiya, ismi, otasining ismi)
1. BMI mavzusi: Java dasturlash tili Android tizimida milliy resurslarni
tashkillashtirish va boshqarish
2. Universitet qarori bilan tasdiqlangan «___» ________________________
3. Ishni to‘liq bajarish uchun berilgan vaqt ____________________________
4. Ishning boshlang‘ich ma‘lumotlari:_________________________________
5. Hisob-tushuntirish matni mundarijasi (ishni bajarishdagi masalalar ro‘yhati)
Kirish.
1. O`zbekistonda Android tizimida ishlovchi, milliy resurslarni
tashkillashtiruvchi va boshqaruvchi dasturlarni ishlab chiqishning hozirgi
kundagi o‘rni.
3
2. Milliy resurslarni tashkillashtirish va boshqarish strukturasini ishlab
chiqish.
3. Milliy resurslarni tashkillashtirish va boshqarishni Java dasturlash tili
Android tizimi misolida dasturiy joriy etish.
Hayot faoliyati xavfsizligi.
Xulosa.
Ilovalar.
Topshiriq berilgan kun: ________________ 2012-yil
Rahbar : ________________________________
(imzo)
Topshiriqni oldi: ________________________________
(imzo)
BMI ishining har bir bo‘limida bajariladigan ishlarga maslahatlar.
Bo‘limdagi ishlar nomi Rahbar F.I.O. Imzo vaqt
Topshiriq
berdi
Topshiriq
oldi
1. Android tizimida ishlovchi
milliy dasturlar ishlab
chiqishning ahamiyati
2. Android tizimida ishlovchi
milliy resurslar tahlili
3. Masalaning qo`yilishi va
dolzarbligi
4. Tanlangan obyektning
strukturasini ishlab chiqish
5. Ma`lumotlar yaxlitligi va
ishonchliligi
6. Dasturlashtirish tilini tanlash
va qo`yilgan masalani dasturiy
joriy qilish
7. Dasturning funksional
imkoniyatlari
8. Dastur ishlash samaradorligi
Z.Xodjimuratova
Z.Xodjimuratova
Z.Xojimuratova
Z.Xodjimuratova
Z.Xodjimuratova
Z.Xodjimuratova
Z.Xodjimuratova
Z.Xodjimuratova
4
va joriy etilgan resurslarni
baholash
9. Foydalanuvchi uchun
qo`llanma
Z.Xodjimuratova
Ishni bajarish grafigi.
№ BMI bo‘limlarining nomlari Bajarish muddati Bajarilganligi haqida
rahbar imzosi
1
2
3
Kirish
O`zbekistonda Android
tizimida ishlovchi, milliy
resurslarni tashkillashtiruvchi
va boshqaruvchi dasturlarni
ishlab chiqishning hozirgi
kundagi o`rni
Milliy resurslarni
tashkillashtirish va
boshqarish strukturasini
ishlab chiqish
Milliy resurslarni
tashkillashtirish va
boshqarishni Java dasturlash
tili Android tizimi misolida
dasturiy joriy etish
Hayot faoliyati xavfsizligi
Bitiruvchi: ___________________ «______» ___________ 2013-yil
(imzo)
Rahbar: ___________________ «______»___________ 2013-yil
(imzo)
5
Mundarija
Kirish...........................................................................................................6
I. O`zbekistonda Android tizimida ishlovchi, milliy resurslarni
tashkillashtiruvchi va boshqaruvchi dasturlarni ishlab chiqishning hozirgi
kundagi o`rni..................................................................................................9
1.1 . Android tizimida ishlovchi milliy dasturlar ishlab chiqishning ahamiyati..9
1.2 . Android tizimida ishlovchi milliy resurslar tahlili....…………………..12
1.3 . Masalaning qo`yilishi va dolzarbligi………………..…………………..17
II. Milliy resurslarni tashkillashtirish va boshqarish strukturasini ishlab
chiqish......................................................................................................19
2.1. Tanlangan obyektning strukturasini ishlab chiqish…......……………..19
2.2. Ma`lumotlar yaxlitligi va ishonchliligi…………………….....…………22
III. Milliy resurslarni tashkillashtirish va boshqarishni Java dasturlash tili
Android tizimi misolida dasturiy joriy etish ..........................................25
3.1. Dasturlashtirish tilini tanlash va qo`yilgan masalani dasturiy joriy
qilish………………………………………………………………….…..25
3.2 . Dasturning funksional imkoniyatlari…………………………………..60
3.3 . Dastur ishlash samaradorligi va joriy etilgan resurslarni baholash……62
3.4 . Foydalanuvchi uchun qo`llanma……………………………………....63
Hayot faoliyati xavfsizligi..............................................................................65
Xulosa.........................................................................................................73
Foydalanilgan adabiyotlar...........................................................................74
Ilovalar........................................................................................................76
6
Kirish
«Biz bu borada mobil aloqasi, internet, videotelefon tizimi, raqamli
televideniye, zamonaviy bank xizmatlari, lizing, sug„urta, audit, injiniring va
boshqa zamonaviy xizmat turlarini rivojlantirishga alohida e‟tibor
qaratmoqdamiz.
Bugungi kunda yurtimiz mobil aloqaning rivojlanish ko„rsatkichi
bo„yicha dunyoda oldingi o„rinda turgan o„nta mamlakat qatoriga kiradi.
O„zbekistonda mobil aloqa xizmatidan foydalanuvchilarning umumiy soni 2000
yilga nisbatan – shunga e‟tibor beringlar – 200 barobar oshib, 19 milliondan
ortiq abonentni tashkil etmoqda»
O„zbеkiston Rеspublikasi Prеzidеnti
Islom Karimov
O„zbеkiston Rеspubkasi Vazirlar Mahkamasining
2011-yil 21-yanvarda bo„lib o„tgan
majlisidagi ma‟ruzasidan.
Qadimdan fan-texnika taraqqiyoti Inson va jamiyat hayotida kattadan-
katta o‗zgarishlarga olib kelgan. Har gal insoniyat biron-bir ilmiy yangilik yoki
texnikaviy kashfiyotni qo‗lga kiritgan zahoti, bu imkoniyatdan turli
maqsadlarda foydalanuvchilar paydo bo‗lavergan. Kimlar uchundir yangi
kashfiyot inson mushkulini yengil qilish vositasi sifatida xizmat qilgan bo‗lsa,
yana kimlar uchundir u qandaydir g‗arazli maqsadlarni amalga oshirish quroliga
aylangan.
Bugungi kunda ham zamonaviy fan-texnika yutuqlaridan noto‗g‗ri
maqsadlarda foydalanishga bo‗lgan urinishlar tobora ko‗payib bormoqda. Mana
shunday texnologiyalardan biri — bu uyali aloqadir. Bu vosita bugun
hayotimizning ajralmas bir qismiga aylanib ulgurgan. U masofalar kesimida biz
7
yashayotgan kurrai-zaminni shunchalar kichraytirib qo‗ydiki, bugungi kunda
yer sharining narigi burchi bu chekkasi bilan soniyalar ichida aloqa bog‗lay
oladi. Shu o‗rinda biz qo‗l telefonining kundalik ijtimoiy foydali tomonlari
haqida to‗xtalib o‗tirmaymiz, bu haqida shundoq ham yetarlicha ma‘lumot
tarqatilgan. Ayniqsa, bu uyali aloqa vositalari reklamasida deyarli har kuni
bearmon targ‗ib qilinmoqda.
Shunday qilib, qo‗l telefoni, aytish mumkinki, «uchinchi» ekranga
aylanib ulgurdi. Agar «katta ekran» deb ataladigan kinoteatr ekranlarini shartli
tarzda «birinchi yo‗nalishdagi ekran» desak, «zangori ekranni», ya‘ni uydagi
televizorlarni «ikkinchi yo‗nalishdagi ekran» deyish mumkin. Shu ma‘noda,
qo‗l telefoni bugun «uchinchi» yo‗nalishdagi ekranni hosil qildi.
«Katta ekran» va «zangori ekran» faoliyati huquqiy yo‗l bilan tartibga
solinadi, ular orqali namoyish etiladigan ko‗rsatuvlar badiiy, axloqiy, tarbiyaviy
va estetik jihatdan tegishli tarzda nazorat qilinadi, davlat tomonidan turli
mafkuraviy tahdidlardan himoyalanadi.
Shuningdek, biror mamlakatda zamonaviy texnologiyalarning mavjudligi
hali unda axborot jamiyatining yuzaga kelishi uchun yetarli emas. Buning
uchun aholi axborot olish borasida keng va teng imkoniyatga ega bo‗lishi,
jamiyatda yuksak axboriy madaniyat shakllanmog‗i zarur.
Sirtdan qaraganda, Tofflerning insoniyat jamiyatini uch davrga
tasniflashiga odamlarning tirikchilik tarzi va yashash holati asos bo‗lgan, degan
xulosaga kelish mumkin. Lekin "uch to‗lqin" nazariyasi mohiyatan teranroq
tahlil etilsa, davrlar taqsimotida insonlarning tafakkur tarzidagi evrilishlar
birlamchi o‗rin tutgani ayon bo‗ladi. Agrar davrda inson asosan o‗zlashtirma
mehnat bilan kun ko‗rdi - tabiatdagi mavjud ne'matlardan "bor boricha" qabilida
foydalandi. Sanoat inqiloblari bosqichida esa uning tafakkur tarzi keskin
o‗zgardi: qo‗l mehnatidan xalos bo‗lgan insoniyat texnika yordamida
8
bunyodkorlik va yaratuvchanlik davriga qadam qo‗ydi. Toffler "uchinchi
to‗lqin" deya nomlagan axborot jamiyatida esa izlanuvchanlik, tashabbuskorlik
va yangilikka intilish hayot mazmuniga aylandi. Agar industrial davrda odamlar
uzog‗ini yaqin, og‗irini yengil qilgan texnologiya asosiy qadriyat hisoblangan
bo‗lsa, axborot jamiyatida u o‗rnini bilimlarga bo‗shatib berdi.
Tinib-tinchimagan odamzod pul va moddiy boyliklar hamma narsaning
kaliti bo‗lgan kezlarni boshdan o‗tkazdi, qurol kuchi, zo‗ravonlik bilan
hokimiyat egallangan davrlarni ko‗rdi. Mana, endi axborot barcha ne'matlardan
ustun bo‗lgan zamon kelyapti. Bunday jamiyatda kishilar o‗rtasidagi
munosabatlarda axborot omili yetakchilik qiladi. "Kimki haqiqiy axborotga ega
bo‗lsa, u dunyoga hukmronlik qiladi" degan mashhur naql amaliy ahamiyat
kasb etadi. Jamiyat hayotining barcha jabhalarida axborot hal qiluvchi kuch
vazifasini o‗taydi. Ta'bir joiz bo‗lsa, jamiyat axborot bilan nafas oladi, axborot
bilan oziqlanadi.
9
I BOB. O`ZBEKISTONDA ANDROID TIZIMIDA ISHLOVCHI,
MILLIY RESURSLARNI TASHKILLASHTIRUVCHI VA
BOSHQARUVCHI DASTURLARNI ISHLAB CHIQISHNING
HOZIRGI KUNDAGI O`RNI
1.1 . Android tizimida ishlovchi milliy dasturlar ishlab chiqishning
ahamiyati
Android (yunoncha so‗z bo‗lib, ikki bo‗g‗ini — «erkak» va «o‗xshash»)
— odamsifat robot ma‘nosini ifoda etadi. Balki mana shuning uchun Android
operatsion tizimi logotipida robot tasvirlangandir.
Android operatsion tizimining yaratilishi tarixi 2002-yillardan boshlangan.
Mana shu davrda Google korporatsiyasi yaratuvchilari E. Rubinning dasturiy
ishlanmalari to‗plami bilan qiziqib qoladilar. Dastlab mobil qurilmalar uchun
yangi operatsion tizimni yaratish loyihasi bilan katta maxfiylik ostida Android
Inc. Kompaniyasi shug‗ullangan, ushbu kompaniyani keyinchalik Google sotib
oladi.
Android — Linux yadrosiga asoslangan kommunikatorlar, planshetli
kompyuterlar, elektron kitoblar, raqamli musiqa uskunalari, qo‗l soatlari,
netbuklar va smartbuklar uchun portativ (tarmoqli) operatsion tizimdir.
Keyinchalik Google Open Handset Alliance (OHA) alyansini tashkil qildi, u
hozirda ham platformani qo‗llab-quvvatlash va yanada rivojlantirish bilan
shug‗ullanadi. Android Google tomonidan ishlab chiqilgan kutubxona orqali
qurilmani boshqaruvchi Java-ilovasini yaratishga imkon beradi. Android Native
Development Kit Si va boshqa tillarda yozilgan ilovalarni yaratadi[1].
2012-yilning uchinchi choragida sotilgan smartfonlarning 75 foizida
Android operatsion tizimi o‗rnatilgan.
Android operatsion tiziminig ustunliklari:
10
- Ba‘zi sharhlovchilar Android qator hollarda veb-syorfing, Google Inc.
servislari bilan mosligi kabi va boshqa xususiyatlari bilan o‗z
raqobatchilaridan biri Apple iOS kompaniyasiga qaraganda o‗zini yaxshi
namoyon qilishini aytadilar. Android, iOS ga nisbatan ochiq platforma
hisoblanadi, bu holat unda ko‗proq funksiyalarni amalga oshirishga
imkon beradi;
- iOS va Windows Phone 7 dan farqli ravishda, Androidda fayllarni qabul
qilish va uzatishga ham imkon beruvchi Bluetooth oqimini to‗la amalga
oshirish mavjud. FTP-serverini, tarmoqqa ulanish nuqtasi rejimi (PAN
xizmati) va Bluetooth orqali guruhli birinchi darajali tarmoqni (GN
xizmati) amalga oshirish mavjud;
- Android-apparatlarida, odatda, USB va xotira kartalarini olmasdan turib
boshqa uzatish usullari tezlik cheklanishlaridan qat‘iy nazar kompyuter
fayllarini tezlikda telefonga ko‗chirishga imkon beruvchi, MicroSD-
kardrider mavjud; bundan tashqari, iOS va Windows Phone 7
sinxronlashtirish dasturi (iTunes va Zune), orqali amalga oshirishdan
tashqari, biror-bir fayllarni telefonga/telefondan to‗g‗ridan-to‗g‗ri uzatish
mumkin emas, Android operatsion tizimidagi telefonlar esa xotira kartasi
fayllar tizimini USB mass storage device («fleshka») kabi uzatish
imkoniga ega;
- Аvvaldan dasturni «tekshirilmagan manbalardan» (misol uchun, xotira
kartasidan) o‗rnatish taqiqlanishiga qaramay, ushbu cheklash apparat
sozlashlarida doimiy vositalar yordamida o‗chiriladi, bu holat esa
internet-ulanishlarsiz dasturlarni telefonlar va planshetlarga o‗rnatishga
imkon beradi (misol uchun, Wi-Fi-ulanish nuqtalariga ega bo‗lmagan va
odatda juda qimmat turadigan mobil internetga pul sarflashni
istamaydigan foydalanuvchilar uchun), hamda barcha istaganlarga
Android uchun ilovalarni bepul yozish va o‗z apparatida test sinovlaridan
11
o‗tkazish imkonini beradi, shu bilan birga, iOS va Windows Phone 7 da
hatto o‗z dasturlarini tarqatish istagi bo‗lmaganda ham loyihachining
qayd etish ro‗yxatini sotib olishi kerak bo‗lardi;
- Androiddan ARM, MIPS, x86 kabi turli apparatli platformalarda
foydalanish mumkin;
- Ilovalar boshqa muqobil Google play magazinlari mavjud, misol uchun
Amazon‘dan Appstore for Android, Opera Store, Yandex.Store[2].
Android operatsion tizimi uchun telefonlar ishlab chiqarish:
Hozirda bir qancha kompaniyalar Android uchun o‘z telefonini sotuvga
chiqarmoqda, masalan HTC kompaniyasining Dream, Magic, Droid hamda
Motorola kompaniyasining Motorola Droid telefonlaridir.
Motorola Droid chiqarilganidan so‘ng birinchi haftadayoq Motorola
kompaniyasi 150000 ta telefonni sotishga ulgurdi[3].
Android grafik rejimi va animatsion muhiti qolgan iPhone, Windows
mobile sistemalari darajasiga ko‘tarish maqsadida shu sistemalarning dasturiy
ta‘minotidan Androidda ham yaratila boshlandi masalan ―compass‖. Siz
―compass‖ni 99$ lik iPhonda uchratmasligingiz mumkin lekin buni 99$ lik
Droid telefonlariga tekin yuklab olishingiz yoki standart o‘rnatilgan kompasdan
foydalanishingiz mumkin. Hozirgi kunda HTC Droid telefoni Amerikada 50$
ga arzonlashishga ulgurdi. Shu kabi telefonlarning narxlari va xususuiyatlari
jadvalda solishtirilgan(Ilova 4).
Android operatsion tizimi uchun yaratilgan dasturlardagi qo`shimcha
qulayliklar:
Oddiy foydalanuvchi uchun yana ko‘plab dasturiy ta‘minotlar yaratilgan
bo‘lib bular sizga bir qator qulayliklar yaratishga xizmat qiladi. Masalan,
Quickpedia – Wikipedia bilan ishlash uchun yaratilgan. Bunda dastur Wikipedia
12
sahifasini sizning telefon ekrani hajmiga moslashtirib ko‘rsatadi, siz ko‘rgan
maqolaning matnini xotiraga saqlab qo‘yish imkoniyati mavjud.
Life360 – sizga qaysidir butun rayon bo‘ylab ma‘lumot uzatishga yoki
qabul qilishga yordam beradi, dastur ko‘proq tog‘lik hududlarda xatardan ogoh
qilishda kerak bo‘ladi masalan siz tog‘lik hududlarni o‘rganuvchi tadqiqotchisiz
qishloqni qor bosish xavfini hisoblab chiqib buning 70% aniqligiga ishonch
hosil qildingiz shunda dastur orqali butun qishloqdagi fuqarolarning mobil
telefoniga ogohlantirish uzatishingiz mumkin.
Locale – sizni har daqiqada bezovta qiladigan telefonni nazorat qiluvchi
dastur bo‘lib telefoningizni qaysi hududda qanday rejimda bo‘lishini belgilab
qo‘yasiz, natijada GPS orqali nazorat qilinayotgan telefoningiz belgilangan
hududga kirganda tebranish rejimida ishga tushadigan yoki qo‘ng‘iroq rejimida
ishga tushadigan bo‘ladi[4].
Endilikda Android yana bir imkoniyatini taqdim qildi, ya‘ni Microsoft
Office 2007 Word, Excel va PowerPointda yaratilgan fayllarini o‘qish va
ularni telefoningizning o‘zida yaratishingiz uchun QuickOffice dasturi yaratildi,
siz bu dastur bilan bemalol Word, Excel va PowerPointda yaratilgan fayllarni
o‘qib ularga o‘zgartirishlar kiritib xotiraga saqlab qo‘yishingiz mumkin[5].
1.2 . Android tizimida ishlovchi milliy resurslar tahlili
Hozirgi kunda har bir kishi o`z mobil telefoniga ega va biz telefonlarning
rusumlari haqida ko`p eshitganmiz. Telefonlarning rusumlariga qarab
tanlaymiz va narx ham shunga bog`liq deb o`ylaymiz. Mobil telefonning narxi
bir jihatdan unda ishlayotgan operatsion sistemaga ham
bog‘liqdir. Telefonimizda ishlayotgan dasturiy ta‘minot nafaqat uning narxiga,
balki telefonning boshqa xususiyatlari va qulayliklarini ham
belgilab beradi. Bugungi kunda mobil tizimlar sohasida qo‘llanilayotgan
13
asosiy dasturiy ta‘minotlar Symbian, Windows Mobile, iPhod systemasi,
Android, Web OS va yana bir ochiq kodli yosh sistema Samsung
Electronics ning kechagina yaratilgan Bada sistemasi. Bugungi kunda juda
tez ommalashayotgan, mobil qurilmalar uchun yaratilgan ochiq kodli operatsion
sistema – Android tizimidir[6].
Android tarixi (Operatsion Sistemaning yaralishi va bosgan yo‟li)
1991-yil Linus Torvalds boshlab bergan erkin va ochiq kodli operatsion
sistemalar 2007 yilga kelib telefonlarni ham egallay boshladi. Aslida bu
qanday boshlangan edi? 2005-yil iyul oyida Google kompaniyasi telefonlarga
dastur ishlab berish bilan shug‘ullanadigan Android Inc. nomli kichik
kompaniyani sotib oladi. Ushbu Android Inc. kompaniyasining
asoschilaridan biri Andy Rubin bugungi kunda Googlening mobil aloqalari
bilan shug‘ullanuvchi bo‘limiga rahbarlik qiladi. Andy Rubin Biznes haftaligi
(Business Week) gazetasiga bergan interviuvsida: ―Egasini yaxshi
tushunadigan telefonlar yaratish uchun katta ehtiyoj mavjud‖ deb ta`kidlab
o`tgan edi. Buni qarangki haqiqatdan ham 2007 yilga kelib Google
butun dunyoni hayratga solishga muvoffaq bo‘ladi, ya‘ni xuddi shu yili u
Symbian, Windows mobile, iPhone sistemalari bilan raqobatlasha oladigan
yangi mobil sistemaga asos soldi. Siz ―Xo‘sh nima qipti, telefon operatsion
sistemalari (OS) yana bittaga ko‘payiptida!‖ deyishingiz mumkin.
Haqiqatdan ham bittaga ko‘padi-yu ammo ulardan butunlay farq qilar edi. Bu
farq unig asosida Linux Kernel 2.6 dan foydalanilganida edi. Ha endi Linux
kompyuter yoki notebuklarda telefonlarda ham mavjud. Shu tariqa 2007 yil
noyabrda Google tomonidan tashkil etilgan Open Handset Alliance
(OHA) ommaga Google Androidning Software Developing Kit(SDK)ni taqdim
etdi. OHAga birinchilardan bo‘lib HTC, LG, Samsung, T-mobile kabi
kompaniyalar, keyinroq esa protsessorlar va chiplar bo‘yicha ishlovchi
QUALCOMM va Texas Instrumentslar a‘zo bo‘lishdi.
Hozirda OHAga 47 ta dasturiy va texnik qismlar bilan
14
ishlaydigan kompaniyalar a‘zo bo‘lgan. 2008-yil 21-oktabrda programistlarni
quvontiradigan voqea yuz berdi, ya‘ni OHA Androidni ochiq kodli deb
e‘lon qildi. Android OHA GPLv2 va Apache2.0 litsenziyalari ostida 1.5
versiyasi butun ommaga taqdim etildi[7].
Hozirda O`zbekistonda ham Android operatsion tizimi foydalanuvchilari
ko`payib borayabti, lekin bu foydalanuvchilar uchun Android operatsion
tizimida ishlovchi, O`zbek tilidagi milliy dasturlar yetishmovchiligini
ko`rishimiz mumkin. Men bu bitiruv malakaviy ishim bajarish davomida bir
necha o`zbek tilida yaratilgan dasturlarni ko`rib chiqdim. Ular quyidagilar:
―Itchan Kala‖ dasturi Android telefonlari uchun Xoramz viloyati rasmlar
galereyasini taqdim etgan. Dastur Ingliz tilida tuzilgan. Undan faqatgina rasmlar
ko`rish va rasmlarni ―wallpaper‖ sifatida o`rnatish mumkin.
1-rasm. “Itchan Kala” dasturi ko`rinishi
―3D Uzbekistan flag live wallpaper‖ dasturi Android tizimida ishlovchi
telefonlar uchun Ingliz tilida tuzilgan. Dasturdan faqat telefonga O`zbekiston
bayrog`ini harakatlanib turuvchi ―wallpaper‖ sifatida o`rnatish mumkin.
15
2-rasm. “3D Uzbekistan flag live wallpaper” dasturi ko`rinishi
―Uzbekistan wallpapers‖ dasturi ham Android tizimida isglovchi
telefonlar uchun mo`ljallangan. Dastur Ingliz tilida tuzilgan. Dasturdan faqat
O`zbekiston rasmlarini telefonda ko`rish va ularni ―wallpaper‖ sifatida
o`rnatishda foydalanish mumkin.
3-rasm. “Uzbekistan wallpapers” dasturi ko`rinishi
Android operatsion tizimi uchun yaratilgan dasturiy qurilmalarning oziga
xosligi va xususiyatlari
16
Android dasturiy ta‘minotini ishlab chiqishda Googlening
Java biblatekalaridan, mikroprotsessor kodi esa ARM arxitekturasida C
dasturlash tilida va uni mashina kodiga o‘girishda GCC kompilyatoridan
foydalniladi. Android grafikasi va animatsiya uchun ham ochiq kodli
bo‘lgan OpenGL ES biblatekalaridan, ma‘lumotlarni saqlash va boshqarish
uchun SQLitedan foydalanilgan. Sistema MP3, MP4, MIDI, OGG, MPEG-4,
WAV, formatidagi audio va video fayllarni hamda JPEG, PNG, GIF,
BMP farmatli suratlarni qo‘llab quvvatlaydi. Androidning 1.5- versiyasida
sizga YouTubega videolarni yuklash va ekranda animatsion rejimda
ishlash mumkin edi.
2009-yili 15 sentabrda taqdim qilingan Android 1.6 versida Google
dasturiy vositalari qo‘llanilgan bo‘lib, tezkor qidirish maqsadida ekranning
yuqorisida ―quick search‖ box joylashtirilgan. Yozishga
erinadiganlar uchun esa tovush bilan qidirish texnologiyalari qo‘llanilgan. 2010-
yilning Oktabrida Android 2.0 ommaga taqdim qilindi. Bu versiya
Telefonning protsessor tezlgini oshirish va telefon
protsessorining samarali ishlashini ta‘minladi. Ishlab chiqilgan yangi
Androidda kontakt listda endi kontakt nomi bilan birgalikda uning rasmini
ham qo‘yishingiz mumkin va siz bu kontaktning ustiga bossangiz alohida
qismdan uni joylashgan joyini aniqlashda, Gmail orqali xat yo‘llashda va
qo‘ng‘iroq qilishda foydalanishingiz mumkin. Androidda
Internetdan foydalanish uchun aynan shu sistema uchun yaratilgan
WebKit brauzeridan foydalaniladi, endilikda bu brauzer HTML5ni ham qo‘llab
quvvatlaydi. Google sistemani yaratishga yaratdiyu sistemani asosan o‘zining
dasturiy vositalari bilan to‘ldira boshladi. Masalan Google Voice tovush
xizmatlari uchun, Sky Map yulduzlar xaritasi, Google qidirish xizmati,
Google Maps xaritalari va Gmail kabilardir. Android foydalaniladigan dasturiy
ta‘minoti Javada yozilgan bo‘lib, yaratatilgan dasturni mashina kodiga o‘girish
17
uchun standart Java Virtual Machinedan emas Android uchun yaratilgan
Dilvak Virtual Machinedan foydalaniladi[8].
Android dasturining afzalliklari:
- Android operatsion tizimida ishlovchi mobil qurilmalar Gmail, Google
Docs, Maps va boshqa Google kompaniyasining xizmatlari bilan to‘liq
ishlay oladi.
- Android market hozirgi kunda eng zo‘r dasturiy ta‘minot Web-saytlaridan
hisoblanadi va Android uchun juda ko‘p bepul dasturlar mavjud.
- Android kommunikatorlari yordamida xohlagan mobil aloqa operatorini
tanlash imkoniyati mavjud.
- Android platformasi paydo bo‘lganiga uncha ko‘p vaqt bo‘lmagan bo‘lsa
ham, u anchagina ko‘p imkoniyatlarni taqdim etadi va shunga yarasha
Androidda ishlaydigan qurilmalarni narxi ham unchalik baland emas.
- Android bu to‘liqligicha ochiq operatsion tizim hisoblanadi.
- Android ko‘p jarayonli operatsion tizim, ya‘ni unda bir vaqtning o‘zida
bir necha dasturlar ishlash imkoniyati mavjud.
- Android qurilmalarini hammasida virtual klaviatura mavjud. Ba‘zi
Android qurilmalarida ham virtual, ham haqiqiy klaviatura mavjud
bo‘ladi.
- Android operatsion tizimi faqatgina kommunikatorlarda emas, balki
planshet kompyuterlar, netbuklar va boshqa gadjetlarda ham ishlay
oladi[9].
1.3 . Masalaning qo`yilishi va dolzarbligi
Yuqoridagi ma`lumotlardan ko`rinib turibtiki Android operatsion tizimida
ishlab chiqarilgan dasturlar XXI asrdagi eng ko`p ishlatiladigan, ommalashib
borayotgan dasturlar sarasiga kiradi. Demak, O`zbekiston uchun Android
tizimida yaratilgan milliy- zamonaviy dasturlar ishlab chiqish informatika va
18
axborot texnologiyalari sohasidagi barcha dasturlovchilar uchun birinchi
darajali masalalardan hisoblanadi. Shu maqsadda biz ham Android tizimida
ishlovchi O`zbekistonning ko`zga ko`ringan, hozirgi kungacha o`z qadrini
yuqotmagan, milliy boyliklarimiz sanalgan, shuningdek, jahonga ko`z-ko`z
qilishga arziydigan mustajob qadamjolar, osori atiqalarimiz haqida
tanishtiruvchi, ular haqida yetarlicha ma`lumot beruvchi, shu bilan birga,
O`zbekiston haqida on-line rejimida ma`lumot beruvchi dastur yaratishni lozim
deb topdik.
19
II BOB. MILLIY RESURSLARNI TASHKILLASHTIRISH VA
BOSHQARISH STRUKTURASINI ISHLAB CHIQISH
2.1. Tanlangan obyektning strukturasini ishlab chiqish
Android operatsion tizimining yana bir afzalliklaridan biri shundaki,
unda tanlangan obyekt strukturasini dastur orqali realizatsiya qilishda ancha
imkoniyatlar mavjud(Android tizimi arxitekturasi (Ilova 1).
Dastur strukturasi avtomatlashgan holda tizim tomonidan yaratiladi,
dasturlovchi esa dastur tuzish jarayonida dastur obyektlarini mantiqan
bog`lanish bosqichlarini to`g`ri tanlay bilishi va modullar orqali uzatilishi kerak
bo`lgan parametrlarni to`g`ri tanlab uzata olishi yetarlidir. Quyida dastur
strukturasidan misollar keltiramiz:
4-rasm. Dasturning LocKScreengacha bo`lgan strukturasi
20
5-rasm. Dasturning List View qismi strukturasi
21
6-rasm. Dasturning Dasturning ImageView gacha bo`lgan strukturasi
22
7-rasm. Dasturning Buttonlargacha bo`lgan strukturasi
2.2. Ma`lumotlar yaxlitligi va ishonchliligi
Android operatsion tizimida dastur tuzish jarayonida ma`lumotlar yaxlitligi
va ishonchligi himoyasini oshirish uchun Eclipse dasturlash muhitini o`rnatish
jarayonida dasturlar uchun alohida fayl yaratish so`raladi va dasturlash muhitida
tuzulgan va tuzulayotgan dasturlar shu faylda saqlab boriladi. Har bir dastur
23
fayli alohida bo`lib, bu fayl ham o`z navbatida ichidagi saqlanadigan
ma`lumotlar turiga qarab bir necha, fayllarga bo`linadi.
8-rasm. Eclipse dasturlash muhiti “Package Explorer” oynasi
4-rasmdagi ―Package Explorer‖ oynasida bir dastur fayllari ko`rsatilgan
bo`lib, bular:
- ResUz – Android Project nomi, dasturning asosiy fayllari
saqlanadigan fayl nomi ham avtomatik tarzda shunday
nomlanadi;
- src – bu fayl ichida dasturda ishlatiladigan asosiy .java classlar
saqlanadi. Bu classlar ―Package name‖ box sida ozgan uch qismli
paketi ichma ich joylashgan qismida ochiladi;
- gen – ya`ni Generated Java Files, biz dasturda foydalangan vosita
va komponentalarmizni o`zida id orqali saqlab olib, biz murojaat
qilganda chaqiradigan asosiy R.java fayli saqlqnqdi;
- Android2.2 – bu faylda dastur API darajalarining paketlar
jamlanmasi saqlanadi va widjetlar orqali murojaatni amalga
oshiradi;
- assets – bu faylda dasturda foydalaniladifan html, css va boshqa
yordamchi ta`minotni amalga oshiruvchi vositalar saqlanadi;
- bin – bu faylda class flayllari va res fayli joylashgan bo`ladi;
24
- res – bu fayl ichida biz .java class larda asos sifatida
ishlatadigan .xml fayllari, menular uchun fayllar, ―drawable‖
fayllari ya`ni rasm va iconkalar saqlanadigan fayllar bo`ladi;
- AndroidManifest.xml – faylida dasturda yaratilgan barcha
classlarni grafik shaklda ko`rish uchun joriy etamiz.
Bu fayllar ichida saqlanadigan class fayllarimiz biz yaratgan paketlar
ketma-ketligida ichma-ich saqlanadi va yaratgan dasturimizni ham
foydalanuvchi Google Marketlardan olib foydalanganda ham dastur faqat
telefonning xotirasida saqlanadi.
Bulardan ko`rinib turibtiki, Android operatsion tizimi ochiq kodli
operatsion tizim bo`lishiga qaramasdan ma`lumotlar yaxlidligi va ishinchliligi
yaxshi himoyalangan.
25
III BOB. MILLIY RESURSLARNI TASHKILLASHTIRISH VA
BOSHQARISHNI JAVA DASTURLASH TILI ANDROID TIZIMI
MISOLIDA DASTURIY JORIY ETISH
3.1. Dasturlashtirish tilini tanlash va qo`yilgan masalani dasturiy joriy
qilish
Hozirgi kunda Android bozori ancha rivojlanib bormoqda. Har oyda
Android bozoriga chiqayotgan dasturlar soni ikki barobar ko‘payishi, hamda
juda ko‘p Android uyali aloqa vositalari va planshetlarini ishlab chiqilishi yaqin
orada bu rivojlanishni to‘xtab qolishidan emas, balki aksidan darak beradi.
Bu rivojlanishlar orasida kompyuter texnologiyalariga qiziquvchan, yohud
sohasi shunga yaqin bo‘lgan har bir foydalanuvchi o‘zining mobil aloqa
vositasiga dastur yozishga qiziqib ko‘rsa kerak. Android dasturlari Java
dasturlash tili yordamida yozilib, dasturlash olamiga endi qadam
qo‘yayotganlar uchun nisbatan oson tildir.
Android dasturlari boshqa mobil aloqa vositalari uchun yozilgan
dasturlar singari kompyuterda yozilib, kompilyatsiya qilinadi va tekshirish
uchun mobil aloqa vositasi (u hoh sizning telefoningiz yoki planshetingiz
bo‘lsin) ga yuklanadi. Agar sizda telefon ham, planshet ham bo‘lmasa, unda
komp‘yuterni o‘zida Android qurilmani emulyatsiya qilib, usha emulyator
yordamida tekshirishingiz mumkin.
Android dasturlari Java dasturiy tizimida tuziladi. Android uchun
Windows, MacOS, Linux operatsion tizimlarida dastur tuzish mumkin.
Dasturlash muhiti sifatida Eclipse dasturidan foydalanish tavsiya etiladi.
Android operatsion tizimiga dastur tuzish uchun kerakli vositalarni keltirib
o‘tamiz[10].
Bular:
26
1. JRE (Java Runtime Environment);
2. JDK (Java Development Kit);
3. Eclipse dasturlash muhiti;
4. Android SDK (Android Software Development Kit);
5. ADT (Android Development Tools).
JRE. Java tilida yoziladigan dasturlarni yoqish va ishlatish uchun
kompyuterlarda JRE(Java Runtime Environment), ya‘ni Java ishlash
muhitini o‘rnatish kerak.
JDK. Java tilida dasturlar tuzish uchun JDK (Java Development Kit) ya`ni
Java dasturlash jamlamasini o‘rnatish lozim. JDKning ichida Java
kompillyatori, Java bibliotekalari, har xil utilitalar, misollar va
dokumentasiyasi bo‘ladi. Lekin JDKni ichiga Java dasturlash muhiti
kirmaydi.
Eclipse. Javada dastur tuzish uchun Eclipse ni ishlatamiz. Android uchun aynan
Eclipse dasturlash muhitini tavsiya etilishining sabablari:
Birinchidan, Eclipse bepul hamda Eclipse da ishlashni o‘rganib olish
juda oson.
Ikkinchidan, Google kompaniyasi aynan Eclipse uchun ADT plaginini
ishlab chiqargan.
ADT. ADT yordamida Eclipse da Android proyektlarini tuzish, kompillyatsiya
qilish va Android qurilmalarining emulyatorlaridan foydalanish
mumkin. ADT plaginini kompyuterga o‘rnatishimiz bilan Android
proyektlari uchun avtomatik tarzda sozlab qo‘yiladi.
Android SDK. Androidda dastur tuzish uchun android SDK dastur tuzish
jamlanmasi kerak bo‘ladi. Android SDK ning ichida Android
qurilmasining emulyatori ham mavjud. Shuning uchun Androidda
dastur tuzmoqchi bo‘lsak, bizda haqiqiy kommutator bo‘lishi shart
emas, dasturni bemalol virtual qurilmada sinab ko‘rish mumkin[11].
27
Google Androidda dastur yozish uchun yuqorida keltiriladigan
dasturlarni yuklab olish va ularni bir-biriga moslashtirish kerak. Quyida kerakli
dasturlarni yuklab olish va ularni o`rnatib, bir-biriga moslashtirish keltirib
o`tiladi:
1-bosqich: Eclipse
Dasturni yozish uchun avvalambor sizga Integrated Development
Environment (IDE) kerak bo‘ladi. Hozirda Eclipse IDE keng tarqalgan, lekin
siz Eclipse dan foydalana olmagan bo‘lsangiz, NetBeans dan foydalanib
ko‘rishingiz mumkin. Eclipse IDE ni quyidagi linkdan sistemangizning
xususiyatlaridan kelib chiqqan xolda tanlab olishingiz mumkin:
http://www.eclipse.org/downloads/
2-bosqich: Java JDK
Agar sizning kompyuteringizda Java JDK o‘rnatilmagan bo‘lsa, Java
JDK ko`chirib olinadi:
(http://www.oracle.com/technetwork/java/javase/downloads/jdk6-jsp-
136632.html )
Va o`rnatiladi: Next-> Next-> Finish
3-bosqich: Android SDK Tool
Endi sizga Android SDK Tool kerak bo‘ladi. Uni to‘g‘ridan to‘g‘ri
Google‘dan olishingiz mumkin:
(http://developer.android.com/sdk/index.html)
4-bosqich: Eclipse‟ni Android uchun moslashtirish
Eclipse ishga tushiriladi va Help-> Install New Software (yangi dasturiy vosita
o‘rnatish) menusini tanlanadi. ―Add…‖ tugmasini bosganimizdan keyin
28
9-rasm. Yangi dasturiy vosita o`rnatishda “Add Repository” oynasi
Yuqoridagi9-rasmda ko‘rsatilganidek, dasturiy vosita nomiga ―Android‖ deb,
linkka esa “https://dl-ssl.google.com/android/eclipse/” deb yoziladi (agar link
ishlamayotgan bo‘lsa, ―https‖ ni o‘rniga ―http‖ deb yozsa ham bo‘ladi).
10-rasm. “Install” oynasi
―OK‖ tugmasini bosganizda 6-rasmdagi oyna ochilishi kerak:
29
Barcha paketlarni tanlab, ―Next‖ ni bosganimizdan so‘ng, ―Development
Tools‖ lar ko‘chirila boshlaydi. Ko‘chirib bo‘lganidan so‘ng, Eclipse ni
o‘chirib, qaytadan ishga tushiramiz.
5-bosqich: Android SDK ni moslashtirish (configure)
Android SDK ni ko‘chirilib, arxiv ochilgan papkadan ―SDK
Manager.exe‖ degan faylni topib, uni ishga tushiramiz. Quyidagiga o‘xshash
dialog yoqiladi:
11-rasm. “Choose Package to Install” oynasi
Ko‘rsatilgan paketlarning hammasini o‘rnatishimiz shart emas. 2.1 va 2.2
versiyalarni o‘zi yetarli bo‘ladi (3.1 ni ham olishingiz mumkin). O‘zingimizga
kerakli bo‘lgan SDKni tanlab, uni o‘rnatammiz (―Install‖ tugmasi bosiladi).
SDKni o‘rnatish ancha vaqt talab qiladigan jarayon bo‘lib, o`rnatilish
jarayonida kompyuterimiz Internetga ulangan bo`lishini talab qiladi.
6-bosqich: Virtual Android qurilmani ishga tushirish
30
Bu bosqichda biz virtual Android qurilmani ―emulyatsia‖ qilamiz.
Buning uchun SDK manager dagi ―Virtual devices‖ tugmasi bosiladi. ―New‖
tugmasi bosilganidan keyin, bu virtual qurilmaning ba‘zi parameterlarni
so‘raydigan oyna ochiladi. Unda biz o‘zimiz xohlagan qurilmani ―yasashinmiz‖
mumkin:
12-rasm. Create new AndroidVirtual Device (AVD) oynasi
―Create AVD‖ tugmasi bosilganda virtual Android qurilmani yasaydi.
Biz uni virtual qurilmalar listidan ko‘rishinmiz mumkin. Uni tanlab, ―Start‖
tugmasi yordamida ishga tushiramiz. Bir qancha vaqt ―ANDROID‖ belgisini
31
ekranda chiqib turadi so‘ng, quyidagiga o‘xshash oyna ochiladi:
13-rasm. Virtual telefon (emulyator) ko`rinishi
7-bosqich: Yana Eclipse ga qaytamiz
Bu bosqich oxirgi bosqich bo‘lib, bunda biz Eclipse ni Android SDK
resurslarini ishlata oladigan qilib moslashimiz kerak. Buning uchun Eclipse ni
ochib, Window->Preferences ni ochib, undan Android ni tanlaymiz (General
menyusining yonida). Android SDK arxivdan chiqarilgan papkaga bo‘lgan
yo‘lni (path) quyida berilganidek qilib ko‘rsatib, ―OK‖ tugmasi bosiladi[12].
32
14-rasm. “Preferences” oynasi
Mobil telefonlar uchun Google Androidda dasturlash.
Resurslar katalogi.
res/drawable/ - tasvirlar (rasm) uchun (png, jpeg va boshqalar);
res/layout/ - XML-fayl razmetkalari uchun (ilovalar oynasi grafik elementlarini
boshqarish);
res/menu/ - XML-fayl menyulari uchun;
res/values/ - satrli resurslar va massivlar uchun;
res/xml/ - ilovani ishlab chiqishda kerak bo‘ladigan boshqa XML-fayllar uchun
33
Manifest – strukturalashgan XML-fayl bo‘lib, u ilova konfiguratsiyasini
belgilaydi: ilova komponentlarini e‘lon qiladi,.
Android ilovalari komponentlari 4 turga bo‘linadi. Ular quyidagilar:
1. Activity – faoliyat;
2. Service – xizmat;
3. Broadcast Reciever – keng hajmda ma‘lumotlar tarqatish;
4. Content Provider – Kontent provayder.
Activity – ilovalar uchun foydalanuvchi visual interfeysi – oynani o‘zida
aks ettiradi. Oyna mobil qurilmani to‘liq egallaydi, biroq o‘lchamni o‘zgartirish
mumkin. Barcha jarayonlar Activity klassining ostklass sifatida o‘zlashtiriladi.
Ilovalar esa o‘zida bir qancha jarayonlarni saqlaydi.
Activity –har xil action – harakatlarni amalga oshirish uchun ishlatiladi.
Istalgan dastur bir qancha ―action‖lardan iborat bo‘lishi mumkin, lekin
foydalanuvchi bir vaqtning o‘zida ulardan faqatgina bittasi bilan aloqada
bo‘ladi. onCreate() funktsiyasiga ―activity‖ birinchi marotaba xosil
qilinayotganda murojaat etiladi. Bu funktsiyaning vazifasi Java‘dagi main()
funksiyasining vasifasiga o‘xshash.
Aktiv jarayon bu –
- foydalanuvchining bevosita ta‘siri jarayoni;
- foydalanuvchi ta‘siriga xizmat ko‘rsatish jarayoni;
- Service obyekti jarayoni. Obyektdagi muayyan bir qayta aloqa amalga
oshadi;
34
15-rasm. BroadcastResiever obyekti jarayoni
Ko‘rinib turuvchi jarayon (visible process) ushbu jarayon komponenti
foydalanuvchi tomonidan chaqirilishi mumkin.
- bu faoliyat jarayoni fokusda aks etmaydi, lekin foydalanuvchiga
ko‘rinib turadi. Bu dialog ortidagi foydalanuvchiga ko‘rinib turadigan
faoliyat.
- Bu xizmat joriy vaqtda amalga oshirilayotgan faoliyat tomonidan
yopilgan faoliyat.
Manifestning umumiy strukturasi. Manifest fayli android ilovalarining
umumiy arxitekturasini, funktsional imkoniyatlari va konfiguratsiyasini
inkopsulatsiya qiladi. Ilovalarni ishlab chiqarish jarayonida doimiy ravishda
faylga yangi element va atributlar qo‘shish bilan uning tuzilishi (strukturasi)ni
o‘zgartirishga o‘g‘ri keladi. Shuning uchun manifestning ichki strukturasini
to‘g‘ri tashkil qilish lozim.
Foydalanuvchi grafik interfeysi. Android ilovalarida foydalanuvchi grafik
interfeysi View hamda ViewGroup obyektlaridan foydalanish orqali amalga
oshiriladi.
View obyekti android platformasida foydalanuvchi interfeysini
ifodalashning asosiy modulidir. View obyekti – ma‘lumotlar strukturasidir.
35
Eclipse uchun ADT plagini LayoutEditor nomli qulay vosita bo‘lgan visual
redaktorni taklif qiladi.
XML bilan ishlash
Android da XML – lug‘atdan foydalangan holda foydalanuvchi interfeysi
hamda ekran elementlarini loyihalash mumkin. Bunda ham HTML Web-sahifa
yaratish usullari qo‘llaniladi.
Har bir HML fayli View yoki ViewGroup obyekti bo‘lgan 1 ta asosiy
element saqlaydi. Asosiy element aniqlangach, unga qo‘shimcha elementlar
yoki vidjetlar qo‘shish mumkin. Bu elementlarni esa o‘z navbatida doimiy
ravishda tahrirlash mumkin. Misol:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<Button
android:layout_width=" wrap_content "
android:layout_height="wrap_content"
android:id=" @+id/Button1"
android:text="Ko`rsatish"
</Button >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="ResUzActivity"
</TextView >
</LinearLayout>
Ushbu misolda 1 ta asosiy element, ya‘ni <LinearLayout> va o‘z
atributlariga ega bo‘lgan 1 ta ost element hisoblangan <TextView>, ya‘ni matnli
maydon mavjud.
xmlns:android – Android muhitida umumiy atributlarni XML da e‘lon
qilish . Har bir fayldagi asosiy element o‘zida quyidagi qiymatli atributni
saqlashi lozim:
http://schemas.android.com/apk/res/android
android: layout_width Ushbu atribut ekran uchun ruxsat etilgan kenglini
ifodalaydi. Yuqoridagi misolda TextView yagona obyekt bo‘lganligi uchun ham
36
uni butun ekran bo‘ylab cho‘zish mumkin. Shuning uchun ham uning qiymati
"fill_parent" ni tashkil etadi.
android: layout_height mos ravishda ekran uzunligini belgilaydi.
android: text TextView da ifodalanishi lozim bo‘lgan matnni o‘rnatadi.
View va ViewGroup ning har bir obyekti xilma-xil XML-atributlarni
qo‘llab-quvvatlaydi.
Standart belgilar
Ilova yaratishda quyidagi standart belgilardan foydalaniladi:
- FrameLayout;
- LinearLayout;
- TableLayout;
- RelativeLayout.
Yuqoridagi barcha belgilar View klassidan meros olgan ViewGroup
ostklassi tarkibiga kiradi.
16-rasm. Belgilar klassi iyerarxiyasi
FrameLayout eng oddiy belgi turidan biri hisoblanadi. U asosi bo‘sh
bo‘lgan ekrandan iborat bo‘lib, keyinchalik uni View yoki ViewGroup ichki
obyektlari bilan to‘ldirish mumkin. FrameLayout ning barcha ichki obyektlari
ekranning yuqori chap qismiga biriktiriladi. FrameLayout belgisida View ichki
obyektlarini ekranning istalgan qismiga joylashtirish mumkin emas.
37
LinearLayout belgisi barcha ichki obyektlarni bir yo‘nalishda vertical
yoki gorizontal yo‘nalishda tekislaydi. Bu esa yo‘nalish atributi hisoblangan
android:orientation ga bog‘liqdir.
android:orientation = "horizontal" yoki
android:orientation = "vertical"
TableLayout belgisi o‘z ichki elementlarini qator va ustun shaklida joriy
etadi. TableLayout turli miqdordagi yacheykali qatorlarni hosil qiladi. Jadval
belgilarini tahrirlashda zarur hollarda yacheykalarni bo‘sh qoldirish mumkin.
Qator uchun belgi yaratishda TableRow obyektidan foydalaniladi.
RelativeLayout ichki elementning asosiy elementdan yoki boshqa
elementlardan farqli ravishda boshqacha pazitsiyaga ega bo‘lish imkonini
beradi.
RelativeLayout da ichki elementlar shunday joylashishi mumkinki,
masalan, bir element ekran markazini egallasa, boshqa elementlar birinchi
elementdan farqli ravishda ekran markazidan boshqa tomonlarda joylashadi.
Bunday hollarda identifikatoriga murojaat qilinishi yuzasidan boshqa
elementlarning ham pozitsiyasini belgilab beruvchi XML-faylidagi birinchi
belgi qolgan elementlardan avvalroq e‘lon qilinishi lozim.
Vidjet bu View obyekti bo‘lib, u bshqarsh elementi hisoblanadi. Android
fdalanuvchi interfeysini tashkil etuvchi tgma, matnli maydon kabi bir qator
tayyor vidjetlar jamlanmasini o‘zida saqlaydi.
Andriod da matnli maydon ikkita klass orqali ifodalanadi:
- Text View;
- Edit Text.
TextView vidjeti
TextView vidjeti foydalanuvchi tomonidan tahrirlash imkoniyati mavjud
bo‘lmagan matnli maydonni ifodalaydi. Matnni tahrirlash lozim bo‘lganda esa,
EditText vidjetidan foydalaniladi.
38
TextView va EditText klasslari View klassidan meros olgan holda bir
qator atribut va metodlarni saqlaydi.
17-rasm. Obyekt iyerarxiyasi
TextView vidjeti eng oddiy va ilovalarda eng ko‘p ishlatiladigan
vidjetlardan biri bo‘lib hisoblanadi. TextView foydalanuvchi uchun matnli
maydonni namoyish qiladi. Matn boshqa bir boshqaruvchi elementga
bog‘langan bo‘lishi yoki tizimning joriy holatini ifodalashi mumkin. Bundan
tashqari TextView elementi ro‘yhatli vidjet konteyneridagi matnli ma‘lumotni
ifodalovchi element sifatida ham ifodalanishi mumkin.
TextView ni belgilar faylida ifodalash uchun quyidagi atributlardan
foydalaniladi.
Misol, android:text = “Hello, Android!”
Dastur kodida esa matn setText() metodi yordamida ifodalaniladi:
// vidjetni resurslardan yuklab olish
TextView text(TextView) findViewById(R.id.text1);
// matnni bevosita dastur kodida keltirish
text.setText(―Hello, Android‖);
Agarda ilova yaratishda ko‘p tilli foydalanuvchi interfeysni qo‘llab-
quvvatlashi rejalashtirilgan bo‘lsa, matnniu bevosita XML-belgida yoki dastur
kodida keltirish o‘rniga matnli XML-resursga murojaatni tashkil qilish lozim.
android: text= ―@string/text_hello‖
bu yerda, text_hello – resurs nomi.
39
TextView elementida matn bilan ishlash uchun ko‘p sonli metodlar va
XML-atribytlar mavjud. Quyida TextView elementining xususiyatlarini
ifodalovchi XML-atributlar keltirilgan:
1. android:textSize – matn o‘lchami. Matn o‘lchamini belgilashda turli
o‘lchov birliklaridan foydalaniladi.
- px(pixels) – piksel;
- dp(density-independent pixels) – piksel hajmiga bog‘liq
bo‘lmaydi. Bu o‘lchovning abstrakt birligi bo‘lib, u ekranning
fizik hajmiga asoslangan.
- sp(scale-independent pixels)
- in(inches) – dyum, ekranning fizik o‘lchamiga asoslangan.
- pt(points) – 1/72 dyum, ekranning fizik o‘lchamiga asoslangan.
- mm(millimeters) – millimetr, ekranning fizik o‘lchamiga
asoslangan.
Odatda, matn o‘lchamini o‘rnatishda sp o‘lchov birligidan foydalaniladi.
Misol, android:textSize = ―48sp‖;
2. android:textStyle – matn ko‘rinishi. Bunda normal, bold, italic
konstantalaridan foydalaniladi.
3. android:textColor – matn rangi. Bunda o‘n oltilik sanoq tizimining 4 ta
formatidan foydalaniladi:
- #RGB
- #ARGB
- #RRGGBB
- #AARRGGBB
bunda, R,G,B – rang ko‘rsatkichi. A – shaffoflik(alpha-channel). A
qiymati uchun 0 ni o‘rnatish 100% shaffoflikni ifodalaydi. Jimlik
bo‘yicha alpha qiymatining o‘rnatilmaganligi element shaffof
emasligini anglatadi.
40
EditText vidjeti
EditText elementi foydalanuvchi kiritishi uchun mo‘ljallangan matnli
maydon hisoblanadi. EditText klassining asosiy metodi – getText() bo‘lib, u
EditText elementi maydonida mavjud bo‘lgan matn qiymatini qaytaradi.
Qaytarilgan qiymat Editable tipida bo‘ladi. Ushbu tip o‘zida ma‘lumot to‘ldirish
yoki o‘zgartirilishi mumkin bo‘lgan matn uchun interfeysni saqlaydi.
Shuningdek klassda matnni belgilash uchun bir qator metodlar mavjud:
SelectAll() – oynadagi barcha matnni belgilaydi.
SetSelection(int start, int stop) – matnning start holatidan stop holatigacha
bo‘lgan qismini belgilaydi.
SetSelection(int index) – kursorni index pozitsiyasiga joylashtiradi.
Matn bilan ishlash va uni formatlash uchun yaratilgan metodlarning
aksariyat qismi TextView bazaviy klassidan meros oladi. Ko‘p foydalaniladigan
metodlar esa, setTypeface(null, Typeface), setTextSize(int TypeSize),
setTextColor(int Color) bo‘lib hisoblanadi.
Tasvir bilan ishlash
Grafik tasvir bilan ishlashda ImageView vidjeti xizmat qiladi. ImageView
klassi resurs yoki content-provayderlar kabi turli manbalardagi tasvirlarni
yuklay oladi. Klassda tasvirlarni yuklash uchun bir nechta metodlar mavjud:
- setImageResource(int resId) – tasvirlarni uning resurs
identefikatori bo‘yicha yuklaydi.
- setImageURI(Uri uri) – tasvirni uning Uri si bo‘yicha yuklaydi.
- setImageBitmap(Bitmap bitmap) – rastrli tasvirni yuklaydi.
XML-fayl belgisidagi tasvirni yuklash uchun android:src atributi
qo‘llaniladi.
Bundan tashqari ImageView klassida tasvirlarning o‘lchamini o‘rnatish
uchun setMaxHeight(), setMaxWidth(), getMinimunHeight(),
getMinimunWidth(), getScaleType() va setScaleType() kabi bir qator metodlar
mavjud.
41
Hodisalarni boshqarish
Foydalanuvchi interfeysi mavjud bo‘lgan ilovalarda ma‘lum bir element
uchun hodisalarni boshqaruvchi va qayd etuvchi tahrirlagichni aniqlab olish
lozim.
View klassi har bir elelment uchun qayta aloqani tashkil qiluvchi yagona
abstrakt metodga ega bo‘lgan On…Listener() nomli interfeyslar majmuasidan
tashkil topgan. View klassi o‘zida 6 ta interfeysni saqlaydi.
- OnClickListener;
- OnLongClickListener;
- OnFocusChangelistener;
- OnKeyListener;
- OnTouchListener;
- OnCreateContextMenuListener.
Misol uchun, foydalanuvchi tomonidan bosilganda, tugma elementi uni
qabul qilishi uchun OnClickListener interfeysida klass jarayonni qayd etishi va
onClick() qayta aloqa metodida uni aniqlashi lozim. SetOnClickListener()
metodi yordamida esa hodisa ro‘yhatga olinadi.
button1.setOnClickListener(new View.OnClickListener()
public void onClick(View v) {
mText.setText(“Birinchi tugma bosildi!”);
)
Tugma va bayroqchalar
Android da tugma va bayroqchalar quyidagi klasslar yordamida e‘lon
qilinadi:
- Button
- CheckBox
- ToggleButton
42
- RadioButton
- ImageButton
Button klassi boshqaruv tugmasini ifodalaydi va u TextView dan meros
oladi. U CompoundButton klassi uchun bazaviy klass bo‘lib hisoblanadi.
CompoundButton klassidan esa boshqa tugmalar CheckBox, ToggleButton va
RadioButton kabi elementlar meros oladi.
18-rasm. Tugma va bayroqchalar classlari iyerarxiyasi
CompoundButton klassi ikki, checked va unchecked holatdagi tugmalar
uchun funktsional ifodalarni namoyish etadi. Tugmalar bosilgan holatda
ikkinchi holatga o‘zgaradi. CompoundButton klassi onCheckedChanged()
nomli yagona metoddan iborat bo‘lgan OnCheckedChangeListener interfeysini
o‘zida saqlaydi.
Button
Button klassi barcha boshqaruv elementlari ichida eng oddiy va eng ko‘p
foydalaniladigan klass hisoblanadi. Tugma ko‘p hollarda tahrirlash kodiga
OnClick hodisasini yozishni talab etadi.
package com.samples.button2;
43
import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
import android.view.View;
public class ButtonActivity extends Activity {
private TextView mText;
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mText (TextView)findViewById(R.id.text);
final Button button1 (Button) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener()) {
public void onClick(View v) {
mText.setText(“1-tugma bosildi”);
final Button button2 (Button) findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener()) {
public void onClick(View v) {
mText.setText(“2-tugma bosildi”);
}
RadioButton va RadioGroup
RadioButton vidjeti odatda RadioGroup konteyneri guruhi tarkibida
qo‘llaniladi. Radiotugmalar foydalanuvchiga bir nechta variantlardan birini
tanlash imkonini beradi.
Holatni o‘zgartiruvchi asosiy metod – toggle() bo‘lib hisoblanadi.
final RadioButton radio1
(RadioButton)findViewById(R.id.radio1);
44
final RadioButton radio2
(RadioButton)findViewById(R.id.radio2);
final RadioButton radio3
(RadioButton)findViewById(R.id.radio3);
mText (TextView)findViewById(R.id.text);
radio1.setOnClickListener(radioButton_Click);
radio2.setOnClickListener(radioButton_Click);
radio3.setOnClickListener(radioButton_Click);
OnClickListener radioButton_Click new OnClickListener()
public void onClick(View v) {
RadioButton rb (RadioButton)v;
mText.setText(“Select:” + rb.getText());
ToggleButton
ToggleButton vidjeti ikki holatdagi, ya‘ni yoqilgan va o‘chirilgan
holatdagi tugmalarni o‘zida ifodalaydi. Jimlik bo‘yicha tugma ON/OFF va
yoqilgan ON holati yashil rangga o‘zgarishini ta‘minlovchi LED-indikatorini
saqlaydi.
ToggleButton ning asosiy hususiyati – android:textOff va android:textOn
bo‘lib, tugmaga ikki xil holatni o‘rnatadi. Dastur kodida esa bunga setTextOff()
va setTextOn mos tushadi.
setChecked(Boolean checked) metodi dasturda tugma holatini
o‘zgartirish imkonini beradi. TuggleButton da asosiy hodisa tugma holatini
onCheckedChanged() deb belgilashdir.
ImageButton
ImageButton vidjeti o‘zida rasmli tugmani ifodalaydi. Tugma ustidagi
rasm <ImageButton> elementida android:src atributi bilan yoki dastur kodiga
setImageResource(int) metodini yozish bilan amalga oshiriladi.
Tugmaga tasvir o‘rnatish uchun kerakli tasvirni res/drawable/ papkasiga
joylash lozim. ImageButtonActivity klassiga esa quyidagicha kod yoziladi.
45
button (ImageButton)findViewById(R.id.button);
// tugmaga jimlik bo‘yicha tasvir o‘rnatish
button.setImageResource(R.drawable.play);
button.setOnClickListener(new View.onClickListener())
public void onClick(View v)
// tugmadagi tasvirni almashtirish
if (mPlay)
button.setImageresource(R.drawable.pause);
else
button.setImageresource(R.drawable.play);
mPlay !mPlay;
Yuqoridagi listingda foydalanuvchi tugmani bosganda tugmadagi tasvir
o‘zgarishi ifodalangan.
Zakladkalar
Androidda zakladkalar TabHost va TabWidget klasslari yordamida e‘lon
qilinadi.
19-rasm. Zakladka klasslarining iyerarxiyasi
TabHost vidjeti sahifadagi o‘zaro bog‘langan boshqaruv elementlarini
guruhlash imkonini beradi. TabHost TabWidget tipidagi elementlar uchun
konteyner vazifasini o‘taydi. Onalik formasi har bir sahifani leybllar ro‘yhati
46
sifatida namoyish etadi. Foydalanuvchi zakladkadan birontasini tanlaganda
ushbu obyekt TabHost konteyneriga tanlangan zakladkani yoqish haqida xabar
beradi. TabHost ning asosiy metodlari:
- setup() – zakladkalar konteynerini initsializatsiya qiladi. TabHost
findViewById() metodi yordamida yuklanilayotgan bo‘lsa, zakladka
qo‘shishdan avval setup() ni yozish lozim.
- addTab() – yangi zakladka qo‘shish.
- setCurrentTab() – berilgan zakladkani old o‘ringa qo‘yish.
Zakladkalar bilan ishlashdagi metodlarning aksariyat qismi TabWidget
klassida o‘zlashtiriladi. Zakladkalarda tabulyatsiya holatini belgilovchi
indikator, ma‘lumot to‘ldirish va teg mavjud bo‘lib, bular dastur kodini
identifikatsiyalashda qo‘llaniladi. Bularni TabSpec klassi ekzemplyarini
yaratgan holda aniqlab olish lozim.
TabHost.TabSpec spec tabs.newTabSpec(“tag1”);
spec.setContent(R.id.tabPage1);
spec.setIndicator(“Document 1”);
tabs.addTab(spec);
ProgressBar
ProgressBar boshqaruv elementi ilovalardagi uzoq davom etuvchi
jarayonlarning davom etish darajalarini ifodalash maqsadida qo‘llaniladi.
ProgressBar obyekti bilan ishlashdagi asosiy metodlar quyidagilardan iborat:
- setProgress() – jarayonga berilgan qiymatni o‘rnatadi.
- getProgress() – jarayonning joriy qiymatini qaytaradi.
- incrementProgressBy() – jarayonning o‘sish qiymati kattaligini
o‘rnatadi.
- setMax() – jarayon davomiyligiga maksimal qiymat o‘rnatadi.
Ma‟lumotlar adapteri
47
Vidjetlarda ma‘lumotlar massivini hosil qilishda ma‘lumotlar ro‘yhatini
o‘zaro bog‘lash va ularni vidjetlarda ifodalash uchun vidjetlardan adapterlardan
foydalaniladi. Ma‘lumotlarni bog‘lashdagi eng oddiy adapter ArrayAdapter<T>
klassi bo‘lib hisoblanadi. U ma‘lumotlar massivida qobiq hosil qiladi, misol
uchun:
String[] items = {―one‖, ―two‖, ―tree‖};
ArrayAdapter<String>adapter new ArrayAdapter<String>
(this, android.R.layout.simple_list_item_1, items);
ArrayAdapter konstruktori 3 ta parametrni qabul qiladi:
- Context obyekti – ilovalarning resurs va klasslarga maxsus
murojaatni amalga oshirish imkonini beradi.
- Resurslarni e‘lon qilishda foydalaniladigan identifikatorlar.
- Vidjetda List<T> obyekti tiplarini ifodalash uchun massiv yoki
ro‘yhat.
Jimlik bo‘yicha ArrayAdapter ro‘yhat obyekti uchun toString() metodini
chaqiradi va har bir satr uchun aniqlangan qobiqlarni yaratadi.
R.layout.simple_list_item_1 ushbu satrlarni TextView obyektiga aylantiradi.
Matnli maydon
Android da foydalanuvchi tomonidan to‘ldiriladigan matnli maydon 2
klass yordamida e‘lon qilinadi. Bular:
1. AutoCompleteTextView;
2. MultiAutoCompleteTextView
Ushbu klasslar matn bilan ishlovchi barcha metodlarni TextView
klassidan, tahrirlashda esa EditText klassidan meros oladi. Quyida
foydalanuvchi tomonidan to‘ldiriladigan matnli maydon klasslarining
iyerarxiyasi keltirilgan.
48
20-rasm. Matnli maydon klasslari iyerarxiyasi
AutoCompleteTextView vidjeti o‘zida foydalanuvchi tomonidan
to‘ldirish va tahrirlash imkoniyati mavjud bo‘lgan matnli maydonni ifodalaydi.
Shu kabi vidjetlar mobil ilovalar uchun juda qulay hisoblanadi. Chunki u
ilovalardagi matn kiritish jarayonlarini tezlashtiradi. AutoCompleteTextView
EditText ning ost klassi bo‘lganligi uchun ham matnni formatlash va
tahrirlashning barcha imkoniyatlarini yaratadi. Bundan tashqari
AutoCompleteTextView ning android:completion-Threshold hususiyati
foydalanuvchi tomonidan kiritilgan simvollarning minimal qiymatini o‘rnatadi.
MultiAutoCompleteTextView vidjeti AutoCompleteTextView vidjetining
funktsional imkoniyatlarini kengaytiradi.
Ma‟lumotlarni ro‟yhatda ifodalash
Androidda ro‘yhat elementlari 5 ta klass yordamida e‘lon qilinadi. Bular:
1. ListView
2. GridView
3. Gallery
4. Spinner
5. SlidingDrawer
49
21-rasm. Ro‟yhat klassi iyerarxiyasi
Bu konteyner vidjetlari AdapterView ning ost klasslari hisoblanadi.
Ushbu vidjetlar ma‘lumotlarning ma‘lum bir turini bog‘lashda va ularni
foydalanuvchilarga namoyish etishda qo‘llaniladi.
AdapterView klassi ro‘yhatlar bilan ishlash uchun 2 asosiy imkoniyatni
yaratib beradi:
- ma‘lumotlarni chizmalar bilan birga ifodalash;
- foydalanuvchi tomonidan tanlangan ma‘lumotlarni tartiblash.
AdapterView klassi AbsListView klassi uchun asos hisoblanadi. U
ro‘yhat va jadvallarni hamda tushuvchi ro‘yhat va aylanma yo‘lakli
galeriyalarni e‘lon qiladi.
ListView
ListView elementi o‘zida aylanma yo‘lakli vertical ro‘yhatni aks ettiradi.
ListView ro‘yhat bilan bog‘langan ma‘lumotlarni ListAdapter obyektidan qabul
qiladi. Bunda asosiy klass sifatida ListActivity klassi xizmat qiladi.
ListActivity klassi ma‘lumot manbaalari, misol uchun massiv va
ma‘lumotlar ro‘yhati elementlari tanlov hodisasini tartiblovchi qayta aloqa
metodlari bilan bog‘langan ro‘yhat elementlari ifodasini realizatsiya qiladi.
50
ListActivity jimlik bo‘yicha ekran bo‘ylab tortilgan yagona ro‘yhatdan
tashkil torgan. ListActivity obyektini ma‘lumotlar bilan bog‘lash uchun
ListAdapter interfeysini realizatsiya qiluvchi klass ishlab chiqish lozim.
Android ro‘yhatning ikki xil standart adapterini taklif qiladi, bular:
- SimpleAdapter;
- SimpleCursorAdapter.
SimpleAdapter unchalik katta bo‘lmagan ma‘lumotlarni statik bog‘lashda
qo‘llaniladi. SimpleCursorAdapter esa katta hajmdagi ma‘lumotlar tanlovini
ishlab chiqishda qo‘llaniladi.
Spinner
Spinner vidjeti Android uchun ComboBox(tushuvchi ro‘yhat)ning
analogi bo‘lib hisoblanadi. Bunda tugma bosilganda, butun ekranni
egallaydigan ListView elementidan farqli ravishda radiotugmasi mavjud
bo‘lgan alohida ro‘yhatli oyna hosil bo‘ladi.
Dasturda Spinnerning asosiy hodisasi ro‘yhat punktlaridan birini
tanlagandagi radiotugmalarning belgilanish hodisasi hisoblanadi. Buning uchun
dastur kodida AdapterView.OnItemSelectedListener interfeysida e‘lon
qilinadigan onItemSelected() qayta aloqa metodlarini realizatsiya qilishdan
iborat.
GridView
GridView vidjeti o‘zida ingichka ro‘yhatli jadvalni ifodalaydi. Ko‘p
hollarda GridView uchun ustunlar miqdori statik ko‘rinishda beriladi.
Elementdagi qatorlar miqdori adapter tomonidan e‘lon qilinadigan elementlar
miqdoriga asoslangan holda dinamik ravishda aniqlanadi.
Ustunlar miqdori va o‘lchamini aniqlashda bir qator hususiyatlar mavjud
bo‘lib, bular quyidagilardan iborat:
- android:numColumns – ustunlar miqdorini aniqlaydi. Agarda unga
auto_fit qiymati berilgan bo‘lsa, u holda tizim ustunlar sonini
mavjud elementlarga asoslangan holda belgilaydi.
51
- android:verticalSpacing – jadval yacheykalari orasidagi bo‘sh
oraliq maydon o‘lchamini o‘rnatadi.
- android:columnWidth – ustun kengligini o‘rnatadi.
- android:stretchMode – android:numColumns = ―auto_fit‖ qiymatli
jadval uchun bo‘sh qolgan sohani qayerga taqsimlashni belgilaydi.
Bo‘sh sohani ustun yacheykalari orasida taqsimlashni o‘rnatadigan
columnWidth yoki yacheykalararo sohani kengaytirishni
belgilaydigan spacingWidth qiymatlarini qabul qiladi.
Ro‟yhatda grafiklarni tasvirlash
Androidda grafik ma‘lumotlarni ifodalash uchun maxsus vidjet mavjud.
Shu bilan birga, ro‘yhat vidjetida matnli ma‘lumotlarda grafiklarni ham
ifodalash mumkin. GridViewni grafika bilan bog‘lash u qadar qiyinchilik
tug‘dirmaydi. Faqatgina ma‘lumotlar manbaasini resurslar tarkibidagi tashqi
tasvirlar bilan bog‘lash darkor.
Grafik ma‘lumotlarni bog‘lashdagi adapter klassi BaseAdapterdan meros
oladi. Bu ma‘lumotlar adapterini realizatsiya qiluvchi umumiy klass bo‘lib,
ro‘yhatlarda qo‘llaniladi. Adapter klassida ma‘lumotlar massivi o‘zida
res/drawable katalogida joylashgan grafik resurslar identifikatorini saqlashi
lozim.
Gallery
Gallery vidjeti gorizontal aylanma yo‘lakcha va tanlangan tasvirni
yorituvchi hususiyatga ega bo‘lgan grafik ro‘yhat elementi bo‘lib hisoblanadi.
Mobil qurilmalarda yo‘naltirilgan chiziqli chap va o‘ng tugma yordamida
ifodalangan ro‘yhat ko‘rinishida tasvirlanadi. Gallery elementi aksariyat
hollarda tasvir yoki belgilar kollektsiyasini namoyish qiluvchi vosita sifatida
qo‘llaniladi.
SlidingDrawer
52
SlidingDrawer vidjeti markerli dinamik panel hisoblanadi. Ushbu vidjet
qurilmaga o‘rnatilgan dasturlar ro‘yhatini ifodalovchi Application Launcher
panelida qo‘llamiladi.
Aktiv bo‘lmagan holatda SlidingDrawer ekranda ko‘rinmaydi.
Foydalanuvchi ekrandagi marker orqaligina ushbu ma‘lumotlar paneliga
murojaat qilishi mumkin. SlidingDrawerni ham vertical, ham gorizontal holatda
qo‘llash mumkin.
SlidingDrawer o‘lchami qo‘shiladigan ma‘lumotlar hajmiga bog‘liq
tarzda o‘zgaradi. Odatda balandlik va kenglikni aniqlashda fill_parent
qiymatidan foydalaniladi. Shu bilan birga, SlidingDrawerni mustaqil holda
yaratish va uni o‘z ilovalari bilan ishga tushirish mumkin. SlidingDrawer
vidjetlar konteyneri bo‘lganligi tufayli ham istalgan ma‘lumot tipi(matn, grafika
yoki bir nechta vidjetli konteynerlar)ni o‘zida saqlay oladi. Agarda paneldagi
elementlar ekranga sig‘may qolsa, avtomatik tarzda vertical aylanma yo‘lak
hosil bo‘ladi.
SlidingDrawer uchun XML-razmetka yaratishda marker uchun resursni
aniqlab olish lozim.
android:handle = “@ + id/handle”
android:handle = “@ + id/content”
Markerni bosgan holda vidjetni ekran bo‘ylab joylashtirish mumkin.
SlidingDrawer ikonkasi tanlanganda, ekranning yuqori qismi matn maydonida
tanlangan element identifikatori qayd etiladi.
Xabarlar oynasi
Foydalanuvchi ilovalar bilan ishlaganda turli il vaziyatlarda unga xabarlar
oynasini namoyish etishga to‘g‘ri keladi. Ba‘zi jarayonlar foydalanuvchining
xabarlar oynasiga ta‘sirini talab qilsa, boshqalari faqatgina ekranga u yoki bu
habarni chiqaradi.
Foydalanuvchiga xabar chiqarishning bir nechta turlari mavjud. Bular:
53
- TostNotifikation – foydalanuvchi ta‘sirini talab etmaydigan qisqa
suzuvchi xabarlar oynasi;
- Status Bar Notification – doimiy ravishda eslatma berishdan
iborat bo‘lgan, foydalanuvchi ta‘sirini talab etadigan belgi
ko‘rinishidagi xabarlar oynasi.
Suzuvchi xabarlar oynasi. Suzuvchi xabar ilovalar oynasining yuqori
qismida paydo bo‘ladi. Xabarlar oynasi bir necha soniyalardan so‘ng o‘z-
o‘zidan yopiladi va unga ta‘sir jarayonlarini qabul qilmaydi.
Suzuvchi xabarlar oynasi odatda qisqa matnli xabarlar uchun ishlatiladi.
Agarda xabarlar oynasiga foydalanuvchining ta‘siri talab qilinsa, u holda xabar
holatlar satrida ifodalaniladi.
Xabarlar oynasi yaratish uchun avvalo, Toast.makeText() metodi
obyektlaridan biri bo‘lgan Toast ni initsializatsiya qilish lozim. So‘ngra show()
metodini chaqirgan holda xabar ekranga chiqariladi:
Context context getApplicationContext();
Toast toast Toast.makeText(context, “This is Toast Notification”,
Toast.LENGTH_SHOR
T);
toast.show();
makeText() metodi 3 ta parametrni qabul qiladi:
- kontekst ilova;
- matnli xabar;
- xabarlar oynasini namoyish etish davomiyligi 2 ta konstanta
orqali aniqlanadi:
- LENGTH_SHORT – qisqa oraliqda matnli xabarni namoyish etish;
- LENGTH_LONG – uzoq muddatga matnli xabarni namoyish etish.
Shuningdek, xabar namoyish etish davomiyligi qiymatini
millisekundlarda berish ham mumkin. Jimlik bo‘yicha, standart xabarlar oynasi
ekranning quyi qismida paydo bo‘ladi. Xabarlar oynasi paydo bo‘lish o‘rnini
54
setGravity(int, int, int) metodi yordamida o‘zgartirish mumkin. Ushbu metod 3
ta parameter qabul qiladi:
- katta konteynerga joylashgan obyekt uchun standart konstanta
(masalan, GRAVITY.CENTER, GRAVITY.TOP va boshqalar);
- X o‘qi bo‘yicha yo‘nalgan;
- Y o‘qi bo‘yicha yo‘nalgan.
Misol uchun, xabarlar oynasi ekranning markaziy qismida hosil
bo‘lishiga erishish uchun quyidagicha kod yoziladi:
toast.setGravity(Gravity.CENTER, 0, 0);
Agarda xabarlar oynasini ekranning o‘ng tomoniga joylashtirish lozim
bo‘lsa, u holda ikkinchi parametr qiymatini oshirish kerak. Oynani ekranning
quyi tomoniga joylashtirish kerak bo‘lsa, oxirgi parametr qiymati oshiriladi.
Dialogli oyna
Dialog – odatda joriy holatdan oldin paydo bo‘ladigan kichik oyna.
Bunda asosiy holat ikkinchi darajaga o‘tib, diolog foydalanuvchi ta‘sirini qabul
qilish holatini oladi. Dialog asosan ilova uchun bevosita bog‘liq bo‘lgan
xabarlar va qisqa jarayon uchun qo‘llaniladi.
Dialog klassi barcha dialogli oyna klasslari uchun bazaviy klass bo‘lib
hisoblanadi.
22-rasm. Dialogli oynalar iyerarxiyasi
55
Android dialogli oynalarning quyidagi turlarini qo‘llab-quvvatlaydi:
- AlertDialog – tugma, ro‘yhat, bayroqcha yoki radiotugma
elementlari mavjud diologli oyna;
- ProgressDialog – jarayon indikatori mavjud bo‘lgan diologli oyna;
- DatePickerDialog – sanani belgilovchi dialogli oyna;
- TimePickerDialog – vaqtni belgilovchi dialogli oyna.
Dialogli oyna hosil qilish
Dialogli oyna doimo fokusdagi jarayonning bir qismi sifatida ifodalanadi
va yaratiladi. Dialog odatda onCreateDialog() qayta aloqa metodi ichida
yaratiladi. Bunda Android tizimi dialog holatini avtomatik tarzda boshqarib
boradi.
Dialogli oynani ifodalash uchun ShowDialog() metodini chaqirish va
unga parametr sifatida tasvirlanishi kerak bo‘lgan dialog identefikatorini berish
zarur. Misol:
private static final int IDD_EXIT 0;
showDialog(IDD_EXIT);
Dialog birinchi marta chaqirilayotganda Android tizimi joriy jarayondan
onCreateDialog() ni chaqiradi.
AlertDialog. AlertDialog – Dialog klassining kengaytmasi bo‘lib
hisoblanadi. Undan ko‘p sonli dialog oynalarini qurishda foydalaniladi.
Tugmali AlertDialog ni yaratish uchun AlertDialog.Builder klassidagi
set…Button() metodlar guruhidan foydalaniladi:
- setPositiveButton();
- setNegativeButton();
- setNeutralButton().
Dialogli oyna hosil qilish uchun avvalo, Builder klassida obyekt hosil
qilish lozim:
AlertDialog.Builder builder
new AlertDialog.Builder(getApplicationContext());
56
So‘ngra, Builder klassi metodlaridan foydalangan holda yaratilayotgan
dialogga kerakli hususiyatlar beriladi, masalan, setMessage() metodi orqali
matnli xabar chiqariladi:
builder.setMessage(―Dasturdan chiqmoqchimisiz?‖);
Dialogga hususiyatlar berilgandan so‘ng, dialogdagi boshqaruv tugmalari
va undagi hodisalar aniqlanadi. AlertDialog ga Positive, Negative va Neutral
tiplarining har biridan bir donadan qo‘shish mumkin. Dialogdagi tugmalarning
maksimal miqdori 3 ta bo‘lishi mumkin. Misol uchun, ―Ha‖ va ―Yo‘q‖ tugmali
dialog oynani yaratish uchun quyidagi listing yoziladi:
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener()
public void onClick(DialogInterface dialog, int id)
// joriy holatni yopish
AlertDialogButtonActivity.this.finish();
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener()
public void onClick(DialogInterface dialog, int id)
// dialog oynasini yopish va joriy holatga qaytish
dialog.cancel();
Foydalanuvchi dialogni mobil qurilma klaviaturasidagi <Back> klavishi
bilan yopa olmasligi uchun setCancelable() metodi chaqiriladi.
builder.setCanselable(false);
Va nihoyat, dialogni ifodalaymiz:
AlertDialog alert Builder.create();
Ro‘yhatli AlertDialog. Ro‘yhatli AlertDialog ni yaratish uchun setItems()
metodidan foydalaniladi. Uning parametri sifatida diologli ro‘yhatni ifodalash
uchun ma‘lumotlar massivi qo‘llaniladi. Shu bilan birga foydalanuvchi
ro‘yhatdagi elementlarni tanlay olishi uchun DiologInterface.OnClickListener
interfeysidan foydalaniladi. Misol:
CharSequence[] colors {“Red”, “Green”, “Blue”};
57
builder.setItems(colors, new DialogInterface.OnClickListener()
public void onClick(DialogInterface dialog, int item)
// ro‟yhatdagi element tanlangandagi hodisani tahrirlash
Toast.makeText(getApplicationContext(),
“Color: ” + mColors[item],
Toast.LENGHT_SHORT).show();
)
Radiotugmali AlertDialog. Radiotugmali AlertDialog oynasini hosil
qilish uchun setSingleChoiceItems() metodi ishlatiladi. Agarda dialog oyna
onCreateDialog() metodi ichida yaratilsa, u holda Android tizimi radiotugma
ro‘yhatlari holatini boshqarib boradi. Joriy holat aktiv bo‘lganda, dialog oyna
oldingi tanlangan punktni saqlab qoladi.
Radiotugmali AlertDialog ro‘yhati dialog kabi yaratiladi. Faqatgina
setItems() metodi o‘rniga setSingleChoiceItems() metodi chaqiriladi.
CharSequence[] colors {“Red”, “Green”, “Blue”};
builder.setSingleChoiceItems(colors, 0, new
DialogInterface.OnClickListener()
public void onClick(DialogInterface dialog, int item)
Toast.makeText(getApplicationContext(),
“Color: ” + mColors[item],
Toast.LENGHT_SHORT).show();
)
Bayroqchali AlertDialog Radiotugmali AlertDialog oynasini hosil qilish
uchun setMultiChoiceItems() metodi ishlatiladi. Agarda dialog oyna
onCreateDialog() metodi ichida yaratilsa, u holda Android tizimi radiotugma
ro‘yhatlari holatini boshqarib boradi. Joriy holat aktiv bo‘lganda, dialog oyna
oldingi tanlangan punktni saqlab qoladi.
Radiotugmali AlertDialog ro‘yhati dialog kabi yaratiladi. Faqatgina
setItems() metodi o‘rniga setMultiChoiceItems() metodi chaqiriladi.
58
CharSequence[] colors {“Red”, “Green”, “Blue”};
final Boolean[] mCheckedItems {true, false, false};
builder.setMultiChoiceItems(colors, checkedItems,
new DialogInterface.OnMultiChoiceClickListener()
public void onClick(DialogInterface dialog,
int which, Boolean isChecked)
mCheckedItems[which] isChecked;
ProgressDialog ProgressDialog AlertDialog ning jarayon indikatori
ifodalangan dialog oynali ost klassi hisoblanadi. Dialogga amalga
oshirilayotgan jarayonni bekor qiluvchi boshqaruv tugmasini ham qo‘shish
mumkin.
Jarayon indikatori ifodalangan dialogni yaratish uchun
ProgressDialog(Context) klass konstruktorini chaqirgan holda PdogressDialog
obyektini initsializatsiya qilish lozim:
ProgressDialog progressDialog new ProgressDialog(Activity.Name.this);
So‘ngra dialog oyna uchun kerakli hususiyatlar o‘rnatiladi, masalan:
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL
);
progressDialog.setMessage(“Loading.
progressDialog.setCanselable(false)”);
setProgressStyle() metodi dialog stilini o‘rnatadi. Stillar ProgressDialog
klassi tomonidan aniqlangan konstantalar orqali beriladi:
- STYLE_HORIZONTAL;
- STYLE_SPINNER.
DatePickerDialog foydalanuvchi tomonidan sanani tanlash uchun
qo‘llaniladi. Odatda sana tanlash dialogini yaratishdan avval tizimdan joriy yil,
oy va kunni qabul qilish kerak. Buni quyidagicha amalga oshirish mumkin:
Calendar c Calendar.getInstance();
mYear c.get(Calendar.YEAR);
59
mMonth c.get(Calendar.MONTH);
mDay c.get(Calendar.DAY_OF_MONTH);
So‘ngra onCreateDialog() da klass konstruktorini chaqirgan holda
DatePickerDialog obyektini yaratish lozim:
DatePickerDialog dialog new DatePickerDialog (
this, mDateSetListener, mYear, mMonth, mDay);
Konstruktorda beriladigan birinchi parametr – joriy holat konteksti,
ikkinchi parametr – sanani o‘rnatish holatini tartibga soluvchi metod nomi,
qolgan parametrlar dialog ishga tushirilganda qayd etilgan sana uchun parametr
hisoblanadi.
Menyu
Menyu – har bir ilovaning muhim qismidir. Android ilovalar uchun turli
xil funktsional imkoniyatlarga ega bo‘lgan standart menyularni yaratishning
oddiy interfeysini taklif qiladi.
Android menyularning 3 ta katta guruhini taklif qiladi. Bular:
1. Options Menyu – menyular punkti jamlamasi bo‘lib, holatlarga
biriktirilgan bo‘ladi. Menyu mobil qurilmaning <MENU> klavishini
bosish orqali ekranning quyi qismida hosil bo‘ladi. Menyular
optsiyasini tanlashda qo‘shimcha ikki turdagi menyu mavjud:
- Icon Menu(belgili menyu) – menyu bo‘limlaridagi matnga belgi
qo‘shish orqali hosil qilinadi. Menyu maksimal 6 ta menyuni
saqlashi mumkin. Ushbu menyu turi – belgini qo‘llab-
quvvatlovchi yagona menyudir.
- Expanded Menu(Kangaytirilgan menyu) – tushuvchi ro‘yhatli
vertikal menyu. Kengaytirilgan menyu Android tizimi tomonidan
avtomatik tarzda qo‘shiladi.
2. Context Menu(Kontekst menyu) – suzuvchi ro‘yhatlar menyusi.
Ushbu menyu sensor ekranga tegganda ikki va undan ortiq
sekundlarda hosil bo‘ladigan menyu.
60
3. Submenu(ost menyu) – menyuning suzuvchi ro‘yhatlar punkti bo‘lib,
u menyu punktlaridan biriga yoki bir nechtasiga biriktirilgan bo‘ladi.
Option Menyu – ilovalarda keng tarqalgan menyu turidir.
Ushbu menyu birinchi marta ochilganda, Android tizimi
onCreateOptionsMenu() metodini chaqiradi. Ushbu metodni holatlar klassida
realizatsiya qilish lozim.
// menyu punktlarini yaratish uchun identifikator aniqlash
private static final int IDM_OPEN 101;
private static final int IDM_SAVE 102;
public boolean onCreateOptionsMenu(Menu menu)
// menyuga punkt qo‘shish
menu.add(Menu.NONE, IDM_OPEN, Menu.NONE, “Open”);
menu.add(Menu.NONE, IDM_SAVE, Menu.NONE, “Save”);
Yuqoridagi misolda foydalanilgan add() metodi 4 ta parametrni qabul
qiladi:
- identifikator guruhi – menyuning ushbu punktini shu menyuning
boshqa punktlari guruhi bilan bog‘lash imkonini beradi.
- menyu punktlarini tanlash hodisasini tahrirlash uchun punkt
identifikatori;
- menyuda punktlarning joylashish tartibi – menyuda punktlarning
o‘rnini aniqlashga yordam beradi.
- sarlavha – menyu punktlaridagi matn.
onCreateOptionsMenu() metodi tizim tomonidan birinchi marta, faqat
menyu yaratilgandagina chaqiriladi.
Shuningdek, menyuga ―qaynoq‖ klavishlarni ham qo‘shish mumkin.
Menyuga ―qaynoq‖ klavish qo‘shish uchun bir nechta metodlar mavjud:
- setAlphabeticShortcut(char) – imvol qo‘shadi;
- setNumericShortcut(int) – son qo‘shadi;
- setShortcut(char, int) – simvol va son kombinatsiyasini qo‘shadi.
61
Masalan,
setAlphabeticShortcut(„q‟); [13].
3.2 . Dasturning funksional imkoniyatlari
Yaratilgan dasturning funksional imkoniyatlariga turli komponentalar,
ya`ni Button, CheckBox, Diolog bilan ishlash ko`rsatib o`tiladi.
- bu matn yoki rasmni kattalashtiruvchi
yokikichiklashtiruvchi tugma bo`lib, bu tugma yordamida ma`lumotlar
kattalashtiriladi yoki kichiklashtiriladi;
Menu oynasi funksiyalaridan:
- bu tugma dastur haqida va dasturchi haqida ma`lumot beradi;
- bu tugma sozlash oynasini ochib beradi;
- bu tugma dasturdan chiqish uchun foydalaniladi.
Sozlash oynasida:
- bu list diolog oyna ochib
beradi;
- bu checkbox qiymati true
qilinsa dastur ochilish jarayonida milliy musiqa yangraydi;
- bu checkbox qiymati true
qilinsa dastur to`liq ekran muhitiga o`tadi;
62
- bu ism listida chaqirilgan diolog
oynada foydalanuvchi o`z telefoni nomini yozib saqlashi mumkin;
- bu chiqish tugmasidan
chaqirilgan diolog oyna orqali dastur foydalanuvchiga o`zi kiritgan nom bilan
murojaatni amaga oshiradi.
3.3. Dastur ishlash samaradorligi va joriy etilgan resurslarni baholash
Hozirgi tezkor axborot texnologiyalari zamonida komyuter, notebooklar
o`rnini mobil telefonlar egallamoqda, chunki:
- bugungi kunda ma`lumot toppish tezkorligi jihatdan mobil telefon
qulaydir;
- kompyuterda ishlashdan, notebooklarni ko`tarib yurgandan, unga
murojaatga nisbatan telefon hajm jihatdan kichik va qulay;
- telefonning hajmi kichikligi, har doim, har yerda, har qanday
holatda yonimizdaligi;
- taqdimotlarni ixtiyoriy vaziyatda ko`rsata olish qulayligi uchun.
Bu dastur milliy ma‘naviyatimizni tiklash, milliy qadriyatlarimiz
sanalmish osori atiqalarimizni dunyoga tanitish uchun xizmat qiladi. Milliy
qadriyatlarimiz, tarixiy qadamjolarimiz samarali bo`lganligi dasturning
63
samaradorligini oshiradi. Dasturni internet xalqaro saytlarga reklamaga
qo`yilsa, turistlar o`zining telefoniga GoogleMarketdan yuklab olishi mumkin.
Bu esa Davlatimizga tashrif buyuruvchi turistlar sonini o`z-o`zidan oshishiga
sabab bo`ladi. Bundan dasturdagi resusrslarni baholash imkoniyati kelib
chiqadi.
Demak, yuqorida sanab o`tilgan afzalliklar Android operatsion tizimida
yaratilgan ushbu dasturning naqadar samarali ekanligini ko`rsatib turibdi.
3.4. Foydalanuvchi uchun qo`llanma
ResUz dasturini foydalanuvchi o`zining mobil telefoniga GoogleMarket
yoki AndroidMarketlardan yuklab olishi mumkin. Dastur yuklanish jarayonida
dasturdagi hamma resurslar avtomatik tarzda telefonga yuklanadi. Dastur
yuklashnish jarayoni tugagach, foydalanuvchi mobil telefoni ―Menu‖ yoki
―Apps‖ (android versiyalariga qarab) ga kirib, dastur logotipini
tanlaydi va dastur ochiladi. Dastur yoqilishi bilan ―Splash‖ oynasi va yuqori
qismida ―ResUz dasturiga xush kelibsiz‖ yozuvi chiqadi va so`ngra dastur
menyusi, ya`ni viloyatlar ro`yxati ochiladi. Bu viloyatlar ro`yxatidan keraklisi
tanlanadi va unda viloyatlarda joylashgan obidalar haqida ma`lumot, rasmlar va
viloyat xaritasi ko`rsatiladi.
Ma`lumot tabhostida muqaddas qadamjolarimiz
haqidahi ma`lumotlar keltirilgan. Unda ma`lumot pastga yoki yuqoriga
surilganda ma`lumotni kattalashtish yoki kichiklashtirish imkonini
beruvchi tugmadan foydalanish mumkin.
64
Rasmlar tabhostiga kirilganda O`zbekistonda
joylashgan ziyotargohlar, qadamjolar, maqbara va obidalar rasmlari galereya
sifatida ochiladi va undan rasmlarni o`ng va chapga qarab surib ko`rish
imkoniyati mavjud.
Xarita tabhostida tanlangan viloyat xaritasi ko`rinadi
va albatta bu jarayonda mobil telefonda internet tarmog`i mavjud bo`lishi kerak.
Menu oynasi funksiyalaridan:
- bu tugma dastur haqida va dasturchi haqida ma`lumot beradi;
- bu tugma sozlash oynasini ochib beradi;
- bu tugma dasturdan chiqish uchun foydalaniladi.
Sozlash oynasida:
- bu list diolog oyna ochib
beradi;
- bu checkbox qiymati true
qilinsa dastur ochilish jarayonida milliy musiqa yangraydi;
- bu checkbox qiymati true
qilinsa dastur to`liq ekran muhitiga o`tadi;
65
- bu ism listida chaqirilgan diolog
oynada foydalanuvchi o`z telefoni nomini yozib saqlashi mumkin;
- bu chiqish tugmasidan
chaqirilgan diolog oyna orqali dastur foydalanuvchiga o`zi kiritgan nom bilan
murojaatni amaga oshiradi.
66
HAYOT FAOLIYATI XAVFSIZLIGI
Shaxsiy kompyuterni ishga tayyorlash va o'chirish tartiblari mavjud.
Avvalambor, kompyuterning tarmoq kuchlanishiga mosligini tekshirish kerak.
Shaxsiy kompyuterlar 220 yoki 110 kuchlanishli elektr tarmoqlarida ishlashi
mumkin.
Shaxsiy Kompyuterlar uchun kuchlanishning o'zgarishi, ayniqsa keskin
o'zgarishlar xavfli bo'lishi mumkin. Shuning uchun maxsus stabilizatorlardan
yoki elektr quvvatining o'zluksizligini ta'minlovchi - URS qurilmasidan
foydalanish tavsiya etiladi. Maxsus URS qurilmasi elektr quvvatini o'zgarmas
holda ushlab turadi, hamda elektr manbai o'chirilgandan keyin muayyan vaqt
davomida Kompyuter ishlashini ta'minlab turadi. Bu vaqt Kompyuterda
bajarilayotgan ishlarni tugatish uchun yetarlidir. masalan, kerakli ma'lumotlarni
diskka yozib qo'yish yoki ‗rogrammalar ishini tugatish uchun va hokazo.
Monitor oldida uzoq vaqt o‘tirib ishlaydiganlar kompyuter bilan
me‘yoridan ortiq muloqatda bo‘lish sog‘liqga zararligini bilishlari kerak.Ayrim
kasbiy kasalliklar, ularning olidini olish usullari va kasalliklarni davolash
metodlarini bilish foydadan holi emas. Sog‘lik uchun xavfsiz bo‘lgan
kompyuter va dasturiy ta‘minotni qanday tanlab olish, ish joyini tashkil qilishni
bilish zarur. Kompyuter xonasida tushayotgan yorug‘lik o‘quvchining ish joyiga
te‘adan va cha‘dan tushishi, dis‘lay ekraniga va tugmalar ko‘zni
qamashtirmaydigan. bo‘lishi maqsadga muvofiq.
Xonadagi havo harorati o‘rtacha 20-24 0 c atrofida bo‘lishi lozim.
O‘quvchilarning shaxsiy kompyuter bilan uzliksiz ishlash vaqti 25-30
daqiqadan, bir kun davomida esa 50 daqiqadan oshmasligi ma‘qul. O‘quvchi
kompyuterdan eng kamida 40 sm narida o‘tirishi kerak. Kompyuter xonasida
o‘tkazilayotgan- dars ‗aytida o‘quvchilarga tana mushaklarda va ko‘zlarda
zo‘riqish hosil bo‘lmasligi uchun davomi 2-3 daqiqadan iborat dam berilishi
lozim. Shu lahzalarda o‘quvchilarga yengil kuy eshitish, kursida o‘tirgan holda
qo‘l va bo‘yin mushaklari toliqmasligi uchun yengil jismoniy mashqlar bajarish
67
tavsiya etiladi. Har bir o‘quv guruhi shunday kichik, guruhlarga bo‘linishi
kerakki, mashg‘ulotda qatnashayotgan o‘quvchilarning umumiy soni 20 tadan
oshmasligi darkor. Kompyuter bilan ishlashda insonga ta‘sir ko‘rsatuvchi asosiy
omillar:
uzoq vaqt davomida o‘tirib izlash
monitorning elektromagnit nurlari ta‘siri
ko‘z charchashi, ko‘‘ ishlashi
bilaklar bo‘yinlarning toliqishi
axborotni yuqotib qo‘yish vaziyatlardagi ruhiy zo‘riqish holati.
Kompyuter oldida o‘tirib ishlashda guyo inson erkin joylashgandek
bo‘ladi, biroq bunday holat organism uchun majburiy va noqulay hisoblanadi.
Bo‘yin, muskullar, bosh, qo‘l va yelka bo‘g‘inlari tarang holatda, shu sababli
osteoxondroz, bolalarda esa skolioz yuzaga kelishi mavjud. Ko‘‘ vaqt
mobaynida ishlaydigan insonlarda kursi suyanchig‘i va tanasi o‘rtasida issiq
kom‘ress hosil bo‘ladi, bu esa inson organizmida gaz, qon turib qolishiga olib
keladi, natijada ‗rostatit va gemoroy yuzaga keladi. Bu kasalliklarni davolash
uzoq vaqt talab etadi va yoqimsiz holatlarda davon etadi. Shaxsiy
kompyuterning sog‘liq uchun eng zararli uzeli uning video monitoridir. To‘g‘ri
foydalanish qoidalariga rioya qilmaslik oqibatida ko‘zlarning zo‘riqishi va
oqibatda uzoqni ko‘ra olmaslik kasalliklariga chalinishi mumkin. Kompyuter
bilan ishlashda xodimlar, xomilador ayollar, bolalar alohida ehtiyotkorlik bilan
harakat qilishlari lozim. Xomilador ayollarning tartibsiz va me‘yoridan ortiq
kompyuter bilan shug‘ullanishi bola rivojlanishiga ta‘sir ko‘rsatib, bolaning erta
tug‘ilishi va turli xil ko‘ngilsizliklarga olib keladi. Xomilador ayollar
kompyuterdan 1 oyga 20 soat ishlashi belgilangan.
Bundan tashqari, kam harakatli hayot tarsi ko‘‘incha semirib ketishiga olib
keladi. Elektromagnit nurlari zamonaviy monitorlar salomatlik uchun xavfsiz
hisoblanadi, biroq hali to‘la xavfsiz emas. Agarda ish joyingizda eskiroq
kompyuter turan bo‘lsa, yaxshisi undan uzoqroq bo‘ling. Ko‘zlar matn yoli
68
sur‘atning har bir kichik silkinishini qayd etadilar, ekranning jami
yomonlashishiga olib keladi. Ranglarni, shriftni foydalanayotgan dasturlarda
oynalar joylashtirishni, ekranni noto‘g‘ri joylashtirish ko‘rish qobilyatiga
yomon ta‘sir ko‘rsatdi. Barmoq uchlarining nervlari tugmalarni bosa berishda
go‘yo yorilib ketayotgandek bo‘ladi, jonsizlanib qoladi, natijada barmoq uchlari
uvishadi, bu esa bilaklar bo‘yinlari va bog‘lovchi a‘‘arata zararlanishiga olib
kelishi mumkin, keyin esa bilaklar doimiy og‘riydigan bo‘lib qolishi mumkin.
Barcha foydalanuvchilar ham o‘zlarining axborotlari qo‘shimcha nusxasini
doimiy ravishda yaratib bormaydilar. Arxiv viruslari ham doimiy xavf to‘g‘dirib
turadilar, eng yaxshisi firmalarning vinchestrlari ham buziladi va eng tajribali
dasturchi ham ba‘zida boshqa tugmani bosib yuborishi mumkin. Natijada
bunday stress oqibatida infarkt kelib chiqishi mumkin. Bundan tashqari,
kompyuter inson ‗sixikasiga ham ta‘sir ko‘rsatadi. Bu mavzuda qator
tortushuvlarga sabab bo‘ladi, Masalan, kompyuter o‘yinlariga berilib ketish,
internetga qaram bo‘lib qolish-bu muammolar qanchalik jiddiy? Inetrnetga
qaram bo‘lib qolish, o‘yinlarga berilib ketish-bunday holatlar odatda, endi
o‘rganayotgan foydalanuvchilar uchun yoki kompyutersiz, shunga o‘xshash
maxsulotlar bilan shug‘ullanganlar uchun xos holatdir. Agarda inson soatlab
saytlardan chiqmay berilib ketsa, bunga kompyuter emas, uning o‘zi aybdor
bo‘ladi. Balki bu muammo haqiqatda ham jiddiydir? Bu xususida turli nuqtaiy
nazarlar bildirilgan va bildirilmoqda. Biroq yaxshisi bunday axvolga olib
kelmaslik lozim.
Kompyuterda uzoq vaqt ishlash turli oqibatlarga olib kelmasligi uchun o‘z
ish joyi va ish rejimini tashkil etish bo‘yicha murakkab bo‘lmagan tavsiyalarni
bajarish yetarli bo‘ladi. Har soatda qisqa tanaffus qilish qo‘l barmoqlari uchun
bir necha mashqlarni bajarish zarur.
Hozirgi vaqtda zamonaviy texnologiyalarsiz o‘z hayot tarzimizni
tasavvur eta olmaymiz. Chunki ular bizga har kunlik ishimizda yordamchi
hisoblanadilar. Ulardan foydalanganda me‘yor va to‘g‘ri foydalanishni
69
bilishimiz zarur. Aks holda, sog‘lig‘imizga zarar yetkazib qo‘yamiz. Quyidagi
maslahatimizda kompyuterdan foydalanganda nimalarga e‘tibor berishimiz
kerakligi aytib o‘tilgan.
Maslahatlar
Oyoqlar joylashuvi. Oyog'ingiz birini ustidan ikkinchisini qo‘ymang,
chunki bu oyoqlarda qon aylanishiga to‘sqinlik qiladi. Ularni shunday qo‘yingki
ikki oyog‘ingiz yerda bir xil joylashsin.
Umurtqa „og'onangizni to'g'ri tutib o'tirishingiz kerak. Buning uchun
maxsus stulda o‘tiring. Kompyuter xonasida stol va stullarga talablar mavjud
bo'lib, stol balandligi yerdan 68-77 sm bo'lib, stullar esa aylanuvchan bo'lishi
kerak va albatta orqasida suyanchig'i bo'lishi kerak. Bu stulning suyanadigan
joyi sizning umurtqa ‗og‘onangizni to‘g‘ri ushlab turadi.
Qo‘llaringizni shunday joylashtiringki ular stolda bir tekis joylashishsin.
‗anjalarni ushlab turuvchi maxsus sichqoncha uchun yostiqcha oling. Quyidagi
rasmda qo‘llar qanday holda bo‘lish kerakligi haqida batafsil ko‘rsatilgan.
70
Ko‟zlar va bo'yin. Monitoringiz markazi ko‘zlaringiz joylashgan joyi bilan
teng bo‘lishi kerak. Monitor ko'zdan ozgina ‗astroqda va 50 smdan kam
bo'lmagan masofada joylashishi kerak. Monitor va ko'z orasidagi masofa 60-
70 sm bo'lishi tavsiya qilinadi, bu masofa kichik bo'lsa, insonni ko'zi tezroq
charchaydi. Monitorni dizayni va rangi o'ziga e'tiborni jalb qilmasligi kerak.
Shuning uchun monitorning sirt tomonida har xil reklama yo‘ishtirgichlarini
olib tashlash kerak. Monitorning ekrani zangori va ko'k ranglarga bo'yalishi
shart. Chunki bu ranglar inson ko'ziga eng yaxshi ranglardan hisoblanadi.
Bunda bo'yningizga ham og'irlik tushmaydi, chunki u to'g'ri holatda bo'ladi.
71
Zamonaviy monitorlar. Oddiy lam‘ali monitoringizni LCD yoki LED
monitorlarga almashtiring, chunki ulardan nur chiqish darajasi judayam ‗ast.
Monitoringiz judayam yorug‘ bo‘lsa uning nurini sizga qulay darajagacha
‗asaytiring.
Ko‟zlarga dam. Ko‘zlaringizga har soat 10-15 daqiqa dam berib turing.
O‘simliklarga, osmonga yoki akvariumga qarang.
Ko‟z mashqlari. Ko‘z mashqlari bilan shug‘ullaning. Ko‘zlaringiz
qorachig‘ini 10-15 martta soat millari bo'ylab va teskari yo‘nalishda aylantiring.
Keyin gorizontal, vertikal va diagonal yo‘nalishda 10-15 marta harakatlantiring.
Oxiri ko‘zlaringizni tez ochib yo‘ib ‗ir‘irating.
Stol tennis. Stol tennisi ham ko‘zlarga juda foydasi katta. Monitorga,
ya‘ni faqatgina bir joyga qarab turgan ko‘z mushaklari harakatsiz bo‘lib qoladi,
bu esa ko‘zingiz nurini yo‘qotishga olib keladi. Stol tennisi esa harakatsiz
mushaklarni ishga tushuradi.
Mahsus ko‟zoynaklar. O‘tikadan ko‘‘gina mayda
teshikchalarga ega qora maxsus ko‘zoynak oling. 10-
15daqiqaga taqib yuring.
72
Ruchka. Qo‘lingizga ruchka yoki qalam olib uni har xil joyga
harakatlantiring (o‘ngga cha‘ga, te‘aga ‗astga, yaqinroq uzoqroq), boshingizni
qimirlatmasdan ko‘zingizni ruchka ketidan yo‘naltiring.
Badan-tarbiya. Kompyuterda ko‘‘ o‘tiradiganlar har soat badantarbiya
qilib turishlari shart. Badantarbiya mushaklaringizni bo‘shashib qolishining
oldini oladi, qon aylanishini ta‘minlaydi va umurtqa ‗og‘onasi, ko‘z, bo‘yinga
tushgan og‘irliklarni kamaytiradi.
Kerishib turing. Har zamon o‘ng, cha‘ orqa va oldinga qo‘llaringizni
ko‘tarib qattiq kerishing.
Sabzavot, mevalar, asal iste‘mol qilib turing. Chunki ular ko‘zga foydali
bo‘lgan vitamin va minerallarga boy.
S‟ort bilan shug‘ullanib turing. Umurtqa ‗og‘onangizni tekislash uchun
turnikda to‘rtining, suzish bilan shug‘ullaning. Oyoqlar bo‘shashib qolmaslik
uchun yugurib turing.
Kompyuterda ishlash vaqtida insonning charchash sabablari
Kompyuter bilan ishlash vaqtida inson quyidagi faktorlardan charchaydi:
ekranni yorug'ligi;
kontrast va fon o'rtasidagi aniqligi;
kompyuterda ishlash ‗aytidagi issiqlikdan nurlanishi;
kompyuterda nurlanishning insonga ta'siri
kompyuter buzuqligi.
Ko‘zingiz ko‘rishi xiralashgan bo‘lsa yoki har doim og‘rib ko‘z
yoshlansa oftalmologga uchrashing. Ular kerakli bo‘lgan tavsiya, dorilarni
yozib beradilar.
73
XULOSA
Bugungi kun har qanday masalaning yechimi kompyuter yordamida hal
qilinayotgan bir davr hisoblanadi. Hozirda hech bir soha yo‘qki unda
kompyuter, internet foydalanilmaydigan. Har bir sohaga chuqur kirib borayotga
yangi texnologiyalar, insoniyat taraqqiyotiga o‘zining bemisl ulushuni
qo‘shmoqda.
Shuni ham ta‘kidlash lozimki, hozirda axborot sohasini rivojlantirish va
faoliyatini yaxshilash bo‘yicha ham O‘zbekistonda bir qator Prezident
Farmonlari va qonun hujjatlari ishlab chiqilmoqda. Bular esa o‘z navbatida
aholi ongini oshirish va malakali servis xizmatni tashkil qilishga qaratilgandir.
Xulosa qilib aytganda, hozirgi kunda axborotni istalgan vaqtda va
ishonchli manba orqali qabul qilish va undan samarali foydalanish eng asosiy
masaladir. Ayniqsa, ommalashib borayotgan mobile texnologiya sohasida.
Yurtimizdagi mobil texnologiya sohasidagi o`zgarishlarni olib qarasak, boshqa
hech bir davlatdan qolishmagan holda endilikda O`zbekistonda ham Android
operatsion tizimida ishlovchi telefonlar ishlab chiqarilishi biz yoshlarda faxr
tuyg`usini uyg`otadi.
74
FOYDALANILGAN ADABIYOTLAR
1. Karimov I.A. Yuksak ma'naviyat - yеngilmas kuch. Toshkеnt: Ma'naviyat,
2008. - 176 b.
2. Karimov I.A. Asosiy vazifamiz - Vatanimiz taraqqiyoti va xalqimiz
farovonligini yanada yuksaltirish G`G` Xalq so‘zi, 2010 yil 30 yanvar. №
21
3. Karimov I. A. Mamlakatni modеrnizatsiya qilish va kuchli fuqarolik
jamiyat barpo etish - ustuvor maqsadimizdir G`G` Xalq so‘zi. 2010 yil 28
yanvar. № 19
4. Karimov I.A. Barkamol avlod orzusi Toshkent: Sharq, 1999. – 181 b.
5. O‘zbеkiston Rеspublikasining ―Ta'lim to‘g‘risida‖gi qonun G`G` Oliy
ta'lim: Mе'yoriy - huquqiy va uslubiy hujjatlar to‘plami. - Toshkеnt:
Istiqlol, 2004. - B. 4-9.
6. Голощапов А.Л. Google Android. Программирование для мобильных
устройств (Профессиональное программирование). Санк-Петербург:
«БХВ - Петербург», 2011. – 438 с.
7. J.F.Di Marzio Android A Programmer‘s Guide – 2008.
8. Chris Haseman Android Essentials – 2008.
9. Mark Murphy ―Beginning Android 2‖;
10. Jeff Friesen ―Learn Java for Android Development‖;
11. Gadoyev A.G., Oripova G.S. Bemorlarni uyda va shifoxonada parvarish
qilish. Toshkent: O‘zbekiston milliy enstiklopediyasi, 2011. – 527 b.
12. Inomova K.S. Hamshiralik ishi asoslari.
13. Родионова Г.Н. Справочник фельдшера. Москва: Эксмо, 2005. – 556 с.
14. http://www.java.sun.com/javase/downloads/index.jsp;
15. http://www.eclipse.org/downloads/;
16. http://www.developer.android.com/sdk/index.html;
17. www.tib.uz;
18. www.med.uz;
75
19. www.minzdrav.uz;
20. www.wikipedia.org;
21. www.youtube.com/watch;
22. https://play.google.com/store/apps/details;
23. http://www.ziyouz.com/index.php;
24. www.virtualdars.uz Muallif: Farhod Dadajonov.
76
ILOVALAR
ILOVA 1. Android operatsion tizimining umumiy strukturasi
77
ILOVA 2. Androidning yandilanishi
ILOVA 3. Android versiyalari diagrammasi
78
ILOVA 4.
79
Dastur kodi
ImageAdapter.java
package com.marifat.ResUz;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
public class ImageAdapter extends BaseAdapter{
private int mGalleryItemBackground;
private Context mContext;
private final Integer[] mImage = {
R.drawable.tosh, R.drawable.tosh1, R.drawable.tosh2,
R.drawable.tosh2baroqxon, R.drawable.tosh2baroqxon2,
R.drawable.tosh3, R.drawable.tosh3yunus, R.drawable.tosh3yunusxon,
R.drawable.tosh4, R.drawable.tosh4kokaldow,
R.drawable.tosh5, R.drawable.tosh6, R.drawable.tosh7, R.drawable.tosh7,
R.drawable.tosh8, R.drawable.toshqaffolshoshiy,
R.drawable.toshqaffolshoshiy2, R.drawable.tow3yunu,
R.drawable.tow4kokal, R.drawable.tow5zaynidbuva, R.drawable.tow6valiy,
R.drawable.tow7tillo, R.drawable.tow7tillowayx, R.drawable.tow8muskut,
R.drawable.tow8musulkut, R.drawable.tow9zan,
R.drawable.tow9zang, R.drawable.tow9zangata,
80
R.drawable.samarqand0, R.drawable.sam, R.drawable.sama,
R.drawable.samami, R.drawable.samar, R.drawable.samarqand,
R.drawable.samarqand2012149, R.drawable.samarqand54,
R.drawable.samarqand_09, R.drawable.samarqanddapl,
R.drawable.samarqandgilbriones,
R.drawable.samarqandolen, R.drawable.samarqandpsaid,
R.drawable.samarqandregiston, R.drawable.samarqandshaharramzi,
R.drawable.samarqandtillakori, R.drawable.samarqandtown,
R.drawable.sambux, R.drawable.sambuxoriy, R.drawable.sameskishah,
R.drawable.samguremir, R.drawable.smatillakori,
R.drawable.buxoro0, R.drawable.buckol, R.drawable.bukhara01,
R.drawable.bukhara_03, R.drawable.bux1, R.drawable.bux21,
R.drawable.buxar, R.drawable.buxark, R.drawable.buxch, R.drawable.buxg,
R.drawable.buxmas, R.drawable.buxmaskal, R.drawable.buxmir,
R.drawable.buxol, R.drawable.buxoro, R.drawable.buxoro0068,
R.drawable.buxorolabihavuz, R.drawable.buxsom,
R.drawable.xorazm0, R.drawable.xiva_shergozixon_1,
R.drawable.xiva_shergozixon_2, R.drawable.xor, R.drawable.xora,
R.drawable.xoraq, R.drawable.xorasm, R.drawable.xorazm,
R.drawable.xorazmk, R.drawable.xorazmm, R.drawable.xorazmpah,
R.drawable.xorkalmin, R.drawable.xormuh, R.drawable.xorox,
R.drawable.xorpah, R.drawable.xorrah, R.drawable.xorrahim,
R.drawable.xorrazm, R.drawable.xorsaidalouddin, R.drawable.xoryuq,
R.drawable.qa, R.drawable.qaamir, R.drawable.qas, R.drawable.qaw,
R.drawable.qaw1, R.drawable.qawjar, R.drawable.qawjarroh,
81
R.drawable.qawlang, R.drawable.qawlangarota, R.drawable.qawoqs,
R.drawable.qawqa, R.drawable.qawqadr, R.drawable.qaws,
R.drawable.qaww, R.drawable.qawxoja, R.drawable.qawxojajar,
R.drawable.surxondaryo0, R.drawable.sur, R.drawable.sursao,
R.drawable.sursulto, R.drawable.surterm, R.drawable.surx,
R.drawable.suttermiziy, R.drawable.sutxak,
R.drawable.navbah, R.drawable.navbahrom, R.drawable.navjarqor,
R.drawable.navjorq, R.drawable.navxusrav,
R.drawable.nam, R.drawable.nama, R.drawable.namana,
R.drawable.namang, R.drawable.namangan,
R.drawable.farg, R.drawable.fargo, R.drawable.fargoniy
};
public ImageAdapter(Context c) {
mContext = c;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView view = new ImageView(mContext);
view.setImageResource(mImage[position]);
view.setPadding(20, 15, 20, 15);
view.setLayoutParams(new Gallery.LayoutParams(250, 300));
view.setScaleType(ImageView.ScaleType.FIT_XY);
view.setBackgroundResource(mGalleryItemBackground);
82
return view;
}
public int getCount() {
return mImage.length;
}
public Object getItem(int position) {
return mImage[position];
}
public long getItemId(int position) {
return mImage[position];
}
}
Viloyatar classlari:
package com.marifat.ResUz;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.Gravity;
import android.view.View;
83
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.WebView;
import android.widget.FrameLayout;
import android.widget.Gallery;
import android.widget.TabHost;
public class Toshkent extends Activity{
@Override
protected void onCreate(Bundle icicle) {
// TODO Auto-generated method stub
super.onCreate(icicle);
//zoomcontrol
final FrameLayout.LayoutParams ZOOM_params =
new FrameLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
Gravity.BOTTOM);
//fullscreen
SharedPreferences getPrefs =
PreferenceManager.getDefaultSharedPreferences(getBaseContext());
boolean fullscreen = getPrefs.getBoolean("checkfull", false);
if (fullscreen == true)
requestWindowFeature(Window.FEATURE_NO_TITLE);
84
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSC
REEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.tabhost);
TabHost tabs = (TabHost)findViewById(R.id.tabhostins);
tabs.setup();
TabHost.TabSpec
spec=tabs.newTabSpec("tag1");
spec.setContent(R.id.webtab1);
WebView web1 = (WebView) findViewById(R.id.webtab1);
FrameLayout mContentView = (FrameLayout) getWindow().
getDecorView().findViewById(android.R.id.content);
final View zoom = web1.getZoomControls();
mContentView.addView(zoom, ZOOM_params);
zoom.setVisibility(View.GONE);
web1.loadUrl("file:///android_asset/tosh/mal.htm");
spec.setIndicator("Ma`lumot");
tabs.addTab(spec);
spec=tabs.newTabSpec("tag2");
spec.setContent(R.id.galtab2);
Gallery g = (Gallery)findViewById(R.id.galtab2);
85
g.setAdapter(new ImageAdapter(this));
spec.setIndicator("Rasmlar");
tabs.addTab(spec);
spec=tabs.newTabSpec("tag3");
spec.setContent(R.id.webtab3);
WebView web2 = (WebView)findViewById(R.id.webtab3);
web2.loadUrl("http://www.mapsofworld.com/uzbekistan/travel/tashkent.
html");
spec.setIndicator("Xarita");
tabs.addTab(spec);
tabs.setCurrentTab(0);
}
}
86
Dastur listing
87