Процесс болон thread
Аппликейшны эхний компонэнт ажиллах болоход андройд нь нэг thread-тэй линукс процессыг ажиллуулдаг. Програм хөгжүүлэгч нь компонэнтыг өөр процесс дотор ажиллуулахаар юм уу процесс дотор нэмэлт thread үүсгэхээр тохируулах боломжтой юм.
Процесс
Компонэнтыг ямар процесс дотор ажиллах вэ гэдгийг манифест файлд тохируулж өгнө. Манифест файл дахь <activity>, <service>, <receiver>, <provider> гэсэн 4 компонэнтийн элемент тус бүр <process> гэсэн attribute. Энэ attribute-ыг ашиглан компонэнт бүр тус тусын процесс дотор ажиллахаар тохируулах юмуу тодорхой хэдэн компонэнтыг бусад компонэнтуудаасаа тусдаа процесс дотор ажиллаж байхаар тохируулж болно. Эсвэл компонэнт дотор өөр аппликейшны компонэнтыг ажиллуулахаар ч тохируулж болох юм. Үүний тулд тухайн хоёр аппликейшн нэг хэрэглэгчийн id - тай нэг cертификаттай байх ёстой. Манифест файлын <application> элемент ч мөн <process> гэсэн attribute-тай байх ба энд тухайн аппликейшны бүх компонэнтын ажиллах процессын өгөгдмөл утгыг тодорхойлж өгдөг.
Бүх компонэнтууд нь тухайн процессын гол thread дотор үүснэ(instance). Тиймээс компонэнт нь их хугацаа шаардагдах үйлдэл хийх юмуу blocking хийвэл бусад компонэнтуудын ажиллагаанд саад учруулна. Тиймээс их хугацаа шаардагдах үйлдэлд зориулж шинэ thread үүсгэж болно.
Андройд нь багтаамж хүрэлцэхээ болих юмуу хэрэглэгчийн яг одоо ажиллаж байгаа процесст илүү багтаамж шаардлагатай үед ард талд (background) идэвхгүй хэлбэрээр байгаа активититэй процессуудаас эхлэн унтрааж болно. Тэгвэл тэр процесс дотор ажиллаж байгаа бүх компонэнт устгагдана.
Thread
Аппликейшнд ганц процесс олгогдох боловч тэр дотроо олон thread үүсгэх боломжтой байдаг. Хэрэглэгчийн идэвхтэй ажиллуулж интерфейс нь хэрэглэгчийн үйлдэлд түргэн шуурхай хариу үйлдэл үзүүлж байх ёстой учраас, удаан хугацаа шаардагдах /интернэтээс файл татах гэх мэт/үйлдлүүдийг шинэ thread үүсгэж, тэр дотор ажиллуулах хэрэгтэй.
Thread нь жавагийн Thread object - оос үүснэ. Андройдод thread-ийг залах хэд хэдэн классууд байгаа.
- Looper
- Handler
- HandlerThread
No comments:
Post a Comment