#android #firebase #protocol-buffers #grpc
#Android #огневая база #буферы протокола #стеклопластик #firebase #grpc
Вопрос:
Недавно я работал над интеграцией GRPC API в чувствительное к размеру приложение для Android. В API было всего несколько унарных вызовов. Я заметил, что результирующий APK имел io.grpc
(613 КБ) amp; io.opencensus
(178,9 КБ), который был дополнительно уменьшен до 387,2 КБ и 39,4 КБ соответственно с использованием Proguard. Я заметил, что Proguard смог удалить многие классы / методы, связанные с потоковыми вызовами, из APK. Однако я заметил, что у приложения уже был com.google.protobuf
пакет, который, как я подозреваю, взят из чего-то вроде Firebase SDK.
Если Firebase SDK импортирован com.google.protobuf
, почему он не нужен io.grpc
для транспортировки? Использует ли он что-то еще?
Ответ №1:
Протокол protobuf используется некоторыми Firebase SDK как часть их внутренних коммуникаций. Первое, что приходит на ум, — это Firebase Analytics, но есть и другие.
Облачный Firestore SDK в Firebase использует grpc как часть своего транспортного протокола. Если вы не используете Cloud Firestore, то библиотека grpc, насколько я знаю, включена не будет.
Чтобы убедиться, что неиспользуемые методы удалены, обязательно используйте ProGuard как часть сборки вашего выпуска.
Комментарии:
1. Спасибо за ответ! Мы уже используем ProGuard, но все еще имеем protobufs как часть сборки, но не GRPC. Значит ли это, что какой-то SDK внутренне использует объекты protobufs, но не использует GRPC? Я знаю, что мы используем Crashlytics, MLKit и Firebase Analytics — Использует ли кто-нибудь из них GRPC? Я проверю, используем ли мы Firestore SDK.
2. ОБНОВЛЕНИЕ: Только что проверено — в настоящее время мы используем firebase realtime-database, а не Firestore.
3. Другими сервисами, которые мы используем, являются firebase cloud messaging, мониторинг производительности, аналитика и удаленная настройка. Ни один из них не требует GRPC?
4. Google Analytics для Firebase использует protobufs для кодирования данных по своему проводному протоколу.
5. Интересно, спасибо! Я думаю, что другие сервисы также делают то же самое. (на основе наблюдений)