Частина тексту файла (без зображень, графіків і формул):
Лекція 5. Організація обчислень в ОС Android
1. Загальна схема організації обчислень в ОС Android
- кожна програма стартує як окремий користувач
- схема виконання та взаємодії програм; програмні менеджери
- Dalvik -> Java
- Linux kernel -> NDK -> C
Рис.1. Загальна схема організації обчислень в ОС Android
2. Основні поняття: Context, Activity, Intent, Service
- Context -> контекст виконання програми
- Activity -> робота/завдання
- Intent -> заявка на виконання дії (повідомлення)
- Service -> фонова програма (не використовує інтерфейс користувача)
3. Структура та організація Android-програми
- структура -> набір завдань -> {Activity}
- як правило, кожне завдання прив’язується до кожного окремого стану інтерфейсу користувача (screen view)
- приклад організації Android-програми:
Рис.2. Організація простої Android-гри у вигляді п’яти завдань
- паралельне виконання процесів -> лише один процес + лише одне його завдання захоплює екран -> current foreground Activity
«There can be only one active application visible to the user at a time — specifically, a single application Activity is in the foreground at any given time.»
- Activity stack -> стек завдань
Рис.3. Схема розташування завдань у стеку
- Activities of the application (those on the stack that are paused and the one that is active) share the same VM. They also
share the same memory heap.
- стани Activity: Running, Paused, Stopped
Running: In this state, it is the top-level activity that takes up the screen and directly interacts with the user.
Paused: This happens when the activity is still visible on the screen but partially obscured by either a transparent activity or a dialog, or if the phone screen is locked. A paused activity can be killed by the Android system at any point in time (e.g., due to low memory). Note that the activity instance itself is still alive and kicking in the VM heap and waiting to be brought back to a running state.
Stopped: This happens when the activity is completely obscured by another activity and thus is no longer visible on the screen. Our AndroidBasicsStarter activity will be in this state if we start one of the test activities, for example. It also happens when a user presses the home button to go to the home screen temporarily. The system can again decide to kill the activity completely and remove it from memory if memory gets low.
- зупинка Activity -> In both the paused and stopped states, the Android system can decide to kill the activity at any point in time. It can do so politely, by first informing the activity of that by calling its finished() method, or by being bad and silently killing its process.
4. Життєвий цикл Android Activity
Activity.onCreate(): This is called when our activity is started up for the first time. Here we set up all the UI components and hook into the input system. This will only get called once in the life cycle of our activity.
Activity.onRestart(): This is called when the activity is resumed from a stopped state. It is preceded by a call to onStop().
Activity.onStart(): This is called after onCreate() or when the activity is resumed from a stopped state. In the latter case, it is preceded by a call to onRestart().
Activity.onResume(): This is called after onStart() or when the activity is resumed from a paused state (e.g., the screen is unlocked).
Activity.onPause(): This is called when the activity enters the paused state. It might be the last notification we receive, as the Android system might decide to silently kill our application. We should thus save all state we want to persist in this method!
Activity.onStop(): This is called when the activity enters the stopped state. It is preceded by a call to onPause(). This means that before an activity is stopped, it is paused first. As with onPause(), it might be the last thing we get notified of before the Android system silently kills the activity. We could also save persistent state here. However, the system might decide not to call this method and just kill the activity. As onPause() will always be called before onStop() and before the activity is silently killed, we’d rather save all our stuff in the onPause() method.
Activity.onDestroy(): This is called at the end of the activity life cycle when the activity is irrevocably destroyed. It’s the last time we can persist any information we’d like to recover the next time our activity is created anew. Note that this method
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!