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

Разработка под планшеты

Разработка под планшеты

Устройства под Android можно условно разделить на две группы – телефоны и планшеты. До недавнего времени существовали две ветки развития платформы – версии 2.* и версии 3.*. С выходом Android 4.0 обе ветки были объединены и теперь везде используется единый код. Но пусть данное обстоятельство не вводит вас в заблуждение.

Разработка под планшеты очень сильно отличается от разработки под обычный смартфон. Для меня первый звоночек прозвучал, когда я выложил на Google Play простенькую программу для снятия показаний счётчика электроэнергии. Писалась программа для практики в учебных целях и была выложена в магазине приложений для изучения механизма работы этого самого магазина. Но неожиданно для меня несколько тысяч человек скачало программу и стали просить продолжить работу над ней. В статистике загрузок было видно, что очень много пользователей устанавливает приложение именно на планшет. И вот однажды один из пользователей программы прислал мне скриншот, где описывал свою проблему и просил меня подправить логику приложения. Когда я увидел этот скриншот, то чуть со стула не упал. Не ожидал, что впечатление от программы так может резко меняться от размеров. Но размер имеет значение!

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

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

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

Квалификаторы large/xlarge (устар.)

Существует специальный квалификатор large (res/layout-large и его производные layout-large-land и т.п.), который действует на устройства с экранами от 7 дюймов и выше. Сейчас считается устаревшим, так как некоторые устройства не совсем правильно определяли данный квалификатор. Часто в целях совместимости создают папку с данным квалификатором и копируют в него файлы из новых квалификаторов (или псевдонимы), о которых ниже.

Тоже самое относится к xlarge, который действует на устройства с диагональю экрана 10 дюймов.

Квалификатор Smallest-width (sw)

В Android 3.2 и выше доступен квалификатор Smallest-width, сокращёно sw. Он позволяет определять экраны с заданной минимальной шириной в dp. Например, планшет с экраном 7 дюймов имеет минимальную ширину 600 dp, и если вы хотите, чтобы приложение работало на нём в двухпанельном режиме (а на меньших экранах в однопанельном), используйте два макета, но вместо квалификатора размера large укажите sw600dp. В таком случае на экранах, минимальная ширина которых составляет 600 dp, будет использоваться двухпанельный макет.

Далее речь пойдёт применительно к планшету на 7 дюймов с разрешением экрана 1024×600. Мы уже привыкли, что вся основная разметка содержится в файле activity_main, которая находится в папке res/layout. Отлично, начните с этого файла и набросайте макет для телефона. Теперь создайте новую папку res/layout-sw600dp/ и скопируйте в неё файл activity_main.xml. В этой папке будет находиться макет программы, специально разработанный с учетом семидюймового экрана. Теперь, в зависимости, где запускается программа, система сама автоматически выберет нужный макет и покажет его пользователю.

Квалификаторы width (w) и height (h)

Также можно использовать квалификатор типа wXXXdp, где доступная ширина больше или равна XXX dp, и квалификатор типа hXXXdp, где доступная высота больше или равна XXX dp.

Псевдонимы

Следует учесть, что на Android-устройствах до версии 3.2 квалификатор sw600dp не будет работать, поэтому для них по-прежнему нужно использовать large и вам потребуется еще один файл с названием res/layout-large/main.xml, идентичный файлу res/layout-sw600dp/main.xml. Поэтому приходится дублировать оба файла с одинаковым содержанием.

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

  • res/layout/main.xml (однопанельный макет);
  • res/layout/main_twopanes.xml (двухпанельный макет).

Добавляем новые папки с файлами:

res/values-large/layout.xml

res/values-sw600dp/layout.xml

Содержание последних двух файлов одинаково, но сами по себе они не определяют макет. Они служат для того, чтобы назначить файл main в качестве псевдонима main_twopanes. Так как в них используются селекторы large и sw600dp, они применяются к планшетам и телевизорам на платформе Android независимо от версии (для версий до 3.2 используется large, а для более новых – sw600dp).

Квалификаторы ориентации

Так как число устройств с разными экранами растёт, то приходится дополнительно адаптировать дизайн для маленьких экранов, планшетов на 7 и 10 дюймов, телевизоров. Вот примеры различных вариантов дизайна.

  • Маленький экран, вертикальная ориентация: однопанельный вид с логотипом.
  • Маленький экран, горизонтальная ориентация: однопанельный вид с логотипом.
  • Планшетный ПК с 7-дюймовым экраном, вертикальная ориентация: однопанельный вид с панелью действий.
  • Планшетный ПК с 7-дюймовым экраном, горизонтальная ориентация: двухпанельный вид с панелью действий.
  • Планшетный ПК с 10-дюймовым экраном, вертикальная ориентация: двухпанельный вид (узкий вариант) с панелью действий.
  • Планшетный ПК с 10-дюймовым экраном, горизонтальная ориентация: двухпанельный вид (широкий вариант) с панелью действий.
  • Телевизор, горизонтальная ориентация: двухпанельный вид с панелью действий.

Каждый из этих макетов определен в XML-файле в каталоге res/layout/. Чтобы сопоставить их с определенными конфигурациями экрана, в приложении используются псевдонимы. Примеры можно посмотреть в документации (русский перевод).

Как с этим работать в Eclipse. Когда вы создадите файл в новой папке, то в верхней части IDE вы можете увидеть выпадающий список, позволяющий быстро переключаться между двумя файлами activity_main.xml. Изменения, которые вы делаете в одном файле, не переносятся в другой файл. Поэтому будьте внимательны. Если какие-то элементы должны совпадать, то нужно внести изменения в оба файла. Также рядом с этим выпадающим списком можно выбрать форм-фактор устройства, чтобы увидеть созданный макет визуально. Эта операция возможно только при работе с XML в графическом режиме.

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

Второй важный момент – указание размеров. Обычно мы храним значения размеров в файле res/values/dimens.xml. Текст, заданный для телефона, окажется слишком мелким для планшета. Поэтому аналогично, создаём альтернативный файл res/values-sw600dp/dimens.xml. Я также пробовал сохранить файл dimens.xml в папке res/values-v15 и у меня также всё работало. Честно говоря, не знаю, какой вариант правильный.

Также можно управлять размерами через стили. В файле res/values/styles.xml:

В файле res/values-sw600dp/styles.xml:

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

Т.е. ваша программа не требует наличия камеры, но обязывает иметь микрофон.

Кстати, выяснил интересную особенность фильтрации по разрешениям для Nexus 7. Оказывается, для него отдельно следует добавлять строку с точным указанием dpi:

Делайте отступы 16dp как минимум от краёв экрана для текстов.

Длина строки не должна быть слишком большой. Максимум 100 символов, оптимальный вариант: 50-75.

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

Рекомендуемый размер для элементов экрана, работающих от пальца – 48dp (32dp как минимум).

Читать еще:  Планшет постоянно перезагружается что делать

Другой пользователь написал свой способ отключения

  1. Открываете патчер Lucky Patcher, выбираете Permission control.
  2. Чистим кэш. Останавливаем.
  3. Заморозить. В связи с тем что приложение системное — рекомендуется сделать бэкап.

Другой чел написал, что он решил проблему через Гравицапу — там есть блокировка уведомлений.

Странный косяк — когда приложение пытается использовать GPS, то пермиссион контрол отображает GPS как Bluetooth.

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Путеводитель по системным утилитам для ОС Android, часть 2

Основные участники обзора:

  • MyDroid System Info
  • Gemini App Manager
  • Quick System Info

Также будут упомянуты:

  • Permissions Explorer
  • CPU-Z
  • System Info Droid
  • Uninstaller
  • System app remover (ROOT)

MyDroid System Info

MyDroid System Info можно назвать весьма упрощенной версией Elixir 2 (см. предыдущую часть обзора). Здесь числится 4 раздела, это: просмотр системной информации, мониторинг системных ресурсов, информация о доступных сенсорах и журналы.

Рассмотрим более подробно ключевые возможности утилиты. В разделе Device доступна информационная сводка по компонентам устройства и ОС Android: характеристики процессора, экрана и графической подсистемы, свойства камеры и доступное пространство на карте памяти.

Далее следует системная панель (System dashboard). Посредством ее возможен мониторинг доступных системных ресурсов: процессора, памяти RAM, батареи, sd карты и внутренней памяти телефона, сетевых протоколов.

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

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

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

Резюме. MyDroid System Info можно использовать для получения сведений об устройстве и системе, анализа производительности и решения соответствующих проблем. Приложение не является универсальным, сравнимо с другими участниками обзора, и носит сугубо «справочный характер».

Gemini App Manager

Gemini App Manager — менеджер приложений для Android. Помимо основных функций, включает в себя следующие компоненты:

  • Autorun Control — менеджер автозапуска
  • App Firewall — файрволл
  • Task Killer — диспетчер процессов
  • Move app 2 SD card — перемещение приложений между sd картой и памятью телефона
  • Создание резервных копий приложений.

В первую очередь, рассмотрим управление приложениями в Gemini App Manager. Менеджер приложений выдает полезную информации по установленным apk: название, размер установочного пакета, дата установки, расход памяти и нагрузка на CPU, расходуемый трафик.

Приложения можно деинсталлировать (используя пакетный режим), включая некоторые системные утилиты, используя root-полномочия. Помимо деинсталляции, в наличии функция блокировки нежелательных приложений, доступная через специальный модуль App Freezer. При блокировке, помимо собственно отключения, приложение удаляется из общего списка на домашнем экране. Сетевые потребности приложения также могут быть ограничены через файрволл. Таким образом, можно запретить использование 2G/3G и Wifi.

Дополнительно, при управлении приложениями можно отметить следующие удобства: поиск, сортировка списка и просмотр операций в журнале.

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

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

Менеджер автозапуска доступен в платной версии Gemini App Manager. Через него пользователь может включить / отключить фоновые приложения, которые запускаются вместе с системой.

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

Помимо участника обзора, о котором идет речь, у разработчика Seasmind есть схожие по функциональности приложения. Это:

  • Gemini Taskiller Widget — виджет для оптимизации RAM
  • Gemini Installer & Clear — установка и очистка приложений
  • Gemini Live Logcat — просмотр отчетов в ОС Android.

Резюме. Gemini App Manager содержит необходимый перечень функций для управления приложениями: ограничение доступа и блокировка, деинсталляция, перенос на SD карту и резервное копирование. Кроме того, может быть полезен диспетчер задач и другие утилиты, входящие в состав App Manager.

Quick System Info

Утилита Quick System Info предназначена для системного мониторинга Android, просмотра информации о приложениях, процессах и сетевых подключениях.

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

Что касается раздела «Приложения», то здесь можно узнать не только размер и дату установки apk-пакета, но и практически все системные данные о приложении, для чего предназначено контекстное меню. Управление приложениями, нужно отметить, реализовано не совсем стандартно. При выделении элементов в пакетном режиме, в нижней строке Quick System Info появляются кнопки с функциями: E, U, S, X. Неочевидно, но привыкнуть нетрудно.

В разделе «Процессы» — соответствующие функции менеджера задач. Показывается расход процессора и RAM, можно просматривать задачи и управлять ими через список. Кстати говоря, мониторинг CPU и RAM можно перенести на панель уведомлений в виде виджета (функция Live Monitor).

Наконец, последний раздел Quick System Info предназначен для просмотра состояния трафика сетей 2G/3G и Wi-Fi.

Вкратце о других функциях Quick System Info PRO:

  • Чистка кэша и истории приложений в один клик
  • Создание резервной копии и восстановление
  • Просмотр журналов dmesg / logcat

В pro-версии Quick System Info отображается баннер, для его отключения необходимо внести пожертвование в адрес разработчика.

Резюме. В первую очередь, приложение Quick System любопытно именно информационной составляющей. Удобно то, что вся наиболее важная информация находится “на поверхности”, и для получения более детальных сведений достаточно нажать по интересующей строке. Управление приложениями и процессами реализовано несколько своеобразно и требует привыкания, однако все основные функции в наличии.

Заслуживают упоминания

Permissions Explorer

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

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

При запуске, Permissions Explorer сканирует систему и систематизирует права доступа для всех приложений. Далее, полученную информацию можно просматривать по разделам: категории, приложения и разрешения. Такая компоновка позволяют лучше ориентироваться в целом и в частности, как распределены права между приложениями в ОС Android.

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

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

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

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

Читать еще:  Что значит lte в планшете

Программа CPU-Z достаточно хорошо знакома пользователям настольных ОС. В данном случае, речь идет о приложении для Android с примерно той же основной задачей: предоставить всю информацию по процессору устройства: имя SoC (System On Chip — однокристальная система), архитектуру, частоту каждого ядра процессора.

В целом, утилита позволяет определить и другие параметры, куда входят:

  • различная системная информация: версия ОС, название модели устройства, разрешение экрана, загруженность RAM и доступное пространство на карте памяти
  • информация о батарее: уровень заряда, статус, напряжение, температура, емкость
  • информация по сенсорам

Вся информация легко читается, доступна в виде текста — правда, экспортировать из CPU-Z ее нельзя. Приложение бесплатно и не содержит рекламы.

System Info Droid

System Info Droid предоставляет информацию по системе и всем компонентам устройства. Главная особенность приложения ¬— минимализм: пожалуй, это самый простой участник обзора, где все параметры собраны сплошным списком. В отличие от CPU-Z, в System Info Droid доступен экспорт отчетов на email.

В реальном времени можно узнать информацию по десяткам параметров, основные из них — это: информация о CPU, общие системные параметры, характеристики графики, аудио, память и RAM, разрешение экрана и камеры, температурные показатели, батарея и сенсоры.

Кроме того, в составе System Info Droid имеется виджет домашнего экрана. Он предназначен для мониторинга CPU: отображает температуру, частоту и загруженность процессора.

Uninstaller

Uninstaller — очень простое приложение с одной задачей — это пакетная деинсталляция приложений. В отличие от «универсалов», вроде Clean Master, здесь нет ни визуальных особенностей, однако и нет неуместных функций. Единственное неудобство — баннер, который отключается при покупке pro-версии.

Собственно, Uninstaller сразу же настроен на пакетный режим, нужно лишь отметить приложения для удаления. В помощь — поиск и сортировка (по имени, размеру и дате). Рядом с названием каждого приложения выводится дата установки и размер пакета.

System app remover (Root)

В функции System app remover входит деинсталляция системных и пользовательских приложений, перенос на sd карту или память телефона, управление apk-пакетами.

Как следует из названия, System app remover позволяет удалять системные приложения. В отличие от подобных инструментов, есть у менеджера свои особенности. Первая: при автоматической деинсталляции все удаляемые приложения резервируются, поэтому их можно восстановить в случае появления проблем. Второй момент: System app remover дает рекомендации по удалению, сортируя приложения по их важности. Имеется три соответствующих отметки:

  • Could remove — можно удалить
  • Should keep — необходимо оставить
  • Key module — ключевой модуль.

При этом — уверяют разработчики — подобные заключения сделаны на основании тестирования «сотен устройств».

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

Особенность переноса на sd карту — несколько приложений можно перенести на sd карту или наоборот — на телефон, причем в пакетном режиме.

Напоследок об управлении — APK. В System app remover реализована удобная работа с установщиками — аналогично работе с установленными приложениями. Можно искать пакеты и их дубликаты, перемещать, переименовывать и, наконец, устанавливать APK-приложения на телефон.

Что это такое?

App Permissions Manager (или App ops) – это менеджер уровня разрешений, работающий c ОС Android 4.3 и выше. Приложение создает свою картотеку всего софта на смартфоне. По отдельности может блокировать доступ приложений к разной запрашиваемой информации, к примеру: данным GPS, истории браузера, хранящимся текстовым сообщениям и т.д. Очень удобный интерфейс позволяет в один клик запрещать передачу данных сторонним ресурсам, что очень эффективно против разных шпионских программ.

Приложение App Permissions Manager для Андроид

Преимущества менеджера

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

Также к огромным плюсам можно отнести работу в реальном времени. Зайдя в «App Permissions» и отключая разные характеристики, они тут же вступают в силу. Не нужно производить перезагрузку девайса, все уже будет применено на деле. А процесс запрета происходит посредством перетаскивания ползунка с одной стороны в другую. Все действительно очень просто и не требует особых навыков от пользователя. Для полноценной работы программы, на Андроиде требуется активный root-доступ.

Интерфейс

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

Замечание

Внимание! Не стоит путать работу этого приложения со всплывающими уведомлениями в версии Андроид 6.0 и выше – “App Permission Management is running” (настройки APM активированы) и “App Permission Management is closed” (настройки APM отключены). Убрать (отключить) уведомления можно в “Настройках” – “Безопасность” (листаем вниз) – перемещаем ползунок против “Разрешения приложений”. Если уведомление появляется при запуске определенного приложения, тогда войдите в его сведения в Диспетчере приложений и там в пункте “Разрешения” активируйте или снимите все ползунки.

Уведомление App Permission Management is running

Как инсталлировать в смартфон

Распространяется «App Permissions Manager» официально через Google Play. Он совершенно бесплатный, поэтому нет смысла скачивать его с других источников в интернете. Сам процесс установки ничем не отличается от стандартного приложения, всего в пару кликов все уже будет инсталлировано к вам в телефон. Аналогов также предостаточно в Маркете, но качество их не всегда лучшее.

↑ Способ 1 (самый простой, не требуются рут-права)

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

  1. Необходимо зайти в Настройки планшета / смартфона.
  2. Затем перейти во вкладку Приложения.

Кстати, начиная с Android 6.0, все установленные программы по умолчанию спрашивают разрешения, если таковые требуются.

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

На устройствах Андроид версии 5.0+ есть функция Защищенный режим, которая переключает подозрительные разрешения на Спрашивать для недавно установленных игр и программ.

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

Присоединяйтесь к обсуждению

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

Похожий контент

Всем привет, с помощью Java2Op сделал обертку библиотеки получил модуль с интерфейсами.
Теперь сам вопрос в JavaInterfaces.pas есть описание:

JUsbManagerClass = interface(JObjectClass) [‘<1048A6E9-E1B5-4DA5-A168-ED91E8DE5284>‘] function _GetACTION_USB_ACCESSORY_ATTACHED: JString; cdecl; function _GetACTION_USB_ACCESSORY_DETACHED: JString; cdecl; function _GetACTION_USB_DEVICE_ATTACHED: JString; cdecl; function _GetACTION_USB_DEVICE_DETACHED: JString; cdecl; function _GetEXTRA_ACCESSORY: JString; cdecl; function _GetEXTRA_DEVICE: JString; cdecl; function _GetEXTRA_PERMISSION_GRANTED: JString; cdecl; function getAccessoryList: TJavaObjectArray ; cdecl;//Deprecated function openAccessory(accessory: JUsbAccessory): JParcelFileDescriptor; cdecl;//Deprecated function openDevice(device: JUsbDevice): JUsbDeviceConnection; cdecl;//Deprecated procedure requestPermission(device: JUsbDevice; pi: JPendingIntent); cdecl; overload;//Deprecated property ACTION_USB_ACCESSORY_ATTACHED: JString read _GetACTION_USB_ACCESSORY_ATTACHED; property ACTION_USB_ACCESSORY_DETACHED: JString read _GetACTION_USB_ACCESSORY_DETACHED; property ACTION_USB_DEVICE_ATTACHED: JString read _GetACTION_USB_DEVICE_ATTACHED; property ACTION_USB_DEVICE_DETACHED: JString read _GetACTION_USB_DEVICE_DETACHED; property EXTRA_ACCESSORY: JString read _GetEXTRA_ACCESSORY; property EXTRA_DEVICE: JString read _GetEXTRA_DEVICE; property EXTRA_PERMISSION_GRANTED: JString read _GetEXTRA_PERMISSION_GRANTED; end; [JavaSignature(‘android/hardware/usb/UsbManager’)] JUsbManager = interface(JObject) [‘<6F603A25-E816-4012-9B23-054B428A4A75>‘] function getDeviceList: JHashMap; cdecl;//Deprecated function hasPermission(device: JUsbDevice): Boolean; cdecl; overload;//Deprecated function hasPermission(accessory: JUsbAccessory): Boolean; cdecl; overload;//Deprecated procedure requestPermission(accessory: JUsbAccessory; pi: JPendingIntent); cdecl; overload;//Deprecated end; TJUsbManager = class(TJavaGenericImport ) end; Что бы получить доступ к методам интерфейса используется следующая конструкция:
JavaObject := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.USB_SERVICE); FUsbManager := TJUsbManager.Wrap((JavaObject as ILocalObject).GetObjectID); теперь я могу получить доступ к методам JUsbManager, а как получить доступ к методам JUsbManagerClass
Вот пример кода на Java, который хочу реализовать в Delphi:
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE); List availableDrivers = UsbSerialProber.getDefaultProber().findAllDrivers(manager); if (availableDrivers.isEmpty()) < return; >// Open a connection to the first available driver. UsbSerialDriver driver = availableDrivers.get(0); //Вот тут мы видим что из экземпляра класса мы вызываем openDriver, как это сделать в Delphi UsbDeviceConnection connection = manager.openDevice(driver.getDevice()); Как мы можем заметить этого метода в описании интерфейса нет, но есть в классе, как получить доступ к экземпляру класса?

Я недавно или давно писал по поводу почему компилятор при разном наборе USES увеличивает время компиляции где-то от 4 до 10 раз. То есть проект может компилируются за 10 секунд, а при небольших манипуляциях с USES станет компилироваться 40 секунд и тд. Очень хорошо заметно на большом проекте у меня с 1 минуты 18 секунд выросло время компила до 1 часа 40 минут.
Ну хватит предыстории после анализа зависимостей и проверки логов обращения к файловой системе был выяснен интересный факт 🙂
У меня в проекте появился UNIT в котором глобальные методы для так сказать конфигурирования внешнего вида компонентов (компоненты тоже самописные) и получилось следующая ситуация:
1. В UNIT с формой лежит один из визуальных компонентов назовем его TXXX
2. соответственно в первом (interface секции) USES данного модуля прописывается автоматом модуль из зависимостей компонента
3. В нижнем (implementation секции) USES расположен UNIT с глобальными методами (назовем его UNIT XXX) для так сказать конфигурирования его (установка бордера и другой дичи)
4. В этом UNIT XXX (interface секции) USES также прописаны модули этих визуальных компонентов для передачи их в методы как параметры.
Так вот из-за такой ошибочной связи время компила увеличивается в разы и по анализу project dependency увеличивается с более менее приемлемых (по времени компиляции) 200 до 500.
Из сходя из этого начала рефакторинг всего кода и переводить компоненты на интерфейсы это сокращает project dependency проекта и неплохо так, перевод одного компонента который используется почти везде в проекте на интерфейс сократил с 200 до 190 и время компила начала сокращаться.
Сори за много букавок, но может кому будет интересно или кто с толкнулся с такой проблемой.

Так же в решении и анализе взаимосвязей помог эксперт MMX.

Приветствую. Имеется необходимость получить список всех видимых (GUI) компонентов, установленных в Delphi. Я видел где-то, что можно как-то попробовать через ToolsAPI это сделать, но ничего толкового на эту тему так и не нашел. Может есть у кого мысли по этому поводу?
Если возникнет вопрос: для чего тебе это?
Ответ: Для приложения LivePreview, которое идет вместе со студией для того, чтобы видеть то, что размещаю на форме непосредственно на устройстве.

Подскажите, реально ли в текущий момент сделать рекламу в iOS приложениях?
Документация эмбаркадеры, вроде и современная (http://docwiki.embarcadero.com/RADStudio/Rio/en/Using_the_AdMob_Service в примеру), но пометка внизу страниц “This page was last edited on 28 September 2015, at 15:17.” дает понять что они забили на этот раздел документации 4 года назад, и с выходом Rio тупо скопипастили, чтоб было. Издевательство какое то (

P.S. В документации идет речь о iAd, но согласно Apple:
About the iAd App Network Shutdown : As of December 31, 2016, the iAd App Network is no longer available.

Доброго времени суток, возникло пару вопросов по поводу нового релиза студии, а конкретно Delphi 10.3 community:
1) В каком месте находится презентованный z-order для компонентов и как он работает?
2) Почему на inline объявление переменных ругается редактор кода, но при этом компилятор спокойно пережевывает и не давится?

Последние посетители 0 пользователей онлайн

Ни одного зарегистрированного пользователя не просматривает данную страницу

android

Разрешает добавлять элементы в файл манифеста Android. AIR создает файл AndroidManifest.xml для каждого пакета APK. Для добавления дополнительных элементов в дескрипторе приложения можно использовать элемент android. Игнорируется на всех платформах, кроме Android.

Родительский элемент:application

Дочерние элементы:

Содержимое

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

Пример

Простой способ

Самый простой способ – это скачать приложение Alexa для Android с нашего сервера по ссылке https://storage.googleapis.com/voiceapp/alexa.apk, короткая ссылка http://bit.ly/2yd3vz

Это оригинальный файл приложения, скачанный из магазина приложений Amazon. Приложение Alexa не требует никаких разрешений (permissions).

По завершению скачивания нажмите на apk-файл и нажмите «Установить».

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

Если вам не нравится предложенный вариант скачивания apk с нашего сервера, предлагаем вам альтернативный, но более долгий путь – самому скачать приложение Alexa из магазина приложений Amazon.

Pure instant messaging — simple, fast, secure, and synced across all your devices. Over 400 million active users.

FAST: Telegram is the fastest messaging app on the market, connecting people via a unique, distributed network of data centers around the globe.

SYNCED: You can access your messages from all your devices at once. Start typing on your phone and finish the message from your tablet or laptop. Never lose your data again.

UNLIMITED: You can send media and files, without any limits on their type and size. Your entire chat history will require no disk space on your device, and will be securely stored in the Telegram cloud for as long as you need it.

SECURE: We made it our mission to provide the best security combined with ease of use. Everything on Telegram, including chats, groups, media, etc. is encrypted using a combination of 256-bit symmetric AES encryption, 2048-bit RSA encryption, and Diffie–Hellman secure key exchange.

POWERFUL: You can create group chats for up to 200,000 members, share large videos, documents of any type (.DOCX, .MP3, .ZIP, etc.), and even set up bots for specific tasks. It’s the perfect tool for hosting online communities and coordinating teamwork.

RELIABLE: Built to deliver your messages in the minimum bytes possible, Telegram is the most reliable messaging system ever made. It works even on the weakest mobile connections.

FUN: Telegram has powerful photo and video editing tools and an open sticker/GIF platform to cater to all your expressive needs.

SIMPLE: While providing an unprecedented array of features, we are taking great care to keep the interface clean. With its minimalist design, Telegram is lean and easy to use.

100% FREE & NO ADS: Telegram is free and will always be free. We are not going to sell ads or introduce subscription fees.

PRIVATE: We take your privacy seriously and will never give third parties access to your data.

For those interested in maximum privacy, Telegram offers Secret Chats. Secret Chat messages can be programmed to self-destruct automatically from both participating devices. This way you can send all types of disappearing content — messages, photos, videos, and even files. Secret Chats use end-to-end encryption to ensure that a message can only be read by its intended recipient.

We keep expanding the boundaries of what you can do with a messaging app. Don’t wait years for older messengers to catch up with Telegram — join the revolution today.

Другой пользователь написал свой способ отключения

  1. Открываете патчер Lucky Patcher, выбираете Permission control.
  2. Чистим кэш. Останавливаем.
  3. Заморозить. В связи с тем что приложение системное — рекомендуется сделать бэкап.

Другой чел написал, что он решил проблему через Гравицапу — там есть блокировка уведомлений.

Странный косяк — когда приложение пытается использовать GPS, то пермиссион контрол отображает GPS как Bluetooth.

Добавить комментарий Отменить ответ

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

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