0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как рисуют роботы: поддержка разрешений в ОС Android

Содержание

Управление разрешениями Android приложений

Наконец-то Google сделал это. Android 6.0 Marshmallow включает в себя новый iOS стиль, добавляющий управление разрешениями Android приложений. Вы также можете вручную отменить разрешения любого приложения — даже, разработанные для старых версий Android.

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

Новая система разрешения приложений Android

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

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

Управление разрешениями Android приложения

Для этого Вам потребуется Android 6.0 Marshmallow или более новая версия на Вашем устройстве.

Откройте «Настройки», нажмите на пункт «Приложения», который находится в разделе «Устройство».

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

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

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

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

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

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

Вы также можете зайти в меню, которое располагается в правом верхнем углу на данном экране, и нажать «Все разрешения». Здесь можно увидеть все разрешения, которые выданы приложению. Android скрывает некоторые разрешения. Как видите, управление разрешениями Android приложений распространяется не на все категории.

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

Просмотр и управление разрешениями Android для всех приложений

Для просмотра и управления разрешениями для всех приложений сразу, откройте Настройки и перейдите в Приложения. В правом верхнем углу нажмите на иконку шестеренки и нажмите на пункт «Разрешения приложений».

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

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

При отключении разрешения Вы увидите предупреждение о том, что приложение было разработано для старых версий Android.

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

Чем опасны разрешения для приложений в системе Android

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

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

Если приложение требует «опасного» разрешения, тогда система запрашивает согласие у пользователя. Почему некоторые полномочия считаются опасными? В каких случаях лучше запретить доступ?

Опасные разрешения для приложений

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

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

Календарь

  • Просмотр событий, хранящихся в календаре (READ_CALENDAR).
  • Редактирование старых событий и создание новых (WRITE_CALENDAR).

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

Камера

  • Доступ в камере (камерам) позволяет приложению использовать телефон для съемки фотографий и записи видео.

Опасности: приложение может тайно записывать видео или делать фотографии в любое время.

Контакты

  • Чтение контактов (READ_CONTACTS).
  • Редактирование контактов и добавление новых (WRITE_CONTACTS).
  • Доступ к списку учетных записей (GET_ACCOUNTS).

Опасности: приложение может получить доступ к адресной книге. Эти данные являются очень привлекательной добычей для спамеров и мошенников. Это разрешение также позволяет получить доступ к списку всех аккаунтов, которые вы используете на вашем устройстве – Google, Facebook, Instagram и т.д.

Местоположение

  • Доступ к местоположению (ACCESS_COARSE_LOCATION), определяемому на основе данных со станций, телефонов и точек доступа Wi-Fi.
  • Доступ к точной локализации (ACCESS_FINE_LOCATION), на основе данных GPS.

Опасности: приложение будет знать, где вы находитесь, в любое время. Может, например, дать знать грабителям, когда Вас нет дома.

Микрофон

  • Запись звука с микрофона (RECORD_AUDIO).

Опасности: приложение может записывать всё, что происходит рядом с телефоном. Все разговоры. Не только тогда, когда Вы разговариваете по телефону, но и в течение всего дня.

Телефон

  • Чтение информации о телефоне (READ_PHONE_STATE) позволяет программе узнать номер телефона, текущей мобильной сети, состояние текущих соединений и т.д.
  • Совершать звонки (CALL_PHONE).
  • Просмотр списка вызовов (READ_CALL_LOG).
  • Изменение списка вызовов (WRITE_CALL_LOG).
  • Добавление почтового автоответчика (ADD_VOICEMAIL).
  • Использование VoIP (USE_SIP).
  • Обработка разрешений исходящих вызовов (PROCESS_OUTGOING_CALLS) дает приложению доступ к информации, кто звонит, и позволяет перенаправить его на другой номер.

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

Датчики тела

  • (BODY_SENSORS) – эти права обеспечивают доступ к данным, связанным со здоровьем, собираемым некоторыми датчики, такими как датчик сердечного ритма.

Опасности: если вы используете аксессуаров с датчиками тела (помимо встроенных в телефон датчиков движения), это приложение получает данные о том, что происходит с вашим телом.

  • Отправка SMS-сообщения (SEND_SMS).
  • Просмотр сохраненных сообщений (SMS READ_SMS).
  • Прием SMS-сообщений (RECEIVE_SMS).
  • Прием сообщений WAP Push (RECEIVE_WAP_PUSH).
  • Прием входящих MMS-сообщений (RECEIVE_MMS).
Читать еще:  Samsung готовит 50-мегапиксельный 1

Угрозы: позволяет приложению принимать и читать входящие SMS-сообщения и отправлять их (разумеется, за ваш счет).

Память устройства

  • Чтение SD-карты или другого носителя памяти (READ_EXTERNAL_STORAGE).
  • Сохранение записей в памяти или на SD-карте (WRITE_EXTERNAL_STORAGE).

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

Как настроить разрешения для приложений

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

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

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

Вы также можете проверить список предоставленных разрешений и изменить их для любого приложения. Для этого выберите пункт НастройкиПриложения (в зависимости от версии Android эти и другие элементы меню могут иметь разные названия).

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

Другой способ – это просмотреть список всех приложений, которые уже требовали или могут не требовать одно из опасных прав. Например, хорошей идеей будет проверить, какие приложения хотят иметь доступ к списку контактов, и аннулировать разрешения в случае сомнений. Для этого щелкните Настройка приложения (значок шестеренки в правом верхнем углу) и выберите пункт Разрешения приложений.

Особые разрешения для приложений

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

Доступность

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

После получения таких разрешений доступа троянские программы могут извлекать данные из приложений (в том числе ввод текста – пароли). Кроме того, вредоносные программы могут приобретать приложения в магазине Google Play.

Стандартное приложение для общения

Банковские трояны хотят быть стандартными приложениями для обработки SMS, потому что таким образом они могут читать SMS-сообщения и скрывать их – даже в более поздних версиях Android.

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

Всегда сверху

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

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

Права администратора устройства

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

Права root

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

Стоит отметить, что даже новая система разрешений (в Android 6 и выше) не защищает полностью от вредных программ. Например, trojan-Gugi неоднократно заражает жертву, требуя (до получения результата) разрешения на внесение изменений в интерфейс. В конечном итоге, вредоносное приложение перекрывает все другие приложения до тех пор, пока не получит необходимых разрешений.

Выводы

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

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

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

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

Влияет ли масштаб dp на производительность Android смартфона? Масштаб dp = разрешение экрана?

Интерфейс стал меньше, а количество объектов стало больше, по логике загрузка на видео чип и процессор увеличилось ? Масштаб dp и разрешение экрана это одно и тоже? Если нет, в чем разница?

Чем больше значение ,тем больше влезает информации.

Меню это для разработчиков, вы разработчик ?

Я не разработчик. Это меню открывается если несколько раз тапнуть на «Номер сборки».

Ну если ты не разработчик, зачем туда лезть ?

Если не кухарка, зачем лезешь в управление государством?

Я для экономии аккума сделал другое. Изменил разрешение, вместо fhd+ выставил 720×1560 и dpi опытным путём подобрал в 240, визуально разница практически незаметна, ибо пиксели очень мелкие, зато нагрузка на прорисовку высоких разрешений заметно упала. Бонусом тяжёлые графические приложения будут шустрее работать, проц меньше греться и потреблять. Это гораздо больше влияет на увеличение производительности, а просто изменение dpi (масштабирования, грубо говоря) никакой разницы не даст.

У меня телефон Мейзу М6 нот, там Full HD и 5.5 дюймов, до этого был Samsung galaxy s1 (4″ 800×480 px). И меня удивило то что на стареньком самунге при меньшем разрешении масштаб интерфейса был идеальный ! А, вот на новом наоборот при большей диагонали, верхний бар ( где зарядка, и вай-фай) был огромен. Такое ощущение что разрешение смартфона 2010. И все это из коробки! По моей логике чем больше экран, тем больше информации должно влезать, а не просто масштабироваться. . Ну это меня бомбило.

А на счет вопроса: Это все таки разрешение, или масштаб? Так,как если это расширение тогда это очень странное решение для производителя.

Это просто масштабирование, можешь просто выбрать подходящее для себя и забить.

И все же, что такое масштабирование? Например в винде если на Full hd мониторе, поставлю разрешение 800х600 картинка будет очень огромная. Я не могу понять разницы.

Взять два айфона 4 и 4с, диагональ одинаковая, а разрешение разное.Правильно? Если гипотетически уменьшить масштаб интерфейса айфона 4с ( чтоб и шрифт был меньше, и элементы интерфейса), это и есть изменение разрешение дисплея?

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

В винде тоже можно DPI менять без изменения разрешения. Это именно оно. А разрешение — это именно разрешение, которое будет выводиться на экранчик.

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

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

У тебя какой размер дисплея? И где эти настройки?

6.3″. Это делается через adb двумя командами. Включаем отладку по USB и вперёд.

adb shell wm size 720×1560

adb shell wm density 240

Либо с телефона через терминал любой. Через терминал возможно нужен root, не в курсе, я через кабель и adb менял.

После чего надо ребутнуться. Разрешение в зависимости от родного экранного можно самому подобрать, как и DPI

Так как остро захотелось снова всю ночь прошивать телефон экспериментировать, то естественно встал вопрос: как определить поддерживаемые аппаратом разрешения и dpi, чтобы не ловить при неверных параметрах bootloop?

Он тут вообще никаким боком невозможен. Это просто как на мониторе меняешь разрешение. Даже если интерфейс весь нафиг съедет, всё равно делаешь это через кабель и adb, всегда можешь родные значения вернуть или сделать adb shell wm size reset

Так как я ебанутый любознательный, попробую отadbшить старушку Sola

Че так сразу. вполне нормальное желание 😎

С тех пор, как я познакомился с Android, всё чего-то в своих аппаратах настраиваю, оптимизирую, кастомизирую, а оно периодически бутлупится от откровенно тупых вещей, и снова и снова плачу и жру кактус перешиваю, настраиваю..

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

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

Читать еще:  Расписание E3 2018: дата и время начала пресс-конференций

А гугл чего плохого сделал? Меняешь на opengapps или microg и пользуешься как обычно, никто за вэйклоки не дёргает и удобства все есть.

С активностью и так всё в порядке у 8-9 версий андроида, энергосбережение очень разумное.

потому тебе и написали про opengapps и microg

Практически не влияет.

Рассказ на заказ. Как удалить встроенные (системные) приложения Android на телефоне без root доступа

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

ВСЕ ДЕЙСТВИЯ ВЫ ПРОИЗВОДИТЕ НА ВАШ СТРАХ И РИСК.

Для осуществления задуманного будем использовать ADB.
Материал для справки: ADB (Android Debug Bridge — Отладочный мост Android) —
консольное приложение для PC, с помощью которого производится отладка Android устройств, в том числе и эмуляторов.
Работает по принципу клиент-сервер. При первом запуске ADB с любой командой создается сервер в виде системной службы (демона), которая будет прослушивать все команды, посылаемые на порт 5037.

Устанавливаем ADB на свой компьютер. Инсталлятор можно скачать в интернете, либо взять здесь: https://yadi.sk/d/uiZPZ-viXFwPhQ
После установки подключаем телефон к компьютеру и ждем пока установится драйвер. Если драйвер автоматически устанавливаться не желает, то ищем его в интернете и устанавливаем сами. (Пример для поиска: adb driver Xiaomi Redmi 7).
Отключаем телефон от компа.
Следующим шагом приступим к настройке телефона. Для этого перейдите в: «Настройки» — «О телефоне» — 7 раз нажмите на номер сборки. После этого вы станете разработчиком. В настройках для разработчиков активируйте отладку по USB. При подключении USB-кабеля выбираем «Передача файлов».

Теперь при помощи ярлыка на рабочем столе запускаем ADB. Появиться окно приблизительно такого вида:

С ним мы теперь и будем работать.

Снова подключаем, теперь уже настроенный, телефон к компьютеру.
Порядок работы:
1. Проверка подключения телефона.
В консоли вводим: adb devices
Получаем ответ: device
Это означает, что аппарат подключен и готов к работе.
Если получим такой ответ: unauthorizid
Это означает, что необходимо подтвердить подключение на аппарате.

2. Получаем доступ к системным данным.
— вводим: adb shell
— ответ: onc:/ $

3. Удаляем встроенные проги. Для этого вводим команду:
pm uninstall -k —user 0 com.google.android.music

Последняя часть команды «…com.google.android.music» содержит имя пакета который мы хотим удалить. Этой командой мы удалим приложение Google music.

Чтобы узнать имя пакета мы должны в телефоне зайти в настройки, и выбрать пункт «все приложения».

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

Как управлять разрешениями для приложений в ОС Android 6.0 и более поздних версий

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

Совет. Чтобы узнать свою версию Android, откройте настройки устройства . Затем нажмите Система О телефоне или О планшете.

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

Некоторые приложения из Play Маркета запрашивают доступ к данным перед установкой. Если приложение было создано для ОС Android 6.0 и более поздних версий, разрешения можно настроить уже после его запуска.

  1. Запустите приложение «Play Маркет» .
  2. Откройте страницу нужного приложения. Прокрутите ее вниз до раздела «Разработчик» и выберите Посмотреть разрешения.
  3. Нажмите Установить.
    • Некоторые приложения будут установлены сразу. Вы сможете разрешить или запретить доступ к данным или функциям во время работы с программой.
    • Перед скачиванием других приложений появится список необходимых разрешений. Если вы не хотите предоставлять их, откажитесь от установки программы.

Приложения, установленные на устройстве

При обновлении установленного приложения его разрешения могут измениться.

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

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

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

Выберите подходящую инструкцию ниже.

Для одного приложения

  1. Запустите приложение «Play Маркет» .
  2. Нажмите на значок меню Мои приложения и игрыУстановленные.
  3. Выберите приложение.
  4. Нажмите на значок «Ещё» .
  5. Снимите флажок Автообновление.

Для всех приложений

  1. Запустите приложение «Play Маркет» .
  2. Нажмите на значок меню Настройки.
  3. Выберите Автообновление приложений Никогда Готово.

Настройка разрешений

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

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

Установленное приложение

  1. Откройте настройки устройства Android.
  2. Нажмите Приложения и уведомления.
  3. Коснитесь приложения, которое хотите обновить.
  4. Нажмите Разрешения.
  5. Выберите, какие разрешения предоставить приложению, например Камера или Телефон.

Приложение с мгновенным запуском

  1. Откройте настройки устройства Android.
  2. Выберите Приложения и уведомления. Появится список недавно открытых приложений.
  3. Нажмите на нужное приложение.
  4. Просмотрите раздел Разрешения.
  1. Откройте настройки устройства Android.
  2. Нажмите Приложения и уведомления.
  3. Выберите Дополнительно Разрешения приложений.
  4. Выберите разрешение, например Календарь, Местоположение или Телефон.
  5. Укажите, каким приложениям вы хотите предоставить выбранное разрешение.

Если в приложении возникают ошибки, выполните действия ниже.

Шаг 2. Убедитесь, что нужные разрешения предоставлены. Вот как это сделать:

  1. Откройте настройки устройства Android.
  2. Нажмите Приложения и уведомления.
  3. Коснитесь нужного приложения.
  4. Нажмите Разрешения. Если разрешение отсутствует, переключатель рядом с ним будет серым.
  5. Возможно, проблема решится, если вы предоставите некоторые разрешения. Касайтесь названий различных разрешений, чтобы активировать их.
  6. Запустите приложение и проверьте, устранена ли проблема.

Разрешения приложений в ОС Android 6.0 и более поздних версий

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

Чтобы просмотреть разрешения на устройстве, следуйте инструкциям в разделе «Настройка разрешений».

  • Датчики на теле
  • Календарь
  • Камера
  • Контакты
  • Местоположение
  • Микрофон
  • Телефон
  • SMS
  • Хранилище

Примечание. Если номер версии Android на вашем устройстве меньше, чем 6.0, прочитайте эту статью.

Как рисуют роботы: поддержка разрешений в ОС Android

Дисклеймер от редактора: все нижесказанное не относится к разработке игр, создателям которых действительно порой приходится держать в тестовой лаборатории по 3-4 сотни устройств. О разработке игр под Android мы планируем написать отдельно.

Одним из важных отличий планшета Nexus 7 стал великолепный экран. Его разрешение составляет 800х1280 при диагонали 7 дюймов, в то время как «традиционное» разрешение 7-дюймовых планшетов — 600х1024. Теоретически большее разрешение означает то, что приложения будут лучше выглядеть, но, с другой стороны, это еще одно разрешение, под которое разработчикам надо адаптировать свои творения. Масла в огонь подлила портретная ориентация («телефонность») UI Android на новом планшете. Все напряглись, набрали в себя воздух и… «A-a-a-a-and-d-d-dr-r-r-r-ro-o-o-o-oid fr-r-r-r-ragmenta-a-a-a-ation. ».

Вскоре после выхода Nexus 7 на Google+ (где обычно появляются посты от инженеров «Гугла») появился. пост от инженера « Гугла», руководителя группы по работе над фреймворком Android Дайэн Хэкборн (Dianne Hackborn), известной разработчикам под Android под ником hackbod.

В посте Дайэн рассказала об особенностях экрана Nexus 7, его сходствах с экранами традиционных 7-дюймовых планшетов и отличиях от них . Но сделала она это с использованием непонятных для многих технических терминов, да еще и запутала некоторых разработчиков просьбой не писать адаптированные под экран Nexus 7 версии программ. Откуда-то взялось какое-то непонятное разрешение 600х961 (при чем тут это, разрешение же вроде 800х1280?), появилась новая плотность экрана tvdpi (dpi вроде понятно, но телевизор тут при чем?). В общем, попробуем распутать самостоятельно, ведь от известной своей резкостью дамы этого едва ли дождешься.

В отличие от конкурирующих ОС, Android не накладывает ограничений на размер и разрешение устройств, на которых он может работать. Напомним, что изначально такое ограничение было: в младенчестве (1.5 Cupcake на HTC G1) Android поддерживал только одно разрешение — HVGA (320×480) на 3,5-дюймовом экране. Но начиная со следующей версии «робот» научился понимать другие конфигурации экранов. Решение снять все ограничения было сознательным — нужно было увеличить разнообразие устройств на Android, пусть и за счет неизбежного увеличения количества головной боли для инженеров Google и разработчиков софта (как программистов, так и дизайнеров). Дабы головной боли было не слишком много, задачу поддержки разных экранов решили упростить и систематизировать следующим образом:

  • физические размеры экранов разбиваются на диапазоны: small (от 2 до 3,5 дюймов с нестандартным соотношением сторон), normal (от 3 до 4 дюймов), large (от 4 до 7 дюймов), xlarge (от 7 до 10 дюймов)
  • пиксельная плотность экранов (dpi) тоже разбивается на диапазоны: ldpi (120), mdpi (160), hdpi (240), xhdpi (320)
  • производитель устройства прописывает в прошивке, в какой диапазон по размеру и плотности данное устройство попадает
  • разработчик приложений включает в приложение необходимые (по его мнению) интерфейсные и графические ресурсы, рассортировав их в определенные папки, по диапазонам.
Читать еще:  Wolfenstein: Youngblood — эксперимент, очевидно, неудачный

Таким образом, задача довольно сильно упрощается — когда запускается приложение, Android знает (из свойств прошивки), какие диапазоны задействованы, и берет ресурсы из нужных папок. Если ресурса для нужного диапазона нет, не беда – Android поищет ресурс с таким же названием в другой папке и приспособит его для нужного диапазона. Например, если разработчик включил в приложение только графические файлы для hdpi, а пользователь запустил приложение на устройстве с mdpi-экраном, Android просто считает соответствующий hdpi ресурс в память, ужмет его размер на треть и «отдаст» его программе. Причем «ужатая» копия будет закеширована в памяти на будущее, чтобы каждый раз, когда нужен этот ресурс, не нагружать процессор дорогостоящей операцией ужимания. Схема эта работает довольно хорошо — разработчикам даже не рекомендуется делать и включать в программу ресурсы ldpi, так как их легко сделать из ресурсов hdpi (самого популярного на данный момент диапазона) путем выкидывания каждого второго пикселя по горизонтали и вертикали.

Содержимое папки /res последней версии Google Maps

То, что в *dpi-папки надо класть графику — очевидно. Чем выше dpi, тем больше должен быть размер картинки, чтобы она получалась примерно одинакового размера на экране. А для чего тогда нужен размер экрана? Тут все немного хитрее. Сильно утрируя, можно сказать, что он определяет «телефонность» или «планшетность» устройства. Больший физический размер экрана элементарно позволяет больше на нем разместить, что сильно влияет на количество и расположение элементов UI на экране. Хороший пример — системные настройки. На 10-дюймовом (xlarge) экране планшета, да еще в ландшафтной ориентации вполне можно разместить список настроек слева, а опции по конкретной настройке — справа. А вот на 4-дюймовом (normal) экране телефона такое не пройдет — даже в ландшафте экран телефона слишком мал, чтобы втиснуть в него два списка: будет сложно читать и тем более выбирать что-то пальцем. Вот и приходится показывать списки раздельно — сперва общий список настроек, а потом, при выборе настройки — список опций. Разбивка на диапазоны позволяет запрограммировать подобную логику довольно просто — в папку ресурсов для xlarge кладем планшетную конфигурацию UI (layout) с двумя списками на одном экране, а в папку для normal — телефонную с одним списком на каждый экран.

Интересный факт: как было сказано выше, при подборе замены для графического ресурса (картинки) Android ищет «сверху вниз», от более высоких разрешений к низким. А вот при подборе замены для раскладки UI (layout) Android идет в противоположном направлении — используется раскладка для меньшего экрана. И если первое очевидно (если нет, то растяните картинку в графическом редакторе и посмотрите, что будет с качеством), то во второе надо чуть вдуматься. Дело в том, что попытка впихнуть планшетную раскладку на телефонный экран может привести к тому, что приложением будет практически невозможно пользоваться, в то время как телефонная раскладка на экране планшета вполне функциональна, хоть и не так красива.

А теперь пара слов про размеры элементов UI в пискелях. Например, про размер шрифтов, который обычно задается в пикселях. Допустим, разработчик оптимизировал размер шрифтов под mdpi-экран в раскладке UI для телефона (размеры шрифтов живут там). А пользователь запустил приложение на телефоне с экраном этого размера, но с xhdpi-плотностью. Размер в пикселях не изменится, а вот их физический размер сильно уменьшится (задача для упорных: во сколько раз?) . В результате шрифт на экране будет мелким. На помощь приходит dp — density independent pixels, пиксели, не зависящие от плотности. Это референсные пиксели, для плотности mdpi. Выбор mdpi как референсной плотности сделан из исторических соображений — первый телефон на Android имел плотность mdpi. Разработчик задает размер шрифтов (или других элементов UI) не в пикселях, а в dp. А Android, зная размер экрана для данной раскладки и отношение плотности данного экрана к референсной, сам посчитает нужный размер и увеличит размер шрифта, чтобы он был подходящего размера. Просто, как два байта переслать.

Начиная с версии 3.2 Android дает разработчику даже больший контроль над конфигурацией UI для разных экранов. Разработчик может указать «минимальную ширину» экрана, при достижении которой будет выбрана конретная раскладка, таким образом определяя диапазоны самостоятельно. Это позволяет, например, задавать разные раскладки для 7-дюймовых и 10-дюймовых планшетов. 7-дюймовые планшеты обычно имеют разрешение 600х1024, тогда как 10-дюймовые — 800х1200, в то время как по старой схеме диапазонов они оба попадали под xlarge. Как показывает практика, не все, что хорошо для 10-дюймового экрана, будет хорошо работать на 7-дюймовом. Соответственно, определяя собственные диапазоны, разработчик получает возможность создавать оптимизированные UI под каждый.

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

Nexus 7 — это 7-дюймовый планшет, он очень похож на своих 7-дюймовых собратьев. С разницей в плотности экрана — у стандартных планшетов с разрешением 600х1024 она — mdpi, у Nexus 7 с его 800х1280 — tvdpi. В пересчете на традиционную ширину в 600 пикселей разрешение Nexus 7 получится 600х961. Если сравнить его с 600х1024, то соотношение сторон Nexus 7 будет 16:9, что не слишком отличается от стандартного 16:10. То есть по доступной площади и конфигурации экрана Nexus 7 отличается незначительно.

Еще одна проблема долой — экран Nexus 7 попадает под диапазон sw600dp (минимальная ширина экрана 600 пикселей), ориентированный как раз на 7-дюймовые планшеты. Таким образом, раскладки UI, заточенные под 7-дюймовые планшеты, будут работать на Nexus 7.

Незнакомое нам tvdpi — это новый диапазон плотности, созданный для приложений под 720p-телевизоры (для 1080p-телевизоров используется xhdpi). Но специально для него оптимизировать ничего не надо. Это «вторичное» разрешение, устройство может быть под него сконфигурировано, но разработчикам создавать отдельные графические ресурсы не рекомендуется. Как рассказывалось ранее, Android умеет изменять размер графических ресурсов, чтобы приспосабливать их для нужной плотности экрана. Именно эту способность системы и рекомендуется задействовать в данном случае. С возможными побочными явлениями (артефактами) при этом Android борется следующими методами:

  • Артефакты намного меньше заметны на экранах высокого разрешения, как у Nexus 7.
  • При создании графического ресурса Android обычно использует ресурсы для более высокой плотности экрана. В данном случае, скорее всего, это будет hdpi, который использует подавляющее большинство устройств, соответственно, ресурсы для него есть практически в каждом приложении.
  • Планшетный UI использует иконки «на размер больше», чем данная плотность экрана. В рассматриваемом случае это опять популярный hdpi. Причем он будет использоваться в оригинальном размере, то есть с максимальным качеством.

Вот и получается, что, несмотря на новое разрешение экрана, соотношение сторон и плотность, девелоперам особо ничего не надо делать, чтобы их приложения работали на Nexus 7 и при этом нормально выглядели. Дайэн пишет, что Nexus 7 послужил отличным тестом возможностей Android приспосабливаться к разным экранам. При создании UI Jelly Bean им пришлось создать только один графический ресурс tvdpi — для фона выпадающей панели уведомлений.

Автор — инженер Samsung Mobile USA

Как управлять разрешениями для отдельных приложений на Android

Каждый раз при установке нового приложения мы видим всплывающее окно с сообщением о том, какие разрешения будут предоставлены устанавливаемой нами программе. Чаще всего пользователи не утруждают себя подробным изучением этого окна и соглашаются на всё не глядя. И совершенно зря. Некоторые недобросовестные разработчики пользуются нашим доверием и оснащают свои программы излишними возможностями и запросами. Навести порядок в этой области поможет программа Permission Master.

Permission Master — это специальный модуль для Xposed Framework, который предназначен для управления разрешениями любой установленной на вашем гаджете программы. Подробное описание этого проекта с пошаговыми инструкциями по установке Xposed и отдельных модулей для него я сделал в этой статье, поэтому не будем ещё раз повторяться, а перейдём непосредственно к работе Permission Master.

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

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

Приложение Permission Master пригодится всем продвинутым пользователям Android, которые хотят иметь полный контроль над установленными приложениями. Теперь вы получите возможность отключить функции слежения, закрыть доступ к сети тем программам, которые в нём вообще не нуждаются, запретить будить свой смартфон и многое-многое другое, что недоступно простым пользователям Android.

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector