Статьи

6 Что нужно и чего не нужно для отличного пользовательского опыта на Android

У самых популярных приложений для Android есть что-то общее: все они обеспечивают отличный пользовательский опыт. В этом посте я поделюсь некоторыми советами, которые помогут вашему приложению выделиться.

Независимо от того, какое приложение вы имеете в виду, или от вашей целевой аудитории, создание отличного пользовательского интерфейса может помочь обеспечить успех вашего приложения. В этой статье я расскажу о шести вещах, которые вы должны и не должны делать, чтобы убедиться, что ваше приложение обеспечивает максимально возможный опыт для ваших конечных пользователей.

Поскольку создание и запуск приложения Android — это многоэтапный процесс, я затрону каждую часть жизненного цикла разработки Android — от принятия трудных решений о том, какие версии Android следует поддерживать, до создания продукта, который будет привлекать глобальная аудитория, вплоть до анализа производительности вашего приложения после запуска.

Хотя естественно, что вы хотите, чтобы ваше приложение было представлено как можно большему числу пользователей, не думайте, что поддержка большего числа версий Android — это всегда лучший подход.

Ключом к привлечению большой аудитории является предоставление максимально возможного пользовательского опыта, а ориентация на поддержку как можно большего количества версий Android может фактически повредить общему пользовательскому опыту.

Основная проблема заключается в том, что по мере того, как вы продолжаете возвращаться к истории выпусков Android, вам будет сложнее заставить ваше приложение хорошо играть с предыдущими выпусками.

Иногда может быть ясный момент, когда ваше приложение становится несовместимым с более ранними выпусками Android. Например, если вашему приложению абсолютно необходим доступ к Bluetooth с низким энергопотреблением (BLE), то ваше приложение не сможет работать ни на чем ранее, чем Android 4.3 — версия, в которой поддержка BLE была добавлена ​​на платформу Android.

Однако иногда эта строка может быть не такой четкой, и вы можете подумать о том, следует ли модифицировать или даже удалять некритические функции, чтобы создать что-то, что может работать на определенной версии Android. Небольшие компромиссы могут постепенно влиять на качество взаимодействия с пользователем, поэтому всегда анализируйте влияние этих изменений на ваших пользователей.

Кроме того, настройка, оптимизация и тестирование вашего приложения для каждой отдельной версии Android требует времени и усилий, поэтому вам также нужно спросить себя, стоят ли эти инвестиции потенциальных выгод. В принципе, сколько еще пользователей вы могли бы получить, поддерживая каждую версию Android? Вы можете получить информацию о том, сколько устройств Android работает в каждой версии платформы Android, просмотрев статистику на панели инструментов Google .

В конечном счете, универсального правильного или неправильного ответа не существует, поэтому вам нужно взвесить все за и против и решить, что наиболее целесообразно для вашего конкретного проекта.

Решив, какие версии Android вы собираетесь поддерживать, добавьте эту информацию в файл minSdkVersion уровня модуля, используя minSdkVersion (самый низкий API, с которым ваше приложение совместимо), targetSdkVersion (самый высокий уровень API, который вы используете). протестировал ваше приложение) и compileSdkVersion (версия Android SDK, которую Gradle должен использовать для компиляции вашего приложения).

Чтобы ваше приложение могло пользоваться последними функциями Android, оставаясь совместимым с более ранними выпусками, рекомендуется установить minSdkValue значение targetSdkVersion а для targetSdkVersion и compileSdkVersion установить последнюю версию Android SDK.

Когда вы работаете над приложением для Android, нередко вы проводите большую часть своего времени, тестируя это приложение на своем собственном смартфоне или планшете Android. В частности, на ранних этапах разработки приложений создание виртуальных устройств Android (AVD), вероятно, будет последней вещью, о которой вы думаете.

Однако не упускайте из виду общую картину! Легко зацикливаться на дизайне для одного экрана, который физически перед вами, но важно, чтобы ваше приложение хорошо выглядело и работало правильно на широком спектре Android-устройств.

Система Android автоматически масштабирует ваши макеты, чертежи и другие ресурсы, чтобы они отображались в размере, соответствующем текущему экрану, но для лучшего пользовательского опыта вы должны стремиться создать иллюзию того, что ваше приложение было разработано для конкретного устройства пользователя. Полагаться только на автоматическое масштабирование не удастся!

Чтобы ваше приложение обеспечивало наилучшее взаимодействие с пользователем на широком диапазоне устройств, вам необходимо предоставить альтернативные ресурсы, оптимизированные для разных устройств, например, графические материалы, предназначенные для обобщенных сегментов плотности Android, и альтернативные макеты, оптимизированные для ландшафта. Режим.

Создав альтернативные ресурсы, вам необходимо создать альтернативные каталоги, помеченные соответствующими квалификаторами конфигурации , а затем поместить ресурсы в эти каталоги — например, каталог res / layout-land будет содержать макеты, которые предназначен для ландшафтной ориентации. Система Android автоматически загрузит ресурс, который лучше всего соответствует текущей конфигурации экрана во время выполнения.

Хотя большинство квалификаторов конфигурации относительно просты, обеспечить ресурсы, предназначенные для экранов разных размеров, немного сложнее, и вам необходимо указать точное значение dpi, с которого система должна начать использовать этот ресурс. Итак, вам нужно сказать системе: «Я хочу использовать этот макет, когда мое приложение отображается на устройствах с 800dpi или более доступной шириной экрана».

Вы получаете эти значения, тестируя ваше приложение на широком диапазоне различных AVD и отмечая все размеры экрана, с которыми сталкиваются ваши ресурсы по умолчанию — например, возможно, ваш макет по умолчанию начинает выглядеть загроможденным, когда устройство падает ниже определенный порог dpi.

Существует три спецификатора конфигурации размера экрана, которые вы можете использовать в своих проектах:

  • smalllestWidth sw <значение> дп . Позволяет указать минимальное горизонтальное пространство, которое должно быть доступно, прежде чем система сможет использовать ресурсы в этом каталоге. Например, если у вас есть набор макетов, требующих 800 точек на дюйм или более, вы должны создать каталог res / layout-sw800dp . Обратите внимание, что smallestWidth устройства — это фиксированное значение, которое не изменяется, когда пользователь переключает свое устройство между книжной и альбомной ориентацией.

  • Доступная ширина экрана w <значение> дп . Минимальное горизонтальное пространство, которое должно быть доступно, прежде чем система сможет использовать эти ресурсы. Значение w<value>dp изменяется, когда пользователь переключается между портретным и альбомным режимами.

  • Доступная высота экрана: h <значение> dp . Минимальная высота, которая должна быть доступна, прежде чем система сможет использовать эти ресурсы. Значение h<value>dp будет меняться в зависимости от того, держит ли пользователь свое устройство в альбомной или книжной ориентации.

Проектирование нескольких экранов — это, в основном, создание альтернативных версий ресурсов вашего проекта и добавление их в соответствующие каталоги, а затем полоскание и повторение. Однако при создании этих альтернативных ресурсов можно использовать некоторые дополнительные приемы, которые действительно могут создать иллюзию того, что ваше приложение было разработано для конкретного устройства пользователя:

  • Используйте специфичные для плотности рисунки в сочетании с изображениями из 9 участков . Если системе необходимо изменить размер изображения, чтобы он соответствовал текущему экрану, то по умолчанию она изменит размер всего изображения, что может привести к размытым, пиксельным или иным странным изображениям. Для достижения наилучших возможных результатов вы должны указать точные пиксели, которые система должна реплицировать, если ей необходимо изменить размер изображения, предоставляя чертежи вашего проекта в виде изображений с 9 участками. Предоставьте несколько версий 9-патчей для каждого отрисовки, где каждый 9-патч нацелен на разную плотность экрана, и система затем загрузит изображение с 9-патчами, которое наилучшим образом соответствует текущей плотности экрана, и растянет растягиваемое изображение из 9-патчей разделы, если требуется. Вы можете создавать 9-патч-изображения, используя любой редактор PNG, или вы можете использовать Draw-9-патч-редактор, который включен в Android SDK (вы найдете его в sdk / tools / Draw9patch.bat ).

  • Создайте несколько файлов измерения .xml . Рекомендуется определять значения макета в отдельном файле измерения. XML, а не жестко кодировать их в свой проект. Тем не менее, вы можете сделать еще один шаг и создать несколько файлов измерения. XML , предназначенных для разных размеров экрана и плотности. Например, вы можете создать файл values-ldpi / dimensions.xml, в котором вы определяете значения, которые ваше приложение должно использовать при установке на устройстве, которое попадает в категорию «низкой» плотности. Затем система загрузит соответствующие размеры для текущего устройства и примените их к вашему макету.

  • Рассмотрите возможность использования фрагментов . Фрагменты предоставляют вам возможность разделить одно действие на отдельные компоненты, которые затем можно отобразить различными способами, в зависимости от текущей конфигурации экрана. Например, вы можете выбрать отображение нескольких фрагментов рядом в многопанельном макете, когда ваше приложение установлено на устройстве с большим экраном, и в качестве отдельных действий, когда пространство более ограничено. Самый простой способ добавить фрагмент в макет — вставить элемент <fragment> в файл ресурсов макета. Кроме того, вы можете добавлять фрагменты в макет с помощью кода приложения — этот метод может быть более сложным, но он дает вам дополнительную гибкость, позволяя добавлять, удалять или заменять фрагменты во время выполнения.

Android — это глобальная операционная система, поэтому, если ваше приложение будет обеспечивать наилучшее взаимодействие с этой глобальной аудиторией, вам следует подумать о локализации приложения для разных языков и, возможно, разных регионов.

Как правило, большая часть локализации приложения — это перевод файла strings.xml вашего проекта на другой язык (языки), который вы хотите поддерживать. Если вы не владеете целевым языком, вам нужно будет обратиться за помощью к переводчику. Если вы никого не имеете в виду, то сервисы перевода Google Play в консоли разработчика могут указать вам направление потенциальных переводчиков.

Вы найдете вариант покупки перевода в консоли разработчика Google Play

После того, как вы выбрали переводчик, вы должны критически взглянуть на файл strings.xml, прежде чем отправлять его на перевод. Проверьте на наличие ошибок, таких как орфографические ошибки и опечатки, и убедитесь, что ваш файл strings.xml отформатирован так, чтобы его было легко читать, учитывая, что ваш переводчик может не являться разработчиком Android.

Вы также должны предоставить как можно больше контекста, поэтому убедитесь, что вы добавляете комментарий к каждой строке, объясняющий, для чего эта строка, где и когда она появится в вашем приложении, и любые ограничения, о которых должен знать переводчик. Например, если строка должна оставаться длиной менее 10 символов, чтобы соответствовать выделенному пространству в макете, то это то, о чем должен знать переводчик!

Как только переводчик вернет ваши переведенные файлы strings.xml , вам нужно будет создать каталог для каждого альтернативного файла, а это значит, что вам нужно будет определить, какие квалификаторы конфигурации использовать.

Квалификатор конфигурации локали состоит из кода ISO , который по сути является языковым кодом, и необязательного кода страны или региона , которому предшествует строчная буква r . Например, если вы хотите предоставить текст на французском языке ( fr ) для людей, находящихся в Канаде ( can ), то вы должны создать каталог res / values-fr-rcan .

Если вы предоставляете локализованный текст, имейте в виду, что некоторые строки могут значительно расширяться или уменьшаться во время перевода, поэтому вам нужно проверить, что ваши макеты могут вмещать все версии строк вашего проекта.

Самый простой способ проверить ваши локализованные ресурсы — это установить приложение на AVD, а затем эмулировать различные местоположения и языковые настройки. На этом этапе система загрузит локализованные версии ваших ресурсов и отобразит их в вашем приложении.

Вы можете изменить языковые настройки в работающем AVD, введя следующие команды Android Debug Bridge (adb):

1
adb shell

С последующим:

1
setprop persist.sys.locale fr-CAN;stop;sleep 5;start

Обратите внимание, вам нужно заменить fr-CAN на любой спецификатор конфигурации, с которым вы хотите протестировать.

Если вы разработали свое приложение с учетом передового опыта, тогда ваши макеты должны быть достаточно гибкими, чтобы отображать большинство ваших локализованных строк. Однако, если длина ваших строк резко меняется, вам может потребоваться предоставить альтернативные макеты, оптимизированные для разных локалей.

Хотя файл strings.xml вашего проекта, как правило, является основным ресурсом, который вам необходимо локализовать, вам также следует подумать о том, есть ли другие ресурсы, которые вам могут потребоваться для перевода, такие как рисованные объекты, содержащие текст, видео или аудио, содержащие диалог, или любые ресурсы. это может быть неподходящим для локали, на которую вы ориентируетесь.

Убедившись, что вы предоставили все необходимые локализованные ресурсы и выполнили свой собственный цикл тестирования, вам следует подумать о том, чтобы организовать бета-тестирование с носителями языка в каждой из ваших целевых локалей. Носители языка могут часто замечать ошибки, которые может игнорировать даже переводчик, и могут дать вам несколько советов о том, как сделать ваше приложение более привлекательным для этого конкретного раздела вашей аудитории. Вы можете организовать этот вид целевого бета-тестирования через Консоль разработчика Google Play .

Когда вы, наконец, будете готовы запустить свое приложение, убедитесь, что вы нашли время для создания локализованных версий страницы Google Play вашего приложения, поскольку это мгновенно сделает ваше приложение более привлекательным для иностранных пользователей, которые просматривают магазин Google Play. Вам также следует попытаться предоставить скриншоты, которые четко отображают локализованный текст внутри вашего приложения, чтобы пользователи не задавались вопросом, перевели ли вы только что страницу приложения в Google Play, а не реальный текст внутри вашего приложения.

И тяжелая работа не заканчивается, как только вы запустите свое приложение! После того, как вы привлекли свою международную аудиторию, вам нужно будет поддерживать ее, предоставляя постоянную поддержку на нескольких языках, даже если это означает, что вы прибегаете к машинным переводчикам, таким как Google Translate. По крайней мере, вы должны следить за своими обзорами в Google Play, чтобы узнать, сообщают ли пользователи в определенных регионах о похожих проблемах, что может указывать на проблему с одним или несколькими локализованными ресурсами вашего приложения.

Как разработчик приложения, вы должны убедиться, что все могут наслаждаться вашим приложением, поэтому важно учитывать, насколько ваше приложение доступно для людей, которые могут испытывать его без звука, цвета или других визуальных эффектов, или для всех, кто взаимодействует с ним. их Android-устройство с помощью инструмента специальных возможностей, таких как программа чтения с экрана.

Android спроектирован с учетом доступности, поэтому у него есть ряд встроенных функций доступности, которые вы можете использовать без каких-либо фундаментальных изменений в коде вашего приложения.

Давайте рассмотрим ряд незначительных изменений, которые вы можете внести в свой проект, которые будут иметь огромное влияние на доступность вашего приложения:

Сервисы специальных возможностей, такие как TalkBack, читают текст на экране вслух, что делает их важным инструментом, помогающим пользователям, имеющим проблемы со зрением, взаимодействовать со своими устройствами Android.

При разработке приложения для Android вы должны учитывать, насколько легко пользователям будет перемещаться по приложению, используя только текст на экране. Если вам нужно предоставить какой-то дополнительный контекст, вы можете добавить описание контента к любому из компонентов пользовательского интерфейса вашего приложения, которое затем будет прочитано вслух такими службами, как TalkBack. Чтобы добавить описание контента, откройте файл ресурсов макета вашего проекта и добавьте атрибут android:contentDescription к рассматриваемому компоненту пользовательского интерфейса, а затем описание, которое вы хотите использовать.

Пользователям с ограниченным зрением или ограниченной ловкостью рук может быть легче взаимодействовать со своим устройством с помощью контроллера направления, такого как трекпад, D-pad или клавиатура, или программного обеспечения, которое имитирует контроллер направления. Чтобы убедиться, что ваше приложение поддерживает фокусировку такого рода, вам нужно добавить android:focusable="true” для каждого из компонентов навигации вашего приложения.

Когда пользователи перемещаются по вашему приложению с помощью средств управления направлением, фокус передается от одного элемента пользовательского интерфейса к другому в порядке, который определяется автоматически с помощью алгоритма. Однако вы можете переопределить эти значения по умолчанию и указать, какой компонент пользовательского интерфейса должен получить фокус, когда пользователь перемещается в определенном направлении, добавив следующие атрибуты XML к любому из ваших компонентов пользовательского интерфейса: android: nextFocusUp , android: nextFocusDown , android: nextFocusLeft и Android: NextFocusRight . Например:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?xml version=»1.0″ encoding=»utf-8″?>
<LinearLayout xmlns:android=»http://schemas.android.com/apk/res/android»
   xmlns:tools=»http://schemas.android.com/tools»
   android:id=»@+id/activity_main»
   android:layout_width=»match_parent»
   android:layout_height=»match_parent»
   tools:context=»com.jessicathornsby.myapplication.MainActivity»>
 
   <TextView
       android:layout_width=»wrap_content»
       android:layout_height=»74dp»
       android:text=»Hello World!»
       android:id=»@+id/textView»
       android:focusable=»true»
       android:nextFocusDown=»@+id/checkBox»
       />
 
   <CheckBox
       android:text=»CheckBox»
       android:layout_width=»wrap_content»
       android:layout_height=»wrap_content»
       android:id=»@+id/checkBox»
       android:layout_weight=»1″
       android:focusable=»true»
       android:nextFocusUp=»@+id/textView»
       />
 
</LinearLayout>

Пользователи с нарушениями зрения могут увеличить размер шрифта, который появляется на их устройстве. Чтобы убедиться, что любые изменения шрифта отражены в вашем приложении, определите текст в пикселях масштаба и не забудьте проверить, как различные размеры шрифтов Android будут влиять на пользовательский интерфейс вашего приложения, на тот случай, если вам нужно будет внести некоторые изменения в свой текст. раскладка.

Чтобы помочь людям с проблемами ловкости рук ориентироваться в вашем приложении, рекомендуется установить для всех целей касания значение 48 x 48 т / д или выше, а также убедиться, что расстояние между этими целями составляет не менее 8 т / д.

Некоторые компоненты пользовательского интерфейса могут автоматически исчезать по истечении определенного периода времени — например, элементы управления воспроизведением видео часто исчезают после воспроизведения видео в течение нескольких минут.

Проблема заключается в том, что службы специальных возможностей, такие как Talkback, не читают элементы управления, пока пользователь не сфокусируется на них, поэтому, если элемент управления с тайм-аутом исчезает до того, как у пользователя появляется возможность сосредоточиться на нем, они не будут знать, что эти элементы управления контроль даже существует. По этой причине вам следует рассмотреть возможность обновления элементов управления по тайм-ауту до постоянных элементов управления, когда службы доступности включены.

То, что ваше приложение не дает сбоев и не выдает никаких ошибок во время тестирования, не означает автоматически, что оно работает хорошо, поскольку некоторые проблемы с производительностью могут быть коварными и их трудно обнаружить во время регулярного тестирования. Никто не любит использовать приложение, которое загружается вечно, отстает при попытке взаимодействия с ним и поглощает доступную память, поэтому вы всегда должны проверять свое приложение на основе ряда тестов, основанных на производительности, прежде чем выпускать его в открытый доступ. ,

Android SDK поставляется с широким набором инструментов, которые вы можете использовать для конкретного тестирования производительности вашего приложения. В этом разделе мы рассмотрим некоторые из них, которые вы определенно захотите использовать; Тем не менее, есть много других, которые стоит исследовать (вы найдете больше информации в официальных документах по Android ).

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

Прежде чем мы начнем, стоит отметить, что если вы все же обнаружите проблему с производительностью вашего приложения, рекомендуется подготовить время для кода, прежде чем пытаться решить эту проблему. Затем вы можете снова рассчитать время выполнения кода, если вы уверены, что исправили проблему, и вы сможете точно увидеть , как ваши изменения повлияли на производительность вашего приложения.

Вы можете синхронизировать свой код с помощью TraceView, к которому вы получаете доступ, выбрав вкладку DDMS в Android Device Monitor, затем выбрав устройство и процесс, который вы хотите профилировать, и щелкнув по значку « Start Method Profiling» (где курсор расположен в следующем Скриншот).

В мониторах устройства Android выберите вкладку «DDMS».

На этом этапе вы можете выбрать либо профилирование на основе трассировки (отслеживает вход и выход каждого метода), либо профилирование на основе выборки (собирает стеки вызовов с указанной вами частотой). После того, как вы сделали свой выбор, потратьте некоторое время на взаимодействие с вашим приложением. Когда вы будете готовы увидеть результаты, вы можете загрузить файл трассировки в программу просмотра, щелкнув значок профилирования метода Stop . Файл трассировки отображает выполнение каждого потока в виде отдельной строки, поэтому вы можете точно определить, сколько времени занимает выполнение каждой части вашего проекта.

Когда система рисует пользовательский интерфейс вашего приложения, она начинается с контейнера самого высокого уровня, а затем проходит через иерархию ваших представлений, потенциально рисуя представления друг над другом в процессе, известном как перерисовка. Хотя определенное количество перерасхода неизбежно, вы можете сократить время, необходимое приложению для рендеринга, выявляя и удаляя любые случаи чрезмерного или ненужного перерасчета.

Если у вас устройство под управлением Android 4.2 или выше, вы можете проверить величину перерасхода в любом приложении, установленном на этом устройстве, выбрав « Настройки»> «Параметры разработчика»> «Отладка перегрузки графического процессора»> «Выбрать области перерисовки» . Затем система добавит цветное наложение в каждую область экрана, указывая количество раз, когда каждый пиксель был нарисован:

  • Нет цвета Этот пиксель был нарисован один раз.

  • Синий. Перерасход 1х. Эти пиксели были раскрашены дважды.

  • Зеленый. Перерасход в 2 раза.

  • Светло-красный. Перерасход 3х.

  • Темно-красный. Перерасход в 4 раза или больше.

Большинство приложений имеют некоторый уровень перерисовки, но если вы обнаружите большие области перерисовки в своем приложении, вам следует посмотреть, есть ли способ уменьшить количество перерисовок каждого пикселя, и одним из эффективных методов является удаление ненужных представлений. ,

Средство просмотра иерархии Android Device Monitor обеспечивает общий обзор всей иерархии представлений вашего приложения, что может помочь вам определить представления, которые ничего не вносят в окончательное визуализированное изображение, которое видит пользователь на экране.

Чтобы запустить средство просмотра иерархии, нажмите кнопку «Просмотр иерархии» на Android-мониторе Android, а затем выберите устройство и действие, которое вы хотите проверить, а затем нажмите синий значок Загрузить иерархию представлений в виде дерева .

В Android Device Monitor выберите кнопку «Вид иерархии», а затем - «Загрузить иерархию представлений» в виде дерева.

Вы также можете экспортировать вывод средства просмотра иерархии как документ Photoshop. Это особенно эффективный метод для определения представлений, которые ничего не вносят в конечный пользовательский интерфейс, поскольку каждое представление отображается в виде отдельного слоя Photoshop, то есть вы можете скрывать и раскрывать каждый слой и точно видеть, какое влияние это окажет на конечный интерфейс. изображение, которое пользователь видит на экране.

Чтобы создать документ PSD, просто нажмите кнопку Захватить слои окна в виде значка документа Photoshop .

Сборка мусора (GC) — это нормальное поведение системы, которое важно для обеспечения бесперебойной работы вашего приложения и устройства в целом.

Однако, если ваше приложение не управляет памятью должным образом — может быть, это утечка памяти или выделение большого количества объектов за короткий промежуток времени — тогда это может вызвать более частые события GC, которые также работают дольше. Вы можете посмотреть, какие именно события GC происходят в вашем приложении, в главном окне Android Studio; откройте вкладку « Монитор Android » в нижней части окна и перейдите на вкладку « Мониторы ». Инструмент «Монитор памяти» автоматически начнет запись использования памяти вашего приложения.

Выберите вкладку «Монитор Android» в нижней части главного окна Android Studio, а затем вкладку «Мониторы».

Если вы продолжаете взаимодействовать с вашим приложением, то в конечном итоге вы увидите внезапное уменьшение объема выделенной памяти, что указывает на то, что произошло событие GC. Повторите этот процесс, убедившись, что вы исследуете различные области своего приложения и посмотрите, как это влияет на события GC. Если вы обнаружите какое-либо странное поведение GC, вам нужно будет продолжить исследование, так как это может указывать на проблему с тем, как ваше приложение использует память.

Есть несколько инструментов, которые вы можете использовать для сбора дополнительной информации об использовании памяти вашим приложением. Во-первых, вы можете использовать вкладку « Куча » на Android Device Monitor, чтобы увидеть, сколько памяти используется каждым процессом, что помечает все процессы, которые поглощают доступную память.

Чтобы использовать инструмент «Куча», выберите вкладку « DDMS » на Android Device Monitor, затем процесс, который вы хотите проверить, и затем нажмите кнопку « Обновить кучу» . На вкладке « Куча » не будут отображаться никакие данные до тех пор, пока не произойдет событие GC, но если вы чувствуете нетерпение, вы всегда можете вызвать событие GC, нажав кнопку Cause GC .

Откройте инструмент кучи, выбрав DDMS Heap

Еще одним инструментом, который может помочь вам собрать информацию об использовании памяти вашего приложения, является Allocation Tracker, который позволяет вам точно определить, какие объекты ваше приложение выделяет в памяти. Чтобы использовать Allocation Tracker, выберите вкладку DDMS на мониторе Android-устройства, затем Allocation Tracker и процесс, который вы хотите проверить.

Нажмите кнопку « Начать отслеживание» и потратьте некоторое время на взаимодействие с вашим приложением, особенно с теми частями, которые, как вы подозреваете, могут вызывать проблемы с управлением памятью вашего приложения. Чтобы просмотреть все данные, собранные Allocation Tracker за период выборки, нажмите кнопку « Start Tracking» , а затем кнопку « Get Allocations» .

Понимание вашей аудитории является важной частью создания успешного приложения.

Доступ к данным о том, кто является вашей аудиторией и как они используют ваше приложение, означает, что вы можете принимать более обоснованные решения о том, как развить успех вашего приложения, и улучшать те области, в которых ваше приложение работает не так хорошо.

Сбор такого рода пользовательских данных особенно полезен для того, чтобы вы могли определять тенденции в разных сегментах вашей аудитории. Например, вы можете решить, что определенный сегмент вашей аудитории особенно ценен — ​​может быть, они занимают самый большой процент покупок в приложении, или они тратят на ваше приложение больше среднего времени. Вооружившись этой информацией, вы можете предпринять дополнительные шаги для поддержки этих пользователей, убедившись, что ваши самые ценные пользователи остаются вовлеченными в ваше приложение.

На другом конце шкалы вы можете обнаружить область, в которой ваше приложение испытывает трудности. Например, возможно, пользователи, работающие с определенной версией Android, имеют значительно более низкий уровень вовлеченности или имеют больше шансов удалить ваше приложение. В этом сценарии вы можете протестировать свое приложение на этой конкретной версии Android, чтобы увидеть, есть ли ошибка или любая другая ошибка, которая может испортить взаимодействие с пользователем в этом разделе вашей пользовательской базы.

По сути, чем больше данных вы можете собрать о вашей аудитории и ее поведении, тем больше у вас шансов порадовать своего существующего пользователя, привлечь новых пользователей и, как правило, предоставить всесторонний отличный опыт всем, кто вступает в контакт с вашим приложением.

В этом разделе я расскажу о двух сервисах, которые могут предоставить вам всю необходимую информацию: Firebase Analytics и консоль разработчика Google Play.

Вы можете использовать Firebase Analytics для сбора данных о ваших пользователях, таких как возраст, пол и местоположение, а также информация о более чем 500 событиях в приложении. Вы даже можете определить свои собственные события, если это необходимо.

Чтобы добавить Firebase Analytics в свой проект, вам понадобятся сервисы Google Play 10.0.1 или выше и Google Repository версии 26 или выше, поэтому откройте SDK Manager и убедитесь, что эти компоненты обновлены. Вам также нужно будет запустить Android Studio 1.5 или выше, и получить бесплатную учетную запись Firebase.

Если вы используете Android 2.2 или более позднюю версию, вы можете подключить свое приложение к Firebase Analytics с помощью Firebase Assistant. Откройте Android Studio, запустите соответствующий проект и:

  • Выберите Инструменты> Firebase на панели инструментов Android Studio.

Запустите Firebase Assistant, выбрав «Инструменты» на панели инструментов Android Studio, а затем «Firebase».

  • Нажмите, чтобы развернуть раздел « Аналитика », затем выберите ссылку « Записать событие в Google Analytics» .

  • Нажмите кнопку Подключиться к Firebase .

  • В появившемся диалоговом окне выберите создание нового проекта Firebase.

  • Нажмите кнопку Подключиться к Firebase .

  • Через несколько секунд вы увидите сообщение о подключении .

  • Нажмите кнопку Добавить аналитику в свое приложение .

  • В последующем диалоге нажмите Принять изменения .

Вот и все! Теперь вы можете просматривать все данные Firebase Analytics, войдя в консоль Firebase, выбрав проект, который вы хотите изучить, и затем выбрав Analytics . Эти данные будут периодически обновляться в течение дня.

Вы также можете получить ценную информацию о производительности вашего приложения и его поведении с помощью консоли разработчика.

Чтобы просмотреть эти данные, войдите в свою учетную запись консоли разработчика, выберите приложение, которое вы хотите проверить, а затем выберите « Панель инструментов» в меню слева.

Консоль разработчика содержит много полезной информации, поэтому стоит потратить время на подробное изучение ее различных разделов. Однако есть несколько областей, которые могут представлять особый интерес:

  • Производительность по приобретению пользователей. В этом разделе представлена ​​подробная информация о том, как пользователи находят список вашего приложения в Google Play, например, процент пользователей, которые попали на вашу страницу по ссылке с тегом UTM , объявление AdWords, или количество людей, которые просто нашли ваше приложение, просмотрев магазин Google Play.

  • Финансы. Если вы внедрили стратегию монетизации, например, продукты в приложении или возможность подписки, вы можете использовать Консоль разработчика для проверки финансовых показателей вашего приложения. Раздел « Финансы » содержит такую ​​информацию, как средняя сумма, которую каждый платящий пользователь инвестирует в ваше приложение, сколько дохода генерирует каждый продукт, который вы предлагаете через свое приложение, и сколько тратит каждый раздел вашей пользовательской базы на основе таких факторов, как как их географическое положение, возраст и версия Android, которую они используют.

  • Сбои и ANR. В этом разделе содержатся все данные, которые пользователи отправляли о сбоях приложения и ошибках приложения (ANR), что дает вам возможность выявить и устранить любые проблемы, которые могут возникнуть в вашем приложении, прежде чем пользователи начнут оставлять вам отрицательные отзывы в Google Play. Обратите внимание, что сбои, о которых пользователи не сообщают, не появятся в консоли разработчика.

Вы также можете рассмотреть возможность загрузки приложения консоли разработчика Google Play , которое позволяет просматривать всю эту информацию на ходу.

В этой статье мы рассмотрели шесть вещей, которые вы должны и не должны делать при разработке приложения для Android. Каковы ваши золотые правила для создания отличного пользовательского опыта? Оставьте комментарий ниже и дайте нам знать.

А пока посмотрите другие наши курсы и учебники по программированию на Android!

  • Android SDK
    Как выделить приложение Android
    Ашраф Хатхибелагал
  • Android SDK
    Создать Android Cardboard 360 Video Viewer
    Пол Требилкокс-Руис
  • Android SDK
    Java против Kotlin: стоит ли использовать Kotlin для разработки под Android?