Я использую буферы протокола на Android. Я долго избегал этого, полагая, что это было излишним. Это было до того, как я потратил полдня, чтобы опробовать его.
Вот мои результаты после проведенного на нем дня. Сначала он увеличил размер моего APK с 2,89 до 3,1 мегабайта. Я считаю это несущественным. Затем я обнаружил, что могу удалить код, который у меня был повсюду, где я выполнял синтаксический анализ вручную. Мне удалось удалить код, который требовал ввода данных в определенной последовательности.
Затем я смог полностью удалить несколько классов, которые у меня были в моем приложении, цель которых состояла в том, чтобы служить временными, легкими только для информации «модельными» классами, которые представляли данные, поступающие в поток данных или из него. Короче говоря, все стало проще, меньше и надежнее.
Протоколные буферы вполне могут быть не лучшим решением для вашей ситуации. Но я рекомендую вам потратить несколько часов и попробовать. Таким образом, вы примете решение оставить его позади с позиции силы и знаний.
Обязательно используйте облегченную версию буферов протокола. Файл .jar имеет размер 160 Кб, но объем его функциональности огромен. Я буду использовать его все время с этого момента.
У меня есть некоторые опасения по поводу динамического выделения памяти / сбора мусора при использовании его в игровом контексте в долгосрочной перспективе. Но сейчас сериализация происходит достаточно редко, поэтому для меня это не проблема.
Еще один бонус: у меня есть некоторый код Python, который генерирует файлы данных, которые читает приложение. Этот код Python обрабатывает некоторый XML, а затем генерирует двоичные файлы. Я думаю, что смогу полностью устранить этот код, используя текстовый режим буфера протокола, а затем напрямую используя protoc для создания двоичных файлов.