Сайт Android Developers сообщает, что релиз Android 4.1 SDK доступен для скачивания и установки. Новый релиз позволяет разрабатывать приложения, используя API 16. Более подробную информацию о нововведениях Jelly Bean API можно прочитатьздесь. Помимо нового API компания Google выкатила также обновления для SDK Tools (revision 20.0.1) и NDK (revision 8b), где исправлены некоторые обнаруженные ошибки.
Nexus 7 обещает стать настоящим хитом, поэтому вполне понятно желание разработчиков адаптировать свои приложения для этого планшета. Команда Android Developers решила поделиться опытом, и опубликовала пост с советами по "допиливанию программ" под Nexus 7. Собственно ниже приводится перевод этого поста.
Семерка неспроста встречается в названии планшета. Asus Nexus 7 имеет семидюймовый экран. Как разработчиков, нас в первую очередь интересует не физический размер экрана, а его разрешение. Так вот, ожидаемый планшет будет иметь разрешение 600 * 960 точек, при этом их плотность на дюйм соответствует tvdpi. Скорее всего, вы ранее не сталкивались с этим значением. Приятно, что вам не придется нагружать работой своего дизайнера, заставляя его перерисовывать графику под новое значение dpi. Android умеет автоматически масштабировать изображение. Если Android Jelly Bean OS не находит требуемое изображение среди tvdpi, он автоматически использует hdpi, уменьшая размер картинки.
Чтобы быть уверенным в том, что система корректно преобразует ваши hdpi изображения в tvdpi, особенно если речь идет о 9-patch images, необходимо следовать нескольким правилам:
Размер вашего рисунка должен быть кратным двум, в противном случае могут проявиться неприятные артефакты при масштабировании.
Оставляйте по одному пикселю до и после растягиваемого региона, в противном случае при растягивании может наблюдаться скачек цвета.
Семидюймовый экран позволяет разместить большее количество информации на экране. Поэтому вполне логично разработать отдельный шаблон для Nexus 7 и прочих устройств с подобным экраном. Например, если у Вас есть шаблон activity_home.xml, который располагается в папке res/layout, то для добавления заточенного под семь дюймов шаблона нужно создать папку layout-sw600dp и поместить туда альтернативный шаблон: res/layout-sw600dp/activity_home.xml.
Слово sw600dp говорит о том, что ресурс рассчитан на устройства с разрешением 600dp и больше. Аналогично можно создать шаблон для десятидюймовых экранов:
res/layout-sw720dp/activity_home.xml
Таким образом, Вы можете написать приложение, которое будет само адаптироваться под различные разрешения экрана.
Аналогичным образом можно задать параметры шрифтов для устройств с различными экранами. Нужно создать файл, в котором задаются размерности. Например, если в файле res/values/dimens.xml прописано, что шрифт имеет 18 размер
<dimen name="text_size">18sp</dimen>
то создав файл res/values-sw600dp/dimens.xml Вы можете указать другой размер шрифта для семидюймовых экранов:
<dimen name="text_size">32sp</dimen>
Аппаратная начинка Nexus 7 имеет несколько существенных отличий от обычных смартфонов. В Nexus 7 отсутствует телефонный модуль. Кроме того, планшет имеет только фронтальную камеру. Это значит, что приложения, в требованиях которых указано android.hardware.camera, не запустятся на этом планшете.
Если указанные вами при создании программы аппаратные требования не соответствуют имеющимся у пользователя, то он просто не увидит вашу программу в Google Play market. Таким образом, потенциальная аудитория Вашей программы может значительно снизиться. Допустим, ваша программа использует камеру, однако фитча, в которой задействована камера, является дополнительной и пользователи вполне могут без нее обойтись. В этом случае глупо отсекать пользователей, чьи устройства не имеют камер. В требованиях можно указать, что программа использует камеру, но эта опция не является критической. Делается это с помощью параметра android:required="false":
<uses-feature android:name="android.hardware.camera"
android:required="false"/>
Более детально эта тема разобрана в англоязычной статье "Five Steps to Hardware Happiness".
Asus Nexus 7 будет поставляться с Android Jelly Bean, поэтому Вы можете использовать новые возможности операционной системы. Разработчики Google постарались сделать Android более красивым и отзывчивым, однако чтобы ваши программы работали в ключе новой ОС, нужно приложить некоторые усилия. Рекомендуем Вам для понимания ознакомиться со следующими документами:Android 4.1 APIs,Hardware Acceleration,For Butter or Worse: Smoothing Out Performance in Android UIs.
20 июля 2012
Александр Ледков
Источник:Getting Your App Ready for Jelly Bean and Nexus 7