Для того чтобы подготовить Android-приложение к реальной инсталляции в Android-устройстве, так как среда выполнения Android не позволит инсталлировать приложение, подписанное отладочным ключом, можно воспользоваться командой Android Tools | Export Signed Application Package контекстного меню окна Package Explorer – в результате откроется мастер Export Android Application, в поле Project: которого будет отображено имя Android-проекта и в окне которого надо нажать кнопку Next.
Далее необходимо создать хранилище своего закрытого ключа, которым будут подписываться все версии данного Android-приложения. Важно использовать один постоянный ключ для одного Android-приложения, так как Android-система позволит обновление приложения только в том случае, если сертификаты старой и новой версии будут совпадать – иначе придется изменять имя пакета приложения, и новая версия будет уже устанавливаться как новое приложение. Кроме того, если приложение имеет модульную структуру и все модули подписаны одним сертификатом, тогда все модули будут запускаться в одном процессе, и смогут обновляться независимо друг от друга.
Для создания хранилища закрытого ключа в окне Export Android Application выберем переключатель Create new keystore, в поле Location: введем путь файла хранилища, в полях Password: и Confirm: введем пароль хранилища и нажмем кнопку Next.
Примечание
Для поля Location: необязательно использовать кнопку Browse – можно вручную ввести путь несуществующего файла, например, C:Usersusermy_keystore, где файл my_keystore будет сгенерирован.
В поле Alias: введем имя ключа, в полях Password: и Confirm: введем пароль ключа, в поле Validity (years): введем срок действия сертификата более 25 лет, в поле First and Last Name: введем имя разработчика и нажмем кнопку Next, в поле Destination APK file: введем путь APK-файла Android-приложения и нажмем кнопку Finish.
В результате будет создан подписанный и готовый к публикации файл приложения, обработанный при этом оптимизирующим инструментом zipalign набора SDK Tools.
Activity-компонент
Сгенерированная мастером Android Project основа Android-проекта Blank Activity в узле src окна Package Explorer содержит файл исходного кода Activity-компонента, в котором его класс, расширяющий класс android.app.Activity, переопределяет метод onCreate ().
Данный метод является одним из методов обратного вызова Activity-компонента, которые среда выполнения Android вызывает при переходе Activity-компонента между различными состояниями его жизненного цикла. Переопределение метода onCreate () является важным, так как он вызывается при запуске Activity-компонента и предназначен для инициализации GUI-интерфейса.
Помимо метода onCreate () класс android.app.Activity предоставляет следующие методы обратного вызова для их переопределения:
onRestart – метод жизненного цикла, вызывается после того как Activity-компонент был остановлен, перед вызовом метода onStart.
onStart – метод жизненного цикла, вызывается, когда Activity-компонент становится видимым.
onResume – метод жизненного цикла, вызывается, когда Activity-компонент помещается на передний план для взаимодействия с пользователем.
onPause – метод жизненного цикла, вызывается, когда Activity-компонент помещается на задний план. После данного метода может вызываться метод onResume, если Activity-компонент помещается снова на передний план, или метод onStop, если Activity-компонент становится невидимым.
onStop – метод жизненного цикла, вызывается, когда Activity-компонент становится невидимым. После данного метода может вызываться метод onRestart или метод onDestroy.
onDestroy – метод жизненного цикла, вызывается перед уничтожением Activity-компонента программным способом методом finish класса android.app.Activity или Android-системой для освобождения ресурсов.
onActionModeFinished – вызывается при окончании работы режима контекстного меню ActionMode.
onActionModeStarted – вызывается при запуске режима контекстного меню ActionMode для Activity-компонента.
onActivityResult – при запуске другого Activity-компонента методом startActivityForResult вызывается после закрытия запущенного Activity-компонента для обработки возвращаемых им результатов.
onAttachFragment – вызывается при присоединении объекта Fragment к объекту Activity между вызовами методов жизненного цикла Fragment. onAttach и Fragment. onCreate.
onAttachedToWindow – вызывается при присоединении окна Activity-компонента к Window-менеджеру, метод может быть использован вместо метода onCreate.
onBackPressed – вызывается при нажатии пользователем клавиши Back.
onConfigurationChanged – вызывается при изменении конфигурации устройства во время работы Activity-компонента, при этом информацию о новой конфигурации предоставляет объект android.content.res.Configuration.
onContentChanged – вызывается при изменении GUI-интерфейса Activity-компонента при вызове метода setContentView.
onContextItemSelected – вызывается при выборе элемента контекстного меню.
onContextMenuClosed – вызывается при закрытии контекстного меню.
onCreateContextMenu – вызывается при создании контекстного меню – меню, которое открывается при долгом нажатии на GUI-элементе.
onCreateDescription – вызывается перед вызовом метода onPause.
onCreateNavigateUpTaskStack – вызывается при создании стека задач.
onCreateOptionsMenu – вызывается при создании меню опций – меню, которое связано с Activity-компонентом.
onCreatePanelMenu – вызывается для инициализации содержимого меню (меню опций или контекстного меню).
onCreatePanelView – вызывается при создании панели меню.
onCreateThumbnail – вызывается перед вызовом метода onPause и позволяет определить для Activity-компонента значок, а не скриншот.
onCreateView – вызывается для создания фрагментом GUI-интерфейса.
onDetachedFromWindow – вызывается при отсоединении окна Activity-компонента от Window-менеджера.
onGenericMotionEvent – вызывается для необработанного события MotionEvent.
onKeyDown – вызывается для необработанного события KeyEvent при нажатии клавиши.
onKeyLongPress – вызывается для необработанного события KeyEvent при долгом нажатии.
onKeyMultiple – вызывается для необработанного события KeyEvent при многократном нажатии одной клавиши.
onKeyShortcut – вызывается для необработанного события KeyEvent при нажатии комбинации клавиш.
onKeyUp – вызывается для необработанного события KeyEvent при освобождении клавиши.
onLowMemory – вызывается при уменьшении оперативной памяти, когда система будет вынуждена остановить все фоновые процессы, используется для освобождения всех ненужных ресурсов.
onMenuItemSelected – вызывается при выборе элемента меню.
onMenuOpened – вызывается при открытии меню.
onNavigateUp – вызывается при нажатии кнопки Up.
onNavigateUpFromChild – вызывается, если дочерний Activity-компонент использует Up-навигацию.
onNewIntent – при запуске данного Activity-компонента другим Android-компонентом вызывается для уже существующего экземпляра Activity-компонента переднего плана своей задачи, имеющего атрибут android: launchMode=«singleTop» файла манифеста, или если вызывающий Android-компонент использует метод startActivity с флагом FLAG_ACTIVITY_SINGLE_TOP Intent-объекта, вместо создания нового экземпляра Activity-компонента.
onOptionsItemSelected – вызывается при выборе элемента меню опций.
onOptionsMenuClosed – вызывается при закрытии меню опций.
onPanelClosed – вызывается при закрытии панели меню.
onPostCreate – вызывается после вызова метода onRestoreInstanceState.
onPostResume – вызывается после вызова метода onResume.
onPrepareNavigateUpTaskStack – вызывается перед созданием стека задач.
onPrepareOptionsMenu – вызывается перед открытием меню опций.
onPreparePanel – вызывается перед открытием панели меню.
onProvideAssistData – вызывается, когда пользователь запрашивает помощь.
onRestoreInstanceState – вызывается после метода onStart для восстановления состояния Activity-компонента из объекта android. os. Bundle.
onSaveInstanceState – вызывается перед уничтожением Activity-компонента, перемещенного с переднего плана, Android-системой для освобождения ресурсов памяти. Данный метод предназначен для сохранения состояния Activity-компонента в объекте android. os. Bundle в виде пар имя-значение. Измененный объект Bundle передается Android-системой в методы onCreate (Bundle) и onRestoreInstanceState (Bundle).
onSearchRequested – вызывается при запуске поиска.
onTouchEvent – вызывается для необработанного события MotionEvent при прикосновении к экрану.
onTrackballEvent – вызывается для необработанного события MotionEvent при перемещении указателя.
onTrimMemory – вызывается при сокращении ненужной памяти у процесса.
onUserInteraction – вызывается при взаимодействии с пользователем.
onUserLeaveHint – вызывается, когда Activity-компонент перемещается на задний план в результате действий пользователя.
onWindowAttributesChanged – вызывается при изменении атрибутов окна.
onWindowFocusChanged – вызывается при потере или получении фокуса окном.
onWindowStartingActionMode – вызывается при запуске режима ActionMode для окна.
Другой метод обратного вызова класса android.app.Activity, который рекомендуется переопределять – это метод onPause (), вызываемый при потере фокуса Activity-компонентом и который предназначен для сохранения состояния Activity-компонента, так как Android-приложение не контролирует полностью жизненный цикл своих компонентов – Android-система может уничтожать приостановленные Activity-компоненты для освобождения ресурсов памяти.