Как два приложения для Android взаимодействуют друг с другом?

Какова общая архитектура связи для двух приложений Android?

Дело 1:

У меня есть два приложения для Android,

а) Один из них - это сервер, который ожидает запроса клиента, обрабатывает запрос (считывает данные из некоторой базы данных sqlite) и возвращает результаты клиенту. Это серверное приложение работает на собственном независимом телефоне Android.

б) Второй — это клиент, который отправляет запрос серверному приложению в (а), и он тоже работает на своем собственном независимом телефоне Android.

Вопрос в том, должны ли два приложения проходить через оператора мобильной связи, чтобы обеспечить связь? или они могут просто общаться друг с другом напрямую через общедоступный IP/WI-Fi и т. д. Какова структура/архитектура связи для этих приложений?

Случай 2:

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

Опять же, должны ли два приложения проходить через оператора мобильной связи для облегчения связи? или они просто устанавливают прямую связь TCP/IP через какой-то общедоступный IP-адрес?

Любые справочные статьи действительно помогут.

Спасибо

Гат


person gath    schedule 24.10.2009    source источник


Ответы (3)


Вопрос в том, должны ли два приложения проходить через оператора мобильной связи, чтобы обеспечить связь?

Если вы хотите использовать 3G, да. Если вы хотите использовать Wi-Fi, нет. Как правило, Android-приложениям все равно, откуда идет интернет-соединение.

или они могут просто общаться друг с другом напрямую через общедоступный IP/WI-Fi и т. д.

Если у них есть соединение WiFi, у них есть соединение WiFi. Что вы будете делать с этим соединением WiFi, зависит от вас, используя сокеты Java и учитывая все обычные проблемы с доступом в Интернет (например, NAT).

Опять же, должны ли два приложения проходить через оператора мобильной связи для облегчения связи? или они просто устанавливают прямую связь TCP/IP через какой-то общедоступный IP-адрес?

Вы просите сокет Java. Вы получаете сокет Java. Вы что-то делаете с сокетом Java. Откуда берется этот Java-сокет и как работает его подключение, обычно скрывается: 3G, WiFi, эскадрилья очень крошечных странствующих голубей и т. д.

person CommonsWare    schedule 24.10.2009

Я бы предложил Android — IPC, помощь и IBinder и для начала рассмотрим механизм IPC Android. После этого просто поищите в Google «Android IPC».

person bugmagnet    schedule 24.10.2009
comment
На самом деле, ОП спрашивает о разных телефонах; Android IPC работает только между разными приложениями на одном телефоне. - person CommonsWare; 24.10.2009
comment
Боже, как стыдно. Прости (краснеет). - person bugmagnet; 25.10.2009

Кое-что о синхронизации можно найти здесь Синхронизация в Android

person Community    schedule 26.10.2009