- Совместимость устройств
- Что подразумевается под словом “Совместимость”?
- Управляем доступностью приложения для устройств
- Возможности устройства
- О совместимости Android-приложений на различных устройствах
- Связка смартфон плюс планшет на примере iPad+Android
- alexb1111
- iPad или Android-планшет? (очень субъективная часть)
- Что я делаю в связке
- Dropbox
- Книги
- Заметки
- Чего не хватает
Совместимость устройств
Android разработан для запуска на множестве различных устройств, начиная от телефонов и заканчивая планшетами и телевизорами. Для разработчика приложений такое разнообразие устройств предоставляет огромную потенциальную аудиторию пользователей. Для того, чтобы ваше приложение одинаково хорошо работало на всех устройствах, оно должно учитывать наличие функций на устройствах и предоставлять гибкий пользовательский интерфейс, адаптированный под различные размеры экранов.
Для облегчения ваших усилий при достижении цели, Android предоставляет динамический API, в котором вы можете создавать индивидуальные ресурсы для различных конфигураций устройств (например различную XML разметку для разных размеров экрана). Android автоматически загружает нужную разметку, основываясь на конфигурации устройства, на котором приложение будет запущено. Ресурсы для всех вариантов конфигурации могут быть упакованы в один единственный APK файл.
Если это необходимо, вы можете указать требования к аппаратному обеспечению устройства, чтобы приложение не могло быть установлено из Google Play на устройства, которые этим требованиям не соответствуют. В текущем разделе мы расскажем, как управлять доступностью приложения для разных устройств, чтобы быть уверенным, что приложение достигает нужной аудитории. Подробную информацию об адаптации приложения под различные размеры экрана, читайте в разделе Поддержка устройств с различными экранами.
Что подразумевается под словом “Совместимость”?
Во время изучения системы Android, вы, вероятно, еще не раз столкнетесь со словом “Совместимость” в различных ситуациях. Есть два типа совместимости: совместимость устройств и совместимость приложений.
Поскольку Android это проект с открытым кодом, любые разработчики железа могут выпускать устройства под операционной системой Android. До сих пор фраза “устройство совместимо с Android” означало только то, что на нем могут корректно запускаться приложения, написанные для среды выполнения Android. Детально о среде выполнения Android написано на страничке Совместимость программ Android и каждое устройство должно пройти тест на совместимость CTS (Compatibility Test Suite), для того, чтобы считаться совместимым.
Вам, как разработчику приложений, не стоит беспокоиться о совместимости устройств, поскольку доступ к сервису Google Play Store имеют только совместимые с Android устройства. Поэтому вы можете быть уверены, что пользователи, установившие ваше приложение из Google Play используют совместимые устройства.
Однако, вы должны учитывать совместимость вашего приложения с различными потенциальными конфигурациями устройств. Так как устройства под Android имеют широкий спектр конфигураций, не все устройства включают некоторые возможности. Например, некоторые устройства могут не содержать магнитный сенсор. Если он требуется вашему приложению для работы, значит ваше приложение совместимо только с устройствами, которые его содержат.
Управляем доступностью приложения для устройств
Android поддерживает различные возможности, с которыми ваше приложение может взаимодействовать через API. Некоторые возможности основаны на аппаратном обеспечении (например магнитный сенсор), другие – на программном обеспечении (например виджеты), есть также возможности, которые доступны только в некоторых версиях платформы Android. Не каждое устройство поддерживает все функции сразу, поэтому вы должны обеспечить установку приложения только на совместимые устройства.
Чтобы как можно больше пользователей могло пользоваться вашим приложением, вы должны стараться поддерживать как можно больше конфигураций. В большинстве случаев, вы можете отключить дополнительные функции во время выполнения приложения, если устройство их не поддерживает. В других случаях вы можете вовсе запретить устанавливать ваше приложение из Google Play, если оно несовместимо по следующим параметрам:
- Возможности устройства
- Версия платформы
- Конфигурация экрана
Возможности устройства
Android определяет идентификаторы для любых аппаратных и программных функций, которые могут быть недоступны на некоторых устройствах. Например, для магнитного сенсора есть идентификатор FEATURE_SENSOR_COMPASS, а для виджетов FEATURE_APP_WIDGETS.
Вы можете запретить устанавливать приложение, если устройство не предоставляет нужных функций, добавив элемент в файл манифеста.
К примеру, если основная функция вашего приложения требует использование магнитного сенсора, вы должны требовать наличия этого сенсора следующим образом:
Источник
О совместимости Android-приложений на различных устройствах
Не секрет, что число устройств на Android велико, они различаются по железу, размерам и качеству экрана, мощности процессора и др.. В отличии от iPhone- программистов, которые знают наверняка на каком устройстве будет запущено их приложение, Android-разработчикам необходимо уделять внимание совместимости приложений с различными устройствами.
В данной статье уделяется внимание вопросу совместимости приложений, в первую очередь отображения приложений на экранах с различными диагоналями и разрешением.
Для начала необходимо разобраться с возможностями, которые предоставляет Android для работы с экраном.
Основные сведения
Размер экрана(screen size) — физический размер экрана; предопределенные значения: small, normal, large, extra large*.
Геометрический коэффициент(aspect ratio)– отношение физических пропорций экрана (ширины к высоте); предопределенные значения: long (для экранов, чьи размеры превосходят по ширине или высоте стандартные размеры экрана), notlong(для экранов, чьи размеры соответствуют стандартным).
Плотность(density) – распределение пикселей относительно физических размеров экрана. Значение плотности распределения пикселей важно, поскольку один и тот же UI элемент, выраженный в пикселях для экранов с более низкой плотностью будет казаться больше, чем для экранов с высокой. Предопределенные значения для плотности: ldpi (low), mdpi (medium), hdpi (high), and xhdpi*.
Независимый(от плотности) пиксел(density-independent или dp) – “виртуальный” пиксел, который может быть использован приложением для прорисовки UI-элементов. Данный пиксел является эквивалентом физического пиксела на экране с плотностью 160 dpi. Во время выполнения OS Android прорисовывает элемент в соответствии с формулой pixel = dp * (density/160), где density – плотность экрана.
Стоит также отметить, что OS Android работает с разрешением экрана, через значения плотности экрана (никаких средств для работы с разрешением напрямую разработчик не имеет).
На рисунке ниже показано как соотносятся значения плотности и размера экрана устройств с предопределенными значениями этих величин.
*Еще один момент, который стоит отметить: значение плотности xdpi было добавлено в версии Android 2.2(API level 8), значение экрана xlarge – в версии Android 2.3(API level 9)
Работа с манифестом и загрузкой ресурсов
Начиная с версии Android 1.6, в манифест был добавлен тег , который используется для определения класса устройств, на которых может быть запущено приложение. Атрибуты тега smallScreens, normalScreens, largeScreens, xlargeScreens соответствуют определенным выше значениям экрана и могут принимать значения true или false. Дефолтные значения атрибутов варьируются в зависимости от используемой версии Android (более детальную информацию можно посмотреть тут. ). При определении значения атрибута как true, OS Android получает сигнал о том, что приложение совместимо с соответствующим типом экрана и не применяет дополнительные средства для совместимости ( что происходит при значении false). Стоит также отметить, что эти средства(функции) работают только на совместимость с большими размерами экранов (т.о. если значение normalScreen – true, остальные – false, приложение будет также совместимо с экранами large и с xlarge, но не совместимо со small). Данный тег также используется Android Market’ом для фильтрации приложений.
Для плотности также имеется атрибут – anyDensity, который также принимает значения true/false. Если значение атрибута – true, OS Android не использует функции для совместимости с различными плотностями экрана. В этом случае приложение должно использовать dp для прорисовки UI элементов, либо самостоятельно управлять вычислением размеров для различных плотностей. Если значение – false, OS Android включает функции для масштабирования элементов в соответствии с плотностью экрана.
Размещение ресурсов
OS Android также предоставляет средства для определения ресурсов, которые будут использованы для конкретных размеров экранов и плотностей. Ресурсы размещаются в соответствующих папках.
res/layout/my_layout.xml // layout for normal screen size
res/layout-small/my_layout.xml // layout for small screen size
res/layout-large/my_layout.xml // layout for large screen size
res/layout-large-land/my_layout.xml // layout for large screen size in landscape mode
res/layout-xlarge/my_layout.xml // layout for extra large screen size
res/drawable-ldpi/my_icon.png // image for low density
res/drawable-mdpi/my_icon.png // image for medium density
res/drawable-hdpi/my_icon.png // image for high density
res/drawable-nodpi/composite.xml // density independent resource
Поддержка совместимости экранов
Общие рекомендации для создания совместимого приложения
Послесловие
Статья не охватывает практических моментов, связанных с тестированием приложения на девайсах с различными характеристиками экранов, думаю выделить это в отдельный пост.
Источник
Связка смартфон плюс планшет на примере iPad+Android
alexb1111
Не так давно я стал счастливым обладателем iPad mini. Если вкратце оценить это устройство, то оно замечательное, в первую очередь за счет своих компактных размеров и малого веса, а также 8” экрана в формате 4:3. “Миник” мне показался наиболее удобным устройством для моего сценария использования, то есть чтение журналов и новостей, иногда книг, казуальный браузинг в интернете, и иногда игры. Кроме планшета на iOS у меня есть телефон на Android. Думаю, очень многим кажется интересной именно такая связка — iPad, который обладает рядом преимуществ перед планшетами на Android, и смартфон на Android, который в свою очередь имеет много преимуществ перед iPhone. В данной статье я попробую порассуждать, оправдан ли такой тандем.
iPad или Android-планшет? (очень субъективная часть)
Начну с разьяснения, почему (имхо) iPad гораздо интереснее планшета на Android. Самый твердый и бесспортный аргумент в пользу iPad — это гораздо больший выбор планшетных приложений. И не надо спорить, что на Android-планшетах уже давно все тоже есть, знаем, видели. Под Android-планшет есть много адаптированных игр, это да, тут перевес на стороне iPad совсем небольшой. Зато для Android-планшетов нет нормального твиттер-клиента. А очень многие приложения просто растягиваются, и ты видишь перед собой тот же интерфейс, что на телефоне. Это зачастую неудобно.
Второй аргумент в пользу iPad — это как раз аскетичная iOS. На моем iPad mini стоит железо двухлетней давности, но работает он очень плавно. К примеру Real Racing 3 идет очень плавно, при этом графика сравнима с топовыми Android устройствами. Работать с браузером тут гораздо приятнее, листание и масштабирование страницы более плавное, нежели в Android. Тут еще дело в том, что система не загружена многими лишними процессами, от этого иногда страдает многозадачность. К примеру Safari выгружается из памяти через 10-15 мин простоя, соответственно открытые там странички загружаются заново. Зато грузятся они очень быстро, полноценный сайт theverge.com, на котором я всегда проверяю скорость загрузки, загружается секунд за 5. В целом, на iPad работать намного приятнее, за счет плавности анимации и чуть большей скорости, чем на Android.
Есть, конечно, и минусы. Первый — это цена. iPad mini стоит ощутимо дороже своих сегодняшних конкурентов на Android. Второй минус заключается в том, что мне очень не хватает нормальной работы с файлами, как в Android. То есть, если я, к примеру хочу скачать doc. файл, то Safari его сначала загружает, а потом предлагает открыть его в одной из поддерживаемых программ. А если я не хочу его открывать сейчас, а скачал, чтобы скопировать потом на компьютер? А вот так без танцев с бубном сделать нельзя. Надо использовать или специальные программы (то есть ты наталкиваешься при просмотре сайта в Safari на интересный документ, который хочется скачать, копируешь ссылку на этот сайт и заходишь в специальное приложение, тот же Phone Drive, и только там скачиваешь), ну или ставить джейлбрейк.
Многие приводят аргумент в пользу Android, что там есть виджеты. А вот я уверен, что на планшете виджеты не нужны. Раньше я думал, что виджеты это очень полезная и необходимая вещь. Сегодня у меня на рабочем столе моего смартфона стоит только виджет погоды. В остальных случаях мне удобнее просто зайти в приложение. В случае с планшетом вообще не вижу смысла в виджетах, ведь это не то устройство, где нужно максимально быстро получить информацию (для чего виджеты и предназначены). Планшет люди используют в основном, чтобы потреблять контент в максимально удобном виде, то есть с помощью красиво и удобно оформленных приложений. Что iPad позволяет делать в полной мере.
Что же, многим выгоды iPad покажутся очень спорными, но это мое мнение, которое не появилось из ниоткуда, я пробовал разные устройства, и мне iPad mini показался наиболее удобным из них. Но статья ведь не о преимуществах iPad перед Android-планшетами. Дальше речь пойдет об использовании связки iPad плюс Android-смартфон.
Что я делаю в связке
Я с недавнего времени обладатель Samsung Galaxy Ace 2. До этого у меня был Galaxy Nexus. В Android мне очень нравится работа с сервисами Google. Если я посмотрел ресторан в Google Maps на компьютере, то через пару минут мне уже Google Now в телефоне советует, как туда лучше добраться. Это очень классно, тем более, что это далеко не единственный пример использования связки компьютер-телефон. Еще мне очень нравится, что, за счет своей распространенности, под Android появляется очень много именно локальных приложений, то есть для конкретной страны. В iOS, кстати, такого не наблюдается.
Все функции чтения, будь то твиттер, или утренние новости, перенял на себя iPad. С него действительно гораздо удобнее читать, чем со смартфона, в первую очередь за счет размера экрана, конечно же. Играть на телефоне я совсем престал, у меня кроме Cut the Rope ни одной игры на телефоне не установлено, потому как на iPad это делать тоже намного интереснее. Получается, что теперь я использую телефон только как простую звонилку? Не совсем.
Dropbox
Телефон — это устройство, с которого я чаще всего делаю фото (как ни печально). Для создания фотопотока, то есть синхронизации фотографий с другими устройствами, я использую Dropbox Camera Upload. Ничего удобнее я не встречал. В свое время для синхронизации фото я пользовался iCloud (тогда у меня был iPhone). Так вот, Dropbox для этих целей подходит лучше. Он быстрее синхронизирует фотографии, у него более удобный интерфейс. И слава Богу, что Дрю Хаустон в свое время не продал сервис Стиву Джобсу, а то не видать бы нам Dropbox на других платформах. Таким образом, сфотографировав что-то на телефон, я тут же могу видеть это на iPad или на компьютере. Еще Dropbox у меня используется как “пул” для документов. То есть один раз закинув туда файл, я сразу же могу его открыть в телефоне или планшете.
Книги
Для чтения книг есть масса программ как в Play Store, так и в App Store. Но, к сожалению, для того, чтобы синхронизировать книги между iOS и Android так, чтобы ты закрыл книгу на одном устройстве и продолжил ее читать на втором, подходят лишь два — это Kindle и Bookmate. Я, на самом деле, на телефоне книжки не читаю, делаю это только на планшете через шикарное приложение Marvin (кто не пробовал, очень советую, вам понравится больше, чем iBooks). Приложение Kindle напрочь отказалось синхронизировать загруженную мной через iPad книгу. На телефоне она так и не появилась. Я провозился с приложением минут пять и удалил к чертям. А вот Bookmate справился с задачей на отлично. Я открыл пятую главу “Преступления и наказания” на телефоне, и абсолютно то же место открылось на планшете. Только приложению не хватает более широких настроек. А так оно мне даже понравилось.
Заметки
Тут все очень просто. Есть замечательный Evernote, который позволяет работать с заметками откуда угодно. Если не нравится Evernote, то можно попробовать Springpad. Это очень удобно: пришла интересная идея в голову, но планшет лень доставать, да и неудобно в транспорте, например. Накалякал в телефоне, потом пришел в кафе/офис/на пару в универе и нормально отредактировал через планшет. Такое, кстати, у меня бывает часто.
Чего не хватает
Очень не хватает WhatsApp и подобных ему мессенджеров на iPad. Есть iMessage, но он работает только с iOS/Mac OS устройствами. Есть Tango, но из моих друзей/знакомых никто им не пользуется. Было бы очень классно, слыша из кармана, что тебе пришло сообщение в WhatsApp или Viber, открыть приложение на планшете и написать ответ.
Очень не хватает нормального взаимодействия с сервисами Google у iPad. До сих пор не выпустили Google Maps под iPad. Если я ищу ресторанчик в Google Chrome или в приложении Google Search через iPad, то Google Now на это никак не отреагирует. И вроде есть какие-то попытки от Google наладить работу со своей экосистемой в iOS, но они все еще наталкиваются на твердую стену в виде, собственно, компании Apple. Очень хочется, чтобы эти компании вновь подружились.
Еще мне лично очень не хватает клавиатуры Swype для iPad.
Написав этот текст, я пришел к выводу, что никакой особой связки не получается. Но тут дело даже не в том, что два устройства, которыми я пользуюсь, имеют совсем разные экосистемы. Просто цели у этих устройств слишком разные. Телефон нужен, чтобы звонить и отправлять смс. Планшет нужен, чтобы потреблять контент. Эти операции никак не свяжешь. Да, есть пару моментов, где удобно начать операцию на телефоне, а завершить ее на планшете (см. заметки). Также можно, к примеру, смотреть ленту твиттера в телефоне и, натолкнувшись на ссылку с интересной статьей, отправить ее себе на email (или сохранить твит со ссылкой, или отправить это дело в Pocket — вариантов куча) и продолжить читать статью на планшете. Но это не делает из двух разных устройств связку. Если хочется настоящей связки смартфон+планшет, мне кажется, стоит присмотрется к Asus Padfone. Там одно устройство действительно дополняет второе.
Итак, что удобнее делать со смартфона:
- Звонить
- Писать короткие сообщения при перемещении, в транспорте
- Быстро получать небольшие отрывки информации (смотреть время, читать заголовки новостей, посмотреть погоду)
- Фотографировать
- Слушать музыку и подкасты
Что удобнее делать на планшете:
- Читать (статьи, книги, почту, документы)
- Писать более длинные тексты
- Смотреть фотографии
- Работать в браузере
Смартфоны и планшеты прочно вошли в нашу жизнь. Они замечательно дополняют друг друга, каждый выполняя свою, по большей части отдельную часть работы. Я уверен, что это только начальный этап развития этих устройств, а будущее будет за модульными устройствами, которые будут логическим продолжением того, что сегодня предлагает серия Asus Padfone.
Источник