Amaliy ishlar | Informatika va AT
Mavzu: Activitylar o‘rtasida ma’lumot almashish
Reja:
1.Kirish
2. Android operasion tizim haqida
3. Androidda Activity haqida
4.Activity orqali ma’lumot almashish.
5.Xulosa.
6.Foydalanilgan adabiyotlar.
Kirish
Android, mobil qurilmalar uchun ishlab chiqarilgan, ochiq manbali operatsion tizimdir. Google tomonidan ishlab chiqarilgan va yuritilgan. Uning boshqa tarkibiy qismlaridan biri ham Android Open Source Project (AOSP), bu esa ochiq manbali dasturlar, kodlar va yangi versiyalari yaratish uchun foydalaniladi.
Androidning muhim xususiyatlari va imkoniyatlari quyidagilardir:
Android ochiq manbali tizimdir, shuning uchun uning kodlariga, dasturlariga va muhitiga ozbek dasturchilar kirishingi va ularning uni o'zgartirishlari va rivojlanishi mumkin.Android operatsion tizimi doimiy ravishda rivojlanadi va yangilanadi. Google, oz navbatida, yangi versiyalarni taqdim etish orqali tizimni yaxshilab yaxshilash va takomillashtirishni davom ettiradi.
Android, smartfonlardan planshetlarga, smart quloqdonlardan smart TV-larga qadar ko'p qurilmalar uchun moslashuvchi tizimdir.
Google Play Markazi yoki boshqa yuklab olish do'konlari orqali foydalanuvchilar yangi ilovalarni o'rnatish, yangilash va o'chirishlari mumkin.Android, ko'pgina qo'shimcha funktsiyalarga ega bo'lgan tizimdir, masalan, Google xizmatlariga integratsiya, ko'pilchak dasturlar, xabarlar va boshqalar.
Android operatsion tizimi yirik mobil qurilmalar uchun eng mashhur va eng ko'p foydalaniladigan tizimlardan biridir. Bu tizimning keng tarqalgan ekosistemasida ko'p xil xil turdagi smartfonlar, planshetlar, smart quloqdonlar, smart televizorlar va boshqalar mavjud..
Android operasion tizim haqida
Dastlab Android operasion tizimi 2003 yilda AQShning KALIFORNIYa shtatida joylashgan Android Inc firmasi tomonidan yaratilgan. Bu firma asoschilari: Andy Rubin, Chris White, Nick Sears va Rich Miner lar bo‘lgan. Android Inc firmasi o‘z ish faoliyati davomida 2 ta OT: Android 1.0 Astro va Android1.1 Bender (mashhur robotlar nomi) nomli operatsion tizimlarni chiqarishga muyassar bo‘ladi. 2005 yil, Google kompaniyasi Android Inc firmasini 130 mln. dollarga sotib oladi va o‘zi bu operatsion tizimni chiqarishni davom ettiradi. 2007 yil 5 noyabrda, Android ni ommaga tanishtirish marosimi bo‘lib o‘tgan, lekin dastlabki Android 1.0 versiyasi 2008 yil 23 sentyabrda foydalanuvchilarga taqdim etilgan. Android OT ostida ishlaydigan birinchi moslama 2008-yilning 23-sentabrida HTC kompaniyasining HTC Dream smartfoni bo‘ldi.
Open Handset Alliance (OHA) — bu mobil qurulmalar uchun ochiq standartlarni ishlab chiqadigan 84 ta kompaniyaning biznes ittifoqi, bular Google Inc., HTC, Intel, Motorola, Asus, Qualcomm, Samsung, LG Electronics, Huawei, T-Mobile, NVIDIA, Wind River Systems va boshqa kompaniyalar.
Operasion tizim - bu maxsus dastur bo‘lib, bu dasturning asosiy vazifasi - kompyuter ishini boshqarish, kompyuter va foydalanuvchi o‘rtasida muloqotni o‘rnatish, tashqi qurilmalar ishlash holatlarini sozlash va ular bilan muloqotni o‘rnatish, har xil dasturlarni ishga tushirish va ularning ishlash holatlarini ta'minlash.
Operasion tizimlardan eng taniqlilari bu Microsoft firmasining MS-DOS, Windows operasion tizimlari, Apple firmasining Macintosh – MacOS operatsion tizimi, Unix va Linux operatsion tizimlari.
Operasion tizimlarning asosiy vazifalariga - fayl tizimini boshqarish (yozish, o‘zgartish, fayllardan nusxa ko‘chirish, erkin foydalanishni nazorat qilish);
dasturlar bajarilishini boshqarish (protsessor vaqtini taqsimlash, dasturlarni diskdan tezkor xotiraga yuklash, yashirin xavfli ta'sirni tutib olishvah.q.);
xotirani boshqarish (keshlash, taqsimlash, ma'lumotlar butunligi nazorati va h.k.);
foydalanuvchi bilan muloqot (klaviaturadan, sichqonchadan buyruqlarni o‘qish, axborotni ekranga, printerga chiqarish va h.k.)kiradi.
Activity
Aktivnosti (Activity) - bu dasturning ko‘rinadigan qismi (ekran, oyna, shakl), foydalanuvchi grafik interfeysini namoyish qilish uchun javobgardir. Bundan tashqari, dastur bir nechta faoliyatga ega bo‘lishi mumkin, masalan, elektron pochta bilan ishlash uchun mo‘ljallangan dasturda bitta xatlar yangi harflar ro‘yxatini namoyish qilish uchun ishlatilishi mumkin, boshqa amal yozish uchun ishlatilishi mumkin, yana bittasi harflarni o‘qish uchun ishlatilishi mumkin.
Android dasturlashda faqat Activitylar orqali ma'lumot almashishingiz mumkin emas, balki turli xil o'lchovlarda ma'lumot almashishingiz mumkin. Bunday ma'lumot almashish uchun, birinchi, ma'lumotni olish kerak bo'lgan Activity yoki fragmentning kontekstini aniqlang. Keyin, ushbu kontekstda ma'lumotni olish uchun mos keladigan yo'lining ishlatishingiz mumkin, masalan, Intent orqali boshqa Activityga ma'lumot o'tkazish, shared preferences orqali o'zgaruvchilarni saqlash, fayllarni o'qish yoki yozish, va boshqalarni qila olishi mumkin.
Android ilovalarida ma'lumot almashishning bir qancha turli usullari mavjud:
Intent orqali ma'lumot almash: Intentlar, Activitylar orasida ma'lumot almashishning eng ommabop usullaridan biridir. Maqsadga mos Intentni yaratib, unga kerakli ma'lumotlarni o'rnating va undan keyin boshqa Activityga o'ting. O'ng tomonida, qabul qiluvchi Activityda Intentni qabul qilib, uning orqali ma'lumotlarni olishingiz mumkin.
Bundle orqali ma'lumot almash: Bundle, Intent obyektida yoki Fragmentlar orqali ma'lumot almashda qo'llaniladigan boshqa usuldir. Bu qulay bo'lishi mumkin, chunki uni foydalanish uchun ma'lumotlarni to'plab, undan keyin keyingi Activity yoki Fragmentga jo'natishingiz mumkin.
SharedPreferences orqali ma'lumot almash: SharedPreferences, o'zgaruvchilarni (ma'lumotlar bazasida saqlangan kichik qiymatlar) saqlash uchun ishlatiladi. Bu usul orqali ma'lumot almash, o'zgaruvchilarni saqlash va ularni keyingi marta dasturga kirishda qayta ishlatish mumkin.
Fayllar orqali ma'lumot almash: Fayllar orqali ma'lumot almash, ma'lumotlarni fayllarda saqlash va ularni o'qish va yozish orqali olib kelish imkoniyatini beradi.
Content Provider orqali ma'lumot almash: Agar ma'lumotlar bazasiga (masalan, Telefon kitobxonasi) kirish qilish kerak bo'lsa, Content Providerlar qo'llaniladi. Ular orqali ma'lumotni olish, yangilash, o'chirish va boshqa qo'shimcha operatsiyalarni amalga oshirish mumkin.
Har bir usulning o'zining afzalliklari va qo'llanish qoidalari mavjud bo'lishi mumkin. Kerakli maqsadga mos usulni tanlash va uning ustida boshqa foydalanuvchilar bilan ma'lumot almash haqida o'rganish tavsiya etiladi. Agar ushbu mavzuga oid qo'shimcha savollar bo'lsa, menga so'rashni xohlaysizmi?
Android dasturlashining qulayliklaridan biri Activitylar. Ularning maqsadi, foydalanuvchining interfeys orqali ilova bilan muloqot qilishini tashkil etishdir. Activity, Android ilovasidagi asosiy foydalanuvchi interfeysini (UI) ifodalaydi. Agar siz bir ilova ishga tushiramiz, foydalanuvchi bilan muloqotni boshlash uchun Activitydan foydalanishingiz kerak bo'ladi. Masalan, bir qo'ng'iroq tugmasini bosganda yangi Activityni ochish, ma'lumotlarni ko'rish, foydalanuvchidan ma'lumot qabul qilish va boshqa jarayonlarni amalga oshirish mumkin.
Activityni yaratish va boshlash: Activitylar, Android ilovasining manifest faylida ko'rsatilgan mosnomdagi Kotlin yoki Java klasslari hisoblanadi. Siz yangi Activity yaratish uchun mos klass yaratishingiz va unga interfeysni joylashtirishingiz kerak bo'ladi. Keyin siz bu Activityni boshqarish uchun ishlatishingiz mumkin.
Activitylar orasida almashish: Agar bir Activitydan boshqasiga ma'lumot o'tkazish lozim bo'lsa, Intent obyekti yordamida bu amalni amalga oshirishingiz mumkin. Intent, boshqa Activityga ma'lumot o'tkazish uchun ishlatiladi. Masalan, bir ma'lumotlarni ko'rish uchun yangi Activityni ochish uchun Intent yaratishingiz, unga kerakli ma'lumotlarni qo'shishingiz va uni boshqa Activityga jo'natishingiz kerak bo'ladi.
Activitylar orasida o'tish: Foydalanuvchilar ilova ichida harakat qilishadi va bundan ko'ra bir necha Activitylar orasida o'tishadi. Bu, birinchi Activitydan ikkinchisiga va hokazo o'tishni boshqarish uchun Androidning "Activity Stack" funksiyasidan foydalaniladi.
Activity Lifecycle
Tizimdagi harakatlar activity stacklari sifatida boshqariladi . Yangi activity boshlanganda, u odatda joriy stekning yuqori qismiga joylashtiriladi va bajariladigan activityga aylanadi — oldingi activity har doim stekda uning ostida qoladi va yangi activity chiqmaguncha yana birinchi o’ringa chiqmaydi. Ekranda bir yoki bir nechta activity steklari ko’rinishi mumkin.
Activity asosan to’rtta holatga ega:
Agar activity ekranning oldingi qismida (eng yuqori stekning eng yuqori holatida) bo’lsa, u faol yoki ishlayapti . Bu odatda foydalanuvchi hozirda o’zaro aloqada bo’lgan activitydir.
Agar activity diqqat markazini yo’qotgan bo’lsa-da, lekin hali ham foydalanuvchiga taqdim qilinsa, u ko’rinadi . Agar yangi toʻliq oʻlchamli yoki shaffof activity sizning activityingizning yuqori qismiga qaratilgan boʻlsa, boshqa faoliyat koʻp oynali rejimda yuqoriroq mavqega ega boʻlsa yoki joriy oynalash rejimida activityning oʻzi fokuslanmaydi. Bunday activity butunlay tirik (u barcha state va memberlar ma’lumotlarini saqlaydi va oyna boshqaruvchisiga biriktirilgan holda qoladi).Agar activity boshqa activity bilan ustma ust bo’lsa bo’lsa, u to’xtatiladi yoki yashiriladi . U hali ham barcha state va memberlar ma’lumotlarini saqlab qoladi, biroq u endi foydalanuvchiga ko’rinmaydi, shuning uchun uning oynasi yashiringan va boshqa joyda xotira kerak bo’lganda tizim tomonidan o’chiriladi.Tizim uni tugatishni so’rash yoki shunchaki jarayonini kill qilish orqali xotiradan faoliyatni olib tashlashi mumkin yani chiqib ketib tozlab tashlasangiz . Foydalanuvchi uni yana ko’rishi uchun, u butunlay qayta ishga tushirilishi va avvalgi holatiga qaytarilishi kerak.
Activityning lifecycle jarayoni
onCreate() — Activity birinchi marta yaratilganda chaqiriladi. Bu yerda siz barcha oddiy statik sozlashlarni bajarishingiz kerak: ko‘rinishlar yaratish, ma’lumotlarni ro‘yxatlarga bog‘lash va h.k. Bu qadam sizga activityning avval muzlatilgan holatini o‘z ichiga olgan To‘plamni ham taqdim etadi, agar mavjud bo‘lsa. Undan keyin har doim ortidan onStart() bajariladi.
onRestart() — Activityingiz toʻxtatilgandan soʻng, uni qayta boshlashdan oldin chaqiriladi.Har doim ortidan onStart() chaqiriladi
onStart() — Activity foydalanuvchiga ko’rinadigan bo’lsa chaqiriladi. U ndan keyin onResume() activity birinchi o’ringa chiqsa yoki onStop() yashirin bo’lib qolsa(ilovaga kirib yana chiqib ketsa).
onResume() — Activity foydalanuvchi bilan muloqot qilishni boshlaganda chaqiriladi. Ayni paytda sizning activityingiz faollik to’plamining yuqori qismida joylashgan bo’lib, unga foydalanuvchi kiritishi kiradi. Undan keyin har doim ortidan onPause() chaqiriladi.
onPause() — Activity oldingi holatini yo’qotganda, endi fokuslanmaydigan yoki to’xtatilgan/hidden yoki kill qilinadigan holatdan oldin chaqiriladi. Activity hali ham foydalanuvchiga ko‘rinadi, shuning uchun uni vizual faol holda saqlash va foydalanuvchi interfeysini yangilashni davom ettirish tavsiya etiladi. Ushbu qadamni amalga oshirish juda tez bo’lishi kerak, chunki bu qadam bajarilmagunicha keyingi activity tiklanmaydi. Undan keyin onResume(){activity oldingi holatga qaytsa},yoki onStop(){foydalanuvchi fokusni boshqa ilovaga qaratsa, yoki kill qilsa}
onStop() — Activity foydalanuvchiga ko‘rinmay qolganda chaqiriladi. Bu yuqorida yangi activity boshlanayotgani, mavjudining oldiga olib kelingani yoki bu kill qilingani sababli sodir bo’lishi mumkin. Bu odatda animatsiyalarni to’xtatish va foydalanuvchi interfeysini yangilash va hokazolar uchun ishlatiladi. Undan keyin onRestart(){ bu faollik foydalanuvchi bilan muloqot qilish uchun qaytib kelsa},yoki onDestroy(): bu activity toʻxtab qolsa.
onDestroy() — Activityingiz yo’q qilinishidan oldin qabul qilingan oxirgi qadam. Bu activity tugashi yoki tizim joyni tejash uchun activityning ushbu nusxasini vaqtincha yo’q qilishi sababli sodir bo’lishi mumkin. Ushbu ikki stsenariyni isFinishing() methodi orqali ajrata olishingiz mumkin .
Activity Launchmode
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.androidjavapoint.singletop">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".ActivityA">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ActivityB" />
<activity android:name=".ActivityC" />
<activity
android:name=".ActivityD"
android:launchMode="singleTop" />
</application>
</manifest>
Launchmode — bu Android OS uchun ko’rsatma bo’lib, u activityni qanday boshlash kerakligini belgilaydi. U har qanday yangi activityni joriy task bilan qanday bog’lash kerakligini ko’rsatadi. Davom etishdan oldin siz juda muhim mavzularni tushunishingiz kerak :
1. Tasklar
2. Orqaga stack
Task:Bu ma’lum bir ishni bajarishda foydalanuvchilar o’zaro bog’laydigan harakatlar to’plami. Umuman olganda, dastur bir qator harakatlarni o’z ichiga oladi. Odatda foydalanuvchi dasturni ishga tushirganda yangi task yaratiladi va birinchi activity instancesi taskning ildizi deb ataladi. Foydalanuvchi asosiy oynadan dan ilovani ishga tushirganda, u turli xil ekranlar bo’ylab harakatlanadi, shuning uchun turli harakatlar bir-birining ustiga joylashtiriladi. Ushbu tadbirlar to’plami tasklar deb nomlanadi.
Orqa stack:Faoliyatlar har bir activity ochilish tartibi bilan tartibga solinadi. Ushbu saqlanadigan stek Back Stack deb ataladi. startActivity() yordamida yangi activityni boshlaganingizda, u sizning taskngizga yangi activityni “push” qiladi va oldingi activityni orqa stekga qo’yadi.
Tekshirilmoqda...