January 16, 2024

Mobil ilovalar

1. Androidda RelativeLayout ning o’ziga xos xususiyatlari nima va RelativeLayoutga Androidda misol keltiring.
ReiativeLayout Layouts bo'limida joylashgan bo'lib, yordamchi komponentlarga o'z o'rnini ota-komponentga nisbatan yoki qo'shni yordamchi elementlarga nisbatan (element identifikatori bo'yicha) aniqlash imkonini beradi. RelativeLayout-da asosiy elementlar shunday joylashtirilganki, agar birinchi element ekranning markazida joylashgan bo'lsa, birinchi element bilan tekislangan boshqa elementlar ekranning markaziga to'g'ri keladi. Ushbu tartib bilan, XML faylida belgilashni e'lon qilishda, boshqa taqdimot ob'ektlari tomonidan joylashishni aniqlash uchun havola qilinadigan element o'z identifikatori bilan unga murojaat qiladigan boshqa elementlardan oldin e'lon qilinishi kerak.

2.
android:layout_width="match_parent"
android:layout_height="match_parent" >

android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/button"
android:hint="Введите имя кота..." >

android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="Нажми нежно!" >
RelativeLayout - bu Android-dagi tartib bo'lib, elementlarni bir-biriga nisbatan yuqorida, pastda, o'ngda yoki chapda joylashtirish imkonini beradi. RelativeLayout-ning ba'zi maxsus xususiyatlari:

Bolalar ko'rinishlari bir-biriga, ota-ona ko'rinishiga yoki ekranga nisbatan joylashtirilishi mumkin Murakkab maketlarni bir nechta RelativeLayoutsni birlashtirish orqali yaratish mumkin.

Chegaralar, to'ldirish va tortishish tartibidagi individual ko'rinishlarga qo'llanilishi mumkin.

Androidda RelativeLayout misoli:
android:layout_width="match_parent"
android:layout_height="match_parent">

android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="TextView 1"/>

android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/textView1"
android:layout_centerHorizontal="true"
android:text="TextView 2"/>

Ushbu misolda layout_below va layout_alignParentTop atributlari yordamida ikkita TextView bir-biriga nisbatan joylashtirilgan. Birinchi TextView asosiy ko'rinishning yuqori qismida joylashgan va gorizontal markazlashtirilgan, ikkinchi TextView esa birinchisining ostida joylashgan va gorizontal ravishda markazlashtirilgan.

2. AndroidManifest.xml fayli nima va bu nima uchun kerak?
AndroidManifest.xml manifest fayli tizimga dastur haqida asosiy ma’lumotlarni taqdim etadi. Manifest fayli Android ilovasining butun arxitekturasini, uning funksionalligi va konfiguratsiyasini inkapsulyatsiya qiladi. Har bir ilova o’zining AndroidManifest.xml fayliga ega bo’lishi kerak. Uning asosiy vazifalari quyida keltirilgan:
‒ ilovaning yagona identifikator sifatida xizmat qiluvchi Java paketi nomini e’lon qiladi;
‒ ilova komponentlarini tavsiflaydi - faoliyat, xizmatlar, translyatsiya intentlarini qabul qiluvchilar va kontent provayderlari, bu komponentlarning har birini amalga oshiradigan sinflarni chaqirish va ularning intentlarini e’lon qilish imkonini beradi;
‒ API ning himoyalangan qismlariga kirish va boshqa ilovalar bilan ishlash uchun zarur ruxsatlar ro’yxatini o’z ichiga oladi;
‒ uchinchi tomon ilovalari ushbu ilova komponentlari bilan o’zaro aloqada bo’lishlari kerak bo’lgan ruxsatlarni eʼlon qiladi;
‒ ilova ishlashi uchun zarur bo’lgan Android API minimal darajasini e’lon qiladi;
tegishli kutubxonalar ro’yxatini chiqaradi.

AndroidManifest.xml fayli Android qo'shish tuzilmasining asosiy nazorati faylidir. Bu fayl Android ilovasining muhim ma'lumotlari va xususiyatlari haqida ma'lumot beradi, masalan, ilovaning turi, uch xil ilova yuklab olish tarmog'i, ilovaning kamchiliklar, ilovaning muhim foydalanuvchilari, ilova to'g'risida ma'lumotlar va boshqa.
AndroidManifest.xml fayli ilova rivojlanishi va qo'shish tuzilmasi kabi muhim vazifalarini bajarishda kerakli bo'lgan aksariyat parametrlarini saqlash uchun muhim ahamiyat kasb etadi. Ilova yuklab olishdan avval, Android ilova jarayoni bu faylga bog'liq bo'ladi va bu fayl ilovaga ishlatiladigan ma'lumotlarning to'liq borlig'ini tekshiradi.
Bu fayl ilovaga o'zgartirish kiritish, qo'shimchalar qo'shish, ilovaga kirish rejalashtirish va boshqa vazifalar bilan bog'liq bo'ladi va bu fayl bo'yicha to'liq ma'lumotlar Android qo'shish tuzilmasi bo'yicha keng foydalanuvchilarning ehtiyojlarini qondirishga yordam beradi.

3. Androidning eng so'nggi versiyasi? Androidning barcha versiyalarini sanab o'ting.
· Android 1.5, Cupcake: April 27, 2009
· Android 1.6, Donut: September 15, 2009
· Android 2.0-2.1, Eclair: October 26, 2009 (initial release)
· Android 2.2-2.2.3, Froyo: May 20, 2010 (initial release)
· Android 2.3-2.3.7, Gingerbread: December 6, 2010 (initial release)
· Android 3.0-3.2.6, Honeycomb: February 22, 2011 (initial release)
· Android 4.0-4.0.4, Ice Cream Sandwich: October 18, 2011 (initial release)
· Android 4.1-4.3.1, Jelly Bean: July 9, 2012 (initial release)
· Android 4.4-4.4.4, KitKat: October 31, 2013 (initial release)
· Android 5.0-5.1.1, Lollipop: November 12, 2014 (initial release)
· Android 6.0-6.0.1, Marshmallow: October 5, 2015 (initial release)
· Android 7.0-7.1.2, Nougat: August 22, 2016 (initial release)
· Android 8.0-8.1, Oreo: August 21, 2017 (initial release)
· Android 9.0, Pie: August 6, 2018
· Android 10.0: September 3, 2019
· Android 11.0: September 8, 2020
· Android 12.0: October 19, 2021
· Android 13.0: August 15, 2022

4. Mobil ilovalarni yaratishdagi Freymvorklar haqida ma’lumot bering.
Microsoft Xamarin
Xamarin ko'plab foydalanuvchilar tomonidan ma'qullanadi, chunki u nafaqat foydalanish oson, Android, iOS va Windows qurilmalari uchun ideal, balki u platformalararo mobil ilovalarni ishlab chiqish xizmatlarini ham taqdim etadi, ya'ni faqat C# kod bazasi bilan bir nechta platformalar uchun mahalliy dasturlar yaratish mumkin. Bu xususiyatlarning barchasi ishlab chiqish xarajatlari va bozorga chiqish vaqti nuqtai nazaridan katta foyda keltiradi.
Flutter
Chiroyli va nostandart - bu Google ochiq manbali SDK-ni tavsiflashda foydalanishimiz mumkin bo'lgan maqtovlardan faqat bir nechtasi. Flutter foydalanuvchi interfeysi qurilishidagi ko'p qirraliligi va boshqa narsalar qatori noyob, innovatsion uzluksiz animatsiyalarni yaratish kabi xususiyatlari bilan yuqori tan olingan. Ushbu platforma eng kuchli ilovalarni yaratish uchun Dart tilidan foydalanadi. Shuning uchun, Flutter iOS yoki Android tizimlari uchun 2D ilova o'yini yoki kiyim do'konini yaratish uchun juda yaxshi platforma hisoblanadi.
Adobe PhoneGap (Cordova)
Agar siz kelajakdagi kengaytirish strategiyangizga mos keladigan turli xil mobil ilovalarni ishlab chiqish platformalarini izlayotgan bo'lsangiz, PhoneGap-ning ochiq manbali bepul freymvorkini e'tiborsiz qoldirmasligingiz kerak. Ushbu parametr yordamida siz CSS3, HTML5, Javascript-dan foydalangan holda oddiy mobil ilova yaratishingiz va turli integratsiyalashgan kutubxonalar yordamida uning rivojlanishini oshirishingiz mumkin. Ilovadan foydalanishni plagin arxitekturasi bilan ham kengaytirish mumkin, bu esa mobil qurilma foydalanuvchilari uchun yanada foydali bo'ladi.
React Native
React Native yuqoridagi mobil ilovalarni ishlab chiqish platformalaridan unchalik farq qilmasligi mumkin, ammo agar siz ushbu vositada mobil ilova yaratishga harakat qilsangiz, pushaymon bo'lmaysiz. U Facebookga tegishli bo'lib, ochiq manbali o'zaro platformalarni ishlab chiqish platformasi bo'lib, shuningdek, uchinchi tomon kutubxonalari bilan integratsiyalashgan. Shuningdek, u o‘rganish va loyihalash oson bo‘lgan funksiyalarga ega turli platformalarda ilovalarni ishlab chiqish vaqtini qisqartirishi mumkin.

5.Layout turlari va o’zaro farqlarini keltiring.
Android-da ekrandagi elementlarni tartibga solish va tartibga solish uchun ishlatilishi mumkin bo'lgan bir nechta tartib turlari mavjud. Eng keng tarqalgan tartib turlari:

  • LinearLayout: elementlarni bitta satr yoki ustunga joylashtiradigan tartib. U oddiy, bir o'lchovli sxemalarni yaratish uchun ishlatilishi mumkin.
  • RelativeLayout: Elementlarni bir-biriga yoki asosiy konteynerga nisbatan joylashtirish imkonini beruvchi tartib. U yanada murakkab, ikki o'lchovli sxemalarni yaratish uchun ishlatilishi mumkin.
  • ConstraintLayout: Elementlarni cheklovlar yordamida bir-biriga yoki asosiy konteynerga nisbatan joylashtirish imkonini beruvchi tartib. U murakkab, sezgir tartiblarni yaratish uchun ishlatilishi mumkin.
  • TableLayout: Elementlarni qatorlar va ustunlar to'rida joylashtiradigan tartib. U elementlarning jadvallari yoki panjaralarini yaratish uchun ishlatilishi mumkin.
  • FrameLayout: stekdagi elementlarni tartibga soluvchi tartib, bu erda faqat yuqori element ko'rinadi. U oddiy qoplamalarni yaratish yoki bir nechta elementlarni yig'ish orqali murakkabroq sxemalarni yaratish uchun ishlatilishi mumkin.
  • CoordinatorLayout: Elementlarni cheklovlar yordamida bir-biriga yoki asosiy konteynerga nisbatan joylashtirish imkonini beruvchi tartib. U murakkab, sezgir sxemalarni yaratish uchun ishlatilishi mumkin, shuningdek, tartibdagi turli elementlar o'rtasida harakat va aylanishni muvofiqlashtirishni osonlashtiradi.

Har bir tartib o'zining kuchli va zaif tomonlariga ega va tartibni tanlash ilovaning o'ziga xos talablariga va foydalanuvchi interfeysiga bog'liq bo'ladi. LinearLayout va RelativeLayout eng asosiy maketlar bo'lib, oddiy maketlar uchun mos keladi. ConstraintLayout va CoordinatorLayout yanada kuchli va moslashuvchan bo'lib, ulardan murakkabroq, sezgir tartiblarni yaratish uchun foydalanish mumkin. TableLayout elementlarning jadvallari yoki panjaralarini yaratish uchun foydalidir. FrameLayout oddiy qoplamalar yaratish yoki bir nechta elementlarni stacking uchun foydalidir.

6. Androidda Class fayli va Activity o'rtasidagi farqni ayting.
Androidda sinf fayli Java sinfi kodini o'z ichiga olgan fayldir. Bu Java Virtual Machine (JVM) tomonidan bajariladigan bayt kodini o'z ichiga olgan matnli fayl. Sinf fayli faoliyat, xizmat, eshittirish qabul qiluvchisi yoki kontent provayderi kabi Java sinfining har qanday turi uchun kodni o'z ichiga olishi mumkin.
Boshqa tomondan, Activity- bu foydalanuvchi bajarishi mumkin bo'lgan yagona, yo'naltirilgan vazifani ifodalovchi Androiddagi sinfning o'ziga xos turi. Activity foydalanuvchiga ilova bilan muloqot qilish imkonini beruvchi foydalanuvchi interfeysini (UI) yaratish uchun javobgardir. Bu Activity sinfining quyi klassi boʻlib, u odatda foydalanuvchi kiritishini qayta ishlash, foydalanuvchi interfeysini yangilash va ilova holatini boshqarish uchun kodni oʻz ichiga oladi.
Xulosa qilib aytganda, sinf fayli bu Java sinfi uchun kodni o'z ichiga olgan fayldir, faoliyat esa Androidda foydalanuvchi bajarishi mumkin bo'lgan yagona, yo'naltirilgan vazifani ifodalovchi maxsus sinf turidir va u yaratish uchun javobgardir. foydalanuvchi interfeysi (UI). Har bir faoliyat androidda alohida sinf faylidir va u ilovada alohida kirish nuqtasi sifatida taqdim etiladi.
Class – Bu .Java faylining kompilyatsiya qilingan shakli. Android nihoyat bajariladigan APK yaratish uchun ushbu .class fayllardan foydalangan.
Activity -Faoliyat GUI asboblar to'plamidagi ramka/oynaning ekvivalentidir. Bu fayl yoki fayl turi emas, bu shunchaki ko'rinishdagi UI elementlarini yuklash uchun Androidda kengaytirilishi mumkin bo'lgan sinf.

Class file:
Class file Java dilida tuzilgan obyektlar uchun ishlatiladi.
Class file bir yoki bir nechta obyektlarning (object) bir turlarini aniqlash uchun ishlatiladi.
Class file bir obyektning belgilash, protsedurlar, funksiyalar va o'zgaruvchilarining to'liq qo'shilishini talab qiladi.
Class file bir yoki bir nechta classlar qo'shilishi mumkin.
Activity:
Activity Android OS da ishlatiladigan tizim yoki applikatsiyalarning yagona ekran tuzimi bo'lib xizmat qiladi. Activity bir obyekt bo'lib, class file yordamida yaratiladi.
Activity yagona ekran tuzimi bilan bir obyektni boshqarish uchun xizmat qiladi.
Activity bir yoki bir nechta Activitylar birlashtirilishi mumkin, ular interfeysni boshqarish va ishlatuvchining murojaatlarini javobga olish uchun xizmat qiladi.
O'zgaruvchilar:
Class file o'zgaruvchilari obyektlar o'zgaruvchilaridir va ular obyektga murojaat qilish uchun ishlatiladi.
Activity o'zgaruvchilari esa ekran tuzimi bo'yicha obyektlar o'zgaruvchilaridir va ular interfeysni boshqarish uchun ishlatiladi.
Umumiyat:

Class file va Activity obyektlar tuzilishi va boshqarishini amalga oshiradi.
Class file obyektlar tuzilish va o'zgaruvchilarining qo'shilishini amalga oshiradi, Activity esa interfeysni boshqarish va ishlatuvchining murojaatlarini javobga olishni amalga oshiradi.

7.    Android dasturi JDK haqida ma’lumot bering.
JDK, yoki Java Development Kit – Java tilini ishlab chiqish vositalari to’plamidir. Dastur ushbu tilda dasturlash uchun zarur bo’lgan barcha komponentlarni o’z ichiga olib, yozma kodni kompilyatsiya qilish, ya’ni «yig’ish» va ishga tushirish imkonini beradi. JDK barcha mashhur operatsion tizimlarda ishlaydi: Windows, Linux, macOS va boshqalar. Dastur bepul bo’lib, uni rasmiy veb-saytdan osongina yuklab olish va tizimga o’rnatish mumkin.
JDK barcha Java dasturchilari tomonidan qo’llaniladi. Java da dasturlar yozish, virtual muhit yaratish, ularni ishga tushirish va disk raskadrovka qilish uchun kerak. JDK bo’lmasa ham kod yozish mumkin, lekin uni dasturga «yig’ish» yoki uni ishga tushirish mumkin bo’lmaydi. O’rnatilgan JDK Java da dasturlash uchun zaruriy shart bo’lib, usiz til bilan ishlab bo’lmaydi. Standart JDK tuzilishi odatda quyidagi barcha komponentlarni o’z ichiga oladi: JRE (Java Runtime Environment – dasturni ishga tushirish uchun vositalar to’plami, ularsiz kod ishlamaydi va bajarilmaydi), kompilyator, API, sinflar kutubxonasi, otladchik va boshqa vositalar.

8.  RadioGroup va RadioButton orqali tanlashlar (select) ni yarating.
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RadioButton
android:id="@+id/simpleRadioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<RadioButton
android:id="@+id/simpleRadioButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

9.  Androidda XML faylidagi elementlarni (Button, TextView, CheckBox) Java classi bilan bog’lashni amalga oshiring.
Button button = (Button) findViewById(R.id.button_send);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Do something in response to button click
}
});

android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/meat"
android:onClick="onCheckboxClicked"/>
public void onCheckboxClicked(View view) {
boolean checked = ((CheckBox) view).isChecked();
switch(view.getId()) {
case R.id.checkbox_meat:
if (checked)
// Put some meat on the sandwich
else
// Remove the meat
break; }}

android:id="@+id/text_view_id"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/hello" />
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final TextView helloTextView = (TextView) findViewById(R.id.text_view_id);
helloTextView.setText(R.string.user_greeting);
}
}

// SharedPreferences-da ma'lumotlarni saqlash
SharedPreferences sharedPreferences = getSharedPreferences("MySharedPref",MODE_PRIVATE);
// Tahrirlash uchun muharrir ob'ektini yaratish (faylga yozish)
SharedPreferences.Editor myEdit = sharedPreferences.edit();
// Kalit va uning qiymatini tahrirlash matnidan olingan ma'lumotlar sifatida saqlash
myEdit.putString("name", name.getText().toString());
myEdit.putInt("age", Integer.parseInt(age.getText().toString()));
// O'zgartirishlar kiritilgandan so'ng,
// biz kiritilgan o'zgarishlarni qo'llash majburiyatini olishimiz kerak,
// aks holda, u xatoga yo'l qo'yadi
myEdit.commit();

10. Android Studioda SharedPreferences obyekti haqida ma’lumot bering.
Android o'z foydalanuvchilariga taqdim etadigan eng qiziqarli ma'lumotlarni saqlash imkoniyatlaridan biri bu Shared Preferences dir. Shared Preferences - bu dastur ichidagi XML faylida sizning preferenceslaringizni tashkil etadigan qurilma xotirasidagi String, int, float, Boolean kabi tiplarni qurilma xotirasidagi faylga kalit/qiymat juftlari sifatida kichik hajmdagi primitiv ma'lumotlarni saqlash va olish usulidir. Shared Preferences lug'at yoki kalit/qiymat juftligi sifatida ko'rib chiqilishi mumkin. Misol uchun, sizda "foydalanuvchi nomi" kaliti bo'lishi mumkin va qiymat uchun siz foydalanuvchining foydalanuvchi nomini saqlashingiz mumkin. Va keyin siz uni kaliti (bu yerda foydalanuvchi nomi) orqali olishingiz mumkin. Sizda preferenceslarni saqlash va kerak bo'lganda ularni qaytarib olish uchun foydalanishingiz mumkin bo'lgan oddiy shared preference API bo'lishi mumkin. Shared Preferences klassi ushbu ma'lumotlarni o'qish, yozish va boshqarish uchun API'larni taqdim etadi.
Biz qilishimiz kerak bo'lgan birinchi narsa - har bir ilova uchun bitta shared preferences faylini yaratish. Shuning uchun uni ilovangizning paket nomi bilan nomlang - noyob va ilova bilan bog'lanishi oson bo’lishi kerak. Qiymatlarni olishni istasangiz, getSharedPreferences() metodini chaqiring. Shared preferences ma'lumotlarni saqlash usullarini ta'minlaydi (shaxsiy rejim va umumiy rejim). Bu orqaga qarab muvofiqlik uchun - xavfsiz bo'lish uchun faqat MODE_PRIVATE dan foydalaning.
public abstract SharedPreferences getSharedPreferences (String name, int mode)
Ushbu metod ikkita argumentni oladi, birinchisi SharedPreference(SP) faylining nomi, ikkinchisi esa faylimizni saqlamoqchi bo'lgan kontekst rejimidir.
MODE_PUBLIC faylni hammaga ochiq qiladi, unga qurilmadagi boshqa ilovalar kirishi mumkin. MODE_PRIVATE fayllarni maxfiy saqlaydi va foydalanuvchi ma'lumotlarini himoya qiladi.
MODE_APPEND SP faylidan ma'lumotlarni o'qishda ishlatiladi.
Quyida Shared Preferences ga ma’lumotni qanday yozsih kerakligini ko’ratuvchi kod berilgan:

10. Yangi ilova yaratishda muhim fayl va papka haqida qisqacha tushuntirib bering.
Android loyihasida turli turdagi dastur modullari, manba kodi fayllari va resurs fayllari mavjud. Biz android ilovasidagi barcha papkalar va fayllarni o'rganamiz.
1. Manifests Folder
2. Java Folder
3. res (Resources) Folder
· Drawable Folder
· Layout Folder
· Mipmap Folder
· Values Folder
4. Gradle Scripts
Manifestlar papkasida Android ilovasini yaratish uchun AndroidManifest.xml mavjud. Bu faylda Android versiyasi, metadata, Kotlin fayli uchun holatlar paketi va boshqa dastur komponentlari kabi ilovamiz haqidagi maʼlumotlar mavjud.
Java jildida ilovani ishlab chiqish jarayonida yaratadigan barcha java va Kotlin manba kodlari (.java) fayllari, jumladan, boshqa Test fayllari mavjud.
Resurs papkasi eng muhim jilddir, chunki u bizning android ilovamiz uchun tasvirlar, XML maketlari va UI qatorlari kabi barcha kodsiz manbalarni o'z ichiga oladi.

Gradle Scripts folder
Gradle avtomatlashtirilgan qurish tizimini anglatadi va u bizning ilovamizdagi barcha modullarga qo'llanilishi mumkin bo'lgan qurilish konfiguratsiyasini aniqlash uchun ishlatiladigan bir qator fayllarni o'z ichiga oladi. build.gradle (Loyiha) da buildscripts mavjud va build.gradle (Module) da plaginlari va ilovalari barcha dastur modullarimizga qo'llanilishi mumkin bo'lgan konfiguratsiyalarni yaratish uchun ishlatiladi.

12.XML faylda EditText komponentasini yaratib va Java fayl bilan bog’lab, kiritilgan ma’lumotni Toast ga chiqaring.
activity_main.xml faylida EditText komponentasini yaratamiz:
<EditText
android:id="@+id/editText"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:inputType="text"/>
MainActivity.java da kiritilgan ma’lumotni Toast ga chiqaramiz:
package com.example.helloworld;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button showBtn = findViewById(R.id.showBtn);
EditText editText = findViewById(R.id.editText);
showBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), editText.getText().toString(), Toast.LENGTH_LONG).show();
} }); } }

13. Androidda Activityning to'rtta muhim holatini ayting.

Active State
Faoliyat faol holatda bo'lsa, bu uning faol va ishlayotganligini bildiradi.
U foydalanuvchiga ko'rinadi va foydalanuvchi u bilan muloqot qilish imkoniyatiga ega.
Android Runtime ushbu holatda faoliyatga eng yuqori ustuvorlik bilan qaraydi va hech qachon uni o'ldirishga urinmaydi.

Paused State
Faoliyatning bu holatda bo'lishi foydalanuvchi Faoliyatni fonda, masalan, shaffof oyna yoki dialog oynasi orqasida, ya'ni qisman ko'rinadigan holda ko'rishini bildiradi.
Foydalanuvchi joriy ko'rinish bilan yakunlanmaguncha Faoliyat bilan o'zaro aloqa qila olmaydi.
Android Runtime odatda bu holatda Faoliyatni o'ldirmaydi, lekin resurs taqchilligining ekstremal holatida buni amalga oshirishi mumkin.

Stopped State
Joriy faoliyat ustida yangi faoliyat boshlanganda yoki foydalanuvchi "home" tugmachasini bosganida, faoliyat To'xtatilgan holatga keltiriladi.
Bu holatdagi faoliyat ko'rinmas, lekin buzilmaydi.
Resurs taqchilligi holatlarida Android Runtime bunday faoliyatni o'ldirishi mumkin.

Destroyed State
Agar foydalanuvchi "Orqaga" tugmachasini bosganida yoki Android Runtime dasturi faoliyatga ajratilgan xotirani, ya'ni to'xtatilgan yoki to'xtatilgan holatda qayta tiklashga qaror qilsa, u Yo'q qilingan holatga o'tadi.
Faoliyat xotiradan chiqib ketgan va u foydalanuvchiga ko'rinmaydi.

14.Android Studioda oddiy messenjer yaratish ketma-ketligini tushuntiring.
1. Android Studioga kirib New Project yaratiladi.
2. Project Libraries fayliga kirib plaginlarni qo’shamiz chat uchun.
3. Builderni konfiguratsiyasini to’g’rilaymiz. Buning uchun gradle sync operation ni amalga oshiramiz.
4. ChatSDK ni initsializatsiya qilish kerak.
5. Userni ro’yxatdan o’tkazish kerak.
6. Chat Server bilan bog’lash uchun kerakli kodlar yoziladi.
7. Tekst xabar yuborish kodini yozamiz.
8. Tekst qabul qilish kodini yozamiz.
https://habr.com/en/post/683898/

Android Studio'da oddiy messenjer ilovasini yaratish uchun bajarilishi mumkin bo'lgan umumiy qadamlar ketma-ketligi:

1.Rivojlanish muhitini sozlang: Android Studio dasturini ishlab chiqish mashinangizga, shuningdek, kerakli SDK va ishlab chiqish vositalariga oʻrnating va sozlang.
2.Yangi loyiha yarating: Android Studio-ni oching va yangi loyiha yarating. Shablon sifatida "Bo'sh faoliyat" ni tanlang va keyin loyiha uchun asosiy sozlamalarni sozlang.
3.Tartibni loyihalash: ilova tartibini, jumladan, asosiy faoliyat va qo‘shimcha ekranlar yoki ko‘rinishlarni loyihalash uchun Android Studio tartib muharriridan foydalaning.
4.Foydalanuvchi interfeysini yarating: Android Studio tartib muharriridan foydalanuvchi interfeysini, jumladan tugmalar, matn maydonlari va boshqa vidjetlarni yaratish uchun foydalaning.
5.Xabar jo‘natish va qabul qilish funksiyasini amalga oshiring: Xabarni yuborish va qabul qilish funksiyasini, jumladan, foydalanuvchi kiritish, xabarlarni jo‘natish va qabul qilingan xabarlarni ko‘rsatish mantiqini amalga oshirish uchun Java yoki Kotlin’dan foydalaning.
6.Suhbat funksiyasini amalga oshiring: chat funksiyasini amalga oshirish uchun Java yoki Kotlin-dan foydalaning, shu jumladan suhbatlarni yaratish va boshqarish, xabarlarni jo‘natish va xabarlarni chat ko‘rinishida ko‘rsatish uchun mantiq.
6.Ma'lumotlar bazasini amalga oshirish: SQLite yoki boshqa ma'lumotlar bazasidan foydalanuvchi ma'lumotlari va suhbat tarixi kabi ma'lumotlarni saqlash va olish uchun foydalaning.

7.Ilovani sinab ko'ring: Ilovani emulyator yoki qurilmada ishga tushiring va barcha funksiya va funksiyalarni sinab ko'ring.
8.Kodni qayta tiklash: Ilovani sinab ko'rganingizda, yaxshi ishlash uchun kodni qayta tiklash yoki optimallashtirish kerak bo'lgan joylarni topishingiz mumkin.
9.Ilovani nashr qilish: Ilova toʻliq ishlagan va sinovdan oʻtgandan soʻng uni chiqarishga tayyorlashingiz va Google Play doʻkoniga yuborishingiz mumkin.

Xulosa qilib aytganda, Android Studio’da oddiy messenjer ilovasini yaratish ishlab chiqish muhitini o‘rnatish, yangi loyiha yaratish, maketni loyihalash, foydalanuvchi interfeysini yaratish, xabar yuborish va qabul qilish funksiyalarini amalga oshirish, chat funksiyasini amalga oshirish, ma'lumotlar bazasi, ilovani sinab ko'rish, kodni qayta tiklash va ilovani nashr qilish.

15.Android CallLog haqida ma’lumot bering.
Android CallLog - bu qurilmada qilingan, qabul qilingan va o'tkazib yuborilgan telefon qo'ng'iroqlari haqidagi ma'lumotlarni saqlaydigan Android tizimidagi kontent provayderi. Unda telefon raqami, qo'ng'iroq turi, sana va vaqt va davomiyligi kabi har bir qo'ng'iroq haqida batafsil ma'lumotlar mavjud. CallLog-ga android.provider paketining bir qismi bo'lgan CallLog klassi yordamida kirish mumkin.
CallLog klassi qo'ng'iroqlar jurnali ma'lumotlariga kirish va so'rov qilish uchun ishlatilishi mumkin bo'lgan bir nechta usullarni taqdim etadi. Misol uchun, query() usuli qo'ng'iroqlar jurnali ma'lumotlarini o'z ichiga olgan kursorni olish uchun ishlatilishi mumkin va addCall() usuli qo'ng'iroqlar jurnaliga yangi qo'ng'iroq qo'shish uchun ishlatilishi mumkin.
CallLog-ga kirish uchun AndroidManifest.xml faylingizda READ_CALL_LOG ruxsatiga ega bo'lishingiz kerak. Ruxsat olganingizdan so'ng, CallLog kontent provayderiga so'rov yuborish uchun ContentResolver sinfidan foydalanishingiz mumkin.

Misol uchun, quyidagi kod parchasi eng so'nggi qilingan qo'ng'iroqni qanday qilib olish mumkinligini ko'rsatadi:

String[] projection = new String[] {
CallLog.Calls.NUMBER,
CallLog.Calls.TYPE,
CallLog.Calls.DATE
};

Cursor cursor = context.getContentResolver().query(

CallLog.Calls.CONTENT_URI,
projection,
null,
null,
CallLog.Calls.DATE + " DESC"
);
CallLog.Calls – oxirgi murojaatlarni o’z ichiga oladi;
CallLog.Locations – joylashuv ma’lumotlari yuborilgan axborotni o’z ichiga olgan jadval.
Xulosa qilib aytganda, Android CallLog - bu qurilmada qilingan, qabul qilingan va o'tkazib yuborilgan telefon qo'ng'iroqlari haqidagi ma'lumotlarni saqlaydigan tizim bilan ta'minlangan kontent provayderi. Unda telefon raqami, qo'ng'iroq turi, sana va vaqt va davomiyligi kabi har bir qo'ng'iroq haqida batafsil ma'lumotlar mavjud. CallLog-ga android.provider paketining bir qismi bo'lgan CallLog klassi yordamida kirish mumkin. READ_CALL_LOG ruxsatiga ega bo'lganingizdan so'ng, uni ContentResolver klassi yordamida so'rash mumkin

16.Mobil ilova ishlab chiqish (Texnik topshiriq) tamoyillari haqida umumiy ma’lumotlar bering.
Mobil ilovalarni ishlab chiqarish tamoyillari, shuningdek, "texnik topshiriq" (TOR) sifatida ham tanilgan, mobil ilovalar loyihasining ko'lami va maqsadlarini belgilaydigan ko'rsatmalar to'plamidir. Ushbu tamoyillar loyihaning natijalari, muddatlari va resurslarini aniqlashga yordam beradi va barcha manfaatdor tomonlar loyihaning maqsadlari va talablari bo'yicha bir sahifada bo'lishini ta'minlaydi.

Bu yerda odatda mobil ilovalar ishlab chiqarish TORga kiritilgan ba'zi asosiy tamoyillar:

  • Maqsadlar: Mobil ilova loyihasining maqsad va vazifalarini, jumladan, ilova nimaga mo‘ljallanganligi va foydalanuvchining aniq ehtiyojlarini aniq belgilab qo‘ying.
  • Qo'llanish doirasi: Loyiha chegaralarini, jumladan, ilovaga qaysi xususiyatlar va funksiyalar kiritilishi va qaysi biri chiqarib tashlanishini aniqlang.
  • Etkazib beriladigan mahsulotlar: loyihaning bir qismi sifatida ishlab chiqariladigan maxsus mahsulotlarni, masalan, simli ramkalar, maketlar va dasturning yakuniy manba kodini belgilang.
  • Jadval: Loyihaning asosiy bosqichlari, muddatlari va yetkazib berish sanalarini o'z ichiga olgan vaqt jadvalini belgilang.
  • Resurslar: Loyiha uchun zarur bo'lgan resurslarni, jumladan, xodimlar, uskunalar va dasturiy ta'minotni belgilang.
  • Sifat kafolati: Yakuniy ilova loyiha maqsadlari va foydalanuvchi ehtiyojlariga javob berishini ta'minlash uchun foydalaniladigan sifatni ta'minlash jarayonini tavsiflang.
  • Aloqa: Loyihaning manfaatdor tomonlari, jumladan, ishlab chiqish guruhi, loyiha menejeri va mijoz o'rtasidagi aloqa va hamkorlik uchun foydalaniladigan kanallar va protokollarni belgilang.
  • Byudjet: Loyiha uchun byudjetni, shu jumladan ishlab chiqish, sinovdan o'tkazish va joylashtirish xarajatlarini belgilang.
  • Texnik xizmat ko'rsatish va qo'llab-quvvatlash: Ilova chiqarilgandan keyin unga texnik xizmat ko'rsatish va qo'llab-quvvatlash rejasini tavsiflang.
  • Xavfsizlik: Ilova va uning foydalanuvchilari ma'lumotlarini himoya qilish uchun amalga oshiriladigan xavfsizlik choralarini tavsiflang.

Ushbu tamoyillar loyihaning murakkabligiga qarab o‘zgaradi, lekin ular odatda mobil ilovani ishlab chiqish uchun asos yaratadi va yakuniy mahsulot foydalanuvchi va manfaatdor tomonlar talablariga javob berishini ta’minlaydi.

17. Mobil ilovalarni ishlab chiqishdagi dasturlash tillari orasidagi farqlar (Java va Kotlin).
• Kotlin obyektga yo'naltirilgan va funktsional dasturlash xususiyatlarini birlashtiradi, Java esa obyektga yo'naltirilgan dasturlash bilan cheklangan.
• Kotlin foydalanuvchilarga kengaytma funksiyasini yaratishga imkon beradi, Java esa kengaytma funksiyalarini taklif qilmaydi.
• Kotlin yashirin konversiyalarni taklif qilmaydi va Java yashirin konvertatsiyalarni qo'llab-quvvatlaydi.
• Kotlinda null o'zgaruvchilar yoki obyektlar mavjud emas; boshqa tomondan, Null o'zgaruvchilar yoki ob'ektlar Java tilining bir qismidir.
• Kotlin statik a'zolarni qo'llab-quvvatlamaydi, Java esa statik a'zolardan foydalanadi.
• Kotlinda primitiv tipdagi oʻzgaruvchilar obʼyektlar, Javaʼda esa primitiv tipdagi oʻzgaruvchilar obyektlar emas.
• Kotlin Lambda ifodasini qo'llab-quvvatlaydi, Java esa Lambda ifodasini qo'llab-quvvatlamaydi. (Lambda ifodalari Java 8 da qo'shilgan)
• Kotlin hech qanday o'zgaruvchan ma'lumotlar turi spetsifikatsiyasini talab qilmaydi, Java esa o'zgaruvchan ma'lumotlar turi spetsifikatsiyalarini talab qiladi.
Java va Kotlin ikkala dasturlash tillari bo'lib, Android platformasida mobil ilovalarni ishlab chiqishda foydalanish mumkin. Ikki til o'rtasidagi asosiy farqlardan ba'zilari:

  • Sintaksis: Kotlin sintaksisi Java-ga qaraganda ixcham va ifodali bo'lib, uni o'qish va tushunishni osonlashtiradi.
  • Null Safety: Kotlin null xavfsizlik xususiyatiga ega, bu null ko'rsatgich istisnolari xavfini yo'q qiladi va kodni yanada ishonchli qiladi. Java-da bu xususiyat mavjud emas.
  • Kengaytma funktsiyalari: Kotlin mavjud sinflarga ulardan meros qoldirmasdan yangi funksiyalarni qo'shish qobiliyatiga ega, bu esa kodni qayta foydalanishga imkon beradi. Java-da bu xususiyat mavjud emas.
  • Ma'lumotlar sinflari: Kotlinda ma'lumotlar sinflari uchun maxsus sintaksis mavjud bo'lib, u ma'lumotlarni saqlaydigan sinflarni yaratishni osonlashtiradi va avtomatik ravishda qabul qiluvchilar, sozlagichlar, tenglar va hashCode funktsiyalarini yaratadi. Java-da bu xususiyat mavjud emas.
  • Koroutinlar: Kotlinda ishlab chiquvchilarga asinxron, bloklanmaydigan kod yozish imkonini beruvchi koroutinlar mavjud. Java-da bu xususiyat mavjud emas.
  • O'zaro ishlash: Java va Kotlin 100% o'zaro ishlaydi, ya'ni Java kodi Kotlin kodini chaqira oladi va aksincha.

Xulosa qilib aytganda, Kotlin Java-ga nisbatan bir qator afzalliklarga ega, masalan, qisqaroq va ifodali sintaksis, null xavfsizlik, kengaytma funktsiyalari, ma'lumotlar sinflari, koroutinlar va ikkala til ham to'liq o'zaro ishlaydi. Shunday qilib, bu tilni tanlashda ishlab chiquvchilarning xohishiga, tajribasiga va loyihaning o'ziga xos ehtiyojlariga bog'liq.
18. Androidda sensorlarni tushuntiring.
Aksariyat Android qurilmalarida harakat, joylashuv va turli xil atrof-muhit sharoitlarini o'lchaydigan o'rnatilgan sensorlar mavjud. Ushbu sensorlar yuqori aniqlik bilan ma'lumotlarni taqdim etishga qodir va qurilmaning uch o'lchamli harakatini yoki joylashishini yoki qurilma yaqinidagi muhitdagi o'zgarishlarni kuzatishda foydali bo'ladi. Sensorlarning ba'zilari apparatga, ba'zilari esa dasturiy ta'minotga asoslangan. Android ushbu sensorlardan dastlabki ma'lumotlarni olish va uni ilovada ishlatish imkonini beradi. Buning uchun Android SensorManager va Sensor sinflarini taqdim etadi. Android platformasi sensorlarning uchta keng toifasini qo'llab-quvvatlaydi:
1. Harakat (motion) sensorlari – bu sensorlar uchta o’q bo'ylab tezlanish va aylanish kuchlarini o'lchaydi. Ushbu toifaga akselerometrlar, tortishish sensorlari, giroskoplar va aylanish vektor sensorlari kiradi.
2. Atrof-muhit (environmental) sensorlari – bu sensorlar atrof-muhit havosining harorati va bosimi, yorug'lik va namlik kabi turli xil atrof-muhit parametrlarini o'lchaydi. Bu toifaga barometrlar, fotometrlar va termometrlar kiradi.
3. Joylashuv (position) sensorlari – bu sensorlar qurilmaning jismoniy holatini o'lchaydi. Ushbu toifaga orientatsiya sensorlari va magnitometrlar kiradi.
Android platformida sensorlar bir nechta turda bo'lib, ularning hammasi o'z funksiyalari va xususiyatlari bilan foydalaniladi.

  1. Accelerometer Sensor: Bu sensor ekranning qayerga bo'linganini aniqlash uchun ishlatiladi. Telefondagi harakatlar va yorug'liklar quyidagi harakatlar bo'yicha aniqlanishi mumkin: kabirroq yoki o'g'irlik bilan.
  2. Gyroscope Sensor: Bu sensor telefonda harakat qilinadigan yerga qarab turish uchun ishlatiladi. Bu sensor telefondagi harakatlar va orientatsiyalarning aniqlanishini yaxshi va sodiqlik bilan amalga oshiradi.
  3. Proximity Sensor: Bu sensor telefondan qo'lda qalqaydi va uning yoniga boradigan kichik ob'ektlarning qo'lda yotish va yopishini aniqlash uchun ishlatiladi.
  4. Light Sensor: Bu sensor ekranning ishlamasligi, telefondagi o'rtacha ishlatiladigan yorug'lik va izolatsiyani aniqlash uchun ishlatiladi.
    5.Magnetic Sensor: Bu sensor yer xavfsizligi, kompas yoki elektromagnitik yondashuv funksiyalarini amalga oshirish uchun ishlatiladi.
    6.Barometer Sensor: Bu sensor yerga bo'linadigan bo'yalarning yuqori va past hosilalarini aniqlash uchun ishlatiladi.
    7.Heart Rate Sensor: Bu sensor telefondagi sensorni qo'lda qo'yib, yuragining o'zgaruvchiligini aniqlash uchun ishlatiladi.
    8.Fingerprint Sensor: Bu sensor telefondagi kiritilgan malumotlarni himoyalash va parolni unutgach, boshqa foydalanuvchilar tomonidan qo'llanishini qat'iy man etish uchun ishlatiladi.

Har qanday sensor Android platformida ishlab chiqilgan bo'lishi mumkin, ammo ularning hammasi telefon xususiyatlari va funksiyalari bilan bog'liq bo'ladi.

19. Androidda OnBackPressed() ni qanday o'chirib qo'yish mumkin?
OnBackPressed() metodini o'chirish uchun, biz Android activity classida o'zgartirishlar qilishimiz lozim. Bundan tashqari, bir Activity classida OnBackPressed() metodini override qilish kerak bo'ladi. OnBackPressed() metodini override qilib, biz uni ishlatish va kod qo'shish uchun mavjud funksiyalar bilan birga tahrirlab qo'yishimiz mumkin.
Misal uchun, Activity classi qolgan activity-lardan birini o'chirishni va quyidagi kodga o'xshash funksiyalar bilan ishlatishni ta'minlash:
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
}
Yana bir misol uchun, ekranda aksionimizga yordam beruvchi Dialog bor bo'lsa, OnBackPressed() metodini yana qo'yishimiz kerak:
@Override
public void onBackPressed() {
if (dialog.isShowing()) {
dialog.dismiss();
} else {
super.onBackPressed();
finish();
}
}
Bu misolda, ekranda dialog mavjud bo'lsa, u o'chiriladi, aks holda activity o'chiriladi.
20. Kotlinning afzalliklari va kamchiliklari qanday?
Android ilovalarini ishlab chiqish uchun Kotlin afzalliklari:

tushunish oson
Kotlin nafaqat qayta yozishga, balki Java funksiyalarini yaxshilashga intiladi. Kotlin bilan bog'liq har bir loyiha, shuningdek, mobil ilovani ishlab chiquvchi Java-da ishlaganda o'rgangan va egallagan barcha ko'nikmalarga bog'liq bo'lishi mumkin.

Xatolar ehtimoli kamroq
Kotlin oddiyroq va engil kodlar bazasi uchun xato qilish uchun joy qoldirmaydi. Yana barqaror chiqish kodlari ham chiqariladi. Kompilyatsiya vaqt oralig'ida kompilyator har qanday mumkin bo'lgan xatolarni hech qanday qiyinchiliksiz aniqlay oladi. Natijada, Kotlin xavfsizroq Java muqobiliga aylanadi.

Ko'proq ishonchli
Boshqa ko'plab an'anaviy dasturlash tillari bilan solishtirganda, Kotlin ancha rivojlangan. 2011 yilda Kotlin tug'ilgan. Yakuniy versiyasini ishga tushirishdan oldin, Kotlin chiqarilgan paytdan boshlab ko'plab beta va alfa darajalariga chidadi.

Xizmatda qulaylik
Kotlin ko'plab IDE-larni, jumladan, Android Studio va boshqa ko'plab SDK dasturlarini qo'llab-quvvatlaydi. Bu ishlab chiquvchining umumiy mahsuldorligini oshirishga qaratilgan, chunki u tez-tez ishlatib turadigan asboblar to'plamini o'z ichiga olishi mumkin.

Mavjud java kodi bilan muvofiqlashtirish
Java-da interoperable bu Kotlin dasturlash tilidir. Bu Java va loyiha bilan bog'liq bir qancha boshqa ramkalar va dasturiy ta'minot. Bu Kotlinga o'tish imkonini beradi va ikkita dasturlash tilidan bir vaqtning o'zida qulay foydalanish mumkin.

Unumdorlikni oshirish
Kotlin - Java-ga asoslangan dasturlash tili. Java-ning noqulay va eskirganligini olib tashlash kerak. Kotlin sodda, portativ va kuchli til bo'lishdan tashqari intuitiv va qisqacha sintaksisga ega. Shunday qilib, Kotlin ishlab chiquvchilarning umumiy mahsuldorligini optimallashtirishga qodir.
Android ilovalarini ishlab chiqish uchun Kotlinning kamchiliklari

Kotlin minimal o'rganish imkoniyatlari:
Ko'pgina ishlab chiquvchilar Kotlinga ko'chib o'tayotgan bo'lsa-da, butun dunyo bo'ylab ishlab chiquvchilarning oz soni mavjud. U dasturlash tilini o'rganish uchun minimal vositalarni va dasturiy ta'minotni ishlab chiqish jarayonida turli so'rovlarni beradi.

Kompilyatsiya tezligi sekinroq
Ba'zi hollarda, Kotlin Java-ga qaraganda tezroq ishlaydi, ayniqsa incremental konstruktsiyalar jarayonida. Ammo shuni yodda tutingki, toza qurilish haqida gap ketganda, Java har doim o'sishni ta'minlaydi.

Java'dan farq qiladi
Kotlin va Java ba'zi o'xshashliklarga ega bo'lsa ham, ular hali ham bir nechta asosiy farqlarga ega. Kotlin haqida keng ma'lumotga ega bo'lgandan so'ng, mobil ilova ishlab chiquvchilari boshqa dasturlash tiliga o'ta olmaydi.

Ishga olish uchun kamroq Kotlin mutaxassislari
Kotlinning o'ta dolzarbligiga qaramay, bugungi kunda bu sohada faqat bir nechta dasturchilar mavjud. Kotlin ustida ishlamoqchi bo'lgan har bir mobil ilova ishlab chiqaruvchisi chuqur ma'lumotga muhtojligini aytish bejiz emas. Afsuski, Kotlin sektoridagi mutaxassislarni topish ham qiyin.
Xulosa:
Zamonaviy davrning ushbu dasturlash tilini yaxshilab o'rganish kerak. Kotlinning ko'zga ko'ringan cho'qqiga ko'tarilganiga guvoh bo'lgunimizcha yana bir necha yil kutishimiz kerak.

Androidda Service ni qanday qilib start/stop qilish mumkin?
Service ni start qilish.
Intentni startService() yoki startForegroundService() ga o'tkazish orqali service ni activity yoki boshqa dastur komponentidan foydalanib boshlash mumkin. Android tizimi servicening onStartCommand() metodini chaqiradi va unga qaysi serviceni ishga tushirishni ko'rsatuvchi Intentni uzatadi.
Masalan, quyida HelloService ni Explicit Intent va startService() dan foydalanib service ni ishga tushirish namunasi berilgan:
Intent intent = new Intent(this, HelloService.class);
startService(intent);
Service ni to'xtatish
Boshlangan service o'zining “hayot sikl”ini boshqarishi kerak. Ya'ni, tizim xotirasini tiklashi kerak bo'lmaguncha va service onStartCommand() qaytarilgandan keyin ishlashni davom ettirmasa, tizim service ni to'xtatmaydi yoki yo'q qilmaydi. Service stopSelf() ga murojaat qilish orqali o'zini to'xtatishi kerak yoki boshqa komponent stopService() dan foydalanib uni to'xtatishi mumkin.
StopSelf() yoki stopService() bilan to'xtatish so'ralganda, tizim imkon qadar tezroq service ni to’xtatadi.
Intent myService = new Intent(MainActivity.this, BackgroundSoundService.class);
stopService(myService);

22. Androidda - Audio Manager ga misol keltiring.
AndroidManager sinfidan foydalanish uchun siz getSystemService() usulini chaqirish orqali avval AudioManager sinfining ob'ektini yaratishingiz kerak. Uning sintaksisi quyida keltirilgan.
private AudioManager myAudioManager;
myAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
AudioManager sinfining ob'ektini yaratganingizdan so'ng, qurilmangizning audio yoki qo'ng'iroq profilini o'rnatish uchun setRingerMode usulidan foydalanishingiz mumkin. Uning sintaksisi quyida keltirilgan.
myAudioManager.setRingerMode(AudioManager.RINGER_MODE_VIBRATE);
setRingerMode usuli parametr sifatida butun sonni oladi. Har bir rejim uchun turli rejimlarni farqlaydigan butun son belgilanadi. Mumkin rejimlar.
Tartibni o'rnatganingizdan so'ng, tizimning o'rnatilgan holatini olish uchun getRingerMode() usulini chaqirishingiz mumkin. Uning sintaksisi quyida keltirilgan.
int mod = myAudioManager.getRingerMode();
GetRingerMode usulidan tashqari, AudioManager sinfida ovoz balandligi va boshqa rejimlarni boshqarish uchun boshqa usullar mavjud. Ular quyida keltirilgan.

Android-dagi Audio menejeri ilovalar uchun audio resurslarni boshqaradigan tizim xizmatidir. U turli xil audio oqimlarning, jumladan, media, ovozli qo'ng'iroqlar, bildirishnomalar va signallarning ovoz balandligini boshqarish uchun javobgardir. Ovoz menejeri, shuningdek, ilovalarning bir-biri bilan muloqot qilish va audio resurslarni almashish usulini taqdim etadi.

Ovoz menejerining asosiy xususiyatlaridan biri bu turli xil audio oqimlarining ovoz balandligini dinamik ravishda sozlash qobiliyatidir. Bu shuni anglatadiki, bitta oqimning ovozi boshqa oqim o'ynalganda avtomatik ravishda kamayishi mumkin, bu audio to'qnashuvlarning oldini oladi va audio tajribasi uzluksiz va silliq bo'lishini ta'minlaydi.

Ovoz menejeri, shuningdek, ilovalarga audio fokusni so'rash imkonini beradi, bu boshqa audio oqimlardan uzilishlarsiz ovozni ijro etish qobiliyatidir. Ilovalar ma'lum bir audio oqim uchun audio fokusni so'rashi va kerak bo'lmaganda uni qo'yib yuborishi mumkin. Bu audio resurslardan samarali va samarali foydalanishni ta'minlaydi.

Audio menejerning yana bir muhim xususiyati uning audio marshrutlashni qo'llab-quvvatlashidir. Bu foydalanuvchining xohishiga ko'ra audio oqimlarni eshitish vositalari yoki karnay kabi turli xil audio chiqishlarga yo'naltirish imkonini beradi.

Xulosa qilib aytganda, Android-dagi Audio menejeri ilovalar uchun audio resurslarni boshqarishda hal qiluvchi rol o'ynaydigan muhim komponent hisoblanadi. Bu ilovalar uchun audio resurslarni almashish va foydalanuvchilar uchun uzluksiz audio tajribasini ta'minlashning oddiy va samarali usulini taqdim etadi.

23.         Androidning kamchiliklari keltiring.
Tez-tez zaryadlash. Ushbu OT telefonning xususiyatlariga qaramay, telefonni juda tez zaryadsizlantiradi. Buning sababi, tizimning o’zi unga taqdim etilgan apparat resurslarini tejamaydi. Qisman, kamchilikni energiya tejashni sozlash, keraksiz funksiyalarni o’chirish orqali tuzatish mumkin, lekin faqat qisman.
Versiyaning mos kelmasligi. Operatsion tizimning yangi versiyalari ko’pincha ishlab chiqarishdan to’xtatilgan eskirgan qurilmalar bilan ziddiyatga ega bo’ladi. Natijada, yangilanishdan so’ng telefon foydalanuvchi xohlaganidan boshqacha ishlay boshlaydi - batareya tezda tugaydi, muzlab qoladi, qayta ishga tushadi va boshqalar.
Oldindan o’rnatilgan dasturlarning ko’pligi. Har bir Android smartfonida juda ko’p keraksiz dasturlar mavjuddir. Yangi qurilma birinchi marta ishga tushirilgandan keyin ham foydalanuvchi o’rnatmagan ko’plab ilovalarni topishi mumkin.
Ochiq kodli manba. Buning yordamida ushbu tizim uchun ijtimoiy tarmoq parollarini, bank ma’lumotlarini va hokazolarni ushlab qolishi mumkin bo’lgan ko’plab virus dasturlari yozilgan

24.         Overloading ва overriding metodlari nima va ularning o’zaro farqi?
Agar bitta sinfdagi ikki yoki undan ortiq metodlar bir xil nomga ega bo’lsa, lekin parametrlari boshqacha bo’lsa, bu overloading deb ataladi. Bu usul bir xil nomli, ammo boshqa parametrlar to’plamiga ega metodni yaratishda qo’llaniladi. Metod nomi va parametrlari superclass va meros sinflarida bir xil bo’lsa, u overriding deb ataladi. Bu usul mavjud metodni qayta yozish (to’girlash, bekor qilish) uchun qo’llaniladi.
Overloading va overriding usullari o’rtasidagi farqlar quyida keltirilgan:
overloading dasturning o’qish qobiliyatini oshiradi; overriding o’zining super klassi tomonidan taqdim etilgan usulning aniq amalga oshirilishini ta’minlash uchun ishlatiladi.
overloading sinf ichida amalga oshiriladi; overriding IS-A (meros) munosabatiga ega bo’lgan ikkita sinfda sodir bo’ladi.
overloading da parametr har xil bo’lishi kerak; overriding da parametr bir xil bo’lishi kerak.
overloading kompilyatsiya vaqti polimorfizmiga misoldir; overriding ish vaqti polimorfizmiga misoldir.
overloading faqat metodning return tipini o’zgartirish orqali amalga oshirilmaydi. Tip bir xil yoki boshqacha bo’lishi mumkin, lekin parametr o’zgarishi kerak; overriding da tip bir xil yoki kovariant bo’lishi kerak.

25.          onRestart() haqida ma’lumot bering.
Agar onStop() chaqiruvidan so’ng oyna oldingi holatga qaytsa, onRestart() usuli chaqiriladi. Bu funksiya joriy faoliyatni qayta ishga tushiradi (ko’rinmas holatdan ko’rinadiganga) va faoliyat to’xtatilgandan va foydalanuvchi tomonidan qayta boshlanganidan keyin chaqiriladi. Har doim onStart() metodi bilan birga qo’llaniladi.
onRestart onStart() metodi chaqiruvlaridan oldin amalga oshiriladi (eng birinchisidan tashqari). U faqat faoliyat «to’liq» holatda qayta boshlanganda bajarilishi kerak bo’lgan maxsus harakatlar uchun foydalaniladi.
onRestart() funksiyasiga misol:
public class MainActivity extends Activity {
@Override
protected void onRestart(){
super.onRestart();
Log.d(TAG, "onRestart");
}
}

26.          Androidda TableRow komponentasining vazifasi haqida ma’lumot bering.
Qator tartibini yaratishda TableLayout ning quyi sinflari bo’lgan TableRow obyektlaridan foydalaniladi. Har bir TableRow jadvaldagi bitta qatorni belgilaydi. Qatorda yacheykalar bo’lmasligi yoki boshqa obyektlar uchun konteyner bo’lgan bir yoki bir nechta yacheykalar bo’lishi mumkin. layout_height uchun TableRow atributi har doim wrap_content bo’ladi. yacheykalar ustunlarni birlashtirishi mumkin, lekin satrlarni emas. TableRow har doim TableLayout ning merosi sifatida ishlatilishi kerak. Aks holda TableRow gorizontal LinearLayout sifatida ishlaydi.

27.          Play Marketdan ro'yxatdan o'tish qay tartibda amalga oshiriladi?
1) Google akkaunt yo’q bo’lsa ochiladi;
2) Qurimaning Play market ikonkasi bosiladi;
3) Existing degan tugma chiqadi, o’shaning ustiga bosiladi va email address kiritiladi va Next tugmasi bosiladi;
4) To’lov qilishni so’rashi mumkin. Bu narsa Google tomonidan shunchaki ishonchlilikni tasdiqlash uchundir. Apps Central apps hech qachon foydalanuvchidan pul so’ramaydi;
5) Backup and Restore sahifasida Keep this phone backed up with my Google Account ni belgilanadi.
6) Oxirida Next tugmasi bosiladi va Google Play Marketdan foydalanish mumkin bo’ladi.

28. Google Android SDK nima? Android SDK da qanday vositalar joylashtirilgan?
Android SDK – bu Android Studio vositalarining qoʻshimcha toʻplami boʻlib, ular kod yozish, testlar va disk raskadrovkalarni bajarish, ilovani operatsion tizimning turli versiyalarida sinab koʻrish va natijani real vaqtda baholashga yordam beradi. Paket shuningdek, foydalanuvchilarga operatsion tizim holati haqida ma'lumot olish, jurnallarni o'qish va xatolarni aniqlash imkonini beradi. Android uchun SDK orqali dasturiy ta'minot qobig'ini tiklash va uchinchi tomon proshivkasini o'rnatish mumkin. To'plam ilovalarni yaratish uchun zarur bo'lgan paketlardan iborat. Ularning asosiylari quyida keltirilgan:
· Android SDK Platform Tools. Bunga Android Debugging Bridge (ADB), Fastboot va Systrace kabi vositalar kiradi. ADB ilovalardagi xatolarni topishga, APK ni smartfonga o'rnatishga yordam beradi. Fastboot – mobil qurilmani kompyuterdan boshqarish, gadjetni qayta yoqish, kirishni sozlash, operatsion tizim sozlamalarini sozlash uchun tezkor yuklashni faollashtiradi. Systrace – ishga tushirilgan jarayonlar haqida ma'lumot oladi, faoliyatni va tarmoq orqali yuborilgan ma'lumotlar miqdorini kuzatadi.
· Android SDK Build Tools. Bu kod yaratish uchun ishlatiladi. Zipalign – APK faylini optimallashtirish imkonini beradi; AAPT2 – resurslarni tahlil qilish, indekslash va Android platformasi uchun ikkilik formatga kompilyatsiya qilish; Apksigner – yopiq kalit yordamida APK paketini imzolash.
· Android emulyatori. Bu vosita ilovalarni testlash va Androidning so'nggi versiyalari xususiyatlaridan foydalanib ko’rishga yordam beradi.

29.Mobil ilovalarni online do’kon App Storeda joylash ketma ketligini keltiring.
1) Apple Developer Program da Sign Up qilish kerak;
2) Ilovani submission(kiritish) uchun tayyorlash;
3) App Store Connect orqali App Store listingni yaratish;
4) App Store skrinshotlarini qilish;
5) Xcode dan foydalanib ilovani App Storega yuklash;
6) Ilovani tahrirlash uchun kiritish(submit).
Mobil ilovani App Store do'koniga joylashtirish bo'yicha umumiy qadamlar ketma-ketligi:

  1. Dasturchi sifatida ro'yxatdan o'ting: Ilovani App Store do'koniga yuborish uchun siz dasturchi sifatida ro'yxatdan o'tishingiz va Apple Developer dasturiga ro'yxatdan o'tishingiz kerak bo'ladi. Bu sizga ilovangizni ishlab chiqish va tarqatish uchun zarur bo'lgan vositalar va resurslarga kirish imkonini beradi.
  2. Ilovangizni ishlab chiqing: Xcode, iOS SDK va Swift yoki Objective-C kabi ilovangizni ishlab chiqish uchun Apple tomonidan taqdim etilgan vositalardan foydalaning. Ilovangiz barqaror va xatosiz ekanligiga ishonch hosil qilish uchun uni yaxshilab sinab ko'ring.
  3. Ilovalar doʻkoni roʻyxatini yarating: ilovangizning batafsil tavsifi, skrinshotlar va ilovangizning videosini oldindan koʻrishni oʻz ichiga olgan App Store roʻyxatini yarating. Ushbu roʻyxat ilovangizni App Store doʻkonida sotish uchun ishlatiladi.
  4. Ilovangizni ko‘rib chiqish uchun yuboring: ilovangizni ko‘rib chiqish uchun yuborish uchun App Store Connect veb-saytidan foydalaning. Bu jarayon bir necha kun yoki hatto haftalar davom etishi mumkin. Apple ilovangizni kompaniya ko‘rsatmalariga muvofiqligini tekshirish uchun tekshiradi.
  5. Ilovangizni chiqaring: Agar ilovangiz ma'qullangan bo'lsa, uni App Store do'koniga chiqarishingiz mumkin. Siz ilovangizni zudlik bilan chiqarishni yoki kelajakdagi chiqish sanasini belgilashingiz mumkin.
  6. Monitor va yangilash: Ilovangiz chiqarilgandan so'ng, uning ishlashi va foydalanuvchi fikr-mulohazalarini kuzatib borishingiz kerak bo'ladi. Ilovangizni xatoliklar tuzatilgan va kerak bo'lganda yangi xususiyatlar bilan yangilang.
  7. Ilovalar doʻkonini optimallashtirish: Ilova doʻkoningiz roʻyxatini tegishli kalit soʻzlar, skrinshotlar, yaxshi reytinglar va sharhlar va ilovalar doʻkonida koʻrinishini oshirish uchun boshqa taktikalar bilan optimallashtiring.

Shuni ta'kidlash kerakki, jarayon mamlakatga, platformaga va tashkilot hajmiga qarab farq qilishi mumkin, ammo bu umumiy ketma-ketlik sizga ilovani App Store do'koniga olishda nimalar ishtirok etishi haqida fikr berishi kerak.

30. Androidda qanday ma'lumotlar bazasi ishlatiladi? Mijoz-server ma'lumotlar bazasini boshqarish tizimlaridan nimasi bilan farq qiladi?
Android-da foydalanish mumkin bo'lgan bir nechta turli xil ma'lumotlar bazalari mavjud, jumladan:

  • SQLite: Bu Android operatsion tizimiga kiritilgan engil, faylga asoslangan relyatsion ma'lumotlar bazasi. Bu serversiz, mustaqil va tranzaksiyaviy SQL ma'lumotlar bazasi mexanizmi. Bu kichik va o'rta o'lchamli ma'lumotlar bazalari uchun mos keladi va u Androidda ishlatiladigan eng keng tarqalgan ma'lumotlar bazasi turidir.
  • Realm: Bu mobil qurilmalarda ma'lumotlarni oson va samarali boshqarish uchun mo'ljallangan mobil ma'lumotlar bazasi. Bu SQLite-ga muqobil bo'lib, u SQLite-ga qaraganda samaraliroq va foydalanish uchun qulayroq bo'lishi uchun yaratilgan.
  • Room: Room - bu Android uchun doimiy kutubxona boʻlib, u SQLite-ning toʻliq quvvatidan foydalangan holda maʼlumotlar bazasiga mustahkamroq kirish imkonini beruvchi SQLite ustidan abstraksiya qatlamini taʼminlaydi.
  • Firebase Realtime ma'lumotlar bazasi: Bu Google Firebase xizmati tomonidan taqdim etilgan bulutga asoslangan, NoSQL ma'lumotlar bazasi. Bu real vaqt rejimida bir nechta qurilmalar va platformalarda ma'lumotlarni sinxronlashtirish imkonini beradi.

Bular Androidda ishlatilishi mumkin bo'lgan ma'lumotlar bazalari turlariga bir nechta misollar.
Mijoz-server ma'lumotlar bazasini boshqarish tizimi (DBMS) ma'lumotlar bazasini boshqarish va ular bilan ishlash uchun mijoz va server dasturiy ta'minotidan foydalanadigan ma'lumotlar bazasini boshqarish tizimining bir turi. Ushbu arxitekturada mijoz dasturiy ta'minoti foydalanuvchi qurilmasida ishlaydi va alohida mashinada ishlaydigan va ma'lumotlar bazasini boshqaradigan server dasturi orqali ma'lumotlar bazasi bilan o'zaro ta'sir qiladi. Ushbu yondashuv ma'lumotlarni markazlashtirilgan nazorat qilish va boshqarish imkonini beradi, shuningdek, kengaytirilganlik va xavfsizlikni oshiradi.
Bundan farqli o'laroq, Androidda ishlatiladigan ma'lumotlar bazalari o'rnatilgan ma'lumotlar bazalari bo'lib, ular ilovaning bir qismi sifatida kiritilgan va alohida serverda emas, balki qurilmaning o'zida ishlaydi. Ushbu yondashuv mobil qurilmalar uchun ko'proq mos keladi, chunki u doimiy internetga ulanishni talab qilmaydi va u yengilroq.

31. Androidda Bundle dan qanday foydalanish kerak?
Android App Bundle – bu Google ga yuklanuvchi fayldir (.aab kengaytmasi). Har bir bandlda barcha dastur modullari va qo'llab-quvvatlanadigan qurilma konfiguratsiyasi uchun tuzilgan kod va resurslar mavjud. Oddiy qilib aytganda, bandllar dastur kodlari va resurslarni modullarga ajratadigan imzolangan ZIP fayllardir.
Android Studio da bandl yaratish APK yaratishga juda o'xshaydi. Buning uchun menyudan Build — Build Bundle(s)/APK(s) > Build Bundle(s) tanlanadi va IDE tanlangan variant uchun bandl yaratadi va uni //build/outputs/bundle/ katalogiga joylashtiradi.
Android Studio imzolangan bandlni yaratishni tugatgandan so'ng, uni ochish va tahlil qilish mumkin. Bandl tahlili kontentni tekshirish imkonini beradi va APK Analyzer bilan bir xil ishlaydi. App Bundle ni yaratish uchun IDE bir xil ochiq manbali bundletool vositasidan foydalanadi va Google Play undan bandlni imzolangan APK larga aylantirish uchun foydalanadi.

32. APK formati nima? U qanday qilinadi?
APK (Android Package Kit) - bu Android operatsion tizimida ishlatiladigan ilovalar uchun fayl formati. APK fayllari Android dasturiy ta'minotini yaratish uchun rasmiy integratsiyalashgan ishlab chiqish muhiti (IDE) bo'lgan Android Studio bilan tuzilgan.
APK fayli dasturiy ta'minot dasturining barcha kodi va aktivlarini o'z ichiga oladi. Android qurilmalarida foydalanish uchun ilovalar yaratuvchi dasturchilar Android ilovalari uchun rasmiy bozor boʻlgan Google Play’ga yuklashdan oldin oʻz ilovalarini APK formatida kompilyatsiya qilishlari kerak. Google Play APK fayllari hajmi 100 MB dan kam boʻlishini talab qiladi.
Step 1: APK fayliga import qilmoqchi bo'lgan loyiha/ilovani yaratgandan so'ng, o'ting Build > Build Bundle(s)/APK(s) > Build APK(s) asboblar paneli (toolbar) menyusidan
Output:
Android Studio APK faylini yaratish uchun bir necha daqiqa vaqt ketadi. APK faylini yaratish tugallangandan so'ng, siz ekranning pastki o'ng burchagida bildirishnoma olasiz. Joylashuvni tanlang va siz APK fayl manzilini topasiz. Agar siz bildirishnomani o'tkazib yuborsangiz, APK faylini hali ham loyiha papkasida topishingiz mumkin: app/build/outputs/apk/debug. Sukut bo'yicha fayl app-debug.apk deb nomlanadi.
APK (Android Package Kit) formati Android operatsion tizimli qurilmalar uchun mahsulotlar va servislarning instalatsiyasi uchun mo'ljallangan fayl turidir. APK faylini qilish uchun, Android maktab-muharriri yoki Android Studio da mobil ilovalar yaratish vositasi ishlatiladi. APK fayli o'zining xususiyatlarini, API vazifalarini, resurslarini va fayllarini o'z ichiga oladi va qurilma install qilinadi.

33. Androidda Fragment va Activity o'rtasidagi farq nima?
Androidda Activity ilova interfeysidagi bitta ekranni, Fragment esa Activity interfeysining bir qismini ifodalaydi.
Activity odatda toʻliq ekranli tartib bilan bogʻlanadi va foydalanuvchi kiritishlari bilan ishlash, maʼlumotlarni koʻrsatish va ilovaning hayot aylanishini boshqarish kabi ilovaning umumiy UI oqimini boshqarish uchun javobgardir. Activities ilova arxitekturasidagi "controllers" deb hisoblash mumkin.
Boshqa tomondan, Fragment - bu faollik interfeysining bir qismini ifodalovchi qayta foydalanish mumkin bo'lgan komponent. Odatda u ekranning kichikroq qismi bilan bog'lanadi va ko'p panelli tartibni yaratish uchun boshqa Fragmentlar bilan birlashtirilishi mumkin. Fragmentlarni ilova arxitekturasidagi "views" deb hisoblash mumkin.
Activity bir yoki bir nechta fragmentlarni o'z ichiga olishi mumkin va fragment ish vaqtida faoliyatdan qo'shilishi yoki olib tashlanishi mumkin. Bu yanada moslashuvchan va modulli ilova dizayniga imkon beradi, chunki fragmentlar bir nechta faoliyatda qayta ishlatilishi mumkin.
Fragmentlar ham o'zlarining hayot aylanishiga ega, ular ular bilan bog'liq bo'lgan faoliyatning hayot aylanishi bilan chambarchas bog'liq. Ular faoliyat bajarilayotganda qo‘shilishi, olib tashlanishi yoki almashtirilishi, shuningdek, faoliyat holati bilan birga saqlanishi va tiklanishi mumkin.
Xulosa qilib aytadigan bo'lsak, Androiddagi Activities ilova interfeysidagi bitta ekranni, Fragmentlar esa Activity interfeysining qayta foydalanish mumkin bo'lgan qismini ifodalaydi. Faoliyat bir yoki bir nechta bo'laklarni o'z ichiga olishi mumkin va fragmentlar ekranning kichikroq qismi bilan bog'langan bo'lib, ular bir nechta faoliyatda qayta ishlatilishi mumkin va ularning o'z hayot aylanishi mavjud.

34. Androidda Intentning uchta umumiy qo'llanilishini va ular qanday chaqirilishini tasvirlab bering.
Android Activities, Services va Broadcast Receivers kabi komponentlari o'rtasidagi aloqani osonlashtirish uchun Intents dan foydalanadi.
Activity maqsadi:
Android ilovasidagi har bir ekran faoliyatni(activityni) ifodalaydi. Yangi activityni boshlash uchun siz Intent obyektini startActivity() usuliga o'tkazishingiz kerak. Ushbu Intent obyekti yangi activityni boshlashga va ikkinchi activityga ma'lumotlarni uzatishga yordam beradi.
Services maqsadi:
Services Android ilovasi fonida ishlaydi va u hech qanday foydalanuvchi interfeysini talab qilmaydi. Intents bir martalik vazifani bajaradigan Serviceni ishga tushirish uchun ishlatilishi mumkin (masalan: Ba'zi faylni yuklab olish) yoki Serviceni ishga tushirish uchun Intentni startService() metodiga o'tkazish kerak.
Broadcast Receivers uchun maqsad:
Ilova qabul qiladigan turli xil xabarlar mavjud, bu xabarlar Broadcast Receivers deb ataladi. (Masalan, faylni yuklab olish tugallangani va foydalanishga tayyorligi haqida xabar berish uchun eshittirish xabari boshlanishi mumkin). Android tizimi tizimni qayta ishga tushirish, batareya quvvati kamligi haqida ogohlantirish xabari va boshqalar kabi bir nechta hodisalarda ba'zi translyatsiya xabarlarini ishga tushiradi.
Intent - Androidning eng muhim vositalaridan biri bo'lib, qo'llanma muvaffaqiyatli amalga oshirish uchun quyidagilarni yordam beradi:

  1. Harakat va hodisalarning boshqa ilovalarga yuborilishi
  2. Boshqa ilovalardan ma'lumotlar olish
  3. Ilovaning amalga oshirilishiga yordam berish

Intent qanday chaqirilishi:

  1. Intent chaqirish: Intent obyekti yaratib, uchta yoki boshqa ilova ga yuborish mumkin.
  2. Receive Intent: Intent objekti boshqa ilovadan qabul qilish mumkin.

Ushbu Intent qo'llanmalarni chaqirish uchun "startActivity ()" va "onActivityResult ()" funktsiyalaridan foydalaniladi.

35. Androidda sensorlardan foydalanish bilan bog'liq java sinflari haqida tushuntiring.
Androidda sensorlardan foydalanish bilan bog'liq sinflar odatda android.hardware paketining bir qismidir. Android-da sensorlar bilan ishlashda keng qo'llaniladigan bir nechta sinflar misollari:

  • SensorManager: Bu sinf qurilma sensorlariga kirish uchun ishlatiladi. U sensorlarni ro'yxatdan o'tkazish va ro'yxatdan o'chirish, shuningdek sensor ma'lumotlarini olish uchun ishlatilishi mumkin.
  • Sensor: Bu sinf qurilmadagi sensorni ifodalaydi. U sensor haqida uning turi, diapazoni va ruxsati kabi ma'lumotlarni olish uchun ishlatilishi mumkin.
  • SensorEvent: Bu sinf sensor hodisasini ifodalaydi. Unda sensor ma'lumotlari va voqea vaqt tamg'asi mavjud.
  • SensorEventListener: Ushbu interfeys sensor hodisalarini qabul qilish uchun ishlatiladi. Ilova sensor ma'lumotlarini olish uchun SensorEventListenerni SensorManager bilan ro'yxatdan o'tkazishi mumkin.
  • SensorEventCallback: Bu sinf sensor hodisalari uchun qayta qo'ng'iroqdir. Ilova sensor ma'lumotlarini olish uchun SensorEventCallback-ni SensorManager bilan ro'yxatdan o'tkazishi mumkin
  • SensorEventListener2: Ushbu interfeys sensor hodisalarini qabul qilish uchun ishlatiladi. Ilova SensorEventListener2 ni SensorManager bilan ro'yxatdan o'tkazishi mumkin, bu aniqlik va vaqt tamg'asi kabi qo'shimcha ma'lumotlar bilan sensor ma'lumotlarini olishi mumkin.
  • SensorEventCallback2: Bu sinf sensor hodisalari uchun qayta qo'ng'iroqdir. Ilova SensorEventCallback2 ni SensorManager bilan roʻyxatdan oʻtkazishi mumkin, bu esa aniqlik va vaqt tamgʻasi kabi qoʻshimcha maʼlumotlar bilan sensor maʼlumotlarini olishi mumkin.

Bular Android-da sensorlar bilan ishlash uchun ishlatiladigan sinflarning bir nechta misollari. Amaldagi sensorga qarab yana ko'plab sinflar va interfeyslar mavjud.

36. Mobil operatsion tizim va uning turlari.
Mobil operatsion tizim (mobile OS) — smartfonlar, planshetlar, PDA yoki boshqa mobil qurilmalar uchun operatsion tizim.
Xuddi kompyuterlar o’tmishidagi singari, mobil operatsion tizimlari (O.T.) ishlab chiqaruvchilari orasida ham yakka liderlik uchun kurash boshlanib ketdi. Eng talabgorlar ro’yhatidan iOS, Android va Windowslar turli sanoat ishtirokchilari tomonidan kiritilgan.
ANDROID
Ushbu tizimning eng o’ziga xos xislatlaridan biri - unda o’zlashtirish (customization) imkoniyatlari miqdoridir. Bu qulaylik telefonning butun telefonning barcha qismi, o’rnatilgan fon, vidjetlar va ikonkalarni o’z ichiga oladi.
Android-ning afzalliklari:
• Oddiy va intuitiv interfeys.
• Ochiq manba.
• Ma'lumotlarni uzatish qulayligi.
• Ishlash. Operatsion tizim juda tez
• Ko'p o'lchovli.
• Narxi.
Androidning kamchiliklari:
• Katta trafik sarfi.
• Yangilanishlarni kutish vaqti.
• Ochiq manba. Android-da ishlaydigan qurilmalar zararli dastur va xakerlarning hujumlariga juda himoyasiz deb hisoblanadi.
IOS
Apple’ning iOS, iPhone’da 2007 yilda ishga tushirilgan bo’lib, mavjud eng birinchi mobil O.Tlaridan biridir. Ushbu tizimdan foydalanish ortidagi asosiy g’oya -boshqa barcha Apple mobil mahsulotlaridan foydalana olish imkoni bo’ladi.
IOS-ning afzalliklari:
• Xavfsizlik. Ushbu OS uchun manba kodi yopiq.
• Do'konlarning boy assortimenti. IOS - AppStore-ga ega smartfonlar uchun ilovalar do'konida 1 milliondan ortiq turli xil o'yin va dasturlar mavjud.
• Siri modulining mavjudligi. IPhone egasida foydalanuvchi buyruqlarini samarali bajarish va hatto u bilan konstruktiv muloqotni amalga oshirishga qodir bo'lgan shaxsiy virtual yordamchi mavjud.
• Ishlash. Ushbu smartfonlar tezkor javob berish va barcha funktsiyalarning bajarilishi bilan ajralib turadi. IPhone telefonlar, qoida tariqasida, osib qo'yishga qodir emas.
IOS kamchiliklari:
• Norasmiy dasturlarni o'rnatish Jailbreak operatsiyasini talab qiladi, uning ishlatilishi Apple tomonidan mutlaqo qo'llab-quvvatlanmaydi va iPhoneni texnik qo'llab-quvvatlash va kafolat huquqidan mahrum qilish bilan tahdid qiladi.
• O'zingiz yoqtirgan qo'shiqni o'z gadjetingizga yuklash uchun siz maxsus iTunes dasturidan foydalanishingiz kerak, bu noqulay va biroz muammoli.
WINDOWS
Windows operatsion tizimi mobil telefonlarga 2010 yilda o'rnatilgan bo'lishiga qaramay, Nokia Lumia liniyasi (710, 800) ishga tushgandan keyingina haqiqiy mashhurlikka erisha boshladi. Vidjetlar o'rniga "jonli plitkalar" ishlatilgan, ular dasturlarni ochmasdan katta hajmdagi ma'lumotlarni namoyish etishgan.
Windows Phone-ning afzalliklari:
• Intuitiv va sodda interfeys.
• Marketplace orqali o'rnatiladigan ilovalarning ozgina "og'irligi".
• Xbox o'yin xizmatidan foydalanish imkoniyati.
• Microsoft Office o'rnatilgan dasturiy to'plam. Ko'pincha ushbu smartfonlar biznes maqsadlarida sotib olinadi. Smartfon orqali siz yangi hujjatlarni tahrirlashingiz va tuzishingiz mumkin. Hatto korporativ Outlook pochtasi ham mavjud.
• Ma'lumotni sinxronizatsiya qilish uchun qulay va tushunarli dastur mavjudligi.
Windows Phone-ning kamchiliklari:
• Ilovalarning kichik tanlovi. Ularning soni 300 mingga yaqin, bu Android va iOS-ga qaraganda ancha kam. Bundan tashqari, ularning aksariyati to'liq emas.
• Windows 7 bilan ishlaydigan smartfonlarning noqulayligi multimediya fayllarini gadgetning xotirasiga o'tkazish qiyinligi.

37. CompileSdkVersion va targetSdkVersion o'rtasidagi farq nima?

Til modeli sifatida AI sifatida men buni ingliz tilida tushuntira olaman.

CompileSdkVersion va targetSdkVersion Androidni ishlab chiqishda ikkita muhim xususiyatdir.

CompileSdkVersion loyiha kompilyatsiya qilingan Android SDK versiyasiga ishora qiladi. Ushbu versiya ishlab chiquvchining mashinasiga o'rnatilishi va qurish maqsadi sifatida o'rnatilishi kerak. Loyiha Android SDK ning ushbu versiyasiga mos keladigan API lardan ham foydalanishi kerak.

Boshqa tomondan, targetSdkVersion - bu sizning ilovangiz mo'ljallangan Android versiyasi. Bu ilova sinovdan o'tgan va ishlashi kutilayotgan Androidning eng yuqori versiyasini ifodalaydi. Ushbu versiya Android tizimi tomonidan ilovangizni qurilmada qanday ko'rsatish va ilova uchun qanday APIlar mavjudligini aniqlash uchun ishlatiladi.

Xulosa qilib aytganda, CompileSdkVersion ilovangiz mos keladigan Android’ning minimal versiyasini, targetSdkVersion esa ilovangiz sinovdan o‘tgan va ishlashi kutilayotgan Android’ning maksimal versiyasini o‘rnatadi.

Androidda compileSdkVersion va targetSdkVersion ikkalasi ham ilovaga qarshi yaratilgan Android SDK versiyasini belgilash uchun ishlatiladi. Biroq, ular bir oz boshqacha maqsadlarda xizmat qiladi:
compileSdkVersion: Bu atribut ilova oʻrnatilgan Android SDK versiyasini bildiradi. U SDK ning qaysi versiyasiga nisbatan ilova kodi kompilyatsiya qilinishini aniqlaydi. Bu shuni anglatadiki, ilova SDK ning ushbu versiyasining barcha API va xususiyatlariga kirish huquqiga ega bo‘ladi, biroq u yangiroq versiyalardagi API yoki funksiyalardan foydalana olmaydi.
targetSdkVersion: Bu atribut ilova maqsad qilib olgan Android SDK versiyasini belgilaydi. Bu ilova Android platformasining qaysi versiyasida ishlashga mo'ljallanganligini aniqlaydi. Bu shuni anglatadiki, ilova sinovdan o'tkaziladi va platformaning ushbu versiyasi uchun optimallashtiriladi. Agar ilova SDK ning yangiroq versiyasida joriy qilingan har qanday API yoki funksiyalardan foydalansa, targetSdkVersion yangiroq versiyaga o‘rnatilgan bo‘lsa, ilova ushbu API va funksiyalardan foydalanishi mumkin bo‘ladi.
Ilova androidning yangiroq, keyin targetSdkVersion versiyasiga ega qurilmada ishlaganda, u "moslik rejimida" ishlaydi va targetSdkVersion xatti-harakatlari va cheklovlariga ta'sir qiladi.
Xulosa qilib aytganda, compileSdkVersion ilova kodi kompilyatsiya qilingan Android SDK versiyasidir, targetSdkVersion esa Android platformasining ilova ishlashga mo‘ljallangan versiyasidir.

38.UX dizayn haqida ma’lumot bering.
UX dizayni yoki foydalanuvchi tajribasi dizayni foydalanuvchilarga mazmunli va tegishli tajribani taqdim etadigan mahsulotlar, tizimlar yoki xizmatlarni yaratish jarayonidir. Mobil ilovalarni ishlab chiqish kontekstida UX dizayni foydalanuvchi interfeysini, foydalanuvchi oqimini va ilovadan foydalanishning umumiy tajribasini loyihalash jarayonini anglatadi.
UX dizayn jarayoni odatda quyidagi bosqichlarni o'z ichiga oladi:

  1. Tadqiqot: maqsadli auditoriyaning ehtiyojlari, maqsadlari va og'riqli nuqtalarini tushunish uchun foydalanuvchi tadqiqotini o'tkazing.
  2. Strategiya: ilovaning umumiy qarashlari, maqsadlari va vazifalarini belgilab beruvchi strategiyani ishlab chiqing.
  3. Dizayn: Ilovaning foydalanuvchi interfeysi va foydalanuvchi oqimining sim ramkalari, maketlari va prototiplarini yarating.
  4. Sinov: Foydalanish imkoniyatlarini sinovdan o'tkazing va foydalanuvchilarning fikr-mulohazalarini yig'ib, ilova ularning ehtiyojlariga javob berishi va ulardan foydalanish oson.
  5. Amalga oshirish: Yakuniy dastur dizaynini ishlab chiqish va amalga oshirish.
  6. Baholash: Ilovaning ishlashini doimiy ravishda baholang va dizaynni yaxshilash va takrorlash uchun foydalanuvchilarning fikr-mulohazalarini to'plang.

UX dizaynining maqsadi foydalanish uchun qulay, intuitiv va maqsadli auditoriya ehtiyojlariga javob beradigan ilova yaratishdir. Yaxshi UX dizayni foydalanuvchi qoniqishini, ishtirokini va ushlab turishini yaxshilashi va biznesning yaxshi natijalariga olib kelishi mumkin.

UX dizayni mobil ilovalarni ishlab chiqishning muhim jihati bo‘lib, uni ishlab chiqish jarayonida foydalanuvchi nuqtai nazarini hisobga olish muhim. Ajoyib foydalanuvchi tajribasi muvaffaqiyatli va bo'lmagan ilova o'rtasidagi farqni yaratishi mumkin.

39.Androidda CheckBox ni yaratish qanday amalga oshiriladi?
CheckBox komponenti foydalanuvchi ma’lum bir variantni belgilashi mumkin bo’lgan bayroqdir. Bayroqlar bir nechta qiymatlardan birini tanlash imkonini beradi. Komponent Bottons guruhida joylashgan. Har bir checkbox variantini yaratish uchun layout da CheckBox yaratiladi. Checkbox parametrlari to’plami foydalanuvchiga bir nechta elementlarni tanlash imkonini berganligi sababli, har bir katakcha alohida boshqariladi. Kalit sinf – CheckBox. CheckBox elementini yaratamiz:

android:id="@+id/simpleCheckBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="Simple CheckBox"/>

40.Androidning afzalliklarini keltiring.
Ochiq kodli manba. Android ochiq kodli operatsion tizimdir. Har qanday ishlab chiqaruvchi platformaning interfeysi va funksionalligiga o’zgartirishlar kiritishi mumkin. Masalan, agar ishlab chiqaruvchi operatsion tizimga yangi funksiyani qo’shishga ulgurmagan bo’lsa, u uchinchi tomon ishlab chiqaruvchisi tomonidan qobiqqa kiritilishi mumkin.
Uchinchi tomon manbalaridan yuklab olish. Android APK fayli orqali dasturiy ta’minotni qo’lda o’rnatish imkoniyatiga ega. Buning natijasida o’yinlar va dasturlar tanlovi kengayib bormoqda. Bundan tashqari, noma’lum manbalardan o’rnatish imkoniyati pulni tejash uchun ilovalarning pirat versiyalarini yuklab olish imkonini beradi.
Telefon konfiguratsiyasiga moslashuv. Ochiq kodli manba apparat va uning xususiyatlaridan qat’i nazar, operatsion tizimni har qanday smartfonga moslashtirishga yordam beradi. Bu Androidning so’nggi versiyasini uzoq vaqtdan beri qo’llab-quvvatlanmaydigan eski qurilmada ham o’rnatish imkonini beradi.
Xotirani kengaytirish. Android smartfonlarining aksariyati MicroSD kartalarini o’rnatish orqali ichki xotirani oshirishga imkon beradi. Hozirda Android operatsion tizimida operativ xotira dasturiy ta’minotini kengaytirish imkoniyati mavjud.

41. Android qo'llab-quvvatlash kutubxonasining tuzilishini tavsiflang?
Android qo'llab-quvvatlash kutubxonasi to'plami Android platformasi API'larining orqaga mos keladigan versiyalarini hamda faqat kutubxona API'lari orqali foydalanish mumkin bo'lgan xususiyatlarni taqdim etadigan kod kutubxonalari to'plamidir. Har bir qo'llab-quvvatlash kutubxonasi ma'lum bir Android API darajasiga orqaga qarab mos keladi.
Android qo'llab-quvvatlash kutubxonasi to'plami ilovangizga kiritilishi mumkin bo'lgan bir nechta kutubxonalarni o'z ichiga oladi. Ushbu kutubxonalarning har biri Android platformasi versiyalarining ma'lum bir qatorini va funktsiyalar to'plamini qo'llab-quvvatlaydi.
Kutubxonalardan samarali foydalanish uchun qaysi API darajasini maqsad qilmoqchi ekanligingizni hisobga olish muhim, chunki har bir kutubxona turli API darajasini qo'llab-quvvatlaydi.
Android qo'llab-quvvatlash kutubxonasi tuzilishi (architecture) bir nechta layerlardan tashkil topgan:

  1. Java Application Layer: Bu layer Java dasturlash tili bilan yozilgan qo'llab-quvvatlash dasturlari (applications) uchun mo'ljallangan. Ushbu layer qo'llab-quvvatlash dasturlari bilan foydalanuvchi mijozlarni ishga tushishlarini taminlaydi.
  2. Android Framework Layer: Bu layer Android da dasturlashga qo'llaniladigan funksiyalar, servislar va interfeys lar bilan ta'minlangan. Ushbu layrda xizmatlar va kutubxonalarning xususiyatlari bilan birga ishlatiladigan API va Librarylar mavjud.
  3. Android Runtime Layer: Bu layer Android da dasturlarning ishga tushishini ta'minlaydi. Android Runtime Layer'da Dalvik Virtual Machine va Core Libraries mavjud.
  4. Linux Kernel Layer: Bu layr Android da foydalanishi mumkin bo'lgan resurslar, mijozlarning foydalanuvchilik huquqlari, sistemani himoyalash, vaqt va boshqa qoidalarni ta'minlaydi.
  5. Hardware Abstraction Layer: Bu layr qurilmaning fizik mantiqiy va elektron tizimiga oid xususiyatlarini ta'minlaydi va ularning Android da ishlatilishi mumkin bo'lgan sifatini belgilaydi.

42. Android-ning asosiy qurilish bloklari nima?
Android-ning asosiy qurilish bloklari yoki asosiy komponentlari faoliyatlar, qarashlar, Intentlar, xizmatlar, kontent provayderlari, fragmentlar va AndroidManifest.xml hisoblanadi.
Activity
Faoliyat - bu bitta ekranni ifodalovchi sinf. Bu AWT-dagi ramkaga o'xshaydi.
View
view - bu tugma, yorliq, matn maydoni va boshqalar kabi UI elementi. Siz ko'rgan har qanday narsa ko'rinishdir.
Intent
Intent komponentlarni chaqirish uchun ishlatiladi. U asosan quyidagilar uchun ishlatiladi:

  • Activityni ishga tushiring
  • Veb-sahifani ko'rsatish
  • Kontaktlar ro'yxatini ko'rsatish
  • Xabarni uzatish
  • Telefon qo'ng'irog'ini tering va hokazo.

Service

Xizmat uzoq vaqt davomida ishlashi mumkin bo'lgan fon jarayonidir.
Mahalliy va masofaviy xizmatlarning ikki turi mavjud. Mahalliy xizmatga ilova ichidan, masofaviy xizmatga esa bir xil qurilmada ishlaydigan boshqa ilovalardan masofadan kirish mumkin.
Content Provider
Kontent provayderlari ilovalar o'rtasida ma'lumotlarni almashish uchun ishlatiladi.

Fragment

Fragmentlar faoliyatning bir qismiga o'xshaydi. Faoliyat bir vaqtning o'zida bir yoki bir nechta fragmentlarni ekranda ko'rsatishi mumkin.

AndroidManifest.xml

Unda Activity, kontent provayderlari, ruxsatlar va boshqalar haqida ma'lumotlar mavjud. Bu Java EE-dagi web.xml fayliga o'xshaydi.

43.Swift haqida ma’lumot bering.
Swift iOS, iPadOS, macOS, tvOS va watchOS uchun kuchli va intuitiv dasturlash tilidir. Swift kodini yozish interaktiv va qiziqarli, sintaksis ixcham, ammo ifodali va Swift ishlab chiquvchilarga yoqadigan zamonaviy xususiyatlarni o'z ichiga oladi. Swift kodi dizayni bo'yicha xavfsiz va yashin tezligida ishlaydigan dasturiy ta'minotni ishlab chiqaradi.
Swift kodingizni yanada ifodali qilish uchun ko'plab boshqa xususiyatlarga ega:
· Kuchli va ishlatish uchun oddiy generiklar
· Umumiy kod yozishni yanada osonlashtiradigan protokol kengaytmalari
· Birinchi darajali funksiyalar va yengil yopish sintaksisi
· Bir qator yoki to'plamda tez va ixcham iteratsiyani amalga oshiradi
· Tuples va bir nechta qaytish qiymatlari
· Metodlar, kengaytmalar va protokollarni qo'llab-quvvatlaydigan tuzilmalar
· Enumlar foydali yuklarga ega bo'lishi va naqsh mosligini qo'llab-quvvatlashi mumkin
· Funktsional dasturlash patternlari, masalan, map va filtr
Ajablanarli darajada yuqori samarali LLVM kompilyator texnologiyasidan foydalangan holda, Swift kodi zamonaviy uskunadan maksimal darajada foydalanadigan optimallashtirilgan mashina kodiga aylantiriladi.

.

44.Android Debug Bridge haqida ma’lumot bering.
Android Debug Bridge (adb) – bu kuchli buyruqlar satri yordam vositasi bo’lib, u qurilma bilan bog’lanish imkonini beradi. adb buyrug’i ilovalarni o’rnatish va disk raskadrovka qilish kabi turli xil qurilma amallarini osonlashtiradi. adb qurilmada turli xil buyruqlarni bajarish uchun foydalanish mumkin bo’lgan Unix qobig’iga kirishni ta’minlaydi. Bu uchta komponentni o’z ichiga olgan mijoz-server dasturidir:
Mijoz, buyruqlarni yuboradi.
Demon (xizmat, adbd), qurilmada buyruqlarni bajaradi.
Server, mijoz va demon o’rtasidagi aloqani boshqaradi.
adb mijozi ishga tushirilganda, mijoz avval adb server jarayoni ishlayotganligini tekshiradi. Agar yo’q bo’lsa, u server jarayonini boshlaydi. Keyin server barcha ishlaydigan qurilmalarga ulanishlarni o’rnatadi. Server barcha qurilmalarga ulanishni o’rnatgandan so’ng, ushbu qurilmalarga kirish uchun adb buyruqlaridan foydalanish va istalgan qurilmani istalgan mijozdan yoki skriptdan boshqarish mumkin bo’ladi.

45. Androidda service nima?
Service (xizmat) Androidda fon jarayonlari sifatida ishlaydi va android.app.Service sinfi bilan ifodalanadi. Ular foydalanuvchi interfeysiga ega emas va foydalanuvchi aralashuvi talab etilmagan hollarda kerak bo'ladi. Servislar veb-serverga tarmoq so'rovlarini beradi, ma'lumotlarni qayta ishlaydi, bildirishnomalarni ishga tushiradi va hokazo. Servis ishga tushirilishi mumkin va kimdir uni to'xtatmaguncha yoki u o'zini to'xtatmaguncha ishlashda davom etadi. Servislar faoliyatdan farqli o'laroq davom etishi kerak. Ular doimiy ravishda qayta ishga tushirish, doimiy vazifalarni bajarish yoki uzoq vaqt talab qiladigan vazifalarni bajarish orqali ishlashi mumkin. Servislardan foydalanib, ilovalar faol bo'lmagan taqdirda ham ishlashda va hodisalarga javob berishda davom etishiga amin bo'lish mumkin. Ular ishlashi uchun alohida grafik interfeys talab qilmaydi, lekin ular hali ham asosiy dastur oqimida ishlaydi. Ilovaning javob berish qobiliyatini oshirish uchun Thread va AsyncTask sinflari yordamida ko'p vaqt talab qiluvchi jarayonlarni (tarmoq so'rovlari kabi) fon oqimlariga o'tkazish imkoniyatiga ega bo'lish kerak.
Android xizmati - bu foydalanuvchi interfeysisiz ba'zi ishlarni bajarish uchun mo'ljallangan komponent. Xizmat faylni yuklab olishi, musiqa tinglashi yoki tasvirga filtr qo‘llashi mumkin. Xizmatlardan Android ilovalari o'rtasida protsesslararo aloqa (IPC) uchun ham foydalanish mumkin.
Android xizmatlarining 4 xil turi mavjud:
· Bog'langan xizmat - Bog'langan xizmat unga bog'langan boshqa komponentga (odatda Faoliyat) ega bo'lgan xizmatdir. Bog'langan xizmat bog'langan komponent va xizmatning bir-biri bilan o'zaro ta'sirini ta'minlaydigan interfeysni ta'minlaydi. Xizmatga bog‘langan mijozlar qolmasa, Android xizmatni o‘chirib qo‘yadi.
· IntentService - IntentService - bu xizmatlarni yaratish va undan foydalanishni soddalashtiradigan Xizmat sinfining ixtisoslashgan kichik klassi. IntentService individual avtonom qo'ng'iroqlarni boshqarish uchun mo'ljallangan. Bir vaqtning o'zida bir nechta qo'ng'iroqlarni bajarishi mumkin bo'lgan xizmatdan farqli o'laroq, IntentService ko'proq ish navbati protsessoriga o'xshaydi - ish navbatga qo'yiladi va IntentService har bir ishni bir vaqtning o'zida bitta ishchi ipida qayta ishlaydi. Odatda, IntentService faoliyat yoki fragment bilan bog'lanmaydi.
· Boshlangan xizmat – ishga tushirilgan xizmat boshqa Android komponenti (masalan, Faoliyat) tomonidan ishga tushirilgan va biror narsa xizmatni to‘xtatishni aniq aytmaguncha, fonda uzluksiz ishlaydigan xizmatdir. Bog'langan xizmatdan farqli o'laroq, boshlangan xizmatda unga bevosita bog'langan mijozlar yo'q. Shu sababli, boshlangan xizmatlarni kerak bo'lganda chiroyli tarzda qayta ishga tushirish uchun loyihalashtirish muhimdir.
· Gibrid xizmat – Gibrid xizmat – bu ishga tushirilgan xizmat va bog‘langan xizmat xususiyatlariga ega bo‘lgan xizmatdir. Gibrid xizmat komponent unga bog'langanda yoki biron bir hodisa bilan ishga tushirilishi mumkin. Mijoz komponenti gibrid xizmatga bog'langan yoki bog'lanmagan bo'lishi mumkin. Gibrid xizmat to'xtatish to'g'risida aniq aytilmaguncha yoki unga boshqa mijozlar bog'lanmaguncha ishlashda davom etadi.

46. Android platformasi qaysi dialog oynalarini qo'llab-quvvatlaydi?
Android 6 dialog oynasini qo'llab-quvvatlaydi:
AlertDialog:
Ogohlantirish dialog oynasi 0 dan 3 gacha tugmachalarni va tanlangan elementlar ro'yxatini, shu jumladan tasdiqlash qutilari va radio tugmachalarini qo'llab-quvvatlaydi. Boshqa dialog oynalari orasida eng ko'p tavsiya etilgan dialog oynasi ogohlantirish dialog oynasidir.
ProgressDialog:
Ushbu dialog oynasi harakatlanish g'ildiragi yoki rivojlanish panelini ko'rsatadi. Bu AlertDialog kengaytmasi bo'lib, tugmalar qo'shishni qo'llab-quvvatlaydi.
DatePickerDialog:
Ushbu dialog oynasi foydalanuvchi tomonidan sanani tanlash uchun ishlatiladi.
TimePickerDialog:
Ushbu dialog oynasi foydalanuvchi tomonidan vaqtni tanlash uchun ishlatiladi.
Android platformasi bir nechta dialog oynalari qo'llab-quvvatlaydi, bunlar:

  1. AlertDialog: Bu tip dialog, kullanuvchining xabarini berish uchun qo'llaniladi. Kullanuvchiga xabar berish uchun OK ya'ni tasdiqlash tugmasi va ya to'xtatish tugmasi mavjud bo'lishi mumkin.
  2. ProgressDialog: Bu dialog, bir xizmat yoki ishni bajarish jarayonida kullanuvchining bajarilayotgan ishni aniq bilish uchun ishlatiladi. ProgressDialog oynasi, bajarilayotgan ishning yanada muhimligini yoki kichikroq yopilganligini ko'rsatib beradi.
  3. DatePickerDialog: Bu dialog, kullanuvchi uchun sanalar, oyalar va yillar bilan bir joyda sanani tanlash uchun qo'llaniladi.
  4. TimePickerDialog: Bu dialog, kullanuvchi uchun soat va daqiqlarni tanlash uchun qo'llaniladi.
  5. SingleChoiceDialog: Bu dialog, bir nechta tanlovlar bilan bir joyda bir xil tanlovni tanlash uchun qo'llaniladi. Kullanuvchi faqat bir xil tanlovni tanlay oladi.
  6. MultiChoiceDialog: Bu dialog, bir nechta tanlovlar bilan bir joyda bir nechta tanlovni tanlash uchun qo'llaniladi. Kullanuvchi bir nechta tanlovni tanlay oladi.

Ular haqida batafsil ma'lumot, Android Developer rasmlarida qulay bo'ladi.

47.Android platformasi kimga tegishli va qaysi OT (Operatsion tizim) larda ishlaydi?
Android platformasi Google kompaniyasiga tegishlidir. Kompaniya 2005-yilda Android Inc. ni sotib olgan va 2008-yilda birinchi Android telefonini ishga tushirishdan oldin operatsion tizimni ishlab chiqishda yordam bergan. Google OT ning asosiy ishlab chiqaruvchisi boʻlib, Google Play xizmatlari va Gmail rasmiy ilovalari kabi asosiy elementlarda ishlaydi. Qurilma drayverlarini hisobga olmaganda, Google deyarli butun Android operatsion tizimiga egalik qiladi.
Google shuningdek, Android Open Source Project (AOSP) ning asosiy relizlari uchun javobgardir. Boshqa ishlab chiqaruvchilar AOSP manba kodini o’zgartirishi yoki unga hissa qo’shishi mumkin bo’lsa-da, ular rivojlanish bosqichlarini aniqlaydiganlar emas. Android platformasi Linux yadrosi va Google kompaniyasi Java virtual mashinasining mahalliy tatbiq etilishiga asoslangan. Markazlashtirilmagan Linuxdan farqli o’laroq, Google Android operatsion tizimini boshqaradi.

48. Android/Flutterda Table va ListView xususiyatlari haqida ma’lumot bering.
Flutter foydalanuvchiga mobil ilovada Table layoutini yaratishga ham imkon beradi. Biz Flutter-da jadvalni o'z bolalari uchun jadvalni joylashtirish algoritmidan foydalanadigan Table vidjetidan foydalanib yaratishimiz mumkin. Ushbu vidjet Table layoutini yaxshilash yoki o'zgartirish uchun bir nechta xususiyatlarga ega. Bu xususiyatlar: chegara(border), bolalar(children), ustunlar kengligi(columnWidths), textDirection, textBaseline va boshqalar.
Ushbu vidjetdan foydalanishda biz quyidagi qoidalarni bilishimiz kerak:
· Ushbu vidjet avtomatik ravishda TableCells o'rtasida teng taqsimlangan ustun kengligini aniqladi. Agar u teng bo'lmasa, jadvaldagi har bir TableRow bir xil miqdordagi bolalarga ega bo'lishi kerakligi va har bir katak to'ldirilishi kerakligi haqidagi xabarni olamiz. Aks holda, jadval(table)da teshiklar bo'ladi.
· Har bir satr bir xil balandlikka ega, bu TableCell ning eng yuqori balandligiga(height) teng bo'ladi.
· Jadval bolalarida faqatgina TableRow vidjetlari bo'lishi mumkin.
ListView vidjeti obyektlarning aylantiriladigan ro'yxatini ifodalaydi.
ListView sinfida ko'p sonli parametrlarga ega bo'lgan bir nechta konstruktorlar mavjud, shuning uchun biz faqat ba'zi parametrlarga e'tibor qaratamiz:
· Children(bolalar): ListView ga qo'shiladigan vidjetlar ro'yxatini ifodalovchi List obyekti.
· scrollDirection: elementlarning yo'nalishini o'rnatadi. Ikki konstantani belgilaydigan Axis ro'yxatini ifodalaydi:
i) Axis.horizontal: Ro'yxatni gorizontal qilib o'rnatadi - elementlar chapdan o'ngga (yoki o'ngdan chapga) joylashtirilgan bo’ladi.
ii) Axis.vertical: ro'yxatni vertikal qilib o'rnatadi - elementlar yuqoridan pastgacha joylashtiriladi.
· padding: ListView chegaralaridan elementlarning to'ldirishni(otstup) o'rnatadi va EdgeInsetsGeometry ob'ektini ifodalaydi.
· reverse: agar true bo’lsa, elementlarni teskari tartibda joylashtiradi.
· physics: ScrollPhysics obyekti yordamida scrolling parametrlarini o‘rnatadi.

49. OnDestroy() funksiyasi nima va unga misol keltiring?
onDestroy() funksiyasi faoliyat tugaganda, finish() usuli chaqirilganda yoki tizim resurslarni bo’shatish uchun ushbu faoliyat nusxasini yo’q qilganda chaqiriladi. Bu ikkita yo’q qilish ssenariysi isFinishing() usulini chaqirish orqali aniqlanishi mumkin. Funksiya faoliyat yo’q qilinishidan oldin chaqiriladi. Bu tizimdan faoliyatni qabul qiladigan so’nggi so’rovdir. Agar ma’lum bir oyna stekning yuqori qismida bo’lsa, lekin foydalanuvchiga ko’rinmasa va tizim bu oynani tugatishga qaror qilsa, onDestroy() usuli chaqiriladi. Bunday holda usul barcha statik faoliyat ma’lumotlarini olib tashlaydi va barcha ishlatilgan resurslarni qaytaradi.
onDestroy() funksiyasiga misol:
public class MainActivity extends Activity {
@Override
protected void onDestroy() {
super.onDestroy();
Log.d(TAG, "MainActivity: onDestroy()");
}
}

50.Emulyatorlar haqida ma’lumot bering.
Emulyator - bu boshqa kompyuter yoki dasturga taqlid qiladigan yoki taqlid qiladigan kompyuter yoki dastur. Masalan, emulyatorlar Windows operatsion tizimini Mac-da va aksincha ishlashga imkon beradi.
Masalan, WINE - bu muayyan Linux va Mac kompyuterlarida Windows dasturlarini ishga tushirish imkonini beruvchi dastur. Dolphin - bu sizning kompyuteringizda Nintendo GameCube va Wii o'yinlarini o'ynash imkonini beruvchi dastur. Hatto Mac uchun mashhur musiqa yozish ilovasi Logic Pro X ham kompyuteringizda gitara kuchaytirgichining ovozini simulyatsiya qilish imkonini beradi.
Kamchiliklari: Emulyatorlar o'zlarining maxsus apparat yoki quvvat manbalariga ega bo'lmasdan, butunlay boshqa qurilmaning harakatini takrorlashlari kerakligi sababli, emulyatorlar odatda simulyatsiya qilayotgan tizimga qaraganda sekinroq ishlaydi. Foydalanuvchilar, shuningdek, emulyator sifatida niqoblangan virusni yuklab olishdan ehtiyot bo'lishlari kerak. Emulyatorlar va dasturlarni faqat o'zingiz ishonadigan manbalardan yuklab olishingizga ishonch hosil qiling va biror narsani o'rnatishdan oldin har doim tekshirish kerak.
Oxirgisi, yuridik xavf ham mavjud. Emulyatorlar deyarli hamma joyda qonuniy bo'lsa-da, ular uchun to'lovsiz ushbu emulyatorlarda foydalanish uchun dasturlarni yuklab olish mumkin emas. Yuklab olishdan oldin mamlakatingizdagi taqlid qilingan dasturlar bilan bog'liq qoidalarni ko'rib chiqing.
51. Android Studio interfeysi haqida ma’lumot bering (fayllari va komponentalari).
Android Studio interfeysi fayllar va komponentalarni o’z ichiga oladi. Android ilovasining odatiy foydalanuvchi interfeysi action bar va application content areadan iborat. Shuningdek,
· Main Action Bar
· View Control
· Content Area
· Split Action Bar
lar ham mavjuddir. Android ActionBar foydalanuvchi "menyu" tugmasini bosganida ko'rinadigan menyu elementlarini o'z ichiga olishi mumkin. View Control bitta ildiz ko'rinishini boshqaradi, uning o'zi istalgan sonli subview larni o'z ichiga olishi mumkin. Content Area da kontentlar bo’ladi.
Android dagi loyiha turli xil app modullar, source code fayllari va resurs fayllardan iborat bo’ladi. Shuningdek, quyidagi fayllar ham bor:
1. Manifests Folder
2. Java Folder
3. res (Resources) Folder
· Drawable Folder
· Layout Folder
· Mipmap Folder
· Values Folder 4. Gradle Scripts

52. Android arxitekturasining xususiyatlari qanday?
Android arxitekturasi odatda to’rt darajaga bo’linadi:
1) Applications. Android quyidagi asosiy ilovalar to’plamini o’z ichiga oladi: elektron pochta va SMS mijozlari, kalendar, turli xaritalar, brauzer, kontaktlarni boshqarish dasturi va boshqalar. Android platformasida ishlaydigan barcha ilovalar Java tilida yozilgan.
2) Application Framework. Android asosiy ilovalarda qo’llaniladigan API dan to’liq foydalanish imkonini beradi. Arxitektura shunday qurilganki, har qanday dastur boshqa ilovaning allaqachon amalga oshirilgan funksiyalaridan foydalanishi mumkin, agar ikkinchisi o’z funksionalligidan foydalanish uchun ruxsatni ochsa. Arxitektura OT komponentlari va ilovalarini qayta ishlatish tamoyilini amalga oshiradi.
3) Libraries. Android turli OT komponentlari tomonidan foydalaniladigan C/C++ kutubxonalari to’plamini o’z ichiga oladi. Ishlab chiqaruvchilar uchun ushbu kutubxonalarning funksiyalariga kirish Application Framework yordamida amalga oshiriladi.
4) Linux Kernel. Android Linux 2.6 OT versiyasiga asoslangan, shuning uchun xotira va jarayonlarni boshqarish, xavfsizlik, tarmoq va drayverlar kabi yadro tizimi xizmatlari platformada mavjud. Yadro, shuningdek, apparat va dasturiy ta’minot o’rtasida abstraksiya qatlami bo’lib xizmat qiladi.

53. Androidda Foydalanuvchi ekrandagi orqaga tugmasini bosganida qaysi usul chaqiriladi?
onBackPressed()
Androidda onBackPressed() usuli foydalanuvchi ekrandagi orqaga tugmasini bosganda chaqiriladi. Bu usul Activity sinfining bir qismidir, shuning uchun orqaga tugmasi bosilganda maxsus xatti-harakatni belgilash uchun har qanday faoliyatda bekor qilinishi mumkin.
Bu orqaga qo'ng'iroq qilish funktsiyasi bo'lib, foydalanuvchi orqaga tugmani bosganida Android tizimi qo'ng'iroq qiladi. Agar ishlab chiquvchilar orqa press hodisasini hal qilmoqchi bo'lsalar, ular o'zlarining faoliyat sinflarida ushbu usulni bekor qilishlari va shunga mos ravishda mantiqni yozishlari kerak.

54. Mobil ilova ishlab chiqaruvchi platformalar qaysilar va ular haqida ma’lumot bering.
Visual Studio
Microsoft Visual Studio - bu Windows Forms yoki WPF ilovalari, veb-saytlar, veb-ilovalar va veb-xizmatlar bilan birga konsol va grafik foydalanuvchi interfeysi ilovalarini ishlab chiqish uchun integratsiyalashgan ishlab chiqish muhiti (IDE).
Xcode
Xcode 6 dasturiy ta'minotni loyihalash va yaratishning tubdan yangi usulini taqdim etadi. Swift - bu Cocoa va Cocoa Touch uchun innovatsion yangi dasturlash tili va Xcode vositalari bilan birlashganda dasturlashni ajoyib jonli tajribaga aylantiradi.
OutSystems
OutSystems - bu yuqori samarali past kodli platforma bo'lib, u yuqori unumdorlikka erishadi va doimiy innovatsiyalar bilan juda yaxshi ilovalar yaratadi. Sun'iy intellekt tomonidan ishlab chiqilgan vizual ishlab chiqish vositalari va avtomatlashtirish mijozlarga ilovalarni modernizatsiya qilish, ish joyini yangilash, biznes jarayonlarini avtomatlashtirish va mijozlar tajribasini o'zgartirish kabi strategik muammolarni hal qilishda yordam beradi.
Neptune DXP
Neptune Software kompaniyasining yetakchi past kodli ilovalarni ishlab chiqish platformasi - Neptune DXP - biznes jarayonlari va foydalanuvchi interfeyslarini miqyosda va osonlik bilan raqamlashtiradi va optimallashtiradi. Neptune DXP korporativ mobillikni, shuningdek SAP mijozlari uchun kodsiz/past kodli ilovalarni ishlab chiqish tanlovi bilan eng yaxshi past kodli ilovalarni ishlab chiqishni taklif etadi.
Android studioni etip ketsayam boladi atak.

55. Android Runtime nima?
Android Runtime (ART) - bu Android ilovalari Android qurilmasida ishlaydigan ish vaqti muhiti. Bu Androidning oldingi versiyalarida ishlatiladigan ish vaqti muhiti bo'lgan Dalvik Virtual Machine (DVM) o'rnini bosuvchi vositadir.
ART oldindan (AOT) kompilyatsiyasidan foydalanadi, ya'ni u dasturni ishga tushirishdan oldin dastur bayt kodini mashina kodiga kompilyatsiya qiladi. Bu ilovani tezroq ishga tushirish vaqtini va ish faoliyatini yaxshilashga olib keladi, chunki ilova ish vaqti muhiti tomonidan talqin qilinishi shart emas.
ART shuningdek, "Just-In-Time" (JIT) kompilyatsiyasi deb ataladigan texnikadan foydalanadi, bu esa ish vaqtida kodni dinamik kompilyatsiya qilish imkonini beradi. Bu ish faoliyatini yanada yaxshilash imkonini beradi, chunki eng tez-tez ishlatiladigan kodni tezda kompilyatsiya qilish mumkin.
ART ish vaqti ilova bilan bir vaqtda ishlashga moʻljallangan axlat yigʻuvchini ham oʻz ichiga oladi, bu esa ilovaning ishlashida kamroq uzilishlarga olib keladi.
Xulosa qilib aytganda, Android Runtime (ART) bu Android ilovalari Android qurilmasida ishlaydigan ish vaqti muhitidir. U ilovani tezroq ishga tushirish vaqtini va ish faoliyatini yaxshilashni ta'minlaydigan oldindan (AOT) kompilyatsiyasidan foydalanadi, shuningdek ish faoliyatini yanada yaxshilash uchun Just-In-Time (JIT) kompilyatsiyasidan foydalanadi va axlat yig'uvchi bilan bir vaqtda ishlaydigan axlat yig'uvchidan foydalanadi. ilova. U Android 4.4 (KitKat) da taqdim etilgan va Android 5.0 (Lollipop) da standart ish vaqti muhitiga aylandi.

56. Android Abstrakt sinflari haqida ma’lumot bering.
Abstraktsiya tushunchasi asosan sinf va metodlar uchun foydalaniladi va abstract kalit so'zi yordamida quriladi.
Android-dagi Abstract sinf - bu yaratib bo'lmaydigan va pastki sinflarga bo'linish uchun mo'ljallangan sinf. U odatda mavhum sinf tomonidan e'lon qilingan funksiyalarni amalga oshiradigan boshqa sinflar uchun asosiy sinf sifatida ishlatiladi. Abstrakt sinflar ham mavhum, ham aniq usullarni o'z ichiga olishi mumkin. Mavhum usullar imzoga ega, lekin amalga oshirilmaydigan usullar, aniq usullar esa imzo va amalga oshirishga ega bo'lgan usullardir. Abstract sinfning pastki sinflari ota-klassning abstract usullarini amalga oshirish uchun talab qilinadi, aks holda pastki sinf ham bastract sifatida belgilanishi kerak. Abstract sinflar bir nechta sinflar uchun umumiy interfeys yoki dasturni taqdim qilmoqchi bo'lganingizda foydalidir.
Abstrakt sinf- bu sodda qilib aytganda cheklangan sinf. Ya'ni undan obyekt olish taqiqlangan. Unga kirish uchun, undan voris sinf olish lozim.
Abstrakt metod - bu tanasi mavjud bo'lmagan, hamda faqatgina abstrakt sinfda ishlovchi metod hisoblanadi. Uni tanasi esa, voris sinfda taqdim etiladi.
using System;
// abstrakt class 'Hayvonlar'
public abstract class Hayvolar
{
// abstrakt metod 'Ovoz()'
public abstract void Ovoz();
}
// class 'Hayvolar' dan olingan voris class 'Sigir'
public class Sigir : Hayvolar
{
// Qayta ishlangan 'Ovoz()' metodi
public override void Ovoz()
{
Console.WriteLine("Moo");
}
}
class Program
{
static void Main(string[] args)
{
// Sigir obyektini yaratish
Sigir sigir_obj = new Sigir();
// abstrakt metodni chaqirish
sigir_obj.Ovoz();
}
}

57. OnCreate(), onStart(), onResume(), onDestroy(), onStop(), onPause() ni farqlang.
OnCreate() usulida siz faoliyatning butun muddati davomida faqat bir marta sodir bo'lishi kerak bo'lgan asosiy dasturni ishga tushirish mantiqini bajarasiz.
OnStart() qo'ng'irog'i faoliyatni foydalanuvchiga ko'rinadigan qiladi, chunki ilova faollikka tayyorgarlik ko'radi va interaktiv bo'ladi. Masalan, bu usul ilova interfeysni saqlaydigan kodni ishga tushiradigan joy.
Faoliyat Resume holatiga kirganda, u birinchi o'ringa chiqadi va keyin tizim onResume() qayta qo'ng'iroqni chaqiradi. Bu ilova foydalanuvchi bilan o'zaro aloqada bo'lgan holat. Ilova diqqatni ilovadan uzoqlashtiradigan biror narsa yuz bermaguncha, ilova shu holatda qoladi. Bunday hodisa, masalan, telefon qo'ng'irog'ini qabul qilish, foydalanuvchining boshqa faoliyatga o'tishi yoki qurilma ekranining o'chirilishi bo'lishi mumkin.
Faoliyat to'xtatilgan holatga o'tganda, faoliyatning hayot aylanishiga bog'langan har qanday hayot tsiklidan xabardor komponent ON_PAUSE hodisasini oladi. Bu erda hayot aylanishi komponentlari komponent oldingi planda bo'lmaganda ishlashi kerak bo'lmagan har qanday funksiyani to'xtatishi mumkin, masalan, kamerani oldindan ko'rishni to'xtatish.
Sizning faoliyatingiz foydalanuvchiga ko'rinmasa, u To'xtatilgan holatga o'tadi va tizim onStop() qayta qo'ng'iroqni chaqiradi. Bu, masalan, yangi boshlangan faoliyat butun ekranni qamrab olganida yuz berishi mumkin. Faoliyat tugashi va tugatilishi arafasida bo'lganda ham tizim onStop() ni chaqirishi mumkin.
Faoliyat yo'q qilingan holatga o'tganda, faoliyatning hayot aylanishiga bog'langan har qanday hayot tsiklidan xabardor komponent ON_DESTROY hodisasini oladi. Bu erda hayot tsikli komponentlari Faoliyat yo'q qilinishidan oldin kerakli narsalarni tozalashi mumkin.

58.Androidda TableLayout xususiyatlarini misol bilan keltirib o’ting.
TableLayout konteyneri jadvaldagi boshqaruv elementlarini ustunlar va satrlar bo’yicha strukturalaydi. activity_main.xml faylida ikkita satr va ikkita ustundan iborat TableLayout elementini yaratamiz:

android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
android:layout_weight="0.5"
android:text="Логин"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />

<TextView
android:layout_weight="0.5"
android:text="Email"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

59.UI dizayn haqida ma’lumot bering.
UI dizayni yoki foydalanuvchi interfeysi dizayni mahsulot, tizim yoki xizmatning vizual elementlari va tartibini loyihalash jarayonidir. Mobil ilovalarni ishlab chiqish kontekstida UI dizayni ilovaning foydalanuvchi interfeysini tashkil etuvchi tugmalar, piktogrammalar, matn va tasvirlar kabi vizual elementlarni loyihalash jarayonini nazarda tutadi.
UI dizayn jarayoni odatda quyidagi bosqichlarni o'z ichiga oladi:

  1. Tadqiqot: foydalanuvchi tadqiqotini o'tkazing va maqsadli auditoriya, ularning ehtiyojlari va afzalliklari haqida ma'lumot to'plang.
  2. Dizayn: Ilova foydalanuvchi interfeysining simli ramkalar, maketlar va prototiplarini yarating.
  3. Sinov: fikr-mulohazalarni to'plash va ilovaning foydalanuvchi interfeysidan foydalanish oson va maqsadli auditoriya ehtiyojlarini qondirish uchun foydalanish imkoniyati testini o'tkazing.
  4. Amalga oshirish: Yakuniy dastur dizaynini ishlab chiqish va amalga oshirish.
  5. Baholash: Ilovaning ishlashini doimiy ravishda baholang va dizaynni yaxshilash va takrorlash uchun foydalanuvchilarning fikr-mulohazalarini to'plang.

UI dizaynining maqsadi vizual jihatdan jozibali, foydalanish uchun qulay va maqsadli auditoriya ehtiyojlariga javob beradigan ilova yaratishdir. Yaxshi UI dizayni foydalanuvchi qoniqishini, ishtirokini va ushlab turishini yaxshilashi va biznesning yaxshi natijalariga olib kelishi mumkin.
UI dizayni mobil ilovalarni ishlab chiqishning muhim jihati bo‘lib, uni ishlab chiqish jarayonida foydalanuvchi nuqtai nazarini hisobga olish muhimdir. Vizual jozibador va yaxshi mo'ljallangan foydalanuvchi interfeysi muvaffaqiyatli va bo'lmagan ilova o'rtasidagi farqni yaratishi mumkin. Dizayn tamoyillari, tipografiya, ranglar sxemasi va ilovaning umumiy joylashuvi, shuningdek, foydalanuvchining ilova bilan qanday aloqasi borligini yodda tutish muhimdir.

60. Crossplatformaning afzalliklari.
Faster updates & flexibility (Tez-tez yangilanish va moslashuvchanlik)
Kodni tezroq kompilyatsiya qilish platformalararo ilovalarni ishlab chiqishning asosiy afzalligi hisoblanadi. Ishlab chiquvchilar bir xil dasturlash tilidan foydalanganda kodni bir nechta platformalarda osongina almashishlari mumkin. O'zaro platforma ilovalari turli tillar o'rtasida almashish imkonini beruvchi texnologiya bilan yaratilgan. Bu, shuningdek, ishlab chiquvchilarga kerak bo'lganda va boshqa texnologiyalarni qo'llash uchun moslashuvchanlikni beradi.
Har bir platforma uchun dasturchi yo’llash shart emas.
O'zaro platforma ilovalari bitta kod bazasi va umumiy APIdan foydalanganligi sababli, turli platformalar uchun turli guruhlarni yollashning hojati yo'q. Bu ishlab chiquvchilar sonining kamayishiga olib keladi, bu esa o'z navbatida umumiy ishlab chiqish xarajatlarini kamaytirishga olib keladi.
Vaqt va pulni tejaydi.
Vaqt kelganda, o'zaro platforma ilovalari ishlab chiqish uchun zarur bo'lgan vaqtni qisqartirishga yordam beradi. Bu nafaqat kamroq vaqtni oladi, balki texnik xizmat ko'rsatish va yangilanishlarga sarflanadigan vaqtni ham qisqartiradi, chunki mahalliy ishlab chiqish talab qiladigan ko'plab jamoalar o'rniga ilovangizning barcha versiyalari uchun bitta jamoa javobgardir.
Osonroq amalga oshirish.
Dadillik(consistency) foydalanuvchilar uchun ham, ishlab chiquvchilar uchun ham ne'matdir. React Native va Flutter yordamida ilovalarni ishlab chiqish jarayoni bir nechta platformalar va qurilmalar uchun ishlab chiqishni osonlashtiradigan tarzda soddalashtiriladi. Ushbu platformalar faqat bitta kod bazasidan foydalangan holda Android va iOS-da yuqori sifatli mahalliy ilovalarni yaratish uchun yaratilgan.
Uniform Design (Yagona dizayn)
Android va iOS uchun alohida dizayn yaratish shart emas. Crossplatform yagona dizaynni qo’llab-quvvatlaydi, natijada esa dasturchilarning vaqtini tejaydi.
61. Dastlabki mobil qurilmalar va mobil ilovalar haqida ma’lumot bering.
1876-yil 14-fevralda, shvetsiyalik amerikalik Aleksandr Graham Bell AQSh Patent idorasi tomonidan o'zi ishlab chiqargan qurilma ya’ni, telefonni chiqardi. Mobil ilova (inglizcha: Mobile app) — maʼlum bir platforma (iOS, Android, Windows Phone va boshqalar) uchun ishlab chiqilgan smartfonlar, planshetlar va boshqa mobil qurilmalarda ishlashga moʻljallangan dastur. Koʻpgina mobil ilovalar qurilmaning oʻzida oldindan oʻrnatiladi yoki ularni App Store, Google Play va boshqalar kabi onlayn dastur doʻkonlaridan bepul yoki pullik bilan yuklab olish mumkin. Dastlab, mobil ilovalar elektron pochtani tezda tekshirish uchun ishlatilgan, ammo ularning yuqori talablari boshqa sohalarda ham kengayishiga olib keldi, masalan, mobil telefon va GPS oʻyinlari, suhbatlashish, video tomosha qilish va Internetdan foydalanish.
To'lov telefonlari 1889 yilda tanga bilan ishlaydigan telefon Konnektikut shtatidagi Xartfordlik Uilyam Grey tomonidan patentlangan. Greyning to'lov telefoni birinchi bo'lib Xartford bankida o'rnatildi va ishlatildi.
70-yillarda birinchi simsiz telefonlar paydo bo'ldi. 1986 yilda Federal aloqa komissiyasi simsiz telefonlar uchun 47 dan 49 MGts gacha bo'lgan chastota diapazonini berdi. Ko'proq chastota diapazonini berish simsiz telefonlarga kamroq shovqin va ishlash uchun kam quvvat talab qildi. 1990 yilda FCC simsiz telefonlar uchun 900 MGts chastota diapazonini berdi.
1947 yilda AT&T tadqiqot qanoti Bell Labs-da boshlandi. Kerakli radio chastotalar hali tijoratda mavjud bo'lmagan bo'lsa-da, telefonlarni "uyalar" yoki uzatgichlar tarmog'i orqali simsiz ulash tushunchasi hayotiy edi. Motorola 1973 yilda birinchi qo'lda ishlaydigan uyali telefonni taqdim etdi.
Mobil ilovalarning turlari
Bugungi kunda Android bozori va AppStore-dan milliardga yaqin dastur yuklab olingan va smartfonlarning arzonlashishi va mavjudligi tufayli iste'molchilar soni uzoq vaqt davomida o'sishda davom etadi. Mobil ilovalar bozori juda dinamik.
J'son & Partners Consulting mutaxassislari mobil ilovalar bozorini quyidagi turlarga ajratadilar:
1. kontent dasturlari (tarkibiy ilovalar)
2. biznes dasturlari
3. mobil o'yinlar
4. ijtimoiy tarmoqlar
Kontent dasturlari.
Tarkibiy ilovalar juda mashhur: ular musiqa tinglash, filmlar va fotosuratlarni tomosha qilish, raqamli kitoblar va jurnallarni o'qish uchun mo'ljallangan. Bunga axborot dasturlari: ob-havo, jadvallar, yangiliklar, xaritalar, transport, retseptlar va boshqalar kiradi.
Biznes-ilovalar
Ofis ishlarida, hisob-kitoblarda, xizmat ma'lumotlari almashinuvida yordam beradi, shuningdek, onlayn-do'konlarga, to'lov tizimlariga va bank hisob raqamlariga kirishni ta'minlaydi.
Mobil o'yinlar
Eng ko'p talab qilinadigan mobil ilovalar sektoridir. O'yinlar soni ko'paymoqda, yangilarining yangi versiyalari chiqarilmoqda, auditoriya kengaymoqda (yoshi - 0 dan 100 yoshgacha, tilni lokalizatsiya qilish, madaniy xususiyatlar).
Mobil ijtimoiy tarmoqlar.
Ijtimoiy tarmoqlar kun sayin tobora ommalashib bormoqda, butun dunyo bo'ylab katta auditoriyani ko'paytirmoqda, bunga smartfonlardan tarmoqlarning mavjudligi yordam beradi. Ya'ni, barcha aloqa turlari uchun Mobil ilovalar dolzarbdir.

62. Androidni ishlab chiqishda qanday turli vositalar mavjud? Ularning funksiyalarini tushuntiring.

2. Android Debug Bridge (ADB)

Qisqacha ADB nomi bilan tanilgan Android Debug Bridge ko'p qirrali buyruq qatori vositasi bo'lib, ishlab chiqish, QA va disk raskadrovka jarayonlarini amalga oshirishda android qurilmalari va boshqa kompyuterlar bilan bog'lanish uchun ishlatiladi.

3. Eclipse

Ushbu vosita ilovalarni yanada rivojlantirish va optimallashtirish imkonini beruvchi turli xil kuchli xususiyatlarni taklif etadi. Uni mashhur qilgan ba'zi xususiyatlari - avtomatik xatolar haqida hisobot berish, modullarni taqsimlash, chuqur ishlab chiqish muhiti va boshqalar.

4. Vysor

Bu sizga klaviaturadan yozish, uchrashuvlar paytida ekraningizni koʻrsatish va boshqalar imkonini beradi. Shuningdek, siz jamoa aʼzolari uchun katta televizor ekranlari va proyektorlarda jonli ilova demolarini koʻrsatish uchun qurilmangizni skrinshot qilishingiz mumkin. U barcha operatsion tizimlar bilan mos keladi va bitta qurilma uchun sotib olish arzon. Vysor narxlari juda hamyonbop va oyiga 2,50 dollardan, yiliga 10 dollardan yoki umrbod litsenziya uchun 40 dollardan boshlanadi.

5. FlowUp

FlowUp - bu ilovalarning ishlashini kuzatish uchun Androidni ishlab chiqish uchun ishlatiladigan ajoyib vosita. Foydali asboblar paneli sizga protsessordan foydalanish, diskdan foydalanish, xotiradan foydalanish va boshqa ko'p narsalar kabi turli xil ishlash ko'rsatkichlari bo'yicha jonli ishlab chiqarish ilovasidan muhim ma'lumotlarni olishga imkon beradi.
Androidni ishlab chiqish uchun mavjud turli vositalar quyidagilardan iborat:

  1. Android Studio: Bu vositani Google tashkil etgan. U Androidni ishlab chiqish va tahlil qilish uchun mo'ljallangan. Bu vositada Java va C++ dasturlash, Android Interfeysini yaratish, Android sohalarini test qilish va Android qurilmalarini ishga tushirish mumkin.
  2. Eclipse: Bu vositada Android va Java dasturlash mo'ljallangan. Bu vositada Java va Android interfeysini yaratish, Android sohalarini test qilish va Android qurilmalarini ishga tushirish mumkin.
  3. IntelliJ IDEA: Bu vositada Java va Android dasturlash, Android Interfeysini yaratish, Android sohalarini test qilish va Android qurilmalarini ishga tushirish mumkin.
  4. Xamarin: Bu vositada .NET va C# dasturlash, Android Interfeysini yaratish, Android sohalarini test qilish va Android qurilmalarini ishga tushirish mumkin.
  5. PhoneGap: Bu vositada HTML5, CSS va JavaScript dasturlash, Android Interfeysini yaratish, Android sohalarini test qilish va Android qurilmalarini ishga tushirish mumkin.

Barcha vositalar o'ziga xos funksiyalari va qulayliklari bilan foydalanilishi mumkin.
63. Kontent provayderi nima? U qanday amalga oshiriladi?
Content provider - Bu, Android operatsion tizimli mobil qurilmalar uchun mavjud bo'lgan API turi bo'lib, ularning bazasi ma'lumotlarini boshqarish, saqlash va ularning boshqa ilovalarga o'tkazish uchun ishlatiladi.
Amalga oshirish - Content provider, AndroidManifest.xml faylida tasdiqlangan va Application class yordamida tayinlanadi. U bazadagi ma'lumotlarni ContentResolver orqali o'rnatib, boshqa ilovalar bilan ularning ma'lumotlarini almashtirish yoki o'zgartirish imkonini beradi.
Kontent provayder komponenti so'rov bo'yicha bir ilovadan boshqasiga ma'lumotlarni yetkazib beradi. Bunday so'rovlar ContentResolver sinfining usullari bilan amalga oshiriladi. Kontent provayderi o'z ma'lumotlarini saqlashning turli usullaridan foydalanishi mumkin va ma'lumotlar ma'lumotlar bazasida, fayllarda yoki hatto tarmoq orqali saqlanishi mumkin.
Kontent provayderi ContentProvider sinfining quyi sinfi sifatida amalga oshiriladi va boshqa ilovalarga tranzaktsiyalarni amalga oshirish imkonini beruvchi standart API to'plamini amalga oshirishi kerak.

public class My Application extends ContentProvider {

}
ContentProvider
· onCreate() Ushbu usul provayder ishga tushirilganda chaqiriladi.
· query() Bu usul mijozdan so'rov oladi. Natija Kursor obyekti sifatida qaytariladi.
· insert()Ushbu usul kontent provayderiga yangi yozuv kiritadi.
· delete() Bu usul kontent provayderidan mavjud yozuvni oʻchiradi.
· update() Bu usul kontent provayderidagi mavjud yozuvni yangilaydi.
· getType() Bu usul berilgan URIdagi ma'lumotlarning MIME turini qaytaradi.

64. Androidda Umumiy sozlamalarda ma'lumotlar qanday saqlanadi? commit() va application() o'rtasidagi farq nima? Qaysi biri tavsiya etiladi?
apply() 2.3 da qo'shilgan bo'lsa, u muvaffaqiyat yoki muvaffaqiyatsizlikni ko'rsatadigan mantiqiy qiymatni qaytarmasdan amalga oshiradi.
commit() agar saqlash ishlayotgan bo'lsa, true qiymatini qaytaradi, aks holda false.
apply () ilovasi qo'shildi, chunki Android ishlab chiquvchilar jamoasi qaytarilish qiymatini deyarli hech kim sezmaganligini payqashdi, shuning uchun qo'llash tezroq, chunki u asinxrondir.

Apply yaxshiroq chunki asinxron ishlaydi.

Android'de umumiy sozlamalar SharedPreferences da saqlanadi. Commit() va apply() metodlarini foydalanish SharedPreferences da sozlamalar saqlash uchun mo'ljallangan.
Commit() metodi sozlamalarni yangi joyga qo'shish uchun foydalaniladi va barcha ishlamalar bittadan oldin yozib qo'yiladi. Commit() metodi muvaffaqiyatsiz bo'lsa, sozlamalar saqlanmaydi.
Apply() metodi ishlamalarni bittadan oldin yozib qo'yadi va yangi sozlamalar o'z vaqtida ishga tushiriladi. Apply() metodida muvaffaqiyatsiz bo'lgan ishlamalar oldin-kechroq saqlanadi va bir nechta ishga tushirilishi mumkin.
Tavsiya etiladigan metod apply() metodidir, chunki u performansdan kam kattalikka ega bo'lgan va sozlamalar saqlanishda muvaffaqiyatsiz bo'lganda ham saqlanadi.

65.Grid va List lar haqida umumiy ma’lumot bering.
Mobil ilovalarni ishlab chiqishda Grid va List ma'lumotlarni tuzilgan formatda ko'rsatishning ikkita keng tarqalgan usuli hisoblanadi.

  • GRID: To'r - bu qatorlar va ustunlardan iborat to'rtburchaklar to'rdagi elementlarni joylashtiradigan tartib. Undan rasmlar yoki matn kabi elementlarni skanerlash va harakatlanish oson tuzilgan formatda ko‘rsatish uchun foydalanish mumkin. Android-da GridView yoki RecyclerView-dan GridLayoutManager-dan panjara tartibini yaratish uchun foydalanish mumkin.
  • Listt: Ro'yxat - bu elementlarni vertikal yoki gorizontal ketma-ketlikda joylashtiradigan tartib. Undan matn yoki tasvir kabi elementlarni skanerlash va harakatlanish oson tuzilgan formatda ko‘rsatish uchun foydalanish mumkin. Androidda ListView yoki LinearLayoutManager bilan RecyclerView ro'yxat tartibini yaratish uchun ishlatilishi mumkin.

Grid tartiblari odatda ko'p sonli elementlar mavjud bo'lganda va siz ularni galereya kabi ixcham formatda ko'rsatishni xohlasangiz ishlatiladi. List tartiblari birma-bir oʻqilishi kerak boʻlgan narsalarni, masalan, chat roʻyxatini yoki batafsil maʼlumotga ega boʻlgan elementlar roʻyxatini koʻrsatish uchun keng tarqalgan.
Grid va List maketlarining ham o'ziga xos afzalliklari va kamchiliklari bor va tartibni tanlash ilova va foydalanuvchi interfeysining o'ziga xos talablariga bog'liq bo'ladi.

66.          Androidda Manifest faylining vazifasi nimadan iborat?
AndroidManifest.xml manifest fayli tizimga dastur haqida asosiy ma’lumotlarni taqdim etadi. Manifest fayli Android ilovasining butun arxitekturasini, uning funksionalligi va konfiguratsiyasini inkapsulyatsiya qiladi. Har bir ilova o’zining AndroidManifest.xml fayliga ega bo’lishi kerak. Uning asosiy vazifalari quyida keltirilgan:
ilovaning yagona identifikator sifatida xizmat qiluvchi Java paketi nomini e’lon qiladi;
ilova komponentlarini tavsiflaydi - faoliyat, xizmatlar, translyatsiya niyatlarini qabul qiluvchilar va kontent provayderlari, bu komponentlarning har birini amalga oshiradigan sinflarni chaqirish va ularning niyatlarini e’lon qilish imkonini beradi;
API ning himoyalangan qismlariga kirish va boshqa ilovalar bilan ishlash uchun zarur ruxsatlar ro’yxatini o’z ichiga oladi;
uchinchi tomon ilovalari ushbu ilova komponentlari bilan o’zaro aloqada bo’lishlari kerak bo’lgan ruxsatlarni eʼlon qiladi;
ilova ishlashi uchun zarur bo’lgan Android API minimal darajasini e’lon qiladi;
tegishli kutubxonalar ro’yxatini chiqaradi

67.          67.Androidda ToggleButton ni yarating.
Android-dagi ToggleButton - bu ikkita holatdan birida bo'lishi mumkin bo'lgan tugma turi: "yoqilgan" yoki "o'chirilgan". Bu belgilash katakchasiga o'xshaydi, lekin u odatda xususiyatni yoqish yoki o'chirish kabi ikkilik sozlamani ifodalash uchun ishlatiladi. ToggleButton-dan ToggleButton elementi yordamida maket faylida foydalanish mumkin yoki ToggleButton klassi yordamida Java kodida dasturiy tarzda yaratilishi mumkin.
ToggleButton-dan asosiy foydalanish foydalanuvchiga sozlamani yoqish yoki o'chirish usulini ta'minlashdan iborat. Foydalanuvchi tugmani bosganda, u o'z holatini o'zgartiradi va harakatni boshlash uchun ishlatilishi mumkin. O'zgartirish tugmasi holatiga isChecked() usuli orqali kirish mumkin, bu mantiqiy qiymatni qaytaradi.
O'zgartirish tugmasi matn, matn rangi, fon rangi va yoqish va o'chirish holatlari uchun tasvirlar kabi tugma ko'rinishini sozlash uchun ishlatilishi mumkin bo'lgan oldindan belgilangan atributlar to'plamiga ega. O'zgartirish tugmasidan tugma holati o'zgarganda xabar qilinadigan tinglovchi bilan ham foydalanish mumkin.
Shuni ta'kidlash kerakki, ToggleButton endi Android-da eskirgan va uning o'rniga SwitchCompat-dan foydalanish tavsiya etiladi.

android:id="@+id/simpleToggleButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:textOff="Off"
android:textOn="On"/>

68.         Androidda AIDL nima? AIDL qaysi ma'lumot turlarini qo'llab-quvvatlaydi?
AIDL (Android Interface Definition Language) — Android ilovasi va xizmat oʻrtasidagi kabi Android komponentlari orasidagi interfeysni aniqlash uchun ishlatiladigan til. AIDL mijoz tomonidan chaqirilishi mumkin bo'lgan faoliyat kabi ma'lumotlar turlari va usullarini aniqlash orqali komponentlar o'rtasidagi aloqani ta'minlaydi va xizmat tomonidan amalga oshiriladi. Servis va mijoz o'rtasidagi ushbu kuchli aloqa mexanizmi IPC (Inter Process Communication) texnologiyasidan foydalangan holda har qanday vazifani masofadan boshqarishi mumkin. AIDL mijozlar o'rtasidagi ma'lumotlarni masofadan va xavfsiz tarzda boshqaradi, biroq, mijozning o'zi ushbu xizmatlar bilan bog'lanishi shart. Turli jarayonlar umumiy xotira maydoniga ega emas, shuning uchun ma'lumotlar jarayonlar o'rtasida xabarlar orqali uzatiladi. Ma'lumotlarni uzatish interfeysi AIDL tilida yaratilgan. AIDL Parcelable yordamida ma'lumotlarni qayta ishlashni qo'llab-quvvatlaydi. Barchasi IPC mexanizmida ikki xil dastur o'rtasida sodir bo'ladi. AIDL interfeysi quyidagi ma'lumotlar turlarini qo'llab-quvvatlaydi:
‒ barcha Java primitivlari (int, long, char, boolean, short va h.k.);
‒ primitivlar massivlari (int[], double[] va h.k.);
‒ satr turlari (String va CharSequence);
List (uning elementlari qo'llab-quvvatlanadigan turlardan biriga tegishli bo'lishi kerak);
Map (uning elementlari qo'llab-quvvatlanadigan turlardan biriga tegishli bo'lishi kerak);
Parcelable sinflari, shu jumladan Bundle va boshqa AIDL obyektlari.

69.Flutterda yozilgan Android ilovani iOS ga o'girish ketma-ketligini tushuntiring.
Flutter yordamida Android ilovasini iOS-ga aylantirish uchun bajariladigan amallarning umumiy ketma-ketligi:

  1. Rivojlanish muhitini sozlang: Flutterni ishlab chiqish mashinangizga, shuningdek, Android Studio yoki Xcode kabi zarur ishlab chiqish vositalarini oʻrnating va sozlang.
  2. Kodni tayyorlang: Android ilovasining mavjud kod bazasini ko'rib chiqing va iOS uchun almashtirilishi yoki o'zgartirilishi kerak bo'lgan platformaga xos kod yoki bog'liqliklarni aniqlang.
  3. Yangi Flutter loyihasini yarating: Ishlab chiqish muhitida yangi Flutter loyihasini yarating va mavjud Android ilovalari kod bazasini import qiling.
  4. Platformaga xos kodni oʻzgartiring: Android ilovasidan har qanday platformaga xos kod yoki bogʻliqlikni Flutter’dagi ekvivalentlari bilan almashtiring yoki oʻzgartiring.
  5. Ilovani sinab ko'ring: Ilovani iOS emulyatori yoki qurilmasida ishga tushiring va barcha funksiya va funksiyalarni sinab ko'ring.
  6. Kodni qayta tahrirlang: Ilovani sinab ko'rganingizda, iOS-da yaxshiroq ishlash uchun kodni qayta tiklash yoki optimallashtirish kerak bo'lgan joylarni topishingiz mumkin.
  7. Xatolarni tuzatish: Ilovani yaxshilab sinab ko'ring va topilgan xato yoki muammolarni tuzating.
  1. iOS ilovasini nashr qiling: Ilova toʻliq ishlagan va iOS’da sinovdan oʻtkazilgandan soʻng uni chiqarishga tayyorlashingiz va App Store’ga yuborishingiz mumkin.

Shuni ta'kidlash kerakki, Flutter - bu Android va iOS uchun mobil ilovalarni yaratishning yagona usulini ta'minlovchi ramka bo'lib, u har bir platforma uchun alohida ilovalar yaratish bilan solishtirganda ko'p vaqt va kuchingizni tejaydi. Biroq, kutilgandek ishlashiga ishonch hosil qilish uchun ilovangizni ikkala platformada ham sinab ko‘rish muhim.
Xulosa qilib aytganda, Flutter yordamida Android ilovasini iOS-ga o‘zgartirishni ishlab chiqish muhitini o‘rnatish, kodni tayyorlash, yangi Flutter loyihasini yaratish, platformaga xos kodni o‘zgartirish, ilovani sinovdan o‘tkazish, kodni qayta ishlash, xatolarni tuzatish va nashr qilish orqali amalga oshirish mumkin. iOS ilovasi.

70.Mobil ilovalarni ishlab chiqish va ulardan foydalanishda xavfsizlik parametrlari haqida umumiy ma’lumotlar bering.
Quyida mobil ilovalarni ishlab chiqishning barcha bosqichlarida xavfsizlikni ta'minlash uchun kerak bo'lgan qadamlar ko'rsatilgan:

Erta integratsiya

Ko'p dastur xavfsizligi kamchiliklarini xavfsizlik jarayonlarini ilova ishlab chiqishning dastlabki bosqichlaridan uzluksiz integratsiyalashgan holda oldini olish mumkin. Dastlabki ilovalarni ishlab chiqish strategiyangizni rejalashtirish, xavfsizlikni har doim yodingizda tutish, ilovalarni ishlab chiqishning keyingi bosqichlarida xavfsizlikka oid xatarlarni kamaytirish imkonini beradi. Avvalo to'g'ri xavfsizlik choralarini qo'llash, shuning uchun siz ko'proq vaqt, pul va kuchingizni tejashingiz mumkin.

Pre-dizayn bosqichi

Keyingi bosqichda ilovani ishlab chiqish uchun ma'lumotlarni to'plash va tahlil qilish kiradi. Ushbu bosqich shuningdek, ilovani yaratish, dasturni ishlab chiqadigan turli OSni tushunish uchun hujjatlarni va boshqa jarayonlarni tushunishni ham o'z ichiga oladi. Shuning uchun ilovani loyihalashtirishni boshlashdan oldin, ilovangizning xavfsizligi va unga muvofiqligi bilan bog'liq turli xil qiyinchiliklarni va cheklashlarni tushunishingiz kerak.
Agar ma'lum bir kompaniya uchun ilovani ishlab chiqsangiz, siz qo'shimcha ravishda kompaniyaning maxfiylik siyosati , sanoat siyosati (mavjud va mavjud bo'lsa), tartibga solish talablari, maxfiylik va hk larni hisobga olishingiz kerak bo’ladi.

Ilovalarni ishlab chiqish bosqichi

Keyingi qadam, dasturni ishlab chiqish bosqichi, ko'plab xavfsizlikka oid muammolarni keltirib chiqarishi mumkin. Tabiiyki, bu muammolarni erta etarlicha ushlab turganda nisbatan osonroq echish mumkin. Ammo dolzarb muammolar, ilovani ishlab chiqish jarayonida paydo bo'ladi. Ushbu bosqichda yuzaga keladigan havfsizlik masalalari eng murakkab masala hisoblanadi. Bu erda xavf omillarini kamaytirishning eng yaxshi usuli, har qanday potentsial tuzoqlarning ro'yxatini tuzishdan iborat bo'lib, ularning har biridan qochish uchun sizning harakatingizni rejalashtirishdir.
Buni, odatda, maxsus tekshirishni amalga oshirish uchun vakolatli xavfsizlik mutaxassisi tomonidan ko'rib chiqiladigan batafsil xavfsizlikni baholashni amalga oshirish bajariladi.

Ilova oshirish bosqichi

Ushbu muayyan bosqichda maksimal ilova xavfsizligini ta'minlash juda muhimdir. Tabiiyki, siz dastlabki, avtomatlashtirilgan vositalar mavjudsiz. Shu vaqtning o'zida yetishtiriladigan asosiy masala buglarni topib, ularni tuzatib, boshqa xavfsizlik zaifliklarini kuzatishi mumkin. Ushbu vositalar xavfsizlikning umumiy muammolarini bartaraf etishda samarali bo'lsa-da, ba'zida murakkab muammolarni aniqlay olmaydi.
Bu erda siz peer review sizga foydalanishingiz mumkin. Siz o'zingizning kodingizni tekshirish va ilovangiz haqida fikr-mulohazalar bildirish uchun hamkorni ishlab chiqaruvchidan so'rashingiz mumkin. Uchinchi tomonga yaqinlashishda yordam beradi, chunki ular yuqorida ko'rsatilgan bosqichlardan tashqarida qoldirgan ba'zi kamchiliklarni topishi va tuzatishi mumkin.

Ilovani sinash va joylashtirish

Keyinchalik, xavfsizlik va boshqa muammolardan butunlay ozod bo'lishini ta'minlash uchun ilovangizni yaxshilab sinab ko'rishingiz kerak. Ilovalarni sinab ko'rishdan oldin barcha jarayonlarni jiddiy hujjatlashtirish va xavfsizlik qoidalarini yaratish. Professional sinov jamoasi ushbu sinov ishlarini sizning ilovangizning sistematik tahlilini yaratish uchun ishlatadi.
Oxirgi bosqich appni tarqatishni o'z ichiga oladi, unda u nihoyat o'rnatilgan, konfigüre qilingan va foydalanuvchilar uchun tayyorlangan. Ushbu bosqich mobaynida, ishlab chiqarish guruhining xavfsizlikni ta'minlash bo'yicha guruh bilan birgalikda ishlashni ta'minlashi tavsiya etiladi.

Xavfsizlik ta'limi

Ilovani ishlab chiquvchilar dastur xavfsizligini ta'minlashda zaruriy treninglarga ega bo'lishi kerakligi haqida hech qachon ochiq aytilmagan bo'lsada, ishlab chiquvchilar mobil ilovalar xavfsizligi sohasida asosiy darajadagi bilimlarga ega bo'lishlari adolatlidir. Kompaniyaning tarkibiy qismi bo'lgan ishlab chiquvchilar sifatli ilovalarni ishlab chiqish uchun eng yaxshi amaliyotni tushunishlari va ularga rioya qilishi uchun majburiy xavfsizlik ta'limi olishlari kerak. Umuman olganda, dastur ishlab chiquvchilari asosiy terminologiya, xavfsizlik jarayonlari va ilovalar xavfsizligiga oid muammolarni samarali hal etish bo'yicha tegishli strategiyalarni amalga oshirish bo'yicha bilimlarni tushunishlari kerak.

71. Androidda Intentdan foydalangan holda ikkita amalni bajaring, ya'ni telefon raqamiga qo'ng'iroq qilish va URL manzilini ochish.
Telefon qilish uchun quyidagi 3 qator kod kifoya:
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:"+998933930867));
startActivity(callIntent);

URL manzilni ochish:
String url = "http://www.example.com";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
1. Telefon raqamiga qo'ng'iroq qilish: Android platformida Intent dan foydalanib, telefon raqami uchun qo'ng'iroq qilish amali yaxshi bir vazifa qiladi. Bu amalni bajarish uchun Intent ning ACTION_CALL so'ngi bilan bir xil qilish kerak. So'ngga telefon raqami qo'yilgan URL manzil kiriting va Intent ni ishga tushiring.
String phoneNumber = "tel:" + "1234567890";
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse(phoneNumber));
startActivity(callIntent);

  1. URL manzilini ochish: Android platformida Intent dan foydalanib, URL manzilini ochish amali yaxshi bir vazifa qiladi. Bu amalni bajarish uchun Intent ning ACTION_VIEW so'ngi bilan bir xil qilish kerak. So'ngga URL manzil kiriting va Intent ni ishga tushiring.

String url = "https://www.example.com";
Intent browserIntent = new Intent(Intent.ACTION_VIEW);
browserIntent.setData(Uri.parse(url));
startActivity(browserIntent);

72. Mobil qurilmalarning rivojlanish tarixi haqida ma’lumot bering.
XIX asrning so‘nggi yillarida simli telegrafning takomillashib, rivojlanishi bilan telefon ham ixtiro etildi. 60-yillarda I. F. Reys telefon apparatini loyihalashtirdi va u tezda amaliyotda qo‘llanila boshladi. Keyinchalik telefon rivoji amerikalik ixtirochilar I. Grey (1835–1901) va A. G. Bell (1847–1922)lar nomi bilan bog‘liq bo‘ldi. Bell uzatuvchi va qabul qiluvchi elektromagnit telefonini taqdim etganda unga katta qiziqish bilan qarab «Bell telefon kom-paniyasi»ning tashkil etilishiga ko‘maklashdilar. Natijada u yirik konsernga aylanib ketdi. Birinchi telefonni yaratuvchisi Bell A.G. 1876-yil 14-fevralda, shvetsiyalik amerikalik Aleksandr Graham Bell AQSh Patent idorasi tomonidan o'zi ishlab chiqargan qurilma ya’ni, telefonni chiqardi.
Qoganini 1-dan yoziladi.

73.Mobil ilovalarni online do’kon Play Marketda joylash ketma ketligini keltiring.
1) Google Play Developer Console da kerakli amallarni bajarish kerak(ya’ni bir marttalik to’lovni amalga oshirish kerak bo’ladi. 25$ turadi. To’langandan keyn istalgancha app ni yuklash mumkin bo’ladi.);
2) Developer Accountni Google Wallet Merchant Account bilan bog’lash kerak;
3) Ilova yaratiladi (Create Application tugmasi bosiladi. O’sha yerda ilova nomini, tili va hokazo ma’lumotlar kiritiladi);
4) App Store Listingda barcha kerakli ma’lumotlar to’ldiriladi;
5) App Bundles yoki APK ni Google Play ga yuklanadi;
6) Content Rating qilish. Ilovani reytingini baholash sozlamalari to’g’rilanadi;
7) Ilova narxi va tarqatilishini sozlanadi;
8) Ilova upload qilinadi, ya’ni publish.
Google Play bozorida mobil ilovani joylashtirish bo'yicha umumiy qadamlar ketma-ketligi:

  1. Dasturchi sifatida roʻyxatdan oʻtish: Ilovani Google Play bozoriga yuborish uchun dasturchi sifatida roʻyxatdan oʻtishingiz va Google Developer hisobini yaratishingiz kerak boʻladi.
  2. Ilovangizni ishlab chiqing: ilovangizni ishlab chiqish uchun Android Studio kabi Google tomonidan taqdim etilgan vositalardan foydalaning. Ilovangiz barqaror va xatosiz ekanligiga ishonch hosil qilish uchun uni yaxshilab sinab ko'ring.
  3. Google Play roʻyxatini yarating: ilovangizning batafsil tavsifi, skrinshotlar va ilovangizning videosini oldindan koʻrishni oʻz ichiga olgan Google Play roʻyxatini yarating. Ushbu roʻyxat ilovangizni Google Play bozorida sotish uchun ishlatiladi.
  4. Ilovangizni chiqarishga tayyorlang: ilovangizni paketlash uchun Android App Bundle yoki APK dan foydalaning va raqamli sertifikat bilan imzolang.
  5. Ilovangizni ko‘rib chiqish uchun yuboring: ilovangizni ko‘rib chiqish uchun yuborish uchun Google Play Console’dan foydalaning. Bu jarayon bir necha soatdan bir necha kungacha davom etishi mumkin. Google ilovangizni kompaniya koʻrsatmalariga muvofiqligini tekshirish uchun tekshiradi.
  6. Ilovangizni chiqaring: Agar ilovangiz ma'qullangan bo'lsa, uni Google Play bozoriga chiqarishingiz mumkin. Siz ilovangizni zudlik bilan chiqarishni yoki kelajakdagi chiqish sanasini belgilashingiz mumkin.
  7. Monitor va yangilash: Ilovangiz chiqarilgandan so'ng, uning ishlashi va foydalanuvchi fikr-mulohazalarini kuzatib borishingiz kerak bo'ladi. Ilovangizni xatoliklar tuzatilgan va kerak bo'lganda yangi xususiyatlar bilan yangilang.
  8. Ilovalar doʻkonini optimallashtirish: Ilovangizning Google Play bozorida koʻrinishini oshirish uchun tegishli kalit soʻzlar, skrinshotlar, yaxshi reytinglar va sharhlar va boshqa taktikalar bilan ilovalar doʻkoningiz roʻyxatini optimallashtiring.

Shuni ta'kidlash kerakki, jarayon mamlakat, platforma va tashkilot hajmiga qarab farq qilishi mumkin, ammo bu umumiy ketma-ketlik sizga ilovani Google Play bozoriga olib chiqishda nimalar ishtirok etishi haqida fikr berishi kerak.

73. Androidda Job Scheduler nima?
Android Job Scheduler - bu Android operatsion tizimiga o'rnatilgan ramka bo'lib, fon ishini rejalashtirishni soddalashtirish uchun ravon API taqdim etadi.
Job Scheduler(Vazifalarni rejalashtiruvchi) – Android’dagi xususiyat bo‘lib, ishlab chiquvchilarga fondagi vazifalarni ma’lum vaqt oralig‘ida yoki muayyan shartlar bajarilganda, masalan, qurilma ma’lum tarmoqqa ulanganda yoki qurilmaning batareya quvvati ma’lum chegaradan yuqori bo‘lganda bajarilishini rejalashtirish imkonini beradi.
Bu xususiyat Android 5.0 (Lollipop) da joriy qilingan va API darajasi 21 yoki undan yuqoriroq qurilmalarda mavjud. Bu tizim boʻylab quvvat va tarmoq sharoitlarini hisobga olgan holda fon vazifalarini rejalashtirish uchun ilovalar tomonidan ishlatilishi mumkin boʻlgan tizim xizmatidir.
Job Scheduler API dasturchilarga, hatto ilova hozir ishlamayotgan bo‘lsa ham, fonda ishlaydigan vazifalarni rejalashtirish imkonini beradi. Bu muntazam bajarilishi kerak bo'lgan vazifalar uchun, masalan, ma'lumotlarni server bilan sinxronlash yoki muayyan shartlar bajarilganda, masalan, qurilma ma'lum bir tarmoqqa ulanganda bajarilishi kerak bo'lgan vazifalar uchun foydalidir.
Android ilovangizda Job Scheduler dasturidan foydalanish uchun JobService sinfini kengaytiruvchi JobService sinfini yaratishingiz kerak va ilova BIND_JOB_SERVICE ruxsatiga ega boʻlishi kerak. Keyin siz JobScheduler.schedule() usuli yordamida ishni rejalashtirishingiz va rejalashtirilgan ishni tavsiflovchi JobInfo obyektiga o'tishingiz mumkin.
Android Job Scheduler quyidagi turlardan iborat:
· Android.App.Job.JobScheduler - bu Android ilovasi nomidan ishlarni rejalashtirish, bajarish va kerak bo'lganda bekor qilish uchun foydalaniladigan tizim xizmati.
· Android.App.Job.JobService mavhum sinf bo'lib, u ishni ilovaning asosiy oqimida bajaradigan mantiq bilan kengaytirilishi kerak. Bu shuni anglatadiki, JobService ishning asinxron tarzda bajarilishi uchun javobgardir.
· Android.App.Job.JobInfo ob'ekti ish qachon bajarilishi kerak bo'lsa, Androidni boshqarish uchun mezonlarga ega.

75. Androidda Toast nima? Uning sintaksisini yozing.

Tost bildirishnomasi ilova oynasi yuzasida paydo bo'ladigan xabar bo'lib, xabar uchun kerakli bo'sh joyni to'ldiradi. Shu bilan birga, dasturning joriy faoliyati foydalanuvchi uchun funktsional bo'lib qoladi. Bir necha soniya ichida xabar muammosiz yopiladi. Tost bildirishnomasi fonda ishlaydigan xizmat tomonidan ham yaratilishi mumkin. Odatda, tost xabarnomasi qisqa matnli xabarlarni ko'rsatish uchun ishlatiladi.
// Kotlin
val text = "Пора покормить кота!"
val duration = Toast.LENGTH_SHORT

val toast = Toast.makeText(applicationContext, text, duration)
toast.show()
Android Toast - bu Android qurilmasi ekranida odatda qisqa vaqt ichida paydo bo'ladigan xabar. U foydalanuvchiga holat xabari yoki bildirishnoma kabi ma'lumotlarni ko'rsatish uchun ishlatiladi.

Mana Android Toast yaratish sintaksisi:
Toast.makeText(Context context, CharSequence text, int duration).show();

Bu yerda:

context - bu dastur yoki faoliyat konteksti
text- siz ko'rsatmoqchi bo'lgan xabardir
duration - tost paydo bo'ladigan vaqt uzunligi (tost.LENGTH_SHORT yoki tost.LENGTH_LONG)

76. Androidda ViewHolder ga namuna keltiring? Nima uchun biz undan foydalanishimiz kerak?
"ViewHolder" Android-dagi namunalar orqali optimallashtirish uchun foydalaniladi. U o'z ichiga olgan view'larni saqlab qoladi va ularni qayta ishlatish imkonini beradi, shuningdek, listni skroll qilishda animatsiyalarni kamaytiradi. Biz uni "RecyclerView"da foydalanishimiz kerak bo'lgan holda ishlatamiz, chunki u ularning komponentlarini saqlab qolish va tiklashni tezroq amalga oshiradi.

ViewHolder element ko'rinishini va uning RecyclerView ichidagi o'rni haqidagi metama'lumotlarni tavsiflaydi.

xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

android:id="@+id/rvAnimals"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="10dp">

android:id="@+id/tvAnimalName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"/>

public class MyRecyclerViewAdapter extends RecyclerView.Adapter {
private List mData;
private LayoutInflater mInflater;
private ItemClickListener mClickListener;
// data is passed into the constructor
MyRecyclerViewAdapter(Context context, List data) {
this.mInflater = LayoutInflater.from(context);
this.mData = data;
}
// inflates the row layout from xml when needed
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = mInflater.inflate(R.layout.recyclerview_row, parent, false);
return new ViewHolder(view);
}
// binds the data to the TextView in each row
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
String animal = mData.get(position);
holder.myTextView.setText(animal);
}
// total number of rows
@Override
public int getItemCount() {
return mData.size();
}
// stores and recycles views as they are scrolled off screen
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView myTextView;
ViewHolder(View itemView) {
super(itemView);
myTextView = itemView.findViewById(R.id.tvAnimalName);
itemView.setOnClickListener(this);
}
@Override
public void onClick(View view) {
if (mClickListener != null) mClickListener.onItemClick(view, getAdapterPosition());
}
}
// convenience method for getting data at click position
String getItem(int id) {
return mData.get(id);
}
// allows clicks events to be caught
void setClickListener(ItemClickListener itemClickListener) {
this.mClickListener = itemClickListener;
}
// parent activity will implement this method to respond to click events
public interface ItemClickListener {
void onItemClick(View view, int position);
}
}

public class MainActivity extends AppCompatActivity implements MyRecyclerViewAdapter.ItemClickListener {

MyRecyclerViewAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// data to populate the RecyclerView with
ArrayList animalNames = new ArrayList<>();
animalNames.add("Horse");
animalNames.add("Cow");
animalNames.add("Camel");
animalNames.add("Sheep");
animalNames.add("Goat");
// set up the RecyclerView
RecyclerView recyclerView = findViewById(R.id.rvAnimals);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
adapter = new MyRecyclerViewAdapter(this, animalNames);
adapter.setClickListener(this);
recyclerView.setAdapter(adapter);
}
@Override
public void onItemClick(View view, int position) {
Toast.makeText(this, "You clicked " + adapter.getItem(position) + " on row number " + position, Toast.LENGTH_SHORT).show();
}

https://stackoverflow.com/questions/40584424/simple-android-recyclerview-example

77. Androidda Intent nima va qanday turlari bor?
Android-da Intent- bu tizimning boshqa komponentidan, masalan, faoliyatni boshlash, xizmatni boshlash, translyatsiyani etkazib berish yoki bildirishnomani ko'rsatish kabi harakatni so'rash uchun ishlatiladigan ob'ekt. Intentlar Android arxitekturasining asosiy jihati hisoblanadi, chunki ular tizimning turli komponentlariga bir-biri bilan erkin bog‘langan holda muloqot qilish imkonini beradi.
Androidda Intentlarning ikki turi mavjud:

Explicit Intents:: Bu Intenttlar maqsadni qabul qilishi kerak bo'lgan komponentni aniq belgilash uchun ishlatiladi. Ular bir xil ilova ichida muayyan faoliyat yoki xizmatni boshlash uchun ishlatiladi. Aniq Intentdan foydalanish uchun maqsad komponentning to'liq malakali sinf nomini ko'rsatishingiz kerak.
Implicit Intents: Ushbu Intent harakatni bajarishi kerak bo'lgan komponentni ko'rsatmasdan turib, harakat talab qilish uchun ishlatiladi. Ular elektron pochta xabarlarini yuborish yoki suratga olish kabi ma'lum bir amalni bajara oladigan komponentni ishga tushirish uchun ishlatiladi. Yashirin Intentlardan foydalanish uchun siz bajarilishi kerak bo'lgan harakat va ma'lumotlarni taqdim etishingiz kerak va tizim maqsadni bajarish uchun tegishli komponentni aniqlaydi.
Shuni ta'kidlash kerakki, Intents ilovaning turli komponentlari o'rtasida ma'lumotlarni uzatish uchun ham ishlatiladi, u ma'lumotlarni bir faoliyatdan boshqasiga, bir xizmatdan boshqasiga yoki bitta eshittirish qabul qiluvchisidan boshqasiga o'tkazish uchun ishlatilishi mumkin.
Xulosa qilib aytganda, Intenttlar tizimning boshqa komponentidan, masalan, faoliyatni boshlash, xizmatni boshlash, eshittirishni yetkazib berish yoki bildirishnomani ko'rsatish kabi harakatni so'rash uchun ishlatiladi. intenttning ikki turi mavjud:Explicit Intents: va Implicit Intents, Explicit Intents maqsadni qabul qilishi kerak bo'lgan komponentni aniq ko'rsatish uchun ishlatiladi va Implicit harakatni amalga oshirishi kerak bo'lgan komponentni ko'rsatmasdan, harakatni talab qilish uchun ishlatiladi.

78. Androidda Intentdan foydalangan holda yangi Activity chaqirilganda Activitylarning orqa qismini tozalashning ikkita usulini aytib o'ting.

1-usuli:
1. Intent intent = new Intent(this, Activity.class);

2. intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
3. startActivity(intent);

2-usuli:
1. Intent i = new Intent(FirstActivity.this, NextActivity.class);
2. finish();
3. startActivity(i);
1.Intent.FLAG_ACTIVITY_CLEAR_TOP: Bu usul bir nechta Activity larning orqa qismini tozalashga imkon beradi. Bundan tashqari, so'nggi Activityga qaytish uchun FLAG bu usul yordamida amalga oshiriladi. Misol uchun, bir nechta Activity larning orqa qismini tozalash uchun bir nechta Intent-ga FLAG_ACTIVITY_CLEAR_TOP bilan biriktiriladi.
2. Intent.FLAG_ACTIVITY_NEW_TASK: Bu usul Activity larning orqa qismini tozalashga imkon beradi va Activityning yangi bir uskuna o'tishiga olib keladi. Misol uchun, bir nechta Activity larning orqa qismini tozalash uchun bir nechta Intent-ga FLAG_ACTIVITY_NEW_TASK bilan biriktiriladi.
Bu ikkita usul sifatida, bir nechta Activity larning orqa qismini tozalash uchun foydalaniladigan boshqa usullardan farqli o'laroq, Intent-larning tasviri bilan birga amalga oshiriladi.
79.Shaxsiy telegram bot yaratish ketma-ketligi qay tartibda amalga oshirilishini tushuntiring.
Shaxsiy Telegram botini yaratish uchun bajarilishi mumkin bo'lgan umumiy qadamlar ketma-ketligi:

  1. Rivojlanish muhitini o'rnating: Matn muharriri va Python kabi dasturlash tili kabi kerakli ishlab chiqish vositalarini o'rnating va sozlang.
    Yangi bot yarating: BotFather bilan gaplashib, yangi bot yaratish uchun Telegram Bot API-dan foydalaning. Bu sizga botni autentifikatsiya qilish uchun foydalanadigan API tokenini beradi.
    Bot funksiyasini aniqlang: Botning funksiyalarini aniqlang, masalan, u qanday buyruqlarga javob berishi va bu buyruqlar qabul qilinganda qanday harakatlar qilishi kerak.
    Kodni yozing: Bot kodini yozish uchun Telegram Bot API va siz tanlagan dasturlash tilidan foydalaning. Kod kiruvchi so'rovlarni boshqarishi, xabarlarni qayta ishlashi va buyruqlarga javob berishi kerak. Botni sinab ko'ring: Botga xabarlar yuborish va uning to'g'ri javob berishini tekshirish orqali uni mahalliy sifatida sinab ko'ring.
    Botni joylashtirish: Botni Heroku yoki AWS kabi server yoki hosting xizmatiga joylashtiring.
    Botni kuzatib boring: bot ishlashini kuzatish va yuzaga keladigan muammolarni bartaraf etish uchun Telegram’ning o‘rnatilgan ro‘yxatga olish tizimidan foydalaning.
    Botni yangilang: botni doimiy ravishda yangi xususiyatlar va kerak bo'lganda xatolarni tuzatish bilan yangilab turing.

Xulosa qilib aytadigan bo'lsak, shaxsiy Telegram botini yaratish, ishlab chiqish muhitini o'rnatish, yangi bot yaratish, botning funksionalligini aniqlash, kodni yozish, botni sinab ko'rish, botni joylashtirish, botni kuzatish va botni yangilash orqali amalga oshirilishi mumkin.

80. Androidni yaratishda foydalanilgan tillarni sanab o’ting.
· Java – Androidni ishlab chiqish uchun rasmiy til hisoblanib, Android Studio tomonidan qo’llab-quvvatlanadi.
· Kotlin – ikkinchi rasmiy va eng so’nggi kiritilgan Android tili bo’lib, u Java ga o’xshaydi, lekin Kotlinni o’rganish ham, u bilan ishlash ham ko’p jihatdan osonroq.
· Python – bugungi kunda eng mashhur dasturlash tilidir. Unda Android uchun biror narsa yozish uchun ikkita vositadan foydalaniladi: Kivy (o’zaro platforma ilovalari kutubxonasi) va BeeWare (Android ilovalarini yaratish vositalari).
· C/C++ – ba’zan smartfonlar, shu jumladan Android uchun og’ir o’yinlarni yaratish uchun ishlatiladi. Ular yuqori ishlashi tufayli mashhurdir.
· JavaScript – uning React Native freymvorki yordamida Android uchun to’liq mobil ilovani yaratish mumkin.
· Dart – JavaScript ga muqobil bo’lgan dasturlash tili. Dart krossplatformali mobil ilovalarni yaratish uchun o’z vositasiga ega - Flutter.
· Lua – krossplatformali ilovalarni ishlab chiqish uchun o’z platformasiga ega - Corona SDK. Asosan, mobil telefonlar uchun o’yinlar ushbu platformada ishlab chiqilgan bo’lib, ular Android operatsion tizimida ham ishlaydi.

81.Androidda Simulyator haqida ma’lumot bering.
Android'dagi simulyator - telefon yoki planshet kabi jismoniy qurilmaning xatti-harakati va funksionalligini taqlid qiluvchi dasturiy ta'minot ilovasi. Bu ishlab chiquvchilarga jismoniy qurilmaga ehtiyoj sezmasdan o'z ilovalarini sinab ko'rish va disk raskadrovka qilish imkonini beradi. Simulyatorlar qurilmaning ekran o‘lchamlarini o‘zgartirish, qurilmaning GPS manzilini o‘zgartirish, kiruvchi qo‘ng‘iroqlar va xabarlarni simulyatsiya qilish kabi turli funksiyalarni taqdim etadi.
Rasmiy Android SDK Android Virtual Device (AVD) menejerini taqdim etadi, bu esa ishlab chiquvchilarga Android emulyatori bilan ishlatilishi mumkin bo'lgan virtual qurilmalarni yaratish va sozlash imkonini beradi. Android emulyatori - bu kompyuterda ishlaydigan va Android qurilmasining xatti-harakatlarini taqlid qiluvchi dasturiy ta'minot. Ishlab chiquvchilar AVD menejeridan turli xil konfiguratsiyalarga ega virtual qurilmalarni yaratish uchun foydalanishlari mumkin, masalan, turli ekran o'lchamlari, API darajalari va apparat xususiyatlari. Bu ishlab chiquvchilarga o'z ilovalarini keng ko'lamli qurilmalarda sinab ko'rish va ularning har xil turdagi apparatlarda to'g'ri ishlashini ta'minlash imkonini beradi.
Bundan tashqari, rasmiy Android SDK-dan ko'ra ko'proq xususiyatlarga ega bo'lishi mumkin bo'lgan uchinchi tomon simulyatorlari ham mavjud.

81. Androidda VideoView sinfi haqida tushuntiring.
VideoView sinfi videokliplarni ijro etish uchun mo’ljallangan va Images bo’limida joylashgan. Android 3gp va mp4 fayllarni qo’llab-quvvatlaydi. VideoView sinfidan foydalanish oson: u video chiqadigan sirtni (Surface oyekti) o’z ichiga oladi va shuningdek, pleyerni boshqarishning barcha operatsiyalarini qamrab oladi. Komponent ekranga joylashtiriladi va faylga yo’l belgilanadi.
Ushbu element media playerning ishga tushirilishini ishlab chiqaruvchidan yashirib, qulay va oddiy API taqdim etadi. Videoni ijro etish uchun sozlash uchun setVideoPath() yoki setVideoUri() usuli chaqiriladi. Ular mahalliy fayl yo’lini, ma’lumotlar manbai URI yo’lini yoki masofaviy video oqim manzilini yagona parametr sifatida qabul qiladi. Ijroni boshqarish uchun start(), stopPlayback(), pause() va seekTo() metodlari ishlatiladi. VideoView shuningdek, ijro paytida ekranning orqa yorug’ligi o’chmasligi uchun setKeepScreenOn() usulini o’z ichiga oladi.

83. Android XML da vidjetlarning position atributi haqida ma’lumot bering.
Androidda vidjetning XML maket faylidagi joylashuvi asosiy konteynerda ishlatiladigan tartib boshqaruvchisi tomonidan aniqlanadi. Androidda eng ko'p ishlatiladigan tartib menejerlari:
LinearLayout: orientatsiya atributiga qarab vidjetlarni bitta satr yoki ustunga joylashtiradi. Vidjetlar asosiy konteyner ichidagi vidjetning hizalanishini belgilovchi layout_gravity atributi va vidjet mavjud bo‘sh joyning qancha qismini egallashini aniqlaydigan layout_weight atributi asosida joylashtiriladi.
RelativeLayout: vidjetlarni boshqa vidjetlarga yoki asosiy konteynerga nisbatan joylashtiradi. Layout_alignParent* atributlari vidjetlarni asosiy konteynerga nisbatan joylashtirish uchun ishlatiladi, layout_toLeftOf, layout_toRightOf, layout_bove va layout_below atributlari vidjetlarni boshqa vidjetlarga nisbatan joylashtirish uchun ishlatiladi.
ConstraintLayout: vidjetlarni cheklovlar asosida joylashtiradi. layout_constraint* atributlari vidjetlarni boshqa vidjetlarga yoki ota-konteynerga nisbatan joylashtirish uchun ishlatiladi va layout_*_bias atributlari cheklovlar ziddiyatli bo‘lganda vidjetlarning joylashishini nazorat qilish uchun ishlatiladi.
FrameLayout: vidjetlarni stekga joylashtiradi, eng oxirgi qo‘shilgan vidjet tepada ko‘rinadi. Layout_gravity atributi vidjetni asosiy konteyner ichida joylashtirish uchun ishlatiladi.
FlexboxLayout: vidjetlarni veb-layout algoritmiga o'xshash Flexbox joylashtirish algoritmiga asoslangan holda joylashtiradi.
Xulosa qilib aytadigan bo'lsak, Android'dagi XML maket faylidagi vidjetning joylashuvi asosiy konteynerda ishlatiladigan tartib menejeri tomonidan belgilanadi va vidjetlar joylashuvini boshqarish uchun tartib menejerining atributlaridan foydalaniladi. Eng ko'p ishlatiladigan tartib menejerlari LinearLayout, RelativeLayout, ConstraintLayout, FrameLayout va FlexboxLayout.

84.Android Studioda ma'lumotlar bazasi SQLite da database va table yarating.
Android Studio-da SQLite-da ma'lumotlar bazasi va jadval yaratish uchun bajarilishi mumkin bo'lgan umumiy qadamlar ketma-ketligi:

  1. Yangi loyiha yarating: Android Studio-ni oching va yangi loyiha yarating. Shablon sifatida "Bo'sh faoliyat" ni tanlang va keyin loyiha uchun asosiy sozlamalarni sozlang.
  2. Ma'lumotlar bazasini aniqlang: SQLiteOpenHelper-ni kengaytiradigan yangi sinf yarating va ma'lumotlar bazasi nomi, versiyasi va jadval tuzilishini belgilang.
  3. Jadval yarating: SQLiteOpenHelper dasturining onCreate() usulida SQL buyruqlari yordamida jadval yaratish uchun execSQL() usulidan foydalaning.
  4. Jadvalga ma'lumotlarni qo'shish: SQL buyruqlari yordamida jadvalga ma'lumotlarni kiritish, yangilash va o'chirish usullarini yarating.
  5. Jadvaldan ma'lumotlarni olish: SQL buyruqlari yordamida jadvaldan ma'lumotlarni olish usullarini yaratish.
  6. Ma'lumotlar bazasini amalga oshiring: Faoliyat sinflarida SQLiteOpenHelper sinfining namunasini yarating va ma'lumotlar bazasi bilan o'zaro ishlash uchun siz belgilagan usullardan foydalaning.
  7. Ma'lumotlar bazasini sinab ko'ring: ma'lumotlarni qo'shish va olish orqali ma'lumotlar bazasini sinab ko'ring.

Ma'lumotlar bazasidan foydalaning: Ma'lumotlar bazasi ishlagandan so'ng, uni ilovangiz uchun ma'lumotlarni saqlash va olish uchun ishlatishingiz mumkin.
Xulosa qilib aytganda, Android Studio’da SQLite’da ma’lumotlar bazasi va jadval yaratish yangi loyiha yaratish, Ma’lumotlar bazasini aniqlash, Jadval yaratish, Jadvalga ma’lumotlar qo‘shish, Jadvaldan ma’lumotlarni olish, Ma’lumotlar bazasini amalga oshirish, Ma’lumotlar bazasini sinovdan o‘tkazish va ma'lumotlar bazasidan foydalanish.
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DBHandler extends SQLiteOpenHelper {

private static final String DB_NAME = "coursedb";

private static final int DB_VERSION = 1;
private static final String TABLE_NAME = "mycourses";
private static final String ID_COL = "id";
private static final String NAME_COL = "name";
private static final String DURATION_COL = "duration";
private static final String DESCRIPTION_COL = "description";
private static final String TRACKS_COL = "tracks";
public DBHandler(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String query = "CREATE TABLE " + TABLE_NAME + " ("
+ ID_COL + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ NAME_COL + " TEXT,"
+ DURATION_COL + " TEXT,"
+ DESCRIPTION_COL + " TEXT,"
+ TRACKS_COL + " TEXT)";
db.execSQL(query);
}
public void addNewCourse(String courseName, String courseDuration, String courseDescription, String courseTracks) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(NAME_COL, courseName);
values.put(DURATION_COL, courseDuration);
values.put(DESCRIPTION_COL, courseDescription);
values.put(TRACKS_COL, courseTracks);
db.insert(TABLE_NAME, null, values);
// database after adding database.
db.close();
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
}

85.Androidda AbsoluteLayout nima va uning xususiyatlari?
AbsoluteLayout ichki joylashtirilgan elementlarga sahifada mutlaq koordinatalarni berishga imkon beradi va aniq koordinatali elementlar kerak bo’lgan holatlar uchun ko’proq mos keladi. AbsoluteLayout, shuningdek, proportsional joylashish va o’lchov xususiyatini amalga oshiradi. Bundan tashqari, ba’zi boshqa layout sinflaridan farqli o’laroq, AbsoluteLayout meroslarni bir-biriga mos keladigan tarzda joylashtirishga qodir. AbsoluteLayout klassi quyidagi xususiyatlarni belgilaydi:
LayoutBounds Rectangle tipidagi biriktirilgan xususiyat bo’lib, merosning o’rni va hajmini ifodalaydi. Bu xususiyatning standart qiymati (0,0,AutoSize,AutoSize).
LayoutFlags AbsoluteLayoutFlags tipidagi biriktirilgan xususiyat bo’lib, merosni joylashtirish va o’lchash uchun foydalaniladigan tartib chegaralarining xususiyatlari proporsional ravishda talqin qilinadimi yoki yo’qligini ko’rsatadi. Ushbu xususiyatning standart qiymati AbsoluteLayoutFlags.None hisoblanadi.

86. iOS ning afzalliklari.
Apple iPhone va iPad qurilmalarida ishlatiladigan iOS operatsion tizimi boshqa mobil operatsion tizimlarga nisbatan bir qator afzalliklarga ega:

  • Boshqa Apple qurilmalari bilan integratsiya: iOS qurilmalari Mac va Apple Watches kabi boshqa Apple mahsulotlari bilan uzluksiz ishlaydi, bu esa izchil va integratsiyalangan foydalanuvchi tajribasini taʼminlaydi.
  • Mustahkam xavfsizlik: iOS biometrik autentifikatsiya uchun Touch ID va Face ID va maʼlumotlarni himoya qilish uchun shifrlash kabi funksiyalarga ega boʻlgan eng xavfsiz mobil operatsion tizimlardan biri sifatida obroʻga ega.
  • Yuqori sifatli ilovalar: App Store do'konida mavjud ilovalar odatda boshqa ilovalar do'konlaridagiga qaraganda yuqori sifatli va jilolangan, chunki ular chiqarish uchun ruxsat olishdan oldin qat'iy ko'rsatmalardan o'tishlari kerak.
  • Qurilmalar o'rtasida izchillik: iOS barcha Apple qurilmalarida izchil ishlash uchun mo'ljallangan, shuning uchun foydalanuvchilar foydalanadigan qurilmadan qat'i nazar, bir xil foydalanuvchi tajribasini kutishlari mumkin.
  • Dasturiy ta'minotni muntazam yangilash: Apple iOS uchun muntazam dasturiy ta'minot yangilanishlarini chiqaradi, bu foydalanuvchilarga yangi xususiyatlar va xavfsizlik yamoqlarini taqdim etadi.
  • Foydalanish uchun qulay interfeys: iOS-ning foydalanuvchi interfeysi sodda, intuitiv va navigatsiya qilish oson bo'lib, uni barcha yoshdagi va texnik qobiliyatli foydalanuvchilar uchun ochiq qiladi.

Xulosa qilib aytganda, iOS boshqa Apple qurilmalari bilan integratsiya, mustahkam xavfsizlik, yuqori sifatli ilovalar, qurilmalar bo‘ylab izchillik, dasturiy ta’minotni muntazam yangilash va foydalanish uchun qulay interfeys kabi bir qancha afzalliklarga ega.

87. Crossplatformaning kamchiliklari.
Cross platformalarni ishlab chiqish yoki bir nechta platformalarda ishlashi mumkin bo'lgan ilovalarni yaratish jarayoni bir nechta kamchiliklarga ega bo'lishi mumkin:

  • Cheklangan local xususiyatlar: Cross platformalar ishlab chiqish ramkalari ma'lum platformaning barcha local xususiyatlaridan foydalana olmasligi mumkin, bu esa ilovaning funksionalligini cheklashi mumkin.
  • Ishlash bilan bog'liq muammolar: Cross platforma ilovalari local ilovalar kabi yaxshi ishlamasligi mumkin, chunki ular asosiy platforma bilan o'zaro aloqa qilish uchun o'rta dastur qatlamiga tayanadi.
  • Cheklangan UI moslashuvi: Ba'zi cross platformalar ishlab chiqish ramkalari foydalanuvchi interfeysini sozlash uchun mahalliy dastur kabi ko'p variantlarni taqdim etmasligi mumkin.
  • Rivojlanish vaqtining ko'payishi: Cross platformalarni ishlab chiqish mahalliy ishlab chiqishga qaraganda ko'proq vaqt talab qilishi mumkin, chunki ishlab chiquvchilar ilovaning bir nechta platformalarda qanday ishlashini hisobga olishlari kerak.
  • Platformaning eng soʻnggi xususiyatlariga cheklangan kirish: Cross platformalar ramkalari platformaga xos soʻnggi xususiyatlarni qoʻllab-quvvatlamasligi mumkin, bu esa ilovaning imkoniyatlarini cheklashi mumkin.
  • Kattaroq ilova hajmi: Cross platforma ilovalari hajmi kattaroq boʻlishi mumkin, chunki ular turli platformalarda ishlash uchun ish vaqti muhitini oʻz ichiga olishi kerak.
  • Parchalanish: Cross platforma ilovalari platformaning turli versiyalarida ishlash uchun moslashtirilishi kerak bo'lishi mumkin, bu esa ilovani saqlashni qiyinlashtiradi.

Xulosa qilib aytadigan bo'lsak, cross platformalarni ishlab chiqishda bir nechta kamchiliklar bo'lishi mumkin, masalan, Cheklangan mahalliy xususiyatlar, Ishlash muammolari, Cheklangan UI moslashuvi, Rivojlanish vaqtining ko'payishi, Platformaning eng so'nggi xususiyatlariga cheklangan kirish, Kattaroq ilova hajmi va Fragmentatsiya.

88.Flutter texnologiyasidagi DART dasturlash tilining asosiy operatorlari.
1) Arifmetik operatorlar (qo’shish, bo’lish, ayirish va hokazolar);
2) Taqqoslash operatorlari (>, <, >= va hokazolar);
3) Type Test operatorlari (is, is!);
4) Bitwise operatorlari (&, |, ~, <<, >>);
5) Tayinlash(assignment) operatorlari (=, ??=);
6) Mantiqiy operatorlar (&&, ||, !);
7) Shart operatorlari (condition? expr1: expr2, expr1 ?? expr2);
8) Cascade Notation operatorlari (..).

89.Androidda dex fayllari nima uchun ishlatiladi?
Androidda DEX fayllari (Dalvik bajariladigan fayllar uchun qisqa) Android ilovasining bayt kodini paketlash va tarqatish uchun ishlatiladi. Ular qurilmalarda Android ilovalarini boshqaradigan virtual mashina bo'lgan Dalvik Virtual Machine (DVM) tomonidan qo'llaniladi.
Ilova Android-da o'rnatilganda, Java manba kodi avval Java baytekodiga kompilyatsiya qilinadi. Keyin Java baytkodi DVM uchun optimallashtirilgan DEX fayllariga aylantiriladi. Keyin DEX fayllari Android qurilmalarida tarqatilishi va o'rnatilishi mumkin bo'lgan APK (Android paketi) fayliga to'planadi.
DEX fayllari DVM uchun "baytekodni qayta yozish" deb nomlangan texnikadan foydalangan holda optimallashtirilgan bo'lib, u DVM ishlashini yanada samarali qilish uchun bayt kodini o'zgartiradi. Ushbu optimallashtirish jarayoni DEX fayllarini kichikroq va tezroq yuklash imkonini beradi, bu esa ilovani tezroq ishga tushirish vaqtini va yaxshi ishlashini ta'minlaydi.
Bundan tashqari, DEX fayllari "DEX fayllarni birlashtirish" yoki "DEX fayl multidex" deb nomlangan texnikaga ham imkon beradi, bu esa Android Framework tomonidan o'rnatilgan 65 ming usullar chegarasini engib o'tishga imkon beradi. Bu ilovaga bayt-kodni bir nechta DEX fayllariga bo‘lish, cheklovdan qochish va foydalanuvchi tajribasini yaxshilash orqali bitta APK-ga 65 mingdan ortiq usullarni kiritish imkonini beradi.
Xulosa qilib aytganda, DEX fayllari Android-da Dalvik virtual mashinasi uchun optimallashtirilgan ilova bayt-kodini tezroq ishga tushirish vaqtlari va yaxshi ishlash imkonini beradigan tarzda paketlash va tarqatish uchun ishlatiladi. Bundan tashqari, bu ilova usullarining cheklovlarini engib o'tishga imkon beradi.

90. Androidda boshqa Activityni qanday chaqirish mumkin? Misol keltiring.
Boshqa Activityni chaqirish uchun intentdan foydalaning. Manifestda siz qo'shishingiz kerak

Va hozirgi activityda,
btListe = (ImageButton)findViewById(R.id.Button_Liste);
btListe.setOnClickListener(new OnClickListener()
{ public void onClick(View v)
{
intent = new Intent(main.this, ListViewImage.class);
startActivity(intent);
finish();
}
});

Yana bir misol
Intent intent = new Intent(this, DestinationActivity.class);
startActivity(intent);

Bu DestinationActivity ni ochish uchun Intent yaratilgan va startActivity metodiga uni yuborilgan.

91.Android ilovasining komponentlari?
Android ilovasining asosiy komponentlariga quyidagilar kiradi: Activity, Service, BroadcastReceiver va ContentProvider. Asosiy komponentlarning har biri android manifestida e’lon qilinadi va dasturga kirish nuqtasi bo’lishi mumkin.
Activity – foydalanuvchiga ko’rinadigan UI va funksionallikni ifodalaydi. Masalan, foydalanuvchi ko’radigan ekran. Android ilovasi bir nechta activity larga ega bo’lishi mumkin va ilova ishlayotgan vaqtda ular o’rtasida almashishi mumkin.
Service – fonda ishlaydigan ko’rinadigan interfeysga ega bo’lmagan komponent bo’lib, foydalanuvchi bilan aloqani talab qilmaydigan uzoq muddatli operatsiyalarni bajarish uchun ishlatiladi.
BroadcastReceiver – ilova ichida yoki boshqa ilovalardan yuborilgan translyatsiya hodisalarini qabul qiladi va qayta ishlaydi, hamda tizim holatining o’zgarishiga javob berish uchun ishlatilishi ham mumkin. BroadcastReceiver tizimdan xabarlarni qabul qilishi mumkin, masalan, agar Android tizimi ishga tushirilgan bo’lsa.
ContentProvider – boshqa ilovalar bilan ma’lumotlarni almashish uchun ishlatiladi. Androidda kontent provayderi bo’lishi mumkin bo’lgan SQLite ma’lumotlar bazasi mavjud.