Скрытые возможности разработки Android?

Я удивлен тем, что в серии " Скрытые функции" еще нет заметок оскрытых функциях Android, которые я отслеживал некоторое время назад.

Серия "Скрытые возможности" отлично подходит для людей, которые плохо знакомы с определенным языком. Он показывает веревки и некоторые ценные уловки, все в одном месте. Я думаю, что это блестящая идея. Даже эксперты иногда находят уловки, о которых они никогда не слышали.

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

Итак, здесь идет речь: каковы некоторые скрытые особенности Android?

6 ответов

Решение

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

  • Весь исходный код платформы и все нативные приложения, не принадлежащие Google, доступны для просмотра, загрузки, заимствования или кражи из проекта Android Open Source.
  • Используя структуру ресурсов, создать локализованные версии вашего приложения так же просто, как добавить новую аннотированную подпапку (например, values-fr), которая содержит файл XML со строками на другом языке (например, на французском). Android выберет правильную папку во время выполнения для вас.
    • Та же структура ресурсов позволяет использовать альтернативные макеты для разных аппаратных конфигураций, плотности пикселей экрана и устройств ввода, просто поместив их в именованную папку.
  • Начиная с Android 1.6, ваше приложение может выдавать результаты, которые будут отображаться в результатах поиска в окне быстрого поиска на главном экране. Это известно как пользовательские предложения поиска.
  • Используя Intent и Intent Filters, ваши приложения могут отправлять и обслуживать анонимные запросы на выполнение действия (например, приложение Where может запросить бронирование стола из приложения Open Table).
    • Они могут запросить неизвестное приложение, чтобы завершить действие, без необходимости знать, какое приложение (я) может выполнить этот запрос
    • Ваше приложение может выполнять запросы от неизвестных приложений для выполнения действий без необходимости знать, какие приложения будут выполнять запросы. Воспользуйтесь этим правом, и вы сможете создать приложение Twitter по умолчанию, приложение для бронирования и т. Д.
  • Используя Сигналы тревоги, вы можете настроить свое приложение на выполнение задач в заданное время, даже если ваше приложение не запущено.
    • Вы можете сэкономить много времени автономной работы, используя метод setInexactRepeating для планирования регулярных событий (таких как опрос сервера или обновления). Он будет синхронизировать сигналы тревоги от нескольких приложений одновременно, а не по очереди.
  • Используя платформу Preferences, вы можете создавать экраны настроек для ваших приложений в том же стиле, что и системные настройки. Вы даже можете включить экраны настроек системы (например, Безопасность и местоположение) в иерархию настроек вашего приложения.
  • Используя API-интерфейсы AudioTrack и AudioRecord, вы можете передавать аудиоданные напрямую из и в аудиобуферы PCM.

Инструменты в каталоге / tools пакета SDK заслуживают упоминания:

  • наш дизайнер был особенно впечатлен draw9patch что помогло разработать растягиваемые кнопки. Он дал мне активы оттуда, и я изменил цвет фона на прорисовку из 9 патчей, и теперь у нас есть пользовательская кнопка, закругленные углы и т. Д., Растянутые под текст.
  • ddms, который также интегрирован в плагин Eclipse. Это очень мощный, но я использую его, чтобы делать скриншоты.
  • adb - взаимодействовать с вашим устройством или эмулятором из командной строки. Я использую это, чтобы следить за журналами с моего устройства в окне терминала на моем рабочем столе, хотя я считаю, что это полезно для установки и удаления приложений, которые работают неправильно.
  • sqlite3 - отлично подходит для взаимодействия с установленной базой данных и проверки запросов.
  • apkbuilder, zipalign, aapt - отлично подходит для запуска безголовых сборок
  • monkey для fuzz-тестирования вашего приложения.

Я также хотел бы выделить три "Проектирование для производительности, отзывчивости и бесперебойности", но я также хотел бы добавить четвертую кодировку для (батареи) жизни.

Хотя Javadoc иногда может быть немного редким, это не дает конца, чтобы источник прямо на вас смотрел.

Также очень полезно иметь множество примеров приложений, написанных Google для создания, изучения, а затем посмотреть, как они это сделали.

Я думаю, я начну тогда.


Хорошая скрытая особенность, я думаю, - Лучшая практика документации A ndroid. В нем приведено множество полезных советов по разработке адаптивных и быстрых приложений.

Разделы Best Practices:

  • Поддержка нескольких экранов (несколько размеров и разрешений)
  • Руководство по интерфейсу
    • Дизайн иконок
    • App Widget Design
    • Деятельность и дизайн задач
    • Дизайн меню
  • Проектирование для Производительности
  • Проектирование для Отзывчивости
  • Проектирование для бесшовности

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


Если вы используете Eclipse, вы заметите, что он не очень хорошо форматирует XML-файлы, а когда это происходит, он очень непоследователен (иногда он разделяет атрибуты по новым строкам, иногда нет). Чтобы это исправить, вы можете нажать Ctrl-Shift-F (автоформат). Правила, которые использует Ctrl-Shift-F, находятся в Window->Preferences->XML->XML Files->Editor.

Android поддерживает XML <shape>которые могут быть использованы в качестве SVG-подобных объектов. К сожалению, нет документации для них. Это лучшая информация, которую я смог найти:

http://escomic.net/217

Также, что касается передового опыта, вы можете проверить стиль кодирования Android:

http://source.android.com/source/code-style.html

а также код eclipse и средства форматирования импорта (android-formatting.xml, android.importorder), которые находятся в исходном коде платформы в разработке / ide / eclipse

Иерархический просмотрщик в /tools позволяет вам отлаживать / анализировать макет вашего представления: заполнение, позиционирование, иерархию представления и т. д.

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

Другие вопросы по тегам