Masalaning qo‘yilishi - Dasturiy injiniringi

3.3.1. Masalaning qo‘yilishi
Berilgan Individual loyiha mavzusida berilgan muammoni to‘laligicha
tushuntiriladi. Yuqoridagi “Oziq ovqat maxsulotlarini yetkazib beruvchi mobil
ilova ishlab chiqish” mavzu bo‘yicha talaba dastlab o‘sha mobil ilova faoliyati
bilan yaqindan tanishishi, u yerda amalga oshirilayotgan barcha jarayonlarni
to‘laligicha o‘rganishi zarur bo‘ladi.
8
Morus.uz saytini mobil ilovasini Android platformasi uchun ishlab chiqish
masalasi qo‘yildi. Ushbu masalani yechish uchun quyidagi vazifalarni amalga
oshirish lozim:
• Internet magazinga bo‘lgan talablarni chuqur o‘rganish;
• Internet magazinlarni mobil ilovalar tahlilini o‘rganib chiqish;
• android platformasining komponentalarini o‘rganib chiqish;
• mobil ilovaning umumiy funksiyanal tuzilmasi va uning interfeyslari
tasnifini keltirish;
• Morus.uz mobil ilovasini mobil qurilmalarda ishlatish uchun
foydalanuvchi yo‘riqnomasini ishlab chiqish.
3.3.2. Individual loyiha mavzusi bo’yicha algoritm yaratilishi
Android ilovalari Java va dasturlash tilida yozilgan. Android SDK vositalari
(dasturiy ta’minotni ishlab chiqish to‘plami - dasturiy ta’minotni ishlab chiqish
to‘plami) siz kiritgan kodni va barcha kerakli ma’lumotlar va manba fayllarini
APK fayliga - kengaytmali arxiv fayli bo‘lgan Android dasturiy paketini
kompilyatsiya qiladi .apk. APK fayli Android ilovasining ishlashi uchun zarur
bo‘lgan barcha narsani o‘z ichiga oladi va ilovani Android tizimida ishlaydigan har
qanday qurilmaga o‘rnatishga imkon beradi.
Odatiy bo‘lib, tizim har bir ilovaga yagona Linux foydalanuvchi
identifikatorini belgilaydi (bu identifikator faqat tizim tomonidan qo‘llaniladi va
dastur uchun noma’lum); tizimda ilova ichidagi barcha fayllar uchun ruxsat
berilishi uchun faqatgina ushbu ilovaga tayinlangan identifikator bilan
foydalanuvchi ruxsat beriladi.
9
3.1-rasm. Android Devices
Odatiy bo‘lib, har bir dastur o‘z Linux jarayonida ishlaydi. Android ilovani
ishga tushirish jarayonini ishga tushirish jarayonini boshlaydi va undan keyin
kerak bo‘lmaganda yoki tizim boshqa ilovalar uchun xotirani bo‘shatish kerak
bo‘lganda jarayoni tugatadi. Shunday qilib, Android tizimi minimal huquqlarni
berish printsipini amalga oshiradi. Boshqacha aytganda, sukut bo‘yicha har bir
dastur faqat ishlash uchun zarur bo‘lgan komponentlarga va boshqa hech qanday
ma’lumotga ega bo‘lmaydi. Bu esa, ilovaning tizimning ruxsatsiz joylariga kirish
imkoniga ega bo‘lmagan juda xavfsiz muhitni yaratadi.
3.2-rasm. Navigation Drawer activitydan foydalanildi.
10
Biroq, dasturda boshqa ilovalarga ma’lumot berish va tizim xizmatlariga
kirish imkoniyatlari mavjud:
ikkita ilova bir Linux foydalanuvchi identifikatoriga berilishi mumkin.
Bunday holatda, ularning har biri boshqa dasturning fayllaridan foydalanishi
mumkin. Bu tizimda Android dasturining mavjudligi haqida asosiy ma’lumotlar.
Ushbu hujjatning qolgan qismi quyidagi mavzularni qamrab oladi:
ilovani belgilaydigan asosiy komponentlar;
dastur tomonidan talab qilinadigan komponentlar va qurilma funktsiyalari
e’lon qilingan manifest fayli;
dastur kodidan alohida ajratilgan resurslar va ilovaning turli xil
konfiguratsiyalarga ega qurilmalarga moslashishiga imkon beradi.
Dastur komponentlari.
Dastur tarkibiy qismlari - Android dasturining qurilish bloklari. Har bir
komponent alohida tizim bo‘lib, uning yordamida tizim dasturga kiritilishi
mumkin. Barcha tarkibiy qismlar foydalanuvchi kirish nuqtalari emas va ularning
ba’zilari bir-biriga bog‘liq.
Bundan tashqari, har bir komponent mustaqil tarkibiy birlik bo‘lib, muayyan
rol o‘ynaydi - ularning har biri ilovaning ishlashi
3.3-rasm. Dastur kodi
11
Dastur tarkibiy qismlari to‘rtta tipdan biri bilan bog‘lanishi mumkin. Har bir
turdagi komponentlar muayyan maqsadlar uchun mo‘ljallangan bo‘lib, ular
tarkibiy qism yaratish va tugatish usulini belgilovchi o‘zlarining hayot aylanish
davriga ega.
Komponentlarning to‘rt turi:
Operatsiyalar
Faoliyat (Faoliyat) - foydalanuvchi interfeysi bo‘lgan yagona ekran. Misol
uchun, elektron pochta ilovasida bir operatsiyani yangi xabarlar ro‘yxatini ko‘rish,
boshqasini xabar qilish va uchinchi xabarni o‘qish uchun ishlatish mumkin.
Operatsiyalar birgalikda foydalanuvchi va elektron pochta ilovalari o‘rtasida
o‘zaro bog‘liqlik hosil qilishiga qaramasdan, ularning har biri boshqa
operatsiyalarga bog‘liq emas. Ushbu operatsiyalarning ba’zilari boshqa dastur
tomonidan boshlanishi mumkin (agar sizda dastur sizga elektron pochta bilan
ishlash imkonini beradi). Misol uchun, kamera ilovasi foydalanuvchining
fotosuratni yuborishi uchun yangi xabarni tashkil etadigan elektron pochta
ilovasida ishni boshlashi mumkin.
Xizmati (xizmati) bo‘lgan fon rejimida ishlaydi va uzoq jarayonlar amaliyot
bilan bog‘liq uzoq operatsiyalarni amalga oshiradi, bir qismi. Xizmatda
foydalanuvchi interfeysi yo‘q. Masalan, foydalanuvchi boshqa dasturda
ishlayotgan paytda fonda musiqa ijro etishi yoki foydalanuvchining operatsiya
bilan o‘zaro aloqasini blokirovka qilmasdan tarmoq orqali ma’lumotlarni qabul
qilishi mumkin. Xizmatni boshqa komponentlar bilan boshlash mumkin, ular
keyinchalik u bilan ishlashadi - masalan, operatsiya.
Kontent provayderlari. Yetkazib beruvchi kontent (Kontent provayderi)
dastur ma’lumotlarni umumiy majmuini faoliyat ko‘rsatmoqda. Ma’lumotlar fayl
tizimida, SQLite ma’lumotlar bazasida, Internetda yoki ilovangizga kirish
huquqiga ega bo‘lgan boshqa doimiy saqlash joylarida saqlanishi mumkin. Kontent
provayderi orqali boshqa ilovalar ma’lumotni so‘rashi yoki hatto o‘zgartira olishi
mumkin (agar kontent provayder ruxsat bergan bo‘lsa). Masalan, Android tizimida
foydalanuvchining kontakt ma’lumotlarini boshqaradigan kontent provayderi bor.
12
Tegishli ruxsatnomalarni olgan har qanday dastur ushbu kontent
provayderining bir qismini ContactsContract.Datamuayyan shaxs haqidagi
ma’lumotlarni o‘qish va yozish uchun talab qilishi mumkin .
Kontent
provayderlari,
ilovaning
tashqi
komponentlarga
kirishni
ta’minlamaydigan ma’lumotlarni o‘qish va yozish uchun ishlatiladi. Kontent
provayderi sinfning sinfiga tegishli ContentProvider. Boshqa ilovalar bitimlarni
amalga oshiradigan standart API to‘plamini qo‘llashi kerak. Tafsilotlar Content
Provayderlaridagi ishlab chiquvchi qo‘llanmasida keltirilgan .
|