# Android Studio для QA

Android Studio — интегрированная среда разработки (IDE) для работы с платформой Android. Сама по себе она содержит огромное количество инструментов, которые могут использоваться для разработки, отладки и тестирования приложений на Android. Здесь же опишем основные инструменты, которые могут пригодиться в работе QA. Само приложение можно скачать здесь: <https://developer.android.com/studio>.

## Инструменты, которые будут рассмотрены ниже:

* [Сборка проекта и git](#sborka-proekta-i-git)
* [Logcat](#logcat)
* [Эмуляторы и Device Manager](#emulyatory-i-device-manager)
* [Профайлер](#profailer)
* [App Inspection](#app-inspection)

## Сборка проекта и git

Сборка проекта и работа с git чаще всего нужна, когда вы пишите автотесты. Однако, это не значит, что если в вашем проекты вы не занимаетесь автотестами, то вам не нужен доступ к коду. Хоть и многие и функции ниже работают без доступа к коду, однако, доступ к коду расширяет возможности инструментов. А система контроля версий позволяет проанализировать изменения внесённые разработчиком, подмечая какие места в приложении могли быть затронуты и на что нужно обратить отдельное внимание. Также у вас будет всегда возможность при необходимости самостоятельно собрать ветку проекта для тестирования.

\* Примечание, Android Studio умеет работать не только с git, но и с другими системами контроля версий: [Version control basics ](https://developer.android.com/studio/projects/version-control). Здесь не привожу детальных инструкций по работе с git, если у вас возникли трудности попросите помочь разработчику или поищите ответ самостоятельно.

Для запуска сборки скачайте и откройте проект из вашего репозитория, переключитесь на нужную ветку, подключите девайс к компьютеру (убедитесь что разрешили отладку по usb) или создайте эмулятор, затем нажмите на зелёную стрелочку в верхней панели – run. Документация: [Build and run your app](https://developer.android.com/studio/run)

<figure><img src="https://3769959147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYInbJuFGJr5KFkILNsNr%2Fuploads%2Fgit-blob-5af984548a820c5405562815faedf38140d7fe26%2F%D0%97%D0%B0%D0%BF%D1%83%D1%81%D0%BA%20%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0%20%D0%B8%20git.png?alt=media" alt="" height="500"><figcaption></figcaption></figure>

## Logcat

Logcat в Android Studio – один из основных инструментов QA инженера. Он позволяет смотреть в реальном времени и анализировать логи вашего приложения. С помощью них можно найти какие ошибки возникают в приложении, понять из-за чего происходит краш или почему какая-то функция не работает. А помогает в этом система фильтров и другие инструменты настройки визуализации. Записанные логи можно экспортировать для того, чтобы приложить к баг-репорту, а также импортировать, для удобного анализа с помощью фильтров. Logcat также содержит дополнительные инструменты позволяющие снимать запись экрана, останавливать процессы и др. Подробнее про возможности Logcat можно прочитать тут: [Подробное руководство по Logcat в Android Studio с примерами](https://habr.com/ru/articles/818751/).

Если говорить про важность доступа к коду, то когда именно ваш проект открыт в студии, то можно применять удобный фильтр package:mine, оставляющий логи всех ваших пакетов (особенно удобно, когда их много), а также в окне логов отображается информация о запуске и остановке вашего приложения.

<figure><img src="https://3769959147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYInbJuFGJr5KFkILNsNr%2Fuploads%2Fgit-blob-cebbbcc0537e299017c26e2bf174fe0341ffc32d%2Flogcat.png?alt=media" alt="" height="500"><figcaption></figcaption></figure>

## Эмуляторы и Device Manager

Эмуляторы позволяют имитировать на вашем компьютере реальные устройства (подробнее: [Симуляторы и эмуляторы](https://github.com/VladislavEremeev/QA_bible/blob/master/mobilnoe-testirovanie/mobilnoe-testirovanie/simulyatory-i-emulyatory.md)). Android Studio позволяет создать эмуляторы множества различных устройств использующих Android, такие как часы, тв-приставки и так далее, а не только смартфоны. Эмуляторы можно использовать для тестирования, когда под рукой нет реального устройства с нужной версией Android или определёнными характеристиками. Либо при тестировании специфических кейсов, таких как работа с смс (на эмуляторы, с помощью adb, можно отправлять смс от любого номера). Создать виртуальное устройство можно в окне Device Manager, нажав иконку с плюсиком и выбрав Create Virtual Device. Далее мастер установки поможет вам выбрать характеристики устройства, скачать образ системы и задать остальные параметры, такие как объём доступной оперативной памяти, диска и разрешение и dpi экрана.

Официальная документация по созданию и запуску эмулятора: [Create and manage virtual devices](https://developer.android.com/studio/run/managing-avds).

<figure><img src="https://3769959147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYInbJuFGJr5KFkILNsNr%2Fuploads%2Fgit-blob-db5bf85c1c925a03ee790555ea639ef8a96c20e9%2Fdevice%20manager.png?alt=media" alt=""><figcaption></figcaption></figure>

Device Manager – позволяет управлять подключенными к Android Studio девайсами. Здесь отображают как установленные эмуляторы, так и девайсы подключенные по adb (кабелем, по wifi или удалённо по сети), а также девайсы из фермы устройств предоставляемых Firebase (нужно зарегистрировать приложение в сервисе и вы получите бесплатные минуты для работы с ними ([Квоты потоковой передачи на устройствах Android](https://firebase.google.com/docs/test-lab/usage-quotas-pricing?hl=ru#device-streaming)). Отсюда можно управлять параметрами эмуляторов: запускать и останавливать их, очищать память, редактировать параметры. Кроме управления эмуляторами, здесь можно открыть проводник файлов устройства, вывести демонстрацию экрана с подключенного устройства в окно Running Devices. Также отсюда вы можете подключить эмулируемые часы к смартфону.

<div><figure><img src="https://3769959147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYInbJuFGJr5KFkILNsNr%2Fuploads%2Fgit-blob-f7ec0aee2f2244aa4a9066c738ea38990b92f5b7%2Frunning%20devices.png?alt=media" alt="" width="293"><figcaption></figcaption></figure> <figure><img src="https://3769959147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYInbJuFGJr5KFkILNsNr%2Fuploads%2Fgit-blob-78cd1ef0587ceba2d5604504bd8ca0d98c384c29%2F%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0%20%D1%8D%D0%BC%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80%D0%B0.png?alt=media" alt="" width="375"><figcaption></figcaption></figure></div>

Окно Running Devices позволяет видеть, что происходит на экране подключенного устройства (в том числе эмулируемого), а также удалённо управлять им с помощью мышки. Если открыт эмулятор, то в меню действий появится кнопка (выделено стрелкой), которая открывает дополнительные действия доступные для эмулятора. Здесь можно задать фейковое местоположение, уровень заряда аккумулятора, статус сети, позвонить на устройство и многое другое.

## Профайлер

Профайлер позволяет следить в реальном времени за потреблением ресурсов смартфона вашим приложением. Вы можете следить за потреблением CPU и RAM, а также при необходимости записать детальную трассировку в которой будет даже информация о потреблении батареи и дампы памяти. Чтобы открыть расширенную статистику и иметь возможность записать её, необходимо нажать на соответствующий график (CPU или Memory). Профайлер позволяет следить не происходят ли нежелательные для пользователя расходование ресурсов, которое может вести к падению производительности приложения, либо его остановке.

<figure><img src="https://3769959147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYInbJuFGJr5KFkILNsNr%2Fuploads%2Fgit-blob-c16fa7df12a55d1cfb3b61048d422f9b82c80e95%2Fprofiler%201.png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

У профайлера есть два режима работы, один – debuggble позволяет собрать более детальную информацию, однако debug сборка приложения сама потребляет много ресурсов, так что картина может отличаться от той, что у пользователей. Для того, чтобы решить эту проблему Android Studio рекомендует переключиться на второй режим – profileable, она работает начиная с 10 версии android. По сути это релизная сборка приложения со специальным параметром в манифесте.

Для того чтобы получить такую сборку вам надо иметь доступ к коду и выбрать в меню действий (троеточие) рядом со стрелкой запуска проекта пункт "Profile app with low overhead (profileable)" – проект соберётся с новыми параметрами. Либо вам нужно будет попросить разработчика собрать вам такую сборку или настроить ci/cd для сборки.

Документация по работе с профайлером: [Profile your app performance](https://developer.android.com/studio/profile)

## App Inspection

App Inspection включает в себя несколько инструментов для анализа вашего приложения. Он позволяет вам исследовать базы данных вашего приложения, отправлять sql запросы к ним и делать выборки, посредством [Database Inspector](https://developer.android.com/studio/inspect/database). Также здесь есть возможность следить за фоновыми процессами – [Background Task Inspector](https://developer.android.com/studio/inspect/task) и за сетевым трафиком – [Network Inspector](https://developer.android.com/studio/debug/network-profiler). Однако, в случае последнего, всё же рекомендую пользоваться снифферами трафика, так как по моим наблюдениям Network Inspector может показывать не все сетевые запросы.

<figure><img src="https://3769959147-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYInbJuFGJr5KFkILNsNr%2Fuploads%2Fgit-blob-1dc1f4fdb9d072dc9eed06c9310e7782a5ce6939%2FAppInspector.png?alt=media" alt="" width="563"><figcaption></figcaption></figure>
