Как происходит совместное использование компонентов приложения в Android? - PullRequest
0 голосов
/ 02 декабря 2010

Прошло некоторое время, так как я начал читать об Android. Я уже сделал несколько базовых приложений, но мне все еще что-то не хватает: как на самом деле делится компонент приложения? Вот что говорит Android Dev Guide:

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

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

Является ли информация о данных, с которыми приложение работает, также конфиденциальной? Если он описан в файле AndroidManifest.xml, доступен ли он для других приложений или только для Android?

Когда я начал удовлетворять свой интерес к Android - одной из вещей, которые меня захватили, было впечатление огромной совместимости ...

:)

Я ошибался или до сих пор не нашел пути?

Спасибо!

1 Ответ

1 голос
/ 02 декабря 2010

Как на самом деле осуществляется совместное использование компонента приложения?

Это полностью зависит от того, что вы считаете «компонентом приложения», и то, что вы считаете «совместным использованием».

Это то, что говорит Android Dev Guide

Это довольно плохая часть документации.Вот как я мог бы написать это:

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

Является ли единственным способом получения такой информации «частного приложения» для связи с разработчиками этого приложения?

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

Является ли информация о данных, с которыми приложение работает, также конфиденциальной?

Я не знаю, что означает "информация о данных, с которыми работает приложение".Данные, управляемые приложением, по умолчанию являются частными.Опять же, разработчики приложений могут предлагать точки интеграции для данных (например, контент-провайдера, API удаленного обслуживания) - некоторые делают, некоторые нет.

одной из вещей, которые захватили меня, было впечатление огромногосовместимость

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

Должно ли больше разработчиков Android предлагать больше точек интеграции?В резюме, конечно.Однако имейте в виду, что это увеличивает затраты на поддержку (например, ответы на вопросы об интеграции) и ограничивает гибкость кодирования (например, необходимо поддерживать стабильный API для тех, кто выполняет интеграцию).Разработчики не могут быть обвинены, если они не хотят брать на себя все это.

...