Включение и отключение режима разработчика на андроид. Лимит фоновых процессов. Сертификация беспроводных мониторов

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

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

После активации данного режима в меню настроек Андроида появляется новый раздел под названием «Для разработчиков». Он открывает пользователю новые возможности. Некоторые из них, которые могут быть полезны даже простому пользователю, рассмотрим далее:

  • Размер буфера журнала – предоставляет возможность выбора объема памяти ;
  • Ускорение работы GPU – активирует обработку двухмерной графики;
  • Показывать загрузку ЦП – выводит экран с информацией о текущей загрузке центрального процессора;
  • Подключение USB – выбор режима работы устройства при подсоединении его к ПК по USB;
  • Отладка по USB – задействует режим отладки при подсоединении вашего Android к ПК с помощью кабеля.
  • Фиктивное местоположение устройства – позволяет заставить приложения «думать», что вы находитесь в другой точке мира.

Активация

Включить режим для разработчика несложно. Для этого нужно:

Перечень доступных настроек

Теперь разберем функции раздела для разработчиков более подробно.

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

  • Создание отчета об ошибках. Опция предназначена для отправки отчета об ошибках. Файлы для отправки создаются в течение пары минут.
  • Пароль для резервного копирования. Данный пункт дает возможность использовать ADB для создания резервного копирования данных на ПК. Для создания копии, требуется обязательный ввод пароля.
  • Активный режим. Если эта опция включена, экран устройства при его подключении к ПК не будет гаснуть. Стоит использовать с осторожностью, поскольку длительная работа экрана может его испортить.
  • Выбор рабочего модуля. Инструмент для выбора ART или Davlik. Не стоит ничего менять, если вы не знаете, для чего они необходимы.
  • Включение журнала трансляций операций HCI Bluetooth. Данная функция полезна только для разработчиков, поскольку позволяет вести перехват и анализ пакетов Bluetooth. После включения данной опции, пакеты будут сохраняться в файле «btsnoop_hci.log». Файл можно открыть и проанализировать в программе «Wireshark» или аналогичной.
  • Статистика процессов. Показывает информацию о процессах, которые в данный момент запущенны на устройстве. Для простого пользователя пользы не представляет.
  • Отладка USB. Позволяет подключать устройство к ПК через ADB.
  • Отзыв авторизации отладки USB. При первой отладке устройства по USB, его требуется авторизовать, используя для этого ключи. С помощью данной настройки, можно отменить это действие и повторить его еще раз.
  • Отчеты об ошибках. Опция очень полезна для тестирования приложений. При помощи зажатой кнопки питания можно проводить сбор и отправку отчетов о сбоях и ошибках.
  • Фиктивные местоположения. Позволяет вручную установить местоположение. Используется некоторыми разработчиками для тестирования приложений с привязкой по геоданным.
  • Приложения для отладки. Можно вручную задать приложения для отладки. Помогает разработчикам убедиться в корректной работе кода приложения.
  • Проверка по USB. С помощью данной опции можно проводить сканирование поставленных через ADB приложений и выявлять вредоносную активность.
  • Отображение касаний. Если опция активирована, на экране будут появляться визуальные эффекты, отображающие прикосновения к экрану.
  • Местоположение указателя. Выводит на экран координаты последней точки прикосновения к экрану.
  • Отображение границ макета. Отображение контуров элементов в диалоговых окнах. Позволяет более точно определить, куда нужно нажимать, чтобы активировать элемент на экране.
  • Написание справа налево. Включает изменение ориентации экрана. Опция требуется для работы с правосторонним вводом символов (необходимо для некоторых языков).
  • Эмуляция дополнительного дисплея. Полезно только для разработчиков, поскольку позволяет эмулировать разные размеры дисплея.
  • Принудительный рендеринг. Включает использование приложениями аппаратного двухмерного рендеринга. В некоторых случаях, может дать прибавку производительности, в некоторых наоборот, все испортить. Лучше использовать с осторожностью.
  • Отладка наложения. Позволяет видеть наложения, которые происходят в момент отрисовки графической системой изображений поверх чего-либо.
  • Активация 4х MSAA. Принудительно активирует улучшенное сглаживание. После активации заметно ухудшается производительность устройства.
  • Отобразить нагрузку ЦП. Выводит на экран информацию о текущей нагрузке центрального процессора.
  • Установка профиля GPU. Опция позволяет сохранять в отдельный файл график загрузки графической системы.
  • Трассеровка Open GL. Позволяет сохранять все ошибки OpenGL в отдельный файл.
  • Фоновые процессы. Опция позволяет вручную задать количество одновременно работающих в фоне процессов.
  • Показ ANR. Включает отображение системных сообщений при зависании приложений. Полезно если приложения конфликтуют между собой.

Деактивация

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

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

Заключение

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

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

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

Что же делать? На помощь приедет возможность языка Java обрабатывать исключения (Exceptions), в том числе и непойманные (unhandled).

Класс Thread имеет статический метод setDefaultUncaughtExceptionHandler . Данный метод позволяет установить собственный класс-обработчик непойманных исключений. Класс-обработчик должен имплементировать интерфейс Thread.UncaughtExceptionHandler . Каркас обработчика может выглядеть примерно так:
public class TryMe implements Thread.UncaughtExceptionHandler { @Override public void uncaughtException(Thread thread, Throwable throwable) { Log.d("TryMe", "Something wrong happened!"); } }
Единственный метод принимает на вход Thread - поток, в котором произошло исключение, и Throwable - само исключение. Приведенная выше реализация просто выводит в лог сообщение без каких либо деталей… Попробуем воспользоваться…
public class MainActivity extends MapActivity { @Override public void onCreate(Bundle savedInstanceState) { Thread.setDefaultUncaughtExceptionHandler(new TryMe()); Integer a=1; if(true) a=null; int x = 6; x=x/a; // Exception here! } }
После запуска вышеприведенного кода мы (ура!) получим сообщение в логе… и черный экран. Установив наш собственный обработчик мы удалил штатный обработчик ОС Android и теперь нам больше не предлагают закрыть приложение.

Исправим положение
public class TryMe implements Thread.UncaughtExceptionHandler { Thread.UncaughtExceptionHandler oldHandler; public TryMe() { oldHandler = Thread.getDefaultUncaughtExceptionHandler(); // сохраним ранее установленный обработчик } @Override public void uncaughtException(Thread thread, Throwable throwable) { Log.d("TryMe", "Something wrong happened!"); if(oldHandler != null) // если есть ранее установленный... oldHandler.uncaughtException(thread, throwable); // ...вызовем его } }
Теперь мы видим и сообщение в логе, и привычное системное сообщение.

Неудобно устанавливать обработчик в Activity. Хоть он и будет установлен а все потоки, но Activity может быть несколько и несколько же стартовых. А еще могут быть сервисы… В этом случае лучше всего устанавливать обработчик при инициализации приложения. Примерно вот так:
public class MyApplication extends Application { @Override public void onCreate() { Thread.setDefaultUncaughtExceptionHandler(new TryMe()); super.onCreate(); } }
При этом нужно не забыть прописать новый класс приложения в манифест. Примерно вот так:
Теперь при старте приложения (не важно какого его компонента) будет установлен обработчик исключений.

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

Приведенная реализация сохраняет информацию об необработанном исключении в файл на SD-карте в папку /Android/data/your.app.package.name/files/ (так велит Dev Guide) в файлах вида stacktrace-dd-MM-yy.txt. Для работы в манифесте приложения требуется разрешение WRITE_EXTERNAL_STORAGE.

Естественно это не единственное подобное решение.

Flurry - аналитика для мобильных приложений, содержит свой обработчик ошибок. ACRA - библиотека для Android, собирает данные об ошибках и постит их на GoogleDocs. Android-remote-stacktrace - аналогичная библиотека, шлет данные на пользовательский скрипт-приемник. Также много полезного можно получить

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

Просмотр крэш лога

Чтобы просмотреть описание лога, нажмите кнопку .

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

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

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

Операции с крэш логом

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

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


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

Отчет «Ошибки»

Отчет отображает ошибки, отправленные приложением через AppMetrica SDK, а также статистическую информацию о них. Подробно об отправке сообщений об ошибках см. в разделе Руководство разработчика → AppMetrica SDK (Android | iOS | Windows).

Отчет поддерживает сегментирование данных и отображает следующие метрики:

  • Устройства - количество устройств, с которых были отправлены сообщения об ошибках хотя бы один раз за выбранный период времени.
  • Ошибки - количество появления ошибки за выбранный период времени.

Чтобы просмотреть описание ошибки, нажмите кнопку .

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

Описание ошибки можно выгрузить в TXT-файл, нажав кнопку , а затем - кнопку Сохранить .

Экспорт данных

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

Список содержит следующие элементы:


  • Экспортировать в CSV - экспортирует данные из таблицы в формате CSV .
  • График в PNG - экспортирует изображения графика в формате PNG .
  • График в CSV - экспортирует данные из графика в формате CSV .
  • Скопировать API-запрос таблицы - выводит текст запроса для выгрузки данных из таблицы с помощью API отчетов .
  • Скопировать API-запрос графика - выводит текст запроса для выгрузки данных графика с помощью API отчетов . Полученный запрос можно использовать для построения собственного дашборда или создания автоматических скриптов выгрузки данных.

    Примечание. Если вы получаете текст запроса впервые, убедитесь, что браузер не заблокировал всплывающее окно авторизации. В окне авторизации разрешите AppMetrica доступ к данным.

Не раз нам приходили комментарии с просьбой рассказать поподробнее о режиме разработчика в Android. Многие знают, что это такое, но раз вопрос есть, то на него надо ответить.

Активация режима разработчика

Сначала надо активировать режим разработчика. Для этого надо перейти в настройки, найти вкладку “О телефоне”, а в ней поле “Номер сборки” и несколько раз часто тапнуть по нему. После этого в настройках самого смартфона появится новый пункт, который будет называться “Для разработчиков”.

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

Отчет об ошибке

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

Пароль для резервного копирования

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

Не выключать экран

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

Включить режим трансляции операций

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

Заводская разблокировка

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

Работающие приложения

Этот пункт наоборот может быть полезен простым пользователям, так как тут можно посмотреть сколько памяти “съедает” каждое приложение и остановить его. Если есть какие-то проблемы, то отсюда же можно отправить отчет об ошибке и просто поподробнее изучить сами приложения.

Отладка по USB

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

Запретить доступ для USB-отладки

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

Отчет об ошибке

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

Выбор приложения для фиктивных местоположений

В Android можно на программном уровне изменить свое местоположение не сходя с места. В некоторых играх, или приложениях это может пригодится. Этим можно будет разыгрывать друзей, или обманывать кого-то по поводу своего местоположения. В любом случае, все это можно сделать. Для этого надо скачать какое-нибудь приложения по запросу “Fake GPS” а настроить в нем новое положение. После этого в пункте “Выбрать приложение для фиктивных местоположений” выбрать его.

Сертификация беспроводных мониторов

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

Подробный журнал Wi-fi

Если есть желание подробно отслеживать работу Wi-Fi соединений, то вам сюда. Активировав этот режим, можно включить более подробные отображения в журнале.

Переключаться на мобильную сеть

Активация этого пункта позволит переключаться на мобильную сеть для передачи данных когда сигнал Wi-Fi становится слишком слабым. Но в этом случае надо не забывать про объем включенного трафика или его стоимость, если у вас не безлимит. Странно, что этот пункт спрятали сюда. Например, в iOS это называется ассистент Wi-Fi и находится в обычных настройках.

Не отключать передачу данных

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

Конфигурация USB

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

Отключить абсолютный уровень громкости

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

Визуальный отклик

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

Отображение касания

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

Показывать обновление поверхности

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

Показывать границы элементов

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

Написание справа налево

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

Анимация

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

Эмуляция дополнительных экранов

Позволит разработчикам имитировать различные размеры и разрешения экрана.

GPU-ускорение

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

Показывать обновление экрана

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

Включить 4x MSAA

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

Отключение передачи аудио (USB)

Настройка позволяет отключить автоматическую маршрутизацию на внешние USB-устройства.

Строгий режим

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

Загрузка процессора

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

Не сохранять действия

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

Лимит фоновых процессов

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

Все ANR

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

Неактивные приложения

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

Разрешить сохранение на внешние накопители

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

Изменение размера многооконности

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

Отключение режима разработчика

Как и было сказано в начале, режим разработчика можно отключить. Хотя отключается он немного другим способом, нежели включается. Для отключения надо будет открыть настройки и перейти в раздел “приложения”. После этого нужно будет найти приложение “Настройки” и зайдя в него стереть все данные. Если это сделать, режим разработчика будет отключен. А если понадобится включить его снова, то сделать это можно будет там же способом, который был описан в начале.

Итоги

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