Статьи

Как добавить несколько функций мгновенного приложения в ваше приложение

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

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

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

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

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

Если вы завершили второй выпуск, то ваша версия проекта MyLocation в настоящее время должна быть разделена на следующие модули:

  • MyLocation-приложение. Устанавливаемый модуль приложения проекта, также известный как модуль APK.
  • MyLocation базы. Модуль базовых функций, который содержит весь общий код и ресурсы, используемые во всех модулях проекта. Этот модуль содержит функцию MapsActivity которая может работать независимо от устанавливаемого приложения и будет запускаться на устройстве пользователя при попытке доступа к URL-адресу www.example.com/maps .
  • MyLocation-instantapp. Модуль мгновенного приложения, который отвечает за преобразование каждого из функциональных модулей вашего проекта в Instant App APK.

Если ваша версия MyLocation выглядит не так, то вы можете скачать эту версию с GitHub .

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

Во-первых, на момент написания статьи было возможно разрабатывать только мгновенные приложения с использованием Android Studio 3.0 Preview и сборок Canary. Всякий раз, когда вы работаете с ранними сборками доступа, вы должны быть готовы к появлению ошибок, отсутствующей функциональности и других, как правило, странных действий, которые будут (надеюсь!) Устранены задолго до стабильной версии. Тем не менее, работа с несколькими мгновенными функциональными модулями приложения представляется особенно темпераментной в сборках Android Studio 3.0 Canary.

Чтобы снизить риск возникновения каких-либо проблем, вы должны дважды проверить, что у вас установлена ​​самая последняя сборка Canary, прежде чем пытаться добавить второй функциональный модуль в проект MyLocation. Однако, если ваш проект неожиданно начинает выдавать ошибки или отказывается от компиляции, то в конце этой статьи вы найдете раздел «Устранение неполадок», содержащий обходные пути и возможные исправления для всех проблем, с которыми вы можете столкнуться при добавлении дополнительных функциональных модулей. к вашему проекту.

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

Первый шаг к превращению MyLocation в многофункциональное мгновенное приложение — это создание нашего функционального модуля:

  • Откройте проект MyLocation в Android Studio.
  • Выберите « Создать»> «Новый модуль» на панели инструментов Android Studio.
  • Выберите Feature Module и нажмите Next .
  • В поле Имя модуля введите mylocation-directions .
  • Убедитесь, что минимальный SDK — это то же значение, которое вы использовали в другом месте вашего проекта, и нажмите кнопку Далее .

Возможно, мы не реализуем какую-либо реальную функциональность в нашем модуле mylocation-directions, но нам все еще нужно визуальное подтверждение того, что этот модуль загружен правильно, поэтому выберите шаблон по вашему выбору (я выбираю « Основные действия» ) и нажмите « Далее» . Я собираюсь сопоставить этот функциональный модуль с www.example.com/directions , поэтому начните с ввода example.com в поле « Мгновенный URL-адрес приложения» . Откройте раскрывающийся список « Instant App URL Route Type» и выберите « Path» , « pathPrefix» или « pathPattern» . Поскольку я хочу, чтобы этот модуль отвечал только на www.example.com/directions , я собираюсь выбрать путь .

В Мгновенном маршруте URL-адреса приложения введите / directions . Это дает нам наш полный URL: example.com/directions. Измените имя действия на DirectionsActivity . Убедитесь, что для имени макета установлено значение activity_directions , и нажмите кнопку « Готово» .

Создайте второй функциональный модуль с помощью мастера создания встроенного модуля Android Studios

Как вы, возможно , уже заметили, проект, который поддерживает функцию мгновенных приложений, неизбежно будет состоять из нескольких модулей. Если эти модули будут работать вместе для создания нескольких различных APK-файлов Instant App, а также вашего «обычного» устанавливаемого APK-файла, они должны знать друг друга, а это значит, что вам нужно добавить необходимые зависимости в файл build.gradle каждого модуля. ,

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

Чтобы дать вам общее представление, каждый раз, когда вы создаете функциональный модуль, вы должны сообщить своему проекту, что:

  • Этот функциональный модуль зависит от базового функционального модуля вашего проекта, используя выражение implementation project .
  • Базовый функциональный модуль вашего проекта зависит от этого функционального модуля с использованием выражения feature project .
  • Мгновенный модуль приложения вашего проекта зависит от этого функционального модуля с использованием выражения implementation project .

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

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

Если вы build.gradle файл build.gradle вашего функционального модуля ( mylocation-directions ), то увидите, что Android Studio уже добавила базовый функциональный модуль ( mylocation-base ) в качестве зависимости:

1
2
3
4
5
6
7
dependencies {
   implementation project(‘:mylocation-base’)
 
}

Независимо от того, сколько дополнительных функциональных модулей вы создаете, все их файлы build.gradle будут содержать одно и то же объявление: implementation project(':mylocation-base') .

Ваш базовый функциональный модуль также должен знать обо всех ваших дополнительных функциональных модулях.

Если вы откроете файл mylocation-base вашего mylocation-base , то увидите, что Android Studio снова выполнила эту работу за вас и объявила mylocation-directions как зависимость:

1
2
3
4
5
dependencies {
   feature project(«:mylocation-directions»)

Любые дополнительные функциональные модули, которые вы создадите, также будут автоматически добавлены в этот раздел, например:

1
2
3
4
5
6
7
dependencies {
   feature project(«:mylocation-directions»)
   feature project(«:mylocation-share»)
   feature project(«:mylocation-search»)

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

implementation project(':mylocation-directions')

Мгновенные приложения — это автономные компоненты, которые могут функционировать независимо от устанавливаемого приложения. В контексте нашего приложения MyLocation это означает, что mylocation-directions может функционировать без mylocation-app . Однако обратное неверно: mylocation-app не может функционировать без mylocation-directions .

Устанавливаемый APK должен содержать все модули вашего проекта, включая все функциональные модули вашего приложения. Поэтому нам нужно дать APK- mylocation-app ( mylocation-app ) информацию о нашем новом функциональном модуле ( mylocation-directions ).

Откройте mylocation-app build.gradle и укажите его в mylocation-directions :

1
2
3
4
5
6
7
8
dependencies {
   implementation project(‘:mylocation-base’)
 
//Add the following line//
 
   implementation project(‘:mylocation-directions’)
 
}

Вам нужно будет повторить этот шаг для каждого mylocation-app вами функционального модуля, поэтому, если вы продолжите добавлять функциональные модули, mylocation-app build.gradle может выглядеть примерно так:

1
2
3
4
5
6
7
dependencies {
   implementation project(‘:mylocation-base’)
   implementation project(‘:mylocation-directions’)
   implementation project(«:mylocation-share»)
   implementation project(«:mylocation-search»)
 
}

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

Откройте файл mylocation-instantapp модуля build.gradle и объявите mylocation-base как зависимость, используя выражение implementation project :

1
2
3
4
5
dependencies {
   implementation project(‘:mylocation-base’)
   implementation project(‘:mylocation-directions’)
 
}

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

Проект, который поддерживает мгновенные приложения, должен объявить свой атрибут applicationId только один раз в модуле APK (приложение). Однако, чтобы убедиться, что этот единственный атрибут applicationId правильно распространяется во всех ваших функциональных модулях, необходимо добавить модуль APK в качестве зависимости базового функционального модуля.

Откройте файл mylocation-base модуля mylocation-base и добавьте mylocation-app в качестве зависимости, используя выражение application project :

1
2
3
4
5
6
7
8
dependencies {
 
//Add the following line//
 
application project(«:mylocation-app»)

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

Хотя этот шаг не является обязательным, в настоящее время наш функциональный модуль содержит некоторые ненужные файлы и каталоги, поэтому давайте следуем рекомендациям и оптимизируем наш mylocation-directions :

  • Переключитесь в представление проекта Android Studio.
  • Откройте модуль mylocation-directions .
  • Удалите каталог src/androidTest .
  • Удалите каталог src/test .

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

  • Выберите « Инструменты»> «Ассистент ссылок на приложения» на панели инструментов Android Studio.
  • Нажмите кнопку « Открыть редактор URL-адресов» .
  • В появившейся таблице выберите строку DirectionsActivity и щелкните маленький значок карандаша.
В редакторе сопоставлений URL-адреса выберите свой DirectionsActivity.
  • Выберите переключатель http .
  • Убедитесь, что в раскрывающемся меню выбран путь , а затем введите / указания в текстовом поле.
  • Убедитесь, что DirectionsActivity выбран в раскрывающемся меню « Активность» , и нажмите кнопку « ОК» .
  • Вернувшись на панель « App Links Assistant» , нажмите кнопку « Выбрать действие» .
  • При появлении запроса выберите DirectionsActivity, а затем нажмите « Вставить код» .

Теперь у вас есть два функциональных модуля, которые сопоставлены с различными URL-адресами.

В настоящее время наша конфигурация запуска настроена на симуляцию пользователя, который нажимает на ссылку www.example.com/maps , которая запустит MapsActivity , и, соответственно, наш mylocation-base . Однако, если мы собираемся протестировать наш дополнительный функциональный модуль, нам нужно будет смоделировать пользователя, нажав www.example.com/directions , чтобы запустить нашу DirectionsActivity . Это требует от нас обновления конфигурации времени выполнения:

  • Запустите AVD, который вы использовали для тестирования своего проекта mylocation, и убедитесь, что вы вошли в учетную запись Google. Если вы не вошли в учетную запись, откройте панель запуска AVD, выберите приложение Google , а затем введите свой адрес Gmail и пароль.
  • Дважды проверьте, что приложение MyLocation не установлено на этом устройстве. Если это так, то удалите его, перетащив его на значок удаления устройства.
  • Вернитесь в главное окно Android Studio и выберите « Выполнить»> «Редактировать конфигурации».
  • В левом меню выберите mylocation-instantapp .
  • В поле URL введите URL, который вы хотите протестировать, в данном случае это http://www.example.com/directions .
  • Нажмите Применить , затем ОК .
  • На панели инструментов Android Studio нажмите Запустить …
  • Выберите mylocation-instantapp .
  • Выберите целевое устройство и нажмите кнопку « ОК» .

Ваша DirectionsActivity теперь должна появиться на вашем AVD. Поздравляем, вы только что создали многофункциональное мгновенное приложение!

Необходимость бороться с ошибками и другим странным поведением — все это часть удовольствия от работы с ранними сборками доступа Android Studio.

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

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

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

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

  • Выберите « Выполнить»> «Выполнить mylocation-instantapp» на панели инструментов Android Studio.
  • Прежде чем Android Studio сможет завершить развертывание приложения, выберите « Выполнить»> «Стоп» .
  • Выберите Run> Run mylocation-instantapp еще раз, но на этот раз позвольте операции завершиться. Ваше мгновенное приложение должно теперь развернуться без проблем.

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

  • Выберите « Выполнить»> «Редактировать конфигурации» на панели инструментов Android Studio.
  • Выберите mylocation-instantapp в меню слева.
  • Выберите Мгновенное предоставление приложения (в нижней части этого окна).
  • Нажмите маленький значок карандаша.
  • Выберите Очистить подготовленный кеш устройств .
  • Нажмите « ОК» , затем « Применить» и « ОК» еще раз.

Если Android Studio жалуется на какие-либо проблемы, связанные с AAPT2 (например, отображение сообщения об ошибке сбоя ссылки AAPT2 ), вы, как правило, можете решить эти проблемы, отключив AAPT.

Чтобы отключить AAPT, откройте файл Gradle scripts/gradle.properties вашего проекта и добавьте следующий текст:

1
android.enableAapt2=false

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

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

Если Android Studio действительно начинает жаловаться на атрибут android:splitName , то дважды проверьте, что вы используете последнюю версию Android Studio 3.0. Вы также можете решить эту проблему, очистив, а затем перестроив проект.

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

  • Очистите и восстановите ваш проект. Выберите « Построить»> «Очистить проект» на панели инструментов Android Studio, затем выберите «Очистить»> «Восстановить проект» .
  • Попробуйте другой AVD. Если вы сталкиваетесь с ошибкой всякий раз, когда вы пытаетесь развернуть ваше мгновенное приложение на AVD, то вам следует проверить, сохраняется ли эта проблема, когда вы используете AVD с другими спецификациями. Хотя отказ от AVD без хотя бы проверки того, почему ваш проект отказывается запускаться на этом устройстве, не является чем-то, что вы захотите перенести в свои производственные приложения, вы, как правило, можете немного изменить правила, когда экспериментируете. с новой функцией в ранней версии Android Studio. В частности, вы можете добиться большего успеха при тестировании вашего мгновенного приложения на AVD с Android O, по сравнению с AVD с более ранней версией Android.
  • Убедитесь, что вы не пропустили обновление. На момент написания статьи команда Android Studio выпускала новую сборку Canary еженедельно, поэтому всегда стоит проверять, установлена ​​ли у вас самая последняя версия Android Studio . Теоретически, каждый новый выпуск должен исправлять все проблемы, обнаруженные в предыдущей сборке, поэтому, если вы не используете последнюю версию, возможно, проблема, с которой вы столкнулись, уже была исправлена ​​в более поздней сборке.

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

Вы можете выполнить все эти задачи через консоль Google Play, и если вы когда-либо выпускали «обычное» устанавливаемое приложение, тогда этот процесс должен показаться вам знакомым:

  • Перейдите к игровой консоли .
  • Загрузите заявку, если вы еще этого не сделали.
  • Откройте боковое меню Play Console и выберите « Все приложения» .
  • Выберите приложение, которое вы хотите протестировать или опубликовать.
  • Выберите Android Instant Apps из меню слева.

Настройте тестирование и распространение ваших мгновенных компонентов приложения, выбрав Android Instant Apps в левом меню Play Consoles.

Затем вы можете выбрать один из следующих типов дорожек, в зависимости от того, хотите ли вы протестировать или опубликовать свое приложение:

  • Мгновенный предварительный релиз приложения. Этот раздел содержит все параметры, необходимые для отправки предварительных версий кандидатам для тестировщиков. Обратите внимание, что для использования этих настроек вам нужно создать хотя бы один список тестеров; Если вы не выполнили этот шаг, вы можете создать список, выбрав « Настройки»> «Управление тестерами»> «Создать список» в боковом меню Play Console.
  • Мгновенная разработка приложений. Этот раздел позволяет вам развернуть ваше приложение для ваших тестеров. Опять же, вам нужно создать хотя бы один список тестеров, чтобы использовать настройки в этом разделе.
  • Мгновенное производство приложений. Если вы довольны своим приложением, этот раздел содержит все необходимое для подготовки, просмотра и публикации приложения в магазине Google Play.

Когда вы пытаетесь опубликовать проект, который имеет мгновенную поддержку приложения, вы можете столкнуться со следующей ошибкой:

Ваш сайт « www.example.com » не был связан с помощью протокола Digital Assets Link для вашего приложения.

Если это происходит, то проверьте, что:

  • Ваш файл Digital Asset Links ( assetlinks.json ) является общедоступным и не защищен какой-либо формой аутентификации, внутренним IP-адресом или брандмауэром.
  • Все URL-адреса, сопоставленные с вашими функциональными модулями, доступны извне. Если ваше приложение использует какие-либо URL-адреса, доступные только для внутреннего использования, вы не сможете загрузить свое приложение в консоль Google Play.
  • Используемый домен еще не связан с другим приложением, поскольку в настоящее время несколько мгновенных приложений не могут использовать один и тот же домен.
  • Ваш сервер имеет действительный сертификат SSL от публичного или доверенного центра сертификации.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • неявные запросы на установку
  • явные запросы на установку

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

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

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

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

Во всех явных приглашениях к установке следует использовать значок «Получить приложение» в Material Design , а если вы включите какой-либо вспомогательный текст, тщательно подбирайте слова, чтобы не создавать впечатление, что ваше мгновенное приложение каким-либо образом является неполной или меньшей версией вашего «настоящего». приложение — так что не говорите такие вещи, как обновление сейчас или установите полное приложение !

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

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

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

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

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

А пока посмотрите другие наши посты о разработке приложений для Android!

  • Android SDK
    Введение в компоненты архитектуры Android
    Жестяная мегали
  • Машинное обучение
    Создание интеллектуальных чат-ботов на Android с IBM Watson
    Ашраф Хатхибелагал
  • Android SDK
    Java против Kotlin: стоит ли использовать Kotlin для разработки под Android?
  • Котлин
    Kotlin From Scratch: переменные, базовые типы и массивы
    Чике Мгбемена
  • Android SDK
    Совет: пишите более чистый код с помощью Kotlin SAM Conversions
    Ашраф Хатхибелагал
  • Android SDK
    Android O: проверка номера телефона с помощью SMS-токенов
    Чике Мгбемена