РАЗРАБОТКА3 технологии Android-разработки, от которых начнут отказываться в 2022 году
https://apptractor.ru/info/articles/3-tehnologii-android-razrabotki-ot-kotoryh-nachnut-otkazyvatsya-v-2022-godu.html
@android_its
https://apptractor.ru/info/articles/3-tehnologii-android-razrabotki-ot-kotoryh-nachnut-otkazyvatsya-v-2022-godu.html
@android_its
AppTractor
3 технологии Android-разработки, от которых начнут отказываться в 2022 году
Если вы новичок в Android, хорошо знать, что это такое, и иметь возможность использовать их по мере необходимости, но в будущем основное внимание должно быть уделено более новым способам разработки.
👍2🔥1
Утилита для работы с несколькими слоями Google Maps Multilayer Utility
https://developers.google.com/maps/documentation/android-sdk/utility/multilayer?hl=ru
@android_its
https://developers.google.com/maps/documentation/android-sdk/utility/multilayer?hl=ru
@android_its
Google for Developers
Утилита Google Maps Multilayer | Maps SDK for Android | Google for Developers
Распространенные Паттерны Проектирования И Архитектуры Приложений На Android
https://swiftbook.ru/post/tutorials/common-design-patterns-and-app-architectures-for-android/
@android_its
https://swiftbook.ru/post/tutorials/common-design-patterns-and-app-architectures-for-android/
@android_its
❤2
Добавление слоя изображений на карту (пакет SDK для Android)
https://docs.microsoft.com/ru-ru/azure/azure-maps/map-add-image-layer-android
@android_its
https://docs.microsoft.com/ru-ru/azure/azure-maps/map-add-image-layer-android
@android_its
Docs
Добавление слоя изображения на карту Android
Сведения о том, как добавлять изображения на карту. Сведения об использовании пакета SDK Azure Maps для Android для настройки слоев изображений и наложения изображений на фиксированные наборы координат.
👍3
Из каких базовых компонент состоит приложение?
Базовые компоненты андроид приложения: Activity, Service, BroadcastReceiver, ContentProvider. Каждый из базовых компонент объявляется в андроид манифесте и может являться точкой входа в приложение.
Activity представляет UI и функциональность, видимые пользователю.
Service используется для исполнения долгих операций, которые не требуют взаимодействия с пользователем.
BroadcastReceiver принимает и обрабатывает броадкаст ивенты, отправленные внутри приложения или из других приложений.
ContentProvider используется для обмена данными с другими приложениями.
Каждый из компонентов подробнее рассмотрим в будущем.
#Components
@android_its
Базовые компоненты андроид приложения: Activity, Service, BroadcastReceiver, ContentProvider. Каждый из базовых компонент объявляется в андроид манифесте и может являться точкой входа в приложение.
Activity представляет UI и функциональность, видимые пользователю.
Service используется для исполнения долгих операций, которые не требуют взаимодействия с пользователем.
BroadcastReceiver принимает и обрабатывает броадкаст ивенты, отправленные внутри приложения или из других приложений.
ContentProvider используется для обмена данными с другими приложениями.
Каждый из компонентов подробнее рассмотрим в будущем.
#Components
@android_its
👍5
Может ли приложение быть запущено в нескольких процессах?
Короткий ответ – Да.
Но для начала давайте разберемся чем процесс отличается от потока.
Процесс – это сущность на уровне ОС. Каждая программа может быть запущена в одном или нескольких процессах.
Поток – это сущность на уровне Runtime Environment.
Программа может выполняться в нескольких процессах. В каждом из процессов может быть создано несколько потоков (Java Threads).
Вернемся к андроиду. В предыдущем посте мы рассмотрели базовые компоненты и узнали, что каждый из компонентов может быть точкой входа в приложение. По умолчанию компоненты приложения работают в дефолтном процессе, но каждый из компонентов
Важно: При старте нового процесса создается инстанс приложения и снова вызывается
Подробнее про процессы и треды читайте в документации.
#System
Короткий ответ – Да.
Но для начала давайте разберемся чем процесс отличается от потока.
Процесс – это сущность на уровне ОС. Каждая программа может быть запущена в одном или нескольких процессах.
Поток – это сущность на уровне Runtime Environment.
Программа может выполняться в нескольких процессах. В каждом из процессов может быть создано несколько потоков (Java Threads).
Вернемся к андроиду. В предыдущем посте мы рассмотрели базовые компоненты и узнали, что каждый из компонентов может быть точкой входа в приложение. По умолчанию компоненты приложения работают в дефолтном процессе, но каждый из компонентов
<activity>, <service>, <receiver>, <provider> может иметь поле android:process=”<name>” в андроид манифесте. Кастомное значение этого поля явно говорит системе в каком процессе будет работать компонент.Важно: При старте нового процесса создается инстанс приложения и снова вызывается
Application.onCreate(). Если в этом методе вы инициализируете модули или библиотеки, которые используются только в главном процессе, то не забывайте проверять, в каком процессе вы находитесь в момент инициализации.Подробнее про процессы и треды читайте в документации.
#System
Wikipedia
Process (computing)
particular execution of a computer program
👍7
Приоритеты процессов
Процессы делятся по приоритету на 4 вида, в порядке убывания:
1. Видимый активный процесс (Foreground process). В этом процессе работает приложение, с которым взаимодействует пользователь. Процесс находится в этом состоянии в следующих случаях:
-
- Во время выполнения
- Запущен
2. Видимый процесс. Пользователь знает о приложении, запущенном в этом процессе, но не взаимодействует с ним:
-
-
-
3. Background Service. Процесс с сервисом, запущенным командой startService().
4. Закэшированный процесс. К ним относятся пустые процессы, используемые при старте приложений, и процессы, в которых все активити в
Система убивает процессы в порядке возрастания их приоритета для восстановления ресурсов. Подробнее
#Lifecycle
#System
@android_its
Процессы делятся по приоритету на 4 вида, в порядке убывания:
1. Видимый активный процесс (Foreground process). В этом процессе работает приложение, с которым взаимодействует пользователь. Процесс находится в этом состоянии в следующих случаях:
-
Activity, у которой вызван onResume(), но еще не вызван onPause()- Во время выполнения
BroadcastReceiver.onReceive()- Запущен
Service и выполняется один из колбэков: onCreate(), onStart(), onDestroy()2. Видимый процесс. Пользователь знает о приложении, запущенном в этом процессе, но не взаимодействует с ним:
-
Activity у которой вызван onPause(), но еще не вызван onStop().-
Service, который запущен через Service.startForeground(). В этом случае пользователь видит нотификацию, связанную с сервисом.-
Service, выполняющий функцию, о которой пользователь осведомлен. Например input method service.3. Background Service. Процесс с сервисом, запущенным командой startService().
4. Закэшированный процесс. К ним относятся пустые процессы, используемые при старте приложений, и процессы, в которых все активити в
onStop() состоянии.Система убивает процессы в порядке возрастания их приоритета для восстановления ресурсов. Подробнее
#Lifecycle
#System
@android_its
👍5👎1
Activity: Что такое и как запустить?
Activity – основной компонент в андроиде. Активити – это экран, то что видит и с чем взаимодействует пользователь. Может содержать несколько View и фрагментов. Так же как и другие базовые компоненты, может быть точкой входа в приложение.
Активити с MAIN Intent Filter в манифесте запускается при старте приложения, когда пользователь кликает на иконку приложения.
#Activity
#Components
@android_its
Activity – основной компонент в андроиде. Активити – это экран, то что видит и с чем взаимодействует пользователь. Может содержать несколько View и фрагментов. Так же как и другие базовые компоненты, может быть точкой входа в приложение.
Активити с MAIN Intent Filter в манифесте запускается при старте приложения, когда пользователь кликает на иконку приложения.
#Activity
#Components
@android_its
👍6
Activity: Жизненный цикл
Жизненный цикл активити состоит из шести основных коллбэков, вызываемых системой. В порядке вызова:
onCreate() вызывается когда активити создается. В
onStart() вызывается когда активити отрисована и видима пользователю.
onResume() вызывается перед тем как активити станет доступна для взаимодействия с пользователем.
onPause() – метод симметричный
onStop() – метод симметричный
onDestroy() – метод симметричный
Несколько примеров:
1. Пользователь жмет Home. В этом случае активити больше не видна, поэтому вызываются
2. Пользователь переходит на другую активити внутри приложения (реализуется вызовом
3. Вызов
4. Пользователь поворачивает телефон и ориентация активити меняется. Активити пересоздается и вызываются коллбеки
Это базовые методы активити. Более подробно они описаны в документации.
В полный жизненный цикл также входят
#Activity
#Lifecycle
Жизненный цикл активити состоит из шести основных коллбэков, вызываемых системой. В порядке вызова:
onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy().onCreate() вызывается когда активити создается. В
onCreate() вы должны вызвать метод setContentView().onStart() вызывается когда активити отрисована и видима пользователю.
onResume() вызывается перед тем как активити станет доступна для взаимодействия с пользователем.
onPause() – метод симметричный
onResume(). Пользователь больше не может взаимодействовать с активити, но активити частично видна пользователю. В этом состоянии UI активити может изменяться.onStop() – метод симметричный
onStart(). Вызывается, когда активити больше не видна пользователю.onDestroy() – метод симметричный
onCreate(). Вызывается перед тем, как активити будет уничтожена системой.Несколько примеров:
1. Пользователь жмет Home. В этом случае активити больше не видна, поэтому вызываются
onPause(), onStop(). Пользователь открывает приложение снова - onStart(), onResume().2. Пользователь переходит на другую активити внутри приложения (реализуется вызовом
startActivity()) – onPause(), onStop(). Пользователь возвращается на предыдущую активити – onStart(), onResume().3. Вызов
finish() – onPause(), onStop(), onDestroy(). Когда пользователь перейдет на эту активити снова, она будет создана с нуля без сохранения состояния.4. Пользователь поворачивает телефон и ориентация активити меняется. Активити пересоздается и вызываются коллбеки
onPause(), onStop(), onDestroy(), onCreate(), onStart(), onResume() с сохранением состояния.Это базовые методы активити. Более подробно они описаны в документации.
В полный жизненный цикл также входят
onRestart(), onSaveInstanceState(), onRestoreInstanceState(), onNewIntent() и другие методы, которые разберем в будущем.#Activity
#Lifecycle
👍10
Быстрый старт: гайд по автоматизированному тестированию для Android-разработчика. JVM
https://vc.ru/dev/199012-bystryy-start-gayd-po-avtomatizirovannomu-testirovaniyu-dlya-android-razrabotchika-jvm
@android_its
https://vc.ru/dev/199012-bystryy-start-gayd-po-avtomatizirovannomu-testirovaniyu-dlya-android-razrabotchika-jvm
@android_its
vc.ru
Быстрый старт: гайд по автоматизированному тестированию для Android-разработчика. JVM — Разработка на vc.ru
Привет! Меня зовут Сергей Иванов, я ведущий разработчик Android в Redmadrobot. С 2016 использую автотесты различных категорий и успел в этом набить немало шишек. Именно поэтому решил поделиться опытом. Возможно, что кому-то статья поможет систематизировать…
👍6
Activity: Как пережить поворот экрана?
При повороте экрана активити уничтожается и создается заново. Вызываются коллбэки
Чтобы сохранить состояние активити, вы должны переопределить метод onSaveInstanceState() и положить данные в Bundle.
При реинициализации активити,
Система вызывает
onSaveInstanceState() вызывается после
onRestoreInstanceState() вызывается после
#Activity
#Lifecycle
#State
@android_its
При повороте экрана активити уничтожается и создается заново. Вызываются коллбэки
onPause(), onStop(), onSaveInstanceState(), onDestroy() – onCreate(), onStart(), onRestoreInstanceState(), onResume().Чтобы сохранить состояние активити, вы должны переопределить метод onSaveInstanceState() и положить данные в Bundle.
При реинициализации активити,
Bundle с сохраненным состоянием передается в onCreate() и в onRestoreInstanceState().Система вызывает
onSaveInstanceState() и onRestoreInstanceState() только в том случае, когда необходимо сохранить состояние, например при повороте экрана или при убийстве активити для освобождения памяти. Данные коллбэки не вызываются, если пользователь выходит из активити нажав Back или если активити убивается вызовом finish().onSaveInstanceState() вызывается после
onStop() на версии API ≥ 28. На API < 28 этот коллбэк вызывается перед onStop() и нет гарантий до или после onPause().onRestoreInstanceState() вызывается после
onStart().#Activity
#Lifecycle
#State
@android_its
👍8
