multiple root tags в android studio что делать
Как я могу получить права root через Android SDK?
Я изучаю Android-программирование, и я хочу создать приложение, которое должно запускаться от имени root. Логичным было бы добавить разрешение root в Android Manifest.
Я видел эту ссылку в документации и особенно отметил разрешение FACTORY_TEST :
public static final String FACTORY_TEST
Выполняется как тестовое приложение производителя, работающее как пользователь root. Доступно только в том случае, если устройство работает в тестовом режиме производителя. Постоянное значение: «android.permission.FACTORY_TEST»
Если это невозможно с помощью SDK, как я могу создать «корневое» приложение?
Что вам нужно сделать, это что-то вроде:
Это заставляет SuperUser показывать, что позволяет вам разрешать или блокировать его из корневого доступа. Этот подход может не работать, если пользователь не внедрен. Здесь вы можете проверить это.
Сначала давайте вернемся к основам. Android запускает ядро Linux под ним. Теперь, если вам нужно запустить свой процесс с привилегиями суперпользователя (запустите его как root), единственный способ выполнить ваш процесс – через command line потому что это единственный способ напрямую взаимодействовать с ядром. Также вам нужно использовать su перед запуском любой команды. Также как Крис упомянул в своем комментарии к 1-му ответу
Почти ничего не выполнит. Он просто попросит использовать привилегии суперпользователя, используя диалог. Что вы можете сделать, а не просто выполнить su вы можете выполнить свой процесс с помощью su, как показано ниже.
Альтернативный вариант
SDK не предлагает способ запуска приложения с правами root.
Методы лечения различных ошибок в Android Studio при разработке проекта
Сегодня хотел бы поделиться своим анализом и способами лечением разных ошибок при разработке своего продукта в Android Studio. Лично я, не раз сталкивался с различными проблемами и ошибками при компиляции и/или тестировании мобильного приложения. Данный процесс, всегда однообразный и в 99% случаев и всегда нужно тратить n-колличество времени на его устранение. Даже, когда ты уже сталкивался с данной проблемой, ты все равно идешь в поисковик и вспоминаешь, как же решить ту или иную ситуацию.
Я для себя завел файлик, в котором отметил самые частые ошибки — потратив на это несколько часов и перечислил самые популярные ошибки (в дальнейшем планирую просто их запомнить), чтоб сократить свое время в дальнейшем.
2) После внезапного выключения компьютера, после перезапуска может быть во всех проектах весь код красным. Перед этим может быть ошибка: Unable to create Debug Bridge: Unable to start adb server: Unable to obtain result of ‘adb version’. Есть три решения — первое помогло, второе нет (но может быть для другого случая), а третье — не пробовал:
а) File — Invalidate Caches/Restart — Invalidate and Restart
в) Нажать Ctrl-Alt-O и запустить оптимизацию импорта.
Кстати, adb сервер можно проверить на версию (и работоспособность) и затем перезапустить:
3) Если Android Studio выдает приблизительно такую ошибку: Error:Execution failed for task ‘:app:dexDebug’.
Такое же решение если ошибка типа: «не могу удалить (создать) папку или файл» и указан путь, который в ведет в app/build. Тоже удаляем папку build и ребилдим проект.
4) В сообщении об ошибке упоминается heap — виртуальная память. А ошибка обычно вызвана ее нехваткой, т.е. невозможностью получить запрашиваемый объем. Поэтому этот запрашиваемый объем надо уменьшить, т.е. переписать дефолтное значение (обычно 2048 MB которое можно изменить в настройках), на меньшее 1024 MB.
В файле проекта gradle.properties пишем:
5) Android Studio пришет примерно такую ошибку: Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE environment variable to «83648b99316049d63656d7276cb19cc7e95d70a5»
Возможные причины (кроме необходимости регулярного обновления SDK):
а) Загруженный проект был скомпилирован с помощью уже несовместимого старого gradle плагина. В этом случае надо найти и подключить в своем build.gradle проекта этот более старый плагин. т.е. попробовать более старые версии, например: 1.1.3 (часто именно 1.1.x и подходит).
Найти все версии можно здесь.
б) Если в build.gradle проекта используется beta-версия плагина — это означает, что срок ее истек. Посмотреть последние релизы (продакшн и бета) можно также здесь:
6) Иногда при подключении сторонних библиотек могут дублироваться некоторые файлы (обычно связанные с лицензированием). В сообщении будет что-то содержащее слова: duplicate files. Решение — надо посмотреть в сообщении об ошибке или в документации подключенной сторонней библиотеки — какие именно файлы стали избыточными, и перечислить их в build.gradle модуля для исключения (exclude) из билда.
Это делается в директиве packagingOptions (которая, в свою очередь, находится в директиве android).
Как получить root-доступ на эмуляторе Android?
У меня есть все версии Android SDK (от 1.5 до 2.3.3), и я пробовал много способов получения root в эмуляторе Android. Я не использую Android-устройства и все тестирую на эмуляторе (AVD).
Мне нужно получить root-доступ в любом из эмуляторов Android, чтобы использовать функции «iptables» и «busybox». И чтобы использовать iptables, я должен иметь root-доступ. Команда Atleast ‘su’ должна выполняться в эмуляторе терминала.
Я также установил z4root приложение,
Но это занимает очень много времени и не заканчивает рутирование, и застревает. некоторые говорят, что если мы опустим систему до уровня ниже RC30, таким образом мы сможем получить root-доступ. если это правда, то как это сделать? Я использую как Linux, так и Windows.
Пожалуйста, кто-нибудь подскажет какой-нибудь способ рутировать мой эмулятор.
Эти ответы все излишне сложны 🙂
Как получить root права на эмулятор Android (протестировано на Android 7.1.1 / Nougat)
Требования :
Recovery flashable.zip (содержит su бинарный файл) (Вот альтернативная ссылка для резервного копирования, предоставленная пользователем XDA Ibuprophen для прошиваемых zip- архивов, если основная ссылка не работает: Flashable zip release )
инструкции
Установите SuperSu.apk
Сделать системный раздел эмулятора доступным для записи
Как и следует, нам нужно дать эмулятору разрешение на запись системных файлов.
Примечание. Перейдите в папку инструментов, где установлен Android SDK, и откройте командную строку, нажав клавиши Shift и правую кнопку мыши.
Нажав su бинарный в системном каталоге
Важный! Используйте только двоичный файл su, соответствующий вашей архитектуре avd, например x86, arm и т. Д., И отметьте путь, по которому вы извлекли эти двоичные файлы.
Теперь пришло время нажать на двоичный файл su:
(не берите в голову мое специфическое местоположение su бинарного, любое местоположение хорошо, пока нет пробела)
Измените разрешения su бинарного
и для настройки демона:
Важный!! Обратите внимание на расстояние
Настройка SELinux на Permissive (т.е. отключение SE Linux)
Откройте приложение SuperSU и оно может попросить обновить двоичные файлы, вы можете использовать метод Normal.
Примечание: если вы испытываете загрузочные циклы, лучше не обновляйте двоичные файлы, просто используйте их как есть.
Откройте любое приложение, для которого требуются разрешения SU, просто дважды проверьте, и, действительно, SuperSU спросит, хотите ли вы предоставить ему разрешения su.
Обновление :
Я заметил, что получить временный образ системы в Linux легче, чем в Windows. Вы можете попробовать использовать снимок изображения.
Обновление 4 августа 2018
С появлением эмулятора 27.3.x это теперь значительно упрощает сохранение root с помощью функции моментальных снимков (если копирование system.img метода не работает):
В идеале это больше похоже на hibernarig виртуальное устройство с неповрежденным config, следовательно, все сохраняется.
Теперь вы можете сохранить несколько снимков AVD для данной конфигурации устройства и выбрать, какие из сохраненных снимков загрузить при запуске эмулятора. Запуск виртуального устройства путем загрузки снимка очень похож на выход физического из спящего режима, в отличие от загрузки его из выключенного состояния.
Проверено на уровне API 22
Также о проблемах с загрузочным замком читайте в другом посте: Android Emulator: Как избежать цикла загрузки после рутирования? и их обновления.
замечания
Большая часть ссылочного содержимого была для более старых версий Android и, следовательно, причина различных команд и путей, которые я изменил.
Выражение признательности;
Вот список команд, которые вы должны запускать во время работы эмулятора, я тестирую это решение для avd на Android 2.2:
Для AVD с 5.1.1 и 6.0 я использовал следующий скрипт в Windows:
Если вы получили ошибку при перемонтировании системного раздела, вам нужно запустить AVD из командной строки. Смотрите ниже первый шаг для Android 7.
Как конвертировать полученный временный корень в постоянный
Уже есть инструкции для разных эмуляторов.
Для AVD вы можете попытаться найти временный файл system.img, сохранить его где-нибудь и использовать при запуске эмулятора.
Теперь он будет использоваться на старте, вместо обычного. True, если изображение в SDK обновлено, оно будет иметь старое.
В этом случае вам нужно будет удалить это system.img и повторить операцию по его созданию.
Вам нужно перезагрузиться adbd из-под root:
И система перемонтирования:
Картинка с AVD Android 7 x86 с рутом:
Android Studio: отладка на реальном устройстве
Статья содержит ответы на вопросы, как правильно провести Android Studio тестирование на реальном устройстве, какие при этом используются настройки и команды для разных девайсов.
Разработка мобильного приложения предполагает процесс тестирования на работающем гаджете. Для Android Studio отладка на реальном устройстве возможна несколькими способами. Это можно сделать при помощи:
Чтобы провести Android Studio отладка по USB, подключаются соответствующие драйвера. Они первыми установятся автоматически после запуска на ПК.
Android предлагает разработчикам редактирование языка программирования (Java, C++, Kotlin), является компилятором создания АРК-файлов. Включает дополнительные инструменты:
Что означает ADB для Android studio
Android Debug Bridge или adb – утилита командной строки. С ее помощью проводится Android Studio тестирование на реальном устройстве:
Работает на модели клиент-сервер. Утилита размещается на компьютере в каталогах на диске С.
Adb устанавливается также через Wi-Fi. Для этого обеспечивается подключение устройств к одному Wi-Fi, иначе они не смогут распознать друг друга. Опция разрешает Android Studio запуск приложения на телефоне с операционной системой Android.
Android Debug Bridge – консольное приложение для использования в тестовой среде на мобильных гаджетах. Специализированные команды помогают взаимодействовать с устройствами по специализированным функциям.
Настройка Android-устройства для тестирования с ADB
После установки Android Studio на устройство применяется инструментарий SDK. Далее в настройках приспособления проводятся изменения, которые отличаются из-за разных моделей гаджета, производителя и версии программного обеспечения. Действия, как в Андроид Студио подключить устройство, сводятся к обобщенным этапам:
Android требует, чтобы приложение Android Studio получило разрешение прописать USB. Утилита располагает опциями:
Настройка ADB на Windows
Настройка ADB под Windows прописывается с любой директории ПК. Для использования функций на компьютере устанавливается SDK. Вес установочного пакета составляет 9 Мб. Он поддерживает все версии Windows. Инструмент автоматически устанавливает драйвера, которые необходимы для тестирования на устройстве. Набор для разработки программного обеспечения выпускается компанией Google. Отправляет команды терминала из внешних источников на телефон. Запуск происходит в Андроид Студио на телефоне с помощью Run App. После этого открывается окно выбора устройства, и запускается приложение.
Проверяем настройки ADB для тестирования
Проверка настроек проводится с помощью командной строки Windows. После запуска в поле для ввода поиска программ и файлов набирается строка «adb devices». В программе отразится перечень устройств, которые подключены к компьютеру. Если на экране появится непустой список, значит, настройки подключены правильно, и ADB работает в режиме реального времени.
Тестирование приложения с помощью реального устройства
Инструментарий SDK устанавливает и запускает программу каждый раз при компиляции. Система показывает диалоговое окно с вопросом о необходимости приема ключей.
Что делать, если Android Studio не видит телефон Samsung? Настроить приложение, чтобы оно обнаружило устройство, использовать утилиту adb. Указанные способы рассказывают о Android Studio, показывают, как запустить проект на телефоне.
Android Tips and Tricks
Android Studio
Не забывайте использовать шорткаты
Описание | Mac | Linux/Win |
Быстрый поиск по настройкам, действиям в IDE | Cmd+Shift+A | Ctrl+Shift+A |
Переопределить метод родительского класса | Cmd+O | Ctrl+O |
Поиск файла по имени | Cmd+Shift+O | Ctrl+Shift+N |
Список недавно редактируемых файлов | Cmd+Shift+E | Ctrl+Shift+E |
Список недавно открытых файлов | Cmd+E | Ctrl+E |
Последний редактируемый файл | Cmd+Shift+Backspace | Ctrl+Shift+Backspace |
Найти все места, где используется метод / переменная | Opt+F7 | Alt+F7 |
Как предыдущий пункт, только во всплывающем окне | Cmd+Opt+F7 | Ctrl+Alt+F7 |
Приведение кода в соответствие code style | Cmd+Opt+L | Ctrl+Alt+L |
Окружить блок кода конструкцией(if, else, try) | Opt+Cmd+T | Alt+Ctrl+T |
Открыть терминал | Opt+F12 | Alt+F12 |
Сгенерировать Setter/Getters/ | Cmd+N | Alt+Ins |
Поиска класса по имени | CMD+O | Ctrl+N |
Рефакторинг имени | Shift+F6 | Shift+F6 |
Быстрое исправление | Opt+Enter | Alt+Enter |
Перейти к объявлению переменной, класса, метода | Cmd+B | Ctrl+B |
Показать список параметров для метода | Cmd+P | Ctrl+P |
Меню рефакторинга | Ctrl+T | Ctrl+Alt+Shift+T |
Убить процесс | Cmd+F2 | Ctrl+F2 |
Поиск по всему проекту | Shift+Shift | Shift+Shift |
Удалить строку | Cmd+Backspace | Ctrl+Y |
Продублировать строку | Cmd+D | Ctrl+D |
Расширить/Уменьшить выделенное | Opt+Up/Down Arrow key | Shift +Ctrl+W |
Многострочное выделение | Ctrl+G | Alt+J |
Полный список шорткатов | MacOSX | Linux/Win |
Используйте плагины для повышения эффективности
Используйте Live Templates при разработке в Android Studio
Template | Описание |
newInstance | Генерирует статический метод `newInstance` внутри Фрагмента |
Toast | Генерирует Toast.makeText(context, «», Toast.LENGTH_SHORT).show(); |
fbc | findViewById с кастом к нужном типу View |
const | Определить константу типа int |
logd | Генерирует Log.d(TAG, «»); |
logm | Вынести в лог текущее имя метода и его аргументы. |
logr | Вынести в лог результат текущего метода |
logt | Статическая строка TAG для лога, с текущим именем класса |
psf | public static final |
sout | Печатает строку в System.out |
soutm | Печатает имя класса и имя метода в System.out |
soutp | Печатает аргументы и значения метода в System.out |
visible | Установить видимость View к VISIBLE |
gone | Установить видимость View GONE |
noInstance | Приватный конструктор без аргументов, чтобы запретить создание сущностей |
→ Полный список Live Templates в Android Studio
Постфиксное автодополнение кода в Android Studio
В Android Studio/IntelliJ есть специальный механизм дополнения кода, который позволяет применить конструкцию к определённой переменной.
Template | Описание |
Полный список доступных постфиксных дополнений кода вы можете найти в Settings → Editor → Postfix Templates
Используйте тему Darcula в Android Studio
Да, я осознаю, что это больше вопрос предпочтений. Однако поверьте мне, что использование тёмной темы сократит нагрузка на ваши глаза.
Не используйте неудобный/мелкий шрифт
По возможности старайтесь использовать такой шрифт, который удобно читать и не доставляет дискомфорта для ваших глаз. Я использую Menlo font.
Используйте codestyle
Вам следует использовать стандартный codestyle. Для примера посмотрите на AOSP Codestyle или Square IntelliJ Codestyle
Используйте Встроенный терминал в Android Studio
Используйте Memory/Network/CPU мониторинги в Android Studio для профилирования вашего приложения
Эмулятор
Кроме использования реальных девайсов, вы также должны использовать эмуляторы ввиду простоты их настройки и использования. Также вы можете легко настраивать на них разрешение и версию API для тестирования. Genymotion, Intel эмулятора поставляемый вместе с SDK
Vysor
Это очень полезный инструмент, достойный отдельного упоминания. По сути, он позволяет стримить содержимое физического Android устройства на экран ноутбука. Очень удобно, когда вам нужно продемонстрировать демо вашего приложения на презентации. Мы можем взаимодействовать с реальным устройством, и всё это будет представлено прямо на экране ноутбука. Есть бесплатная и платная версии, и платная определённо стоит того, чтобы её купить.
DeskDock
Если вам необходимо манипулировать физическим Android устройством (используя клавиатуру и мышь), то это приложение замечательно с этим справится. Позволяет вам управлять вашим Android устройством, как если бы это была часть рабочего стола компьютера. Бесплатная версия позволяет использовать мышь, Платная версия позволяет использовать клавиатуру и другие возможности. С этим приложением можно тестировать приложение, не отрывая рук от клавиатуры ноутбука.
Выбирайте лучшие инструменты при написании кода
Выполните следующую команду в директории вашего проекта для обновления gradle wrapper.
— Установите опции сборки в глобальном в `gradle.properties` файле
Полезные советы по UI/UX
Движение
Material Design использует физику реального мира как основу. Объекты в реальном мире не двигаются линейно, они двигаются по искривлённым траекториям а также с ускорением и замедлением в зависимости от ситуации.
Таким образом, вы должны манипулировать свойствами и анимировать объекты так, чтобы это выглядело натурально и естественно. Например машина, выезжающая за экран начинает движение медленно, постепенно ускоряясь по приближению к краю экрана. Аналогично ui элементы должны перемещаться используя такие классы как AccelerateInterpolator, FastOutSlowInInterpolator и другие.
Шрифты, отступы
В принципе, нестандартные шрифты можно использовать как часть брэндинга, однако лучше всё-таки остановиться на стандартных Roboto и Noto, если это возможно, в особенности для основного текста из-за их узнаваемости и частого использования.
Roboto покрывает Латинские, Греческие и Кириллические символы, Noto покрывает остальные языки.
Балансировка яркости шрифта — это один из наиболее важных параметров современной стилистики. Основная идея заключается в том, что чем меньше шрифт, тем более ярким он должен быть, и наоборот.
Сам текст должен быть выровнен по сетке с ячейкой 4dp.
Идеальная длина текста для больших блоков от 40 до 60 символов в строке.
Иконки
Иконки должны быть размером 48dp c краями 1dp, что эквивалентно:
Дополнительная иконка с размером 512px x 512px должна быть предоставлена для Google Play.
То же касается иконки с размером 1024px x 500px, которая будет отображаться в шапке на странице вашего приложения.
Ripple
Когда реализуете Ripple, который выходит за края View, как например у ImageView, используйте:
Остальные пункты
Элементы в соответствии с Material Design Views должны быть расположены на сетке с ячейкой размерами 8dp, если это возможно. Благодаря этому подходу UI выглядит структурированным и приятным.
Если вам нужна ссылка на какой-нибудь элемент ViewGroup (LinearLayout, FrameLayout, RelativeLayout, etc.) и вам не нужны никакие специфичные методы именно для этого типа ViewGroup, то не храните конкретный тип, используйте просто ViewGroup.
Другие ресурсы
Cделайте закладки в своём браузере на различные популярные ресурсы
Используйте бесплатные mock API для тестирования
Все примеры, перечисленные ниже, тем или иным образом позволяют тестировать ваше приложение без бэкенда. Если понадобится воспользоваться, пробегитесь по списку и посмотрите, какой из пунктов максимально удовлетворяет вашим запросам и потребностям по функционалу.