- Как на Android работать одновременно в нескольких приложениях
- Быстрое переключение между 2-мя последними приложениями
- Разделить экран на 2 части.
- 1 способ
- 2 способ
- Ярлык, позволяющий запускать 2 программы одновременно
- Режим «картинка в картинке»
- Несколько «плавающих» окон.
- Многооконный режим: дополнительное конкурентное преимущество для Android-приложений
- Обзор
- Предварительные сведения
- Программная архитектура
- Управление Activity в Lollipop
- Управление окнами в Lollipop
- Проблемы многооконного режима
- Поддержка многооконного режима в Android M
- Пример: Cornerstone
- Итоги
Как на Android работать одновременно в нескольких приложениях
В век технологий необходимо все успевать и быть на максимум продвинутым. По этой причине приходится часто переключаться из одного приложения на другое. Для работы сразу с несколькими приложениями есть масса способов и фишек, о которых мало кто знает. Но сейчас рассмотрим только основные.
Быстрое переключение между 2-мя последними приложениями
Если вам необходимо вернуться к недавним двум приложениям, то в этом поможет кнопка многозадачности. При ее длительном нажатии телефон позволяет вернуться на ранее открытые приложения.
Разделить экран на 2 части.
Ни для кого не секрет, что в телефонах появилась такая фишка, как разделение экрана на 2 части. Эта функция позволяет работать с каждым из них одновременно, но только в меньшем разрешении. При необходимости их размеры можно регулировать. Такое действие можно совершить несколькими способами.
1 способ
С помощью нажатия кнопки многозадачности у вас откроются ранее запущенные программы. Из этого списка вам предстоит выбрать одно приложение и за верхний конец оттащить в любую часть экрана. Так произойдет разделение. Снизу уже открытой программы всплывет список других. Останется только выбрать одну из них.
2 способ
Одно приложение открываем простым способом. После чего тапаем кнопку в виде квадрата, и откроется список уже ранее открытых приложений. Выбираем необходимую программу.
Ярлык, позволяющий запускать 2 программы одновременно
Для этого подойдет приложение Screens. Оно прекрасно заменяет процесс открытия двух окон.
С его помощью можно создать ярлык на рабочем столе, в котором будут находится 2 приложения. Их вы сможете выбрать заранее.
Для этого нужно скачать это приложение и открыть его. Там будут два окошка с «+». Нажимаем на них и выбираем программы. “Shortcut Name” – это кнопка, чтобы написать название. “Create Shortcut” – кнопка для создания ярлыка.
Режим «картинка в картинке»
Он синхронизируется с самыми распространенными приложениями. С его помощью можно смотреть видео и одновременно работать за другим приложением или читать.
Для этого необходимо:
- открыть видео или запустить приложение;
- нажать кнопку главного экрана или значок «картинка в картинке»;
- после чего откройте другую программу;
- чтобы выйти, смахните окошко вниз.
Несколько «плавающих» окон.
Floating Apps – это приложение, которое позволяет создавать более 2-х окон. Их можно менять местами, изменять их размеры и прозрачность. Стоит отметить, оно имеет много полезных фишек и подойдет любому человеку с его сферой деятельности.
В этой подборке выбраны только самые практичные способы. Каждый из них уникален и подойдет любому телефону на платформе Android. Вы можете выбрать один или несколько способов. Только для этого необходимо каждый из них испробовать. Ведь кому-то удобно работать сразу с 2-мя приложениями одновременно, а кому-то по отдельности.
Источник
Многооконный режим: дополнительное конкурентное преимущество для Android-приложений
Каждый, кто работал в многооконном режиме на Android-устройстве, может подтвердить, что в определенных ситуациях это очень удобно. Простой пример: чтение электронной книги с электронным же словарём. Особенно – на смартфоне или планшете с достаточно большим экраном.
Если пользователю придётся выбирать между двумя приложениями, схожими практически во всём, но различающимися поддержкой одновременной работы с несколькими окнами, неудивительно, что выберет он то, что такую поддержку обеспечивает.
Из статьи вы узнаете о многооконном режиме в Android, и о том, как использовать эту возможность при построении собственных приложений.
Обзор
Одновременная работа с несколькими окнами в Android – это интересная функция, которая способна выделить ваше приложение из множества других, дать ему дополнительное конкурентное преимущество. Многие OEM и ODM-производители, такие, как Samsung, Ramos и Huawei, подвергают базовую систему Android доработке. В частности, они внедряют поддержку многооконного режима. Делают они это для того, чтобы повысить привлекательность своих смартфонов и планшетов, выделить их из основной массы устройств, которые подобную функцию не поддерживают.
Сценарии использования многооконного режима
Предварительные сведения
В июне 2012-го года был представлен Cornerstone – первая платформа с открытым исходным кодом для организации многозадачной работы на Android. В августе 2012-го Samsung выпустила первый аппарат, поддерживающий работу в многооконном режиме. Начиная с 2013-го года и по наши дни, можно наблюдать взрывной рост решений для поддержки одновременной работы с несколькими окнами в Android.
В мае 2015-го года вышла Android M Developer Preview (сегодня, в июле, доступна уже Preview 2). Официальный релиз Android M (6.0) ожидается осенью 2015-го года. Кроме прочих новшеств Android M Preview 2 примечателен тем, что поддерживает многооконный режим.
Развитие решений для поддержки многозадачности в Android
Существуют два подхода к работе с несколькими окнами: это использование плавающих (floating) и закрепленных (docked) окон. Среди основных возможностей работы в многооконных режимах можно отметить открытие и закрытие окон (open/close), изменение их размера (resize) и взаимного расположения (swap). Открывая или закрывая окно, мы, соответственно, включаем или выключаем многооконный режим. Функция изменения размера предусматривает настройку размеров окон. Смена расположения окон – это действие, которое позволяет поменять их местами.
Режимы работы с несколькими окнами
В 2013-м году на рынке появилось множество решений, рассчитанных на работу с несколькими окнами. Они были разработаны OEM и ODM-производителями, независимыми поставщиками ПО и сообществом разработчиков программ с открытым исходным кодом. В таблице ниже вы можете найти сравнение различных технологий организации многооконной работы в среде Android.
Продукт | Cornerstone | Standout | Xposed | Tieto |
Описание | Фреймворк для организации многозадачной работы в ОС Android | Библиотека с открытым исходным кодом, которую можно использовать для создания приложений с плавающими окнами | Многооконное приложение, которое поддерживает закрепленные окна | Проект направлен на создание рабочей среды, напоминающей работу на настольном ПК |
Поддержка открытия, закрытия окон, изменения размера, раскрытия на весь экран | Да | Да | Да | Да |
Стиль окна | Закрепленное | Плавающее | Закрепленное | Закрепленное и плавающее |
Модификация кода | На уровне платформы Android | На уровне приложения | На уровне платформы Android | На уровне платформы Android |
Поддержка приложений | Поддерживаются все приложения, однако, не доступна динамическая настройка SurfaceView. | Некоторые вспомогательные приложения. Например – калькулятор. | Совместимость и стабильность решения нуждается в улучшении. | Поддерживает все приложения. |
Версия Android | Android 4.1. – Android 4.4. | Android 4.1. – Android 4.4. | Android 4.4. | Android 4.4 |
Официальный сайт | Клик | Клик | Клик | Клик |
Программная архитектура
Код платформы Android можно модифицировать для того, чтобы оснастить её поддержкой дополнительных возможностей. Архитектура ОС Android состоит из нескольких уровней.
В случае с Android 4.2 и Android 4.3., оболочка (launcher) и другие приложения при запуске размещаются в одном стеке, называемом «главный стек» («main stack»). Как известно, многооконный режим требует большего количества стеков для размещения в них нескольких окон. В результате, нужно модифицировать системный класс ActivityManagerService, добавив к нему интерфейс для создания стека и управления им. Для модификации класса платформы WIndowManagerService, который позволяет управлять графическими представлениями приложений, требуется изменить InputManager. Нужно это для того, чтобы он мог перенаправлять события касания соответствующим окнам.
С выходом Android 4.4 и Android 5.0 подход к управлению стеком значительно изменился. Оболочка и другие приложения могут запускаться в различных стеках. В систему была добавлена поддержка нескольких стеков и возможность управления ими. На рисунке ниже показаны отличия в работе со стеком в разных версиях Android.
Сравнение работы со стеком в Android 4.3 и Android 4.4
Теперь сосредоточимся на Android 5 (Lollipop). ОС Android использует механизмы обратного вызова для выполнения интерфейсных функций Activity. Однако управляющая функция реализована на уровне платформы. Поэтому сейчас мы рассмотрим два важных класса: ActivityManagerService и WindowManagerService.
Структура ПО платформы Lollipop
Управление Activity в Lollipop
Так как возможность работы в многооконном режиме зависит от стека, ниже показано, как можно создать стек и как можно запустить Activity в этом стеке. В Lollipop в интерфейс IactivityManager.java добавлены следующие функции:
Новые функции интерфейса IactivityManager.java | Описание |
public void moveTaskToStack(int taskId, int stackId, boolean toTop) | Переместить задачу (task) в другой стек |
public void resizeStack(int stackBoxId, Rect bounds) | Изменить размер стека |
public void setFocusedStack(int stackId) | Установить фокус на выбранную задачу |
Public Boolean isInHomeStack(int taskId) | Узнать, находится ли задача в HomeStack |
После запуска процесс SystemServer вызывает службы управления Activity (activity manager services) и окнами (windows management services). Для того чтобы понаблюдать за этим процессом, мы можем добавить в соответствующие места команды вызова исключения времени выполнения (RuntimeException).
Процесс создания стека в Lollipop
Теперь посмотрим, как запустить Activity в стеке:
Запуск Activity в стеке
В Lollipop в утилиту ADB (Android Debug Bridge, отладочный мост Android) были добавлены следующие команды:
Команда ADB | Функция | Описание |
Adb shell am stack start | Запускает новую Activity на , используя Intent | В Kitkat 4.4 команды ADB содержат: adb shell am stack create В Lollipop 5.0: adb shell am stack create deletion |
Adb shell am stack movetask | Перемещает из текущего стека вверх или вниз стека | Использование: adb shell am stack movetask task_id stackid true/false Примечание: в Kitkat это работает, а в Lollipop – нет |
Adb shell am stack resize | Изменяет размер стека и его позицию на | Использование: adb shell am stack resize task_id weight |
Управление окнами в Lollipop
WindowManagerService – это центральная часть системы управления окнами. Его функциональность включает в себя диспетчеризацию событий ввода, управление расположением объектов на экране и поверхностями, на которых выводятся графические элементы.
Роль WindowsManagerService в графической архитектуре Android
Проблемы многооконного режима
Игры, использующие SurfaceFlinger, не могут динамически менять размер окна
Ещё одна проблема заключается в том, что некоторые приложения в многооконном режиме отображаются некорректно. На рисунке ниже вы можете видеть, что калькулятор в многооконном режиме отображается неправильно. Всё дело в макете приложения, который не рассчитан на подобные условия использования.
Калькулятор с макетом, не рассчитанным на работу в многооконном режиме
Поддержка многооконного режима в Android M
Android M Developer Preview 2 можно запустить на Nexus 5, 6, 9 и Nexus Player. Если же подобного устройства у вас нет, или вы не хотите устанавливать на него ОС, находящуюся в статусе Preview, с Android M можно познакомиться с помощью эмулятора в Android Studio. В частности, сейчас нас интересуют стандартные средства для работы в многооконном режиме.
Для того чтобы увидеть этот режим в действии, достаточно создать новое виртуальное устройство с помощью средства AVD Manager, выбрав при этом в качестве системного образа один из доступных с API Level MNC. В нашем случае это был образ x86_64. Далее, надо запустить эмулятор, перейти в раздел настроек Для разработчика и включить там опцию Многооконный режим. Если такой опции найти не удаётся, взгляните на это руководство
Теперь самое интересное. Для начала можно запустить несколько приложений, всё будет как обычно. А вот если нажать на кнопку вызова списка недавно открытых приложений, в заголовках миниатюр окон появится новый значок. По умолчанию это – рамка, указывающая на то, что приложение запускается в полноэкранном режиме. Если на этот значок нажать, появится меню выбора макета расположения окон.
Меню выбора макета расположения окон в многооконном режиме
Дальше всё вполне понятно. Выбираем нужный макет и наслаждаемся многооконным режимом:
Многооконный режим в Android M
Будет ли доступна работа с несколькими окнами в официальном релизе Android M, пока неизвестно. Однако, например, системный калькулятор в этом режиме чувствует себя хорошо. В результате, у нас есть серьёзные основания полагать, что не за горами тот день, когда адаптация приложений для многооконного режима из конкурентного преимущества превратится в насущную необходимость.
Если же вы хотите оснастить свои приложения, рассчитанные на более ранние версии Android, поддержкой нескольких окон, самое время обратиться к решениям сторонних разработчиков, о которых речь шла выше. Например, к Cornerstone.
Пример: Cornerstone
Компания Onskreen создала Cornerstone – первый фреймворк, позволяющий работать с несколькими окнами на Android. Он рассчитан на устройства с большими экранами и планшеты. Исходный код можно загрузить на Github. Он поддерживает работу с Android версий 4.1 и 4.2. Для более поздних версий этой ОС Cornerstone пока не выпущен. Однако можно проанализировать исходный код для Android 4.2 для того, чтобы узнать технические подробности работы системы.
Модификации Cornerstone в Android Jelly Bean
Итоги
Во многих мобильных устройствах, работающих под управлением Android OS, используются процессоры Intel®. Как разработчики могут улучшить ощущения пользователей от работы с их приложениями? Как сделать приложения более конкурентоспособными? Эти вопросы ведут нас к постоянному улучшению продуктов на устройствах с архитектурой Intel Architecture (IA). Поддержка работы в многооконном режиме – это хороший пример полезной возможности, дающей приложениям конкурентные преимущества. Это удобно, многооконный режим даёт пользователю возможность выполнять несколько задач одновременно. Например – смотреть видео и писать друзьям отзыв о том, что смотрит. Например – играть в игру и читать её обзоры. Сегодня работу в многооконном режиме поддерживают несколько устройств. Например – это планшеты Ramos i12, Teclast x98 и Cube i7, который работает под управлением Remix OS.
Многооконный режим на IA-устройствах
Источник