Что менее требовательно к производительности - передача пакета через намерение или использование провайдера контента - PullRequest
0 голосов
/ 06 октября 2010

Я хотел бы передать значительный объем данных (~ 1500 байт) между двумя приложениями в Android, где производительность и распределение ресурсов являются приоритетом. Данные в основном пары ключ-значение. Скорость, с которой его нужно передавать из одного приложения в другое, может варьироваться от малой струи до ~ 50 пакетов в секунду. Я полагаю, что я могу либо:

  1. Обернуть все данные внутри пакета и передать пакет через намерение из одного приложения в другое. Я беспокоюсь о влиянии на производительность выделения и отмены выделения всей этой памяти для хранения пакетов.

  2. Записать все данные в базу данных SQLite и передать их другому приложению через поставщика контента. Здесь я беспокоюсь о влиянии на производительность записи всех этих данных на диск, а затем необходимости их считывания с диска при запросе.

Итак, какое из двух зол меньше?

1 Ответ

1 голос
/ 06 октября 2010

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

...