Скрытые особенности разработки под Android?

121

Я удивлен , что нет Android Hidden не Особенности пост еще в Hidden Особенности серии , которые я отслеживала на некоторое время теперь.

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

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

Так вот: то , что некоторые скрытые возможности на Android ?

Артем Русаковский
источник

Ответы:

105

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

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

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

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

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

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

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

jamesh
источник
1
Вы пропустили еще один хороший инструмент Layoutopt.
100rabh
Еще один недостаток, который я использую все время, - это программа просмотра иерархии.
Артем Русаковский 03
25

Думаю, тогда и начну.


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

Разделы передового опыта :

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

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


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

Артем Русаковский
источник
1
Последний обязательно станет частью моего рабочего процесса. Всю последнюю неделю это меня раздражало ... Спасибо !!
Mikle
14

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

http://escomic.net/217

Timmmm
источник
4
Также существует idunnolol.com/android/drawables.html с полной документацией по всем функциям xml для фигур. Формы могут быть очень важны для создания круглых фонов, которые меняют цвет при нажатии, или создания градиентов, определенных в XML, вместо настраиваемых фоновых рисунков.
Janusz
можно ли добавить несколько фигур в один XML-документ. например пару кругов и прямоугольников?
Skyfoot
13

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

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

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

dljava
источник
2
Слишком много обручей, через которые нужно перепрыгнуть, чтобы получить код только для форматтера Eclipse, поэтому найдите его здесь: google.com/codesearch/p?hl=ru#CRBM04-7BoA/ide/eclipse/…
idbrii
7

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

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

Иво ван дер Вейк
источник