Как сделать меню на андроиде. Инженерное меню на Андроид – разбираемся в деталях

Итак, давайте сегодня создадим простое меню, для приложения на Android. Создадим новый проект. Назовем его Mymenu, нажмем next. Выберем Empty Activity. Нажмем finish.

Система Android studio подготовит нам новый проект, перейдем в gradle скрипы. В Build gradle, добавим новую имплементацию. Нам понадобятся пакет

implementation "com.android.support:design:26.0.0-beta1"

По крайней мере, в моем проекте. Нажмем синхронизировать проект.

Пункты меню

Перейдем в папку Res и создадим в ней новую Andriod ресурсную папку с ресурсным типом - меню. В ней же, создадим новый ресурс файл меню. Имя файлу присвоим, как и имя папки - menu.

На наше основное меню перетаскиванием, добавим MenuItem в количестве 3 штук.

В файле strings.xml напишем новые название, для пунктов меню, создав дополнительные строковые значение для них.

Пусть item1 будет Пункт 1, item2 Пункт 2, и item3 пусть будет Выход.

Пункт 1 Пункт 2 Выход

В текстовом варианте menu.xml присвоим названия из strings.xml для наших пунктов. Также для каждого item мы добавим, Android:id с именем action1, action2,action3,

для взаимодействия с данными пунктами. Действие номер 1 будет отвечать за что-то, какая то реакция, нажатие пункта Action 2, соответственно, будет отвечать за другие действие, Action 3 будет отвечать за выход из приложения.

В файле MainActivity напишем несколько функций для работы с меню:

onCreateOptionsMenu @Override public boolean onCreateOptionsMenu(Menu menu){ getMenuInflater().inflate(R.menu.menu, menu); return true; } onOptionsItemSelected @Override public boolean onOptionsItemSelected(MenuItem item){ int id = item.getItemId(); switch (id){ case R.id.action1: txt.setText(R.string.item1); return true; case R.id.action2: txt.setText(R.string.item2); return true; case R.id.action3: txt.setText(R.string.item3); finish(); return true; } return super.onOptionsItemSelected(item); }

Объявим переменную типа TextView txt, и свяжем ее с элементом TextView, в onCreate через

txt=(TextView)findViewById(R.id.txt),

в макете activity_main.xml, добавив ему

android:id="@+id/txt"

для отображения текста.

Запустим в эмуляторе наше приложение. Как видим, появляются пункты меню, при нажатии на значение Пункт 1 или 2, текст меняется на Пункт 1 или Пункт 2, при нажатии на кнопку Выход появляется текст Выход и приложение закрывается.

Верстка меню

Кажется, все хорошо. Однако, как всегда в Android Studio данное меню будет работать только на эмуляторе, и поэтому добавим в файл styles.xml небольшой код, а перед этим в AndroidManifest.xml изменим

android:theme="@style/AppTheme"

android:theme="@style/AppTheme.NoActionBar"

который говорит о том, что новый стиль без ActionBar. Также в MainActivity onCreate внесем переменную toolbar c типом ToolBar. Определим ее через toolbar = (Toolbar)findViewById(R.id.toolbar), и подключим поддержку setSupportActionBar(toolbar).

В макет activity_main.xml перед TextView добавим следующий код:

Подключим эти виджеты в импорт нашего приложения.

import android.support.v7.widget.Toolbar;

Нажмем Alt+Enter, и у нас добавится, обновится импорт нашего приложения. Возможно, придется сделать несколько раз для подключения виджета. Нажмем Сохранить.

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

Для чего нужно рутирование устройства Android и какие возможности оно даёт, известно достаточно большому числу пользователей, чего нельзя сказать о скрытом расширенном меню аппаратных настроек также называемым инженерным меню. Об этих настройках знают немногие, и ещё меньше владельцев мобильных устройств умеют ими пользоваться. Что же представляет собой инженерное меню Андроид и зачем оно нужно?

Инженерное меню Android – это не что иное, как специальная подпрограмма, предназначенная для тестирования разработчиками операционной системы и датчиков устройства. Интерфейс этой программы представлен набором опций, позволяющих изменять конфигурацию «железа» мобильного устройства. С её помощью можно получить исчерпывающие сведение об аппаратной части гаджета, произвести тестирование процессора, оперативной и физической flash-памяти, режимов беспроводного соединения, настроить параметры камеры, дисплея, микрофона, динамиков и многое другое.

Вход в инженерное меню

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

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

Коды инженерного меню в Андроид являются универсальными, тем не менее, их корректная работа на телефонах с «левыми» прошивками не гарантируется. Для доступа к аппаратным настройкам Android также можно использовать специальные программы, например, «Инженерное Меню MTK» или «Mobileuncle MTK Tools» .

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

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

Для получения списка инженерных кодов для конкретной модели телефона можно воспользоваться специальным приложением Secret Codes , доступным в Google Play. На некоторых моделях мобильных устройств для полноценного доступа к инженерному меню могут потребоваться права суперпользователя (root).

Что можно изменить с помощью меню

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

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

Увеличение громкости телефона через инженерное меню

А теперь продемонстрируем работу с аппаратными настройками на примере одной из самых востребованных операций и узнаем, как увеличить громкость на Андроиде через инженерное меню. Итак, заходим в меню с помощью Mobileuncle MTK Tools или введя «волшебный» код, затем находим и открываем подраздел Audio. Если в меню вы зашли через программу Mobileuncle Tools, этот подраздел будет находиться в разделе старшего порядка Engineer Mode, в остальных случаях он обычно располагается на вкладке Hardware Testing.

В подразделе Audio вам будут доступны следующие опции:

  • Normal Mode – обычный режим, работающий когда к устройству не подключена гарнитура.
  • Headset Mode – режим гарнитуры, включающийся в момент подключения к смартфону наушников или колонок.
  • LoudSpeaker Mode – режим громкоговорителя. Активируется при включении громкой связи при условии, что к устройству не подключена гарнитура.
  • Headset_LoudSpeaker Mode – режим громкоговорителя с подключенной гарнитурой. То же самое, что предыдущий, но с подключенными наушниками или колонками.
  • Speech Enhancement – этот режим включается при разговоре по телефону без использования громкой связи.

В разделе могут быть и другие настройки, например, Debug Info и Speech Logger, но их лучше не трогать. Выбираем режим, для которого нужно изменить уровень громкости (пусть это будет Normal Mode), в открывшемся списке выбираем Type и указываем, для какой именно функции будем изменять громкость. Доступными могут быть такие функции:

  • Ring – настройка громкости для входящих звонков;
  • Media – настройка громкости динамиков при воспроизведении мультимедиа;
  • Sip – звуковые настройки для интернет-звонков;
  • Sph – звуковые настройки разговорного динамика;
  • Sph2 – звуковые настройки второго разговорного динамика (опции может не быть);
  • Mic – изменение чувствительности микрофона;
  • FMR – настройки громкости FM-радио;
  • Sid – этот параметр лучше не трогать, иначе могут возникнуть проблемы с голосом собеседника.

Выбрав функцию, прокручиваем текущий список, выставляем нужное значение Value (от 0 до 255) и жмём для применения новых настроек Set.

Для изменения уровня громкости также можно воспользоваться предустановленными шаблонами – опцией Level. В большинстве телефонов имеется семь уровней, от 0 до 6. Настройку Max Vol желательно не трогать, равно как и не стоит выставлять слишком высокие значения для Value, иначе звук в динамиках начнёт хрипеть. Аналогичным образом настраиваются и другие режимы в подразделе Audio.

Для вступления новых настроек в силу в некоторых моделях смартфонов и планшетов требуется перезагрузка.

Сброс настроек

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

Также сбросить инженерное меню можно, введя в «звонилке» специальный сервисный код. Обычно это *2767*3855#, *#*#7780#*#* или *#*#7378423#*#*, но для вашей модели телефона может понадобиться свой код.

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

  • Кнопка включения + уменьшение громкости.
  • Кнопка включения + увеличение громкости.
  • Кнопка включения + кнопка «Домой» + уменьшение/увеличение громкости.
  • Кнопка включения + увеличение громкости + уменьшение громкости.

В открывшемся списке опций выберите «wipe data/factory reset» → «Yes – delete all user data» → «reboot system now». Устройство будет перезагружено, и настройки обнулятся.

Есть ещё один способ сбросить настройки инженерного меню, но он требует наличия прав суперпользователя. Используя любой файловый менеджер с поддержкой прав root, зайдите в корневой каталог системы, а затем удалите полностью или частично содержимое папки data/nvram/apcfg/aprdcl и перезагрузитесь.

Файлы в папке aprdcl как раз отвечают за настройки инженерного меню. Сходу удалять все файлы необязательно. Если вы напортачили, скажем, с настройками аудио, для восстановления исходных параметров достаточно удалить файлы, в названии которых имеется элемент строки audio. И ещё один момент. Независимо от способа сброса, всегда делайте резервную копию ваших личных данных и приложений, так как все они могут быть утрачены.

Когда то давно, лет 5 назад стремительно набирали популярность аппараты с операционной системой Android. Хорошее было время, мир выходил из кризиса, впереди было много интересного и на каждом аппарате была кнопка Меню.
Спустя 2 года парни из Android сообщили о том, что кнопка "меню" на корпусе аппарата теперь уже не модно и можно без неё. С тех пор каждый из нас (Гильдии разработчиков) знает, как вызвать меню на подавляющем большинстве андроид девайсов.
Кому то это покажется страшным баяном, пусть так, но на прошлой неделе мы потратили 2 часа своей жизни на то, чтобы это объяснить пользователю. Мириться с этим было нельзя, поэтому ниже привожу описание того, как вызвать функцию меню на андроид аппаратах.
Вот так выглядят механические кнопки меню на большинстве распространённых устройств:

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


В этом случае меню откроется только при долгом нажатии (так называемый лонг-клик)! То есть не просто ткнули пальцем, а ткнули и подержали . Многие говорят после этого Вау!

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


Причём не всегда максимально справа, но выглядит эта кнопка именно так.
На свежих версиях Android OS кнопка меню выглядит так.

Android в своем стандартном виде выглядит бедно. Да, все необходимые функции вроде бы есть, а включить показ процентов батареи до сих пор нельзя. Есть красивая анимация загрузки, но толку от нее - ноль. Поддержки тем как не было, так и нет. И что теперь - ставить очередной кастом, завтрашняя ночная сборка которого обязательно заглючит? Нет, мы все сделаем, имея только root. Читайте дальше и узнаете как изменить интерфейс Android.

ПОДГОТОВИТЕЛЬНЫЕ ШАГИ

Для выполнения многих описанных в статье трюков нужен root и зависящий от него . В стандартном варианте он будет на 100% корректно работать только в AOSP-прошивках, но даже в них могут встретиться глюки. Проблемы с Xposed-модулями часто могут возникать в стоковых прошивках с модификациями от производителя, но для них есть специальная версия Xposed: для TouchWiz , для MIUI , для прошивок на базе Android 5.0+ . Владельцы HTC могут устанавливать официальную сборку, но почти всегда требуется S-OFF.

Получил root, установил Xposed? Тогда поехали.

1. МЕНЯЕМ АНИМАЦИЮ ЗАГРУЗКИ

Анимация загрузки хранится в файле /system/media/bootanimation.zip. Внутри содержится текстовый документ desc.txt, в нем указаны частота смены кадров, разрешение по горизонтали и вертикали и прочее. Там же лежат сами изображения (кадры), которые меняются с частотой, указанной в desc.txt. Порядок и правила воспроизведения анимации из папок тоже прописаны в этом файле.

Все, что тебе нужно сделать, - достать архив с устройства при помощи файлового менеджера с поддержкой root, распаковать и заменить изображения, не забыв их предварительно пережать в нужном разрешении. Далее достаточно запаковать архив без сжатия и вернуть на место. Но, конечно же, проще взять уже готовый архив. На сайте hboot.co.uk таких полно.

С другой стороны, смотреть на анимацию хоть и интересно, но смысла никакого. А вот видеть, какие службы запускаются, бывает полезно. Самый простой вариант - установить LiveBoot , который выводит logcat и dmesg, то есть сообщения Android и ядра Linux.

2. ДОБАВЛЯЕМ СВОИ ЗВУКИ В СТАНДАРТНЫЙ НАБОР

Звуки можно скидывать в одну из папок в /system/media/audio. alarms - мелодии для будильника;
notifications - звуки для уведомлений;
ringtones - мелодии звонка;
ui - системные звуки, например низкий заряд батареи, фокусировка камеры, выбор элементов интерфейса. Некоторые приложения могут обращаться к ним по умолчанию, следовательно, их можно заменить на свои.

Зачем складывать мелодии в системный раздел? Во-первых, файлы там способны выдержать общий сброс к заводским настройкам; во-вторых, звуки из специальных папок можно поставить на сигнал (звук будильника, звонок, получение СМС) практически в любом приложении.

3. МЕНЯЕМ ШРИФТЫ

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

Для установки шрифтов можно использовать специальное приложение. Например, HiFont позволяет без root менять шрифты в прошивках Samsung, HTC, Motorola, Lenovo, Huawei, Nokia X. А если есть root, то и во всех остальных устройствах. Можно как использовать уже имеющиеся в каталоге приложения шрифты, так и добавить свои.

Но где их брать? Есть три варианта:

  • шрифты, выдранные из разных прошивок Android-устройств, можно найти в посте на 4PDA ;
  • на 4PDA же есть неплохая коллекция шрифтов, созданных пользователями, в соседнем посте ;
  • коллекция на XDA .

Установить шрифты можно и без использования специального приложения. Берем из архива файлы.ttf, кидаем их с заменой в /system/fonts/ (нужен root) и перезагружаем устройство.

4. МЕНЯЕМ ИКОНКИ

Иконки можно менять с помощью специальных приложений, например Unicon - Icon Themer. После установки необходимо активировать приложение в настройках Xposed (он сам тебя уведомит). Далее перезагружаем смартфон и открываем приложение. Осталось нажать на Download themes from Google Play и выбрать пакет иконок, установить его и перезагрузить смартфон. Но стоит учитывать, что иконки не меняются в некоторых лаунчерах, например Google Старт.

5. ДОБАВЛЯЕМ ПОДДЕРЖКУ ТЕМ

Перед установкой темы HKThemeManager покажет весь список приложений, к которым будет применена тема. Убираем галочки с тех, что не нужны, нажимаем на «Применить тему» и перезагружаем устройство.

Есть и альтернативный вариант установки тем - приложение Layers Manager . Оно работает в любой прошивке на Android 5.0+ благодаря появлению механизма переназначения ресурсов RRO. База тем у приложения огромна и находится на Play Market. Чтобы посмотреть ее, достаточно набрать в поиске Layers Theme.

Имей в виду, что приложение не работает на прошивках, основанных на CyanogenMod: тамошний движок и RRO конфликтуют.

6. ПРЕВРАЩАЕМ ANDROID 5.X+ В ANDROID N

В этом нам поможет модуль Android N-ify . После установки появятся следующие фишки из Android N:

  • дизайн панели уведомлений заметно преобразится. Появится панель быстрых настроек;
  • в настройках под некоторыми пунктами возникнут интересные надписи.
  • К примеру, под Wi-Fi будет написано название текущей точки доступа, под пунктом «Батарея» - оставшееся время работы и заряд аккумулятора в процентах;
  • в меню «О телефоне» поменяется пасхалка;
  • появится быстрое переключение между двумя последними запущенными приложениями с помощью двойного нажатия на кнопку «Недавние».

Есть у Android N-ify и полезные настройки, через которые можно не только отключить, но и настроить отдельные вносимые изменения.

7. УЛУЧШАЕМ СТРОКУ СОСТОЯНИЯ

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

8. Меняем индикатор батареи

Battery Home Icon устанавливает индикатор батареи вместо кнопки «Домой». Причем этот индикатор хорошо поддается настройке: можно менять цвета, включать/отключать показ процентов, анимацию зарядки и так далее.

XbatteryThemer - настройка значка батареи. Присутствует много различных тем, как обычных, так и очень неординарных.

9. Выводим скорость интернет-соединения

Network Speed Indicator - индикатор скорости сети. Умеет показывать скорость мобильных сетей, Wi-Fi, Bluetooth, Ethernet. Настраивается все - от единиц измерения и порога скорости до цвета и размера шрифта. Также можно добавить в строку состояния количество использованного интернет-трафика с помощью DataUsage . Данные показываются те же, что и в разделе настроек «Передача данных».

10. Выводим реальный уровень сигнала

Иногда нужно знать, насколько хорошо ловит интернет в разных частях комнаты, как влияет положение смартфона на уровень приема сигнала, или просто необходимо сравнить уровень приема сигнала твоего смартфона и других моделей. В этом поможет NetStrength . Модуль умеет выводить уровень сигнала сотовой сети в децибелах к милливатту (дБм или dBm). Эта единица измерения имеет отрицательное значение, и чем оно ближе к нулю, тем лучше прием. Можно также включить показ ASU (Arbitrary Strength Unit - отношение сигнал/ шум в пилотном канале). Вычисляется по формуле ASU = (dBm + 113)/2.

Кстати, модуль умеет показывать уровень приема Wi-Fi в dBm, Mbps (Мбит/с - мегабит в секунду) и процентах.

11. Следим за процессом загрузки

Statusbar Download Progress - один из самых полезных модулей Xposed. Он выводит процесс загрузки из Play Market или файла из интернета в виде тонкой белой полосы над строкой состояния. Сразу рекомендую активировать «Режим бога», благодаря которому прогресс будет отображаться для любых приложений, имеющих индикатор выполнения. В настройках можно поставить отображение над строкой состояния или под строкой.



 

Возможно, будет полезно почитать: