Middle
Android платформасында позицияны өзгерту ерекшелігі қандай?
sobes.tech AI
AI-дан жауап
Android-та позицияларды ауыстыру кезінде (экранды бұру немесе басқа конфигурация өзгерістері) ағымдағы Activity жойылып, жаңасы құрылады.
Не болады:
- Ескі Activity-дің өмірлік циклдері шақырылады:
onPause(),onStop(),onDestroy(). - Ескі Activity жадтан өшіріледі.
- Жаңа Activity құрылады.
- Жаңа Activity-дің өмірлік циклдері шақырылады:
onCreate(),onStart(),onResume().
QA үшін ерекшелігі:
- Деректердің жоғалуы: Сақталмаған деректер, енгізу өрістеріндегі мәліметтер, таңдалған элементтер және т.б. сақталмаса, жоғалуы мүмкін.
- UI күйі: Элементтердің көрінуі, скролл позициясы, таңдалған қойындылар және басқа UI күйі әдепкі күйге қайтарылуы мүмкін.
- Фондық операциялар: Жүктеу сияқты фондық тапсырмалар тоқтатылуы немесе дұрыс аяқталмауы мүмкін.
- Өнімділік: Конфигурацияны бірнеше рет өзгерту қосымшаның жұмысын баяулатады, себебі Activity қайта құрылады.
- Жады ағып кетуі: Ресурстармен дұрыс жұмыс істемеу (мысалы, Listener-лерді
onDestroy()-да өшірмеу) жады ағып кетуіне әкелуі мүмкін.
Құрастырушылардың өңдеуі (және QA бірінші кезекте тексеруі керек нәрселер):
- Күйді сақтау:
onSaveInstanceState(),onRestoreInstanceState(), ViewModel, Android Architecture Components (AAC) пайдалану.// Деректерді `onSaveInstanceState()`-те сақтау мысалы @Override public void onSaveInstanceState(@NonNull Bundle outState) { super.onSaveInstanceState(outState); outState.putString("saved_text", myEditText.getText().toString()); }// Деректерді `onCreate()`-те қалпына келтіру мысалы @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (savedInstanceState != null) { String savedText = savedInstanceState.getString("saved_text"); if (savedText != null) { myEditText.setText(savedText); } } } - Конфигурация өзгерістерін өңдеу:
AndroidManifest.xml-теandroid:configChangesжариялау, егер Activity қайта құру қажет болмаса (бұндай сценарий сирек, көбінесе басқа конфигурация өзгерістеріне арналған). - ViewModel өмірлік циклі: ViewModel конфигурация өзгергенде күйін сақтайды және Activity-мен бірге жойылмайды.
- Фрагменттер: Фрагменттердің өмірлік циклін дұрыс басқару.
Позицияны ауыстыруды тестілеу ерекшеліктері:
- Әртүрлі құрылғылар мен эмуляторларда экранды бұруды симуляциялау.
- Позицияны өзгерткеннен кейін деректерді сақтау және қалпына келтіруді тестілеу.
- UI күйін тексеру (көрінуі, мәтін, скролл, таңдалған элементтер).
- Фондық тапсырмалардың тоқтатылуын/жалғастырылуын тестілеу.
- Жады ағып кетуін тексеру (Android Profiler пайдалану).
- Стресс-тест: бірнеше рет жылдам позицияны өзгерту.
QA үшін құралдар:
- Android Studio (қателерді түзету, логтарды қарау, Profiler қолдану).
adbкомандалары арқылы бұруды симуляциялау.- Әртүрлі эмуляторлар мен нақты құрылғылар, әртүрлі рұқсаттар мен Android нұсқалары.