چه اتفاقی می افتد وقتی روی یک برنامه در Android کلیک می کنید: یک شیرجه عمیق

چه اتفاقی می افتد وقتی روی یک برنامه در Android کلیک می کنید: یک شیرجه عمیق
آیا تا به حال فکر کرده اید که وقتی به یک نماد برنامه در تلفن Android خود ضربه می زنید ، واقعاً در پشت صحنه چه می گذرد؟ این یک عمل ساده یک واکنش زنجیره ای از فرآیندهای کار با هم را برای آوردن برنامه به صفحه شما تنظیم می کند. بیایید نگاهی بیندازیم که قدم به قدم چه اتفاقی می افتد.
1. پرتابگر کار می کند
وقتی روی یک نماد برنامه ضربه می زنید ، پرتابگر (برنامه صفحه اصلی شما) رویداد لمسی را انتخاب می کند. در اینجا اتفاق می افتد:
-
پردازش لمس: این سیستم لمس شما را از طریق چارچوب ورودی اندروید تشخیص می دهد و تعیین می کند که کدام نماد فشرده شده است.
-
ایجاد قصد: پرتابگر هدفی را ایجاد می کند که به سیستم می گوید کدام برنامه را می خواهید باز کنید.
-
برقراری ارتباط با سیستم: این درخواست را به سرویس مدیر فعالیت (AMS) از طریق IPC اتصال دهنده برای شروع برنامه
2 بررسی کنید که آیا برنامه در حال اجرا است
در سرویس مدیر فعالیت (AMS)، که بخشی از سیستم Android است ، اکنون تصمیم می گیرد و تصمیم می گیرد که بعد چه کاری انجام دهید:
-
آیا برنامه از قبل باز است؟ اگر برنامه در حال اجرا باشد ، AMS فقط آن را به پیش زمینه می رساند.
-
اگر اینطور نیست ، روند را پیدا کنید: AMS بررسی می کند که آیا روند برنامه فعال است یا خیر.
-
شروع تازه: اگر این روند در حال اجرا نباشد ، AMS درخواست می کند Zygote برای شروع نمونه جدیدی از برنامه.
3. zygote: کارخانه فرآیند
Zygote یک فرآیند ویژه سیستم است که وظیفه راه اندازی کارآمد برنامه ها را بر عهده دارد. این همان کاری است که انجام می دهد:
-
دریافت درخواست: Zygote از طریق پیام سوکت یک دستور از AMS دریافت می کند.
-
جعل یک روند جدید: Zygote به جای ایجاد یک فرآیند کاملاً جدید از ابتدا ، خود را برای تهیه یک کپی سبک وزن می کند. این باعث صرفه جویی در وقت و منابع می شود.
-
شروع زمان اجرا Android (ART): فرآیند جدید اکنون آماده بارگذاری برنامه است.
4. اولیه سازی برنامه
اکنون که روند برنامه به پایان رسیده و در حال اجرا است ، Android Runtime (ART) تصرف می کند:
-
کلاس ها و منابع بارگیری: کد و دارایی های برنامه در حافظه بارگذاری می شوند.
-
فراخوانی روش اصلی (): نقطه ورود برنامه (ActivityThread.Main ()) اجرا می شود و حلقه اصلی و حلقه رویداد را تنظیم می کند.
-
ایجاد شیء برنامه: کلاس برنامه برنامه (تعریف شده در AndroidManifest.xml) فوری می شود و OnCreate () نامیده می شود.
5. ایجاد و ارائه صفحه اول
پس از شروع برنامه ، اولین فعالیت راه اندازی می شود:
-
AMS برای شروع فعالیت به فرایند برنامه می گوید.
-
ActivityThread راه اندازی را انجام می دهد: این فعالیت ایجاد می شود و روش های چرخه عمر (OnCreate () ، onstart () ، onResume ()) اجرا می شوند.
-
ارائه UI: رابط برنامه با استفاده از ViewRootImpl و SurfaceFlinger ترسیم شده است ، که از OpenGL Rendering استفاده می کنند و تصویر را به صفحه شما ارسال می کنند.
6. برنامه شما ظاهر می شود!
مرحله آخر اطمینان از مشاهده برنامه در صفحه نمایش خود است:
-
به روزرسانی های UI با نرخ تازه کردن صفحه همگام سازی می شود با استفاده از رقصنده.
-
SurfaceFlinger تمام عناصر بصری را ترکیب می کند و قاب نهایی را به صفحه نمایش تلفن شما ارسال می کند.
-
برنامه شما اکنون آماده استفاده است! 🎉
پایان
باز کردن یک برنامه در اندروید ممکن است فوری به نظر برسد ، اما در زیر کاپوت ، این یک فرآیند به خوبی سازگار است که شامل چندین مؤلفه سیستم است. درک این جریان می تواند به توسعه دهندگان اندرویدی کمک کند تا زمان راه اندازی برنامه را بهینه کنند و عملکرد را بهبود بخشند.
سوال یا افکار دارید؟ بیایید در مورد LinkedIn بحث کنیم