Sobes.tech
Junior

Android tətbiqlərində başlanğıc necə həyata keçirilir?

sobes.tech Süni İntellekt

AI-dan cavab

Android tətbiqlərində başlanğıc çox mərhələli bir prosesdir və həm əməliyyat sistemi səviyyəsini, həm də tətbiq səviyyəsini əhatə edir.

Əsas mərhələlər:

  1. Tətbiq prosesinin başlaması: Tətbiq komponenti (Activity, Service, BroadcastReceiver və s.) ilk dəfə işə salındıqda, əməliyyat sistemi bu tətbiq üçün yeni proses yaradır, əgər artıq yoxdursa.
  2. DVM/ART-in başlanması: Yaradılmış proses daxilində, Android virtual maşını (hazırda əsasən ART - Android Runtime) başlanır. O, APK faylından tətbiqin siniflərini yükləyir və yoxlayır.
  3. Application.onCreate() metodunun icrası: Əgər sizin tətbiqiniz Application-dan irəli gələn sinfə malikdirsə, onun nümunəsi ilk yaradılır və onCreate() metodu çağırılır. Bu, qlobal başlanğıclar üçün ideal yerdir, məsələn, kitabxanaların, verilənlər bazalarının, analitiklərin qurulması.
    // Application sinfi nümunəsi
    public class MyApp extends Application {
    
        @Override
        public void onCreate() {
            super.onCreate();
            // Kitabxanaların, singletonların başlanması
            MyDatabase.init(this);
            Analytics.init(this);
        }
    }
    
  4. Tətbiq komponentinin yaradılması: Application obyektinin başlanmasından sonra, sistem tələb olunan komponenti (Activity, Service və s.) yaradır.
  5. Komponentin həyat dövrü metodlarının icrası: Activity üçün bu onCreate(), onStart(), onResume() çağrılarıdır. Service üçün - onCreate(), onStartCommand() və ya onBind(). BroadcastReceiver üçün - onReceive(). Bu metodlarda komponentə xas başlanğıc həyata keçirilir.
    // Activity-də onCreate nümunəsi
    public class MainActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main); // UI-nin başlanması
    
            // Activity üçün xas başlanğıc
            setupRecyclerView();
            loadDataFromJson();
        }
    }
    
  6. Views/UI-nin başlanması: UI komponentləri (məsələn, Activity) üçün, setContentView() çağırıldıqdan sonra, XML-dən obyektlərin yaradılması (inflation) və View komponentlərinin başlanması baş verir.

Vacib aspektlər:

  • Lazımi başlanğıc: Tez-tez, obyektlərin ilk istifadə vaxtına qədər yaradılması üçün istifadə olunur, bu da tətbiqin başlanğıc vaxtını sürətləndirir.
  • Injection Frameworks (DI): Dagger, Koin, Hilt kimi kitabxanalar, asılılıqları yaratma və təmin etmə prosesini avtomatlaşdırır, obyektlərin başlanğıcını və əlaqələndirilməsini sadələşdirir.
  • Statik inizializatorlar: Sinifin yaddaşa ilk yüklənməsi zamanı icra olunur.
  • Konstruktorlarda başlanğıc: Sinif nümunəsi yaradılarkən icra olunur.

Tətbiq səviyyəsində çağırışların ardıcıllığı (ilk işə salınan Activity üçün):

Application.onCreate() -> Activity.onCreate() -> Activity.onStart() -> Activity.onResume()

Bu mərhələləri başa düşmək, tətbiqin başlanğıc vaxtını optimallaşdırmaq və resursları düzgün idarə etmək üçün çox vacibdir.