В этом руководстве описаны компоненты, составляющие текущую задачу, в форме секундомера. Текущая задача отображает живую карточку на временной шкале до тех пор, пока пользователь занят задачей, и позволяет ему входить и выходить из живой карточки по мере необходимости.
Попутно вы также узнаете советы по дизайну, разработке и распространению, которые важны для создания собственной стеклянной посуды.
Прежде чем вы начнете
Полный исходный код секундомера доступен на Github. Прежде чем начать, импортируйте его в Android Studio, поскольку в этом руководстве он часто упоминается.
- На экране быстрого запуска нажмите «Извлечь из контроля версий» > Git .
- Скопируйте URL-адрес клона из секундомера .
- Вставьте URL-адрес клона в URL-адрес репозитория Vcs и нажмите «Клонировать» .
- Нажмите Да на следующем экране.
- Нажмите ОК на следующем экране.
- Создайте проект и запустите его на подключенном стекле, нажав кнопку «Воспроизвести» . Обязательно проверьте
README
образца для получения подробной информации о вызове.
Что вы узнаете
Вы узнаете, как использовать компоненты из Android SDK для создания основной части текущей задачи секундомера, а затем GDK для подключения к Glass. Вот список тем, которые вы узнаете:
- Создание пользовательского представления для рисования на живой карте
- Создание сервиса для управления живой картой
- Предоставление меню, позволяющего пользователям удалять живую карточку с временной шкалы.
- Объявление голосового триггера для запуска секундомера из главного голосового меню
Дизайн
Прежде чем приступить к разработке, потратьте некоторое время и спроектируйте свою стеклянную посуду. Это даст вам хорошее представление о том, какие потоки пользовательского интерфейса лучше всего работают на Glass, какую голосовую команду вы будете использовать и как будут выглядеть ваши карты.
Конечно, проектирование Glassware — это итеративный процесс, и некоторые вещи, которые вы проектируете сейчас, изменятся, но выполнение значительной части этой работы на начальном этапе имеет решающее значение для создания отличного опыта.
поток пользовательского интерфейса
Проектирование пользовательского интерфейса — это простое упражнение, позволяющее визуализировать вашу Glassware перед написанием строки кода. Мы постоянно делаем это со стеклянной посудой, которую создаем!
Давайте рассмотрим основные элементы пользовательского интерфейса секундомера, чтобы вы получили представление о том, как работает пользовательский интерфейс и насколько полезным может быть этот процесс при создании собственной стеклянной посуды.
Основной интерфейс
Секундомер содержит только один основной поток, поскольку это довольно простой процесс.
Когда пользователи запускают Glassware, им отображается трехсекундный интервал обратного отсчета перед тем, как включается реальный секундомер. Затем секундомер отсчитывает время до тех пор, пока пользователь не удалит его с временной шкалы с помощью пункта меню «Стоп» .
Голосовая команда
Вам следует придумать голосовую команду на ранних стадиях процесса проектирования. Голосовые команды позволяют пользователям при необходимости запускать Glassware из голосового меню Glass Home (карта часов) и играют важную роль в разработке Glassware.
Например, команда «Опубликовать обновление» хорошо работает в модели «выстрелил и забыл», когда пользователи произносят текст, а Glassware обрабатывает его без дальнейшего вмешательства пользователя. Это позволяет пользователям быстро вернуться к тому, что они делают.
С другой стороны, для чего-то вроде «Играть в игру» обычно требуется, чтобы пользователи отображались на заставке, чтобы они могли сначала сориентироваться. Поскольку эта голосовая команда, скорее всего, запускает погружение, вы можете ожидать, что пользователи увидят дополнительные экраны и меню для запуска игры. Немедленное погружение пользователей в игровой процесс сразу после голосовой команды обычно является плохим опытом для игр.
Секундомер использует голосовую команду «Запустить секундомер» . После того, как пользователи вызывают голосовую команду, секундомер сразу же запускается после короткого промежуточного экрана обратного отсчета, что лучше, чем предоставление пункта меню для запуска. Для текущих задач вы, как правило, захотите сосредоточиться на том, чтобы как можно быстрее привлечь пользователей к работе там, где это имеет смысл.
Расклады карт
Независимо от того, создаете ли вы погружения или живые карты, вам следует по возможности использовать макеты CardBuilder
или XML .
Зачастую вам все равно придется создать свой собственный макет, поэтому следуйте нашим рекомендациям по пользовательскому интерфейсу , чтобы получить наиболее привлекательную стеклянную посуду.
Секундомер соответствует общим рекомендациям по макету, но имеет собственные макеты пользовательского интерфейса с использованием стандартных компонентов Android, таких как представления и макеты.
Развивать
Для разработки живых карточек вы используете те же инструменты, которые вы используете для разработки Android, для создания основной части Glassware, а затем используете API-интерфейсы в надстройке GDK для доступа к специфичным для Glass функциям, таким как живые карточки и голосовые команды.
Вы часто будете использовать общие компоненты Android для создания Glassware, но имейте в виду, что некоторые концепции иногда различаются. Например, вы отображаете живые карточки и управляете ими с помощью службы Android, что не является типичным способом использования служб в традиционных приложениях Android. Другой пример: живые карточки не имеют собственного контекста пользовательского интерфейса, поэтому вам придется использовать действие оболочки, которое отображает меню для живой карточки. Далее в этом руководстве вы узнаете, как создаются эти компоненты.
В остальных разделах «Разработка» рассказывается о структуре секундомера и основных компонентах проекта, которые вы импортировали ранее. Полезно иметь Android Studio уже сейчас, чтобы вы могли следовать инструкциям. Сам исходный код прокомментирован, поэтому в этом разделе рассматривается общее назначение каждого файла и полезные советы, которые вы можете применить к своей собственной стеклянной посуде.
Голосовая команда
Вы создаете голосовые команды с помощью файла ресурсов XML, в котором указана используемая вами команда, а затем путем указания ресурса XML в файле AndroidManifest.xml
.
Следующие файлы связаны с голосовой командой «Секундомер»:
-
res/xml/voice_trigger_start.xml
— объявляет используемую голосовую команду. -
AndroidManifest.xml
— объявляет, что служба Live Card запускается при произнесении голосовой команды.
Просмотр обратного отсчета
Секундомер показывает обратный отсчет перед фактической записью времени, чтобы предупредить пользователей о том, что время скоро истечет.
Следующие файлы связаны с представлением обратного отсчета:
-
res/layout/card_countdown.xml
— определяет макет для средства просмотра обратного отсчета. -
src/com/google/android/glass/sample/stopwatch/CountDownView.java
— определяет вид обратного отсчета.
Вид хронометра
Это основной вид секундомера. Он отображает время, прошедшее с момента завершения межстраничного обратного отсчета. Следующие файлы связаны с представлением хронометра:
-
res/layout/card_chronometer.xml
— определяет макет представления секундомера. -
src/com/google/android/glass/sample/stopwatch/ChronometerDrawer.java
— определяет способ визуализации представления. Служба живых карточек вызывает этот класс для обращения к службе живых карточек. -
src/com/google/android/glass/sample/stopwatch/ChronometerView.java
— представление секундомера, использующее предыдущий макет в качестве пользовательского интерфейса.
Сервис секундомера
Это служба, которая управляет жизненным циклом и рендерингом живой карты. С этой службой связаны следующие файлы:
-
src/com/google/android/glass/sample/stopwatch/StopwatchService.java
— управляет активной карточкой секундомера и управляет жизненным циклом службы.
Меню действий
Живые карточки не имеют собственного контекста пользовательского интерфейса для отображения меню, поскольку они отображают свои пользовательские интерфейсы в контексте временной шкалы.
Чтобы обойти это ограничение, вы создаете полупрозрачное действие, которое появляется поверх временной шкалы, а затем отображаете меню этого действия сразу после того, как пользователи нажимают на живую карточку.
-
src/com/google/android/glass/sample/stopwatch/MenuActivity.java
— объявляет полупрозрачное действие меню, которое немедленно отображает меню, когда действие становится видимым. -
res/values/styles.xml
— определяет полупрозрачный стиль, применяемый к меню. -
res/menu/stopwatch.xml
— ресурс меню, содержащий обязательный пункт меню «Стоп» .
Android-манифест
Файл AndroidManifest.xml
описывает основные компоненты вашего Glassware, чтобы система знала, как его запускать. Манифест для Шарад декларирует следующее:
- Значок и название стеклянной посуды. Glass отображает эту информацию в главном сенсорном меню, если на одну и ту же голосовую команду отвечает более одного Glassware.
- Все услуги и действия, связанные с Секундомером. Это необходимо, чтобы система знала, как запустить компоненты вашей Glassware.
- Голосовая команда и фильтр намерений, который запускает службу Live Card при произнесении голосовой команды.
- Код версии для Glassware. Этот код необходимо обновлять (как правило, также и название версии) каждый раз, когда новая версия этого APK загружается в MyGlass.