- Советы
- Cleartext HTTP traffic not permitted (https)
- Запретить делать скриншот экрана приложения
- Аналог html-кода
- Где находятся исходники системного калькулятора?
- Имитация тяжёлых задач
- Доступ к ресурсам через URI
- Ошибка Debug Certificate expired
- Убрать предупреждающие значки при использовании строк в атрибутах
- Проверка на первый запуск приложения
- Ошибка при загрузке apk-файла на эмулятор/устройство
- Сделать скриншот экрана своего приложения
- Раскодирование HTML-символов
- Кодирование строк по схеме UTF-8
- Кодирование в режиме Base64
- Пишем собственную функцию md5() для вычисления хэша строки
- Как заблокировать экран в приложении?
- Узнать размеры экрана
- В чем разница между fill_parent и match_parent
- Как убрать заголовок у Activity?
- Как использовать собственный значок для программы
- Получить номер версии программы
- Убить приложение
- Сколько используется памяти
- Разрешённый объём памяти для приложения
- Запретить автоматическую смену ориентации при повороте устройства
- Особенности изменения разрешения экрана на смартфоне с ОС Android
- Зачем менять параметры экрана
- Как узнать разрешение экрана на Android-устройстве
- С помощью скриншота
- Официальные характеристики
- AIDA64
- Как изменить разрешение дисплея на смартфоне/планшете
- Easy DPI Changer
- SecondScreen
- Android Debug bridge
- Как изменить расширение экрана без специальных приложений
Советы
Cleartext HTTP traffic not permitted (https)
При работе с Android 8+ примеры, которые обращаются к веб-адресам по протоколу http вызывают ошибку. Чтобы обойти данное ограничение, можно сделать следующее.
В папке res/xml размещаем файл network_security_config.xml:
В манифесте в блоке application добавляем новый атрибут.
Запретить делать скриншот экрана приложения
Существует специальный флаг FLAG_SECURE, запрещающий пользователю сделать скриншот вашего экрана. Это нужно в целях безопасности для отдельных видов приложений, например, банковских.
Аналог html-кода
При многострочных текстах вы можете воспрепятствовать переносу слов на разные строки, если их желательно держать вместе. В html есть специальный символ неразрывного пробела . В строковых ресурсах вы можете использовать символ или юникод-код \u00A0.
Где находятся исходники системного калькулятора?
Имитация тяжёлых задач
В Android нельзя выполнять сложные задачи в основном потоке. Для создания быстрой заглушки, которая будет имитировать тяжёлую задачу, можно написать следующий код:
Например, поместите код в обработчик нажатия кнопки и после нажатия нажмите на кнопку Back. Программа зависнет и вы увидите сообщение об этом.
Доступ к ресурсам через URI
Обычно мы обращаемся к ресурсам через идентификатор. Существует альтернативный способ через Uri. Например, такой подход может пригодиться для загрузки изображения в WebView при помощи метода loadUrl(). Формат доступа будет следующим: android.resource://[package-name]/res-id. Например:
Ошибка Debug Certificate expired
По умолчанию вашей программе выдается отладочный сертификат на один год. Если у вас есть старый проект, то можете получить сообщение об ошибке: Error generating final archive: Debug Certificate expired.
Вам следует удалить старый сертификат, и Eclipse создаст новый ещё на один год. Путь к сертификату можно посмотреть в настройках: Preferences | Android | Build | Default debug keystore. Обычно это папка C:\Users\ИмяПользователя\.android.
Убрать предупреждающие значки при использовании строк в атрибутах
Если в некоторых атрибутах компонентов использовать строки, то появляются предупреждающие значки с всплывающей надписью [I18N] Hardcoded string «Котики рулят», should use @string resource. Надпись призывает использовать строковые ресурсы, а не писать текст прямо в атрибутах. На самом деле это всего лишь предупреждение, а не ошибка. Программа будет прекрасно запускаться, но новичков такие надписи пугают. Можете убрать данное предупреждение, если добавите дополнительный атрибут tools:ignore.
Проверка на первый запуск приложения
Для проверки первого запуска приложения можно использовать настройки SharedPreferences. Смотрите пример.
Ошибка при загрузке apk-файла на эмулятор/устройство
Если при загрузке apk-файла вашего приложения на эмулятор или устройство вы получаете сообщение об ошибке:
Failed to upload xxxxxxxx.apk on device ’emulator-5554′
java.io.IOException: Unable to upload file: timeout
То зайдите в Eclipse в меню Window | Preferences | Android | DDMS и в текстовом поле ADB connection time-out (ms) вместо значения по умолчанию 5000 введите большее значение.
Сделать скриншот экрана своего приложения
Один из примеров снятия скриншота своего экрана — через методы рисования получить графический отпечаток корневой разметки, а затем сохранить его как картинку, которую можно вывести в ImageView. Выберите любой ваш экран для опытов и добавьте на неё кнопку для снятия скриншотов и ImageView для вывода сохранённого изображения. В моём случае корневым элементом была компоновка TableLayout.
Результат до и после снятия скриншота. Сам скриншот помещается в ImageView, поэтому растягивается до его размеров. Попробуйте доработать пример.
Изменённый пример, когда скриншот сохраняется на SD-карту:
Не забываем про разрешения.
Раскодирование HTML-символов
Если вам нужно раскодировать HTML-символы (угловые скобки <>, знак амперсанда &, кавычки «»), то воспользуйтесь методом TextUtils.htmlEncode(). Добавим на форму две текстовые метки. И небольшой код для примера:
Примечание: Если вы пользуетесь Notepad++, то там есть такая же возможность: TextFX | TextFX Convert | Encode HTML.
Кодирование строк по схеме UTF-8
Вероятно, вы не раз замечали, что в адресной строке некоторые символы заменяются на последовательность других символов. Самый простой пример — символ пробела заменяется на %20. Немного изменим предыдущий пример:
В нашем примере были преобразованы символы пробела и русские символы.
Кодирование в режиме Base64
Пишем собственную функцию md5() для вычисления хэша строки
У PHP-программистов есть готовая функция md5(), которая вычисляет MD5 хэш строки с использованием алгоритма MD5 RSA Data Security и возвращает этот хэш. Хэш представляет собой 32-значное шестнадцатеричное число. Напишем собственную функцию на Java:
Осталось применить её где-нибудь:
Как заблокировать экран в приложении?
Также нужно установить разрешение android.permission.DISABLE_KEYGUARD.
Если стоит обратная задача — запретить блокировку экрана при долгом бездействии, то используйте метод setKeepScreenOn() или используйте XML-атрибут android:keepScreenOn=»true».
Узнать размеры экрана
Для вычисления размеров экрана можно воспользоваться двумя способами. Второй способ более правильный.
В чем разница между fill_parent и match_parent
match_parent = fill_parent. Первое свойство нужно использовать в новых проектах, второе свойство считается устаревшим и пока оставлено в целях совместимости.
Как убрать заголовок у Activity?
В некоторых случаях хочется спрятать заголовок (Title) у программы. Есть несколько способов. Например, применить специальную тему (прописать в манифесте файла):
Также попробуйте android:theme=»@android:style/Theme.Black.NoTitleBar.Fullscreen» (убирает не только заголовок, но и панель уведомлений). Названия тем могут быть и другими, смотрите документацию. Несколько примеров
Если у вас используется своя тема, то используйте в ней параметр:
Также существует программный способ (перед вызовом setContentView):
Как использовать собственный значок для программы
Когда вы создаете учебные примеры, то у всех программ используется стандартный значок с изображением андроида. Как же использовать свой значок? Ответ прост. В папке проекта /res вы можете видеть подпапки drawable-ldpi, drawable-mdpi, drawable-hdpi и др., в которых и содержатся готовые значки в формате PNG под разные размеры экранов.
Вы можете просто открыть png-файл в графическом редакторе и нарисовать что-то свое и сохранить изменения.
Вы можете сохранить значки под своим именем, например, cat.png. В этом случае вам надо открыть файл манифеста, найти там строчку:
И отредактировать её, например, android:icon=»@drawable/cat» (без расширения). Как вариант, вы можете сохранить один значок в папке drawable в нужном размере, если пишете программу под определенные типы телефонов.
Размеры значков в папках (часть):
- Low density – ldpi = 36×36 px
- Medium density – mdpi = 48×48 px
- High density – hdpi = 72×72 px
- Extra-high density screen — xhdpi (320 dpi) = 96 × 96 px
Получить номер версии программы
Убить приложение
Сколько используется памяти
Нужно от общей памяти отнять свободную память
Более общий пример:
Разрешённый объём памяти для приложения
Система выделяет каждому приложению определённый лимит памяти. На разных устройствах размер выделяемой памяти отличается. Чтобы узнать размер выделяемой памяти для вашего приложения, используйте код:
Особенно это касается приложений, которые активно используют графику. Следите за размерами изображений, вызывайте метод recycle() для освобождения памяти при работе с классом BitmapFactory.
Начиная с Android 3.0 можно попросить у системы выделять чуть больше памяти, прописав в манифесте просьбу:
Запретить автоматическую смену ориентации при повороте устройства
Если вы хотите запретить автоматическую смену ориентацию при повороте устройства, то можно ее отключить для нужного экрана. Например, если экран с настройками должен отображаться только в портретном режиме, то добавьте одну строчку с атрибутом screenOrientation в манифест файла для соответствующей активности
Источник
Особенности изменения разрешения экрана на смартфоне с ОС Android
Чтобы изменить разрешение экрана Андроид, пользователи могут использовать специальные приложения, отладку по USB или применить инструменты, встроенные в прошивку девайса. Объясним, как изменить параметры дисплея и зачем это нужно.
Зачем менять параметры экрана
Существует 2 основных причины :
- Уменьшение разрешения снижает нагрузку на аппаратную начинку — увеличивается fps в играх, медленнее садится батарея, но изображение становится менее четким.
- Увеличить плотность пикселей и размер шрифта — картинка станет насыщеннее, но аккумулятор начнет садиться быстрее из-за возросшей нагрузки.
Обратите внимание! Не стоит увеличивать разрешение на смартфонах с бюджетными чипсетами. Без запаса мощностей, устройство будет греться и терять в производительности.
Как узнать разрешение экрана на Android-устройстве
Определив ширину и высоту пикселей дисплея, пользователь может решить, в “какую сторону” их изменять.
С помощью скриншота
Сделайте снимок рабочего стола и проверьте данные о файле:
- Зажмите клавишу блокировки и качель уменьшения громкости.
- Откройте «Галерею» или ее аналог.
- Перейдите в папку «Screenshots».
- Зажмите палец на снимке и разверните меню «Еще».
- Тапните по «Детали».
- Данные будут указаны в «Разрешение».
- Откройте «Проводник».
- Найдите подпапку «Screenshots», находится в папке «DCIM» или «Pictures».
- Выделите скрин, зажав на нем палец, тапните «Еще» и выберите «Свойства».
- Данные указаны в разрешении.
Официальные характеристики
Подробную информацию об экране указывают в ТХ устройства в интернет-магазинах.
Интересно! Значение PPI — указывает на плотность пикселей и чем выше этот параметр, тем “четче” изображение (нет зернистости).
AIDA64
- Откройте «Play Market».
- Вбейте «AIDA64» в поиск.
- Нажмите «Установить».
- Откройте софт и перейдите в «Отображение».
- Обратите внимание на «Разрешение экрана» и «Плотность пикселей».
Как изменить разрешение дисплея на смартфоне/планшете
Для этого существует несколько вариантов приложений, которые работают как на устройствах с Root, так и без них.
Easy DPI Changer
Вариант для пользователей смартфонов с Рут-правами доступа.
- Скачайте приложение, как описано для AIDA64.
- Измените характеристики экрана, указав плотность пикселей «Density» и нажмите «Apply».
- Либо установите параметры экрана в «Resolution», установив ширину и высоту изображения. Тапните «Apply».
- Откатывают изменения, тапнув по иконке закрученной стрелки.
SecondScreen
Еще одно решение для владельцев смартфонов с Root:
- Загрузите софт.
- После запуска приложения, тапните по изображению «+».
- Создайте новый профиль, указав название и выбрав тип разрешения. Жмите «ОК».
- Появятся параметры, доступные для поправок. Оставьте базовые значения и тапайте на дискету.
- Выберите «Load».
Обратите внимание! В настройках учетной записи можно вручную выставить желаемое разрешение и dpi.
Android Debug bridge
Единственный способ, как изменить разрешение экрана на Андроид без рут прав. Это действие требует установить программу Android Debug bridge или распаковать ее файлы в отдельную папку с названием adb, чтобы получить доступ к изменению параметров устройства.
Проблемы, с которыми может столкнуться пользователь :
- необходимо подобрать разрешение и плотность, сопоставимую с соотношением сторон девайса, диагональю экрана;
- после применения параметров, будут наблюдаться ошибки в отображении интерфейса;
- после обновления, часть системных приложений откажутся работать;
- слишком низкие параметры превратят аппарат в “кирпич”.
- Перейдите в «Настройки».
- Выберите «О телефоне».
- 7 раз щелкните на «Номер сборки» или «Версия прошивки».
- Вернитесь в главное меню и выберите «Опции разработчика». Они могут находиться в «Специальные возможности» — «Для разработчиков».
- Включите «Отладка USB».
Интересно! Чтобы приложения не вступали в конфликт с аппаратом, после изменения параметров дисплея, следует отключить отладку по USB и режим «Для разработчиков» (тумблер находится сверху одноименного меню).
Второй шаг — подключите смартфон или планшет к компьютеру через кабель :
- Появится сообщение о подтверждении отладки, тапните «ОК».
- На клавиатуре нажмите «Win+R», чтобы открыть командную строку.
- Задайте команду «cmd».
- Введите «cd /» и щелкайте «Enter» (далее нажимайте его после каждой команды).
- Теперь укажите «cd adb». Обратите внимание, что программа должна быть установлена в папке с названием adb и расположена на диске, где хранится Windows.
- Используйте команду «adb».
- Введите «adb shell dumpsys display».
- Найдите строку с указанием «width», «heignt» и «density». Запишите указанные там параметры, чтобы суметь вернуть изменённые характеристики.
- Для изменения разрешения задайте команду «adb shell wm size 111×111», где вместо 111 разрешение.
- Измените плотность, используя «adb shell wm density xxx», где вместо xxx чувствительность (этот параметр менять необязательно).
- Чтобы сохранить полученный результат введите «adb reboot» — смартфон перезагрузится.
Как изменить расширение экрана без специальных приложений
Во флагманских смартфонах с высоким разрешением, параметры экрана изменяют через настройки:
- Откройте «Настройки».
- Перейдите в «Экран».
- Выберите «Разрешение экрана».
- Тапните по среднему или минимальному значению.
Источник