- Android 9 Pie Feature Flags: What is it and how to enable it
- What are Feature Flags?
- How to enable Feature Flags?
- Trying out the Feature Flags options
- What is the purpose of Feature Flags?
- Feature Flags и фабрика ПО
- Проблемы долгоживущих веток
- Как Trunk Based Development решает эти проблемы
- Как работают Feature Flags
- Как использовать Feature Flags
- Как управлять флагами
- Как флаги работают у нас
- Напоследок о тестировании
- Как ускорить телефон Android с помощью секретных настроек
- ↑ Настройки разработчика и как их разблокировать
- ↑ Возможности меню Для разработчиков
- ↑ Настройка анимации
- ↑ Улучшение графики
- ↑ Дополнительные хитрости
- ↑ Очистить лишние файлы
- ↑ Удалить или отключить приложения вручную
- ↑ Сменить лаунчер
- ↑ Разгон на 100%
Android 9 Pie Feature Flags: What is it and how to enable it
Mobile devices have sure come a long way from what they were initially intended to offer – means to communicate on the go with no strings attached. Today, smartphones are the most personal form of technology that you can find on the face of this planet, and thanks to the innovation brought forward by Android OS in the past few years, we’ve been able to do a whole lot more than just call and text.
With the release of Android 9 Pie, Google is stepping up its game one more time to bring you a suite of features that not only boost the overall productivity but offer something new altogether. Apart from all of the obvious changes in the latest version of Android, there are some hidden gems in there too, one of them being the Feature Flags menu that has been tucked away in the Developer Options.
What are Feature Flags?
If you’ve been using the Google Chrome browser long enough, you should be familiar with the fact that a bunch of experimental features is packed into the Chrome Flags menu. Google is trying to do somewhat of a similar thing with the Android 9 Pie update as well, by bringing in an entire menu of experimental features under the wing of Feature Flags.
How to enable Feature Flags?
The Feature Flags menu is a part of the Developer Options of the Android 9 Pie system, so you will need to enable the Developer Options before you can proceed any further.
- Head over to the Settings app of your Android device.
- Scroll down to find the System menu and then select About phone.
- Head below to find the Build Number section and tap on it 7 times.
- You should see the message ‘You are now a developer’ pop up.
Now that you have the Developer Options enabled from the Settings, you will be able to access it and then activate the Feature Flags as well.
- Head over to the Settings app of your Android device.
- Go down to find the System option.
- Scroll down to the bottom to find the Advanced tab and open it.
- Find the Developer Options menu, head down to find the Feature Flags.
Trying out the Feature Flags options
At the moment, the list of features that you can experiment within the Feature Flags menu is strictly limited. However, you can expect the list of features to grow substantially as newer updates are released for the eligible devices soon enough.
- settings_about_phone_v2: Enabling this Feature Flag moves the ‘About phone’ section to the top of the System This also changes the UI of the entire About phone section from the inside.
- settings_bluetooth_while_driving: When enabled, you will be able to see an option called ‘Use Bluetooth when driving’ under the ‘Connected devices’
- settings_data_usage_v2: There’s not much information yet on what this Feature Flag does when enabled or disabled.
- settings_audio_switcher: There’s not much information yet on what this Feature Flag does when enabled or disabled.
- settings_systemui_theme: There’s not much information yet on what this Feature Flag does when enabled or disabled.
- settings_zone_picker_v2: This Feature Flag gives you a better insight into the ‘Automatic time zone’ option in the ‘Date & time’ menu of the Settings app.
- settings_battery_display_app_list: Enabling this Feature Flag offers you a detailed list of the ‘App usage since full charge’ right in the Battery menu of the Settings app.
What is the purpose of Feature Flags?
Probably the most revered feature in the Google Android ecosystem is the stock feel that comes with it. Google has maintained this for years, but with the addition of Featured Flags, you can expect the inclusion of additional ways for users to change the functionality, look and feel of the system from a single menu.
Although the number of options available under the Feature Flags is considerably limited right now, it would not be altogether surprising to see the list to grow out as large as the Chrome Flags we see in the mobile browser. We’ll be updating the Featured Flags list of commands as they come out with each update pushed out by Google.
What are your thoughts on the Featured Flags option menu that is tucked away in the Android 9 Pie system? Do let us know down below in the comments section.
Источник
Feature Flags и фабрика ПО
Наши команды практикуют подход Trunk Based Development – новый код сразу добавляется в мастер-ветку, сторонние ветки живут максимум несколько дней. А чтобы коммиты не мешали друг другу, разработчики используют фича-флаги (Feature Flags) – переключатели в коде, которые запускают и останавливают работу его компонентов.
Рассмотрим обычную итерацию разработки: планирование, уточнение требований, создание задач в трекере, разработка. По мере готовности задачи разворачиваются на тестовом окружении для проверки, релизная ветка стабилизируется. Потом наконец наступает выпуск, и команда может наконец получить реальную обратную связь от пользователей.
Если вы стремитесь сокращать Time-to-Market, это недопустимо долго. Чем раньше вы получите обратную связь от пользователей, тем скорее вы исправите ошибки, тем меньше времени вы тратите на неудачные идеи, тем больше ресурсов можете уделить идеям удачным.
Чтобы обновления быстрее доезжали до прода, одна итерация должна включать одну фичу. Именно поэтому нужно сокращать срок жизни веток.
Проблемы долгоживущих веток
Конфликты между коммитами (Merge hell). Откладывание релиза, интеграция с внешней системой, прочие внешние факторы могут привести код в нерабочее состояние.
Трудности с шарингом кода. Другим членам команды может потребоваться код из новой ветки, если фичи зависят друг от друга. Приходится стартовать ещё одну ветку только ради доступа к этому коду.
Проблемы тестового окружения. Если тестовый сервер один, а фиче-веток много, параллельно тестировать задачи не получится.
Тяжело откатить изменения. Проблемы после релиза – обычное дело, и если из-за новой фиче-ветки начинаются сбои, разработчикам приходится выбирать между хотфиксом и ревертом, лезть в исходный код, заново выкладывать решение.
Как Trunk Based Development решает эти проблемы
Trunk Based Development (от англ. trunk – «ствол дерева») – метод разработки кода на основе одной главной ветки. В отличие от подхода Gitflow, TBD позволяет разработчикам добавлять новые модули сразу в master. Второстепенные feature-ветки также могут создаваться, но они имеют короткий срок жизни.
Trunk Based Development предполагает только одну ветку для разработки, которая называется trunk. В любой момент эту ветку можно развернуть её на проде, а разработка, как и прежде, идёт в отдельных фича-ветках. Только теперь эти ветки живут не более двух дней.
Все изменения в trunk вливаются через пул-реквесты. Изменения небольшие, поэтому процесс ревью не затягивается. Попадание нового кода в trunk запускает процессы автоматического билда, тестов и развёртывания на необходимые окружения.
Но как вести разработку в одной ветке, если какие-то фичи ещё не готовы, а релиз завтра? Тут нам на помощь приходят Feature Flags.
Как работают Feature Flags
По сути своей, это IF-блок, который запускает кусок кода при выполнении некого условия. Самое простое – разработчик сам прописывает, включать или выключать код. Могут быть параметры посложнее: например, по расписанию или только для пользователей с такими-то уровнем доступа. Или наоборот – фича отключается, если нагрузка на систему превышает заданный порог.
В точке переключения мы обращаемся к переключателю (toggle router), который определяет состояние фичи. Чтобы понять, какой нужен флаг, роутер обращается к его конфигурации и контексту. Первая определяет общую стратегию включения флага (основные условия для его работы), второй включает любую дополнительную информацию (например, имя пользователя, который отправил запрос, текущее время и т.д.).
Как использовать Feature Flags
Технически фиче-флаги работают одинаково, а по способу применения их можно разделить на следующие категории:
Релизные (release toggles): скрывают неготовые фичи, уменьшают количество веток, открепляют запуск фичи от даты деплоя. Основной тип флагов.
Экспериментальные (experiment toggles): используются для A/B тестирования, позволяют таргетировать функции на разные группы пользователей. Таким образом вы можете развернуть новый сервис на Х% аудитории, чтобы оценить нагрузку или собрать первые отзывы.
Разрешающие (permission toggles): открывают доступ к платным фичам или закрытым функциям администратора. Такие флаги могут жить очень долго, быть очень динамичными и менять своё состояние при каждом запросе.
Операционные (ops toggles): отключают ресурсоёмкие функции. Например, так можно регулировать работу приложения на слабых смартфонах или застраховаться от падения производительности при запуске новой функциональности – флаг отключит модуль до того, как тот вызовет критический сбой.
### Что дают Feature Flags
Непрерывная доставка фич со стабильным качеством – возможность отключить нерабочий код снижает риски в релизной версии.
Тестирование новых фич в боевых условиях – фиче-флаги позволяют постепенно внедрять сервисы, контролируя риски при релизе на реальную аудиторию.
Возможность развивать несколько версий ПО параллельно – TBD и фичефлаги позволяют предлагать разные функции разным группам пользователей, при этом поддерживать все эти версии ПО может всё та же одна команда.
Как управлять флагами
Проприетарные решения: LaunchDarkly, Bullet-Train, Unleash. Каждый продукт предлагает какие-то свои преимущества, каждый по-своему удобный. Но за лицензию придётся платить, а гибкость настройки зависит от разработчика системы.
Open source решения: Moggles, Esquilo. Это бесплатные решения, но чтобы они заработали у вас, потребуется над ними поколдовать. Кроме того, придётся подбирать продукт с таким набором функций, который вас устроит.
Собственная система управления: вариант, которым пользуемся мы. Это единственное в своём роде решение, которое целиком нас устраивает. В будущих постах расскажем подробнее.
Как флаги работают у нас
Feature Flags Portal (FF-Portal): Web + REST API приложение для манипулирования состоянием флагов. Напрямую работает с хранилищем флагов.
Feature Flags Storage (FF-Storage): персистентное хранилище с настройками флагов и их статусами.
Kubernetes ConfigMap (FF-configmap): k8s ConfigMap ресурс, который собирается на основе данных, которые хранятся в FF-Storage в удобном формате для конечного приложения. Изменение данных флагов через FF-Portal также влечёт к изменению FF-configmap.
Microservice (MS): Микросервис, который использует FF-configmap как источник конфигурации при старте приложения. При изменений FF-configmap, микросервис делает перезагрузку своей конфигурации.
Приложение считывает конфигурацию флагов с FF-ConfigMap, который монтируется к Pod-у как файл. При изменении ConfigMap, k8s обновит и файл, далее приложение среагирует на изменение файла и перегрузит конфигурацию флагов.
Изменение флагов происходит через портал, который отправляет интеграционное сообщение в шину при обновлении статуса. Компонент Config Updater обновляет значения флагов в FF-ConfigMap через K8S API.
Напоследок о тестировании
Возникает вопрос, как тестировать продукт с фиче-флагами? На первый взгляд, флаги усложняют в этот процесс – если переключателей становится много, то и количество всевозможных состояний резко растёт.
Но не всегда флаги зависят друг от друга. Поэтому мы для релиза тестируем два предельных случая: 1) все новые флаги выключены и 2) все флаги включены.
Практика показывает, что обычно этого достаточно.
Источник
Как ускорить телефон Android с помощью секретных настроек
Android — это мобильная операционная система, которая предлагает множество возможностей для пользователя. Однако с помощью простых приемов можно расширить потенциал смартфона, превзойдя пределы производительности. Можно применить на практике скрытые функции, чтобы максимально использовать графику, безопасность, скорость подключения к Интернету и общую производительность.
↑ Настройки разработчика и как их разблокировать
Существуют функции, с помощью которых можно управлять телефоном. Найти их несложно:
- зайти в настройки;
прокрутить страницу вниз и нажать «О телефоне» или «Информация об устройстве»;
коснуться элемента «Номер сборки» 7 раз (в зависимости от гаджета и андроида возможны малейшие расхождения).
↑ Возможности меню Для разработчиков
Ниже представлены функции, содержащиеся в меню Для разработчиков.
- Статистика обработки — Этот режим считается одним из самых важных, потому что он помогает контролировать процессы устройства, предоставляя процент от того, сколько CPU было использовано.
Отладка по USB — Можно устанавливать программы без уведомления, читать сведения в журнале и копировать данные между компьютером и самим девайсом.
Профиль рендеринга графического процессора — Пункт «Показать на экране в виде полос» позволит протестировать характеристики в реальном времени.
Ограничение фоновых процессов — Этот режим будет полезен если мало памяти. Он ограничивает ее использование.
Пароль для резервного копирования рабочего стола — Предотвращает создание аварийной копии данных кем-либо, подключившим гаджет к ПК.
Force Direction Layout RTL — Актуален для левшей. Разрешает вращать графический интерфейс, перемещая кнопки влево, чтобы облегчить доступ к ним.
↑ Настройка анимации
С помощью нижеприведенного лайфхака снижается время перехода между окнами. Сразу будет ощутима разница при открытии программ.
Сначала нужно открыть секретное меню под названием «Параметры разработчика».
Для этого выполняются следующие действия:
- зайти в меню настроек телефона;
кликнуть на «Информация об устройстве»;
найти номер сборки в списке;
щелкнуть на него 7 раз (откроется всплывающее окно с количеством нажатий до конца);
кликнуть «Ок» и вернутся к началу;
Также есть еще один метод. Сначала необходимо зайти в пункт «Отрисовка». Все показатели выбраны по умолчанию. Значение для шкалы анимации окна, переходного масштаба и длительности устанавливается на 1X. Рекомендуется поставить 0,5Х.
↑ Улучшение графики
Спецификации современных смартфонов быстро масштабируются за счет интеграции большого объема оперативной памяти и SoC, достойных настольных систем среднего и высокого уровня. В Playstore много новых игр и приложений, в том числе бесплатных, позволяющих раскрыть технический потенциал смартфона.
Чтобы улучшить графическую производительность игр и время отклика можно активировать опцию MSAA 4X. Это простой фильтр сглаживания, который обрезает изображения, улучшая качество. Он подойдет не для всех игр, а только для тех, которые используют OpenGL ES 2.0 API.
Весь процесс пошагово:
- Выбрать «Аппаратное ускорение отрисовки». Название может отличаться в соответствии с версией ОС и моделью смартфона.
«Запустить обработку граф.процессором».
Следующий шаг – «Отключение аппаратного наложения», который также подключает ресурсы GPU при компоновке экрана, освобождая основной процессор.
Один немаловажный минус этой процедуры – небольшое повышение расхода оперативной памяти при взаимодействии с приложениями. Но обычно этот недостаток считается несущественным.
↑ Дополнительные хитрости
Есть несколько других параметров, которые можно настроить для ускорения работы.
↑ Очистить лишние файлы
Внутренняя память должна быть свободной. Для этого подойдет файловый менеджер, который анализирует хранилище и показывает неиспользуемые файлы, а также маловажные программы.
↑ Удалить или отключить приложения вручную
Чтобы сделать это необходимо посетить «Настройки», а затем «Приложения». Некоторое ПО, установленное по умолчанию, нельзя стереть, но разрешено выключить.
↑ Сменить лаунчер
Можно заменить лаунчер на более легкую альтернативу. Ниже приведены лучшие пусковые установки:
- Nova Launcher — это один из самых популярных лаунчеров на сегодня. Он работает очень плавно даже на менее мощных моделях и предлагает различные преимущества.
CM Launcher 3D — это отличный вариант. Он очень простой и понятый.
↑ Разгон на 100%
OEM-производители не дают аппаратному обеспечению девайса выкладываться на 100%. Вместо этого они снижают скорость ЦП. Чтобы гаджет работал в полную силу требуется рутирование. В соответствии с девайсом этот процесс различается, поэтому трудно дать подробные инструкции. Оптимальный способ рутировать смартфон, — выполнить поиск в Google рутинговых руководств для определенного случая.
В заключение важно заметить, что это секретное меню изначально не отображается и только после разблокировки дает доступ ко всем недоступным ранее возможностям.
Однако следует быть осторожными, ведь это было создано для создателей. Главный совет — действовать аккуратно и не изменять непонятные установки. При соблюдении правильных мер предосторожности получится значительно повысить производительность своего девайса, не покупая другой. Очевидно, что некоторые операции требуют немного более продвинутых знаний, чем другие, но, в конце концов, нет ничего невозможного, просто придется приложить немного усилий.
Являюсь руководителем проекта, люблю андроид. Слежу за новинками, новостями, а так же помогаю решить проблему возникшую у пользователей в андроид смартфонах!
Для того чтобы воспользоваться полными возможностями сайта, пожалуйста авторизуйтесь с помощью социальных сетей.
Если у вас возникли вопросы с решением проблемы на вашем смартфоне. Оставьте комментарий подробно описав проблему, и обязательно укажите модель вашего смартфона. Мы постараемся помочь вам!
Информация
На данный момент комментариев нет 🙁
Источник