чем открыть proto файл

Использование Google Protocol Buffers (protobuf) в Java

Привет, хабровчане. В рамках курса «Java Developer. Professional» подготовили для вас перевод полезного материала.

чем открыть proto файл. Смотреть фото чем открыть proto файл. Смотреть картинку чем открыть proto файл. Картинка про чем открыть proto файл. Фото чем открыть proto файл

Недавно вышло третье издание книги «Effective Java» («Java: эффективное программирование»), и мне было интересно, что появилось нового в этой классической книге по Java, так как предыдущее издание охватывало только Java 6. Очевидно, что появились совершенно новые разделы, связанные с Java 7, Java 8 и Java 9, такие как глава 7 «Lambdas and Streams» («Лямбда-выражения и потоки»), раздел 9 «Prefer try-with-resources to try-finally» (в русском издании «2.9. Предпочитайте try-с-ресурсами использованию try-finally») и раздел 55 «Return optionals judiciously» (в русском издании «8.7. Возвращайте Optional с осторожностью»). Но я был слегка удивлен, когда обнаружил новый раздел, не связанный с нововведениями в Java, а обусловленный изменениями в мире разработки программного обеспечения. Именно этот раздел 85 «Prefer alternatives to Java Serialization» (в русском издании «12.1 Предпочитайте альтернативы сериализации Java») и побудил меня написать данную статью об использовании Google Protocol Buffers в Java.

В разделе 85 «Prefer alternatives to Java Serialization» (12.1 «Предпочитайте альтернативы сериализации Java») Джошуа Блох (Josh Bloch) выделяет жирным шрифтом следующие два утверждения, связанные с сериализацией в Java:

«Лучший способ избежать проблем, связанных с сериализацией, — никогда ничего не десериализовать».

«Нет никаких оснований для использования сериализации Java в любой новой системе, которую вы пишете».

После описания в общих чертах проблем с десериализацией в Java и, сделав эти смелые заявления, Блох рекомендует использовать то, что он называет «кроссплатформенным представлением структурированных данных» (чтобы избежать путаницы, связанной с термином «сериализация» при обсуждении Java). Блох говорит, что основными решениями здесь являются JSON (JavaScript Object Notation) и Protocol Buffers (protobuf). Мне показалось интересным упоминание о Protocol Buffers, так как в последнее время я немного читал о них и игрался с ними. В интернете есть довольно много материалов по использованию JSON (даже в Java), в то время как осведомленность о Protocol Buffers среди java-разработчиков гораздо меньше. Поэтому я думаю, что статья об использовании Protocol Buffers в Java будет полезной.

На странице проекта Google Protocol Buffers описывается как «не зависящий от языка и платформы расширяемый механизм для сериализации структурированных данных». Также там есть пояснение: «Как XML, но меньше, быстрее и проще». И хотя одним из преимуществ Protocol Buffers является поддержка различных языков программирования, в этой статье речь пойдет исключительно про использование Protocol Buffers в Java.

album.proto

Несмотря на простоту приведенного выше определения формата протокола, в нем присутствует довольно много информации. В первой строке явно указано, что используется proto3 вместо proto2, используемого по умолчанию, если явно ничего не указано. Две строки, начинающиеся с option, указывают параметры генерации Java-кода (имя генерируемого класса и пакет этого класса) и они нужны только при использовании Java.

Ключевое слово «message» определяет структуру «Album», которую мы хотим представить. В ней есть четыре поля, три из которых строки (string), а одно — целое число (int32). Два из них могут присутствовать в сообщении более одного раза, так как для них указано зарезервированное слово repeated. Обратите внимание, что формат сообщения определяется независимо от Java за исключением двух option, которые определяют детали генерации Java-классов по данной спецификации.

чем открыть proto файл. Смотреть фото чем открыть proto файл. Смотреть картинку чем открыть proto файл. Картинка про чем открыть proto файл. Фото чем открыть proto файл

Сгенерированный Java-класс AlbumProtos.java содержит более 1000 строк, и я не буду приводить его здесь, он доступен на GitHub. Среди нескольких интересных моментов относительно сгенерированного кода я хотел бы отметить отсутствие выражений import (вместо них используются полные имена классов с пакетами). Более подробная информация об исходном коде Java, сгенерированном protoc, доступна в руководстве Java Generated Code. Важно отметить, что данный сгенерированный класс AlbumProtos пока никак не связан с моим Java-приложением, и сгенерирован исключительно из текстового файла album.proto, приведенного ранее.

Прежде чем двигаться дальше, нам понадобится простой Java-класс для демонстрации Protocol Buffers. Для этого я буду использовать класс Album, который приведен ниже (код на GitHub).

Album.java

Создадим экземпляр Album с помощью следующего кода:

Чтение массива byte[] обратно в экземпляр Album может быть выполнено следующим образом:

Здесь мы видим, что в обоих экземплярах соответствующие поля одинаковы и эти два экземпляра действительно разные. При использовании Protocol Buffers, действительно, нужно сделать немного больше работы, чем при «почти автоматическом» механизме сериализации Java, когда надо просто наследоваться от интерфейса Serializable, но есть важные преимущества, которые оправдывают затраты. В третьем издании книги Effective Java («Java: эффективное программирование») Джошуа Блох обсуждает уязвимости безопасности, связанные со стандартной десериализацией в Java, и утверждает, что «Нет никаких оснований для использования сериализации Java в любой новой системе, которую вы пишете».

Смотреть открытый вебинар на тему «gRPC для микросервисов или не REST-ом единым».

Источник

Как открыть PROTO файлы на вашем устройстве

PROTO расширение файла

Как открыть файл PROTO?

При открытии открытия. PROTO файлов могут быть разные причины проблем. Каждая проблема требует своего подхода, но большинство из них можно решить, следуя приведенным ниже инструкциям.

Шаг 1. Установите программу, которая поддерживает PROTO файлы

Чтобы открыть PROTO файл, в системе должна быть установлена соответствующая программа, которая поддерживает этот формат файлов. Ниже представлен список программ, которые поддерживают файлы с расширением PROTO.

Программы, открывающие файлы PROTO

Скачайте установщик для данного приложения и запустите его. После завершения установки PROTO файлы должны быть открыты с установленным приложением по умолчанию при следующей попытке открыть файл этого типа.

Помните!

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

Шаг 2. Свяжите данное программное обеспечение с файлами PROTO

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

Шаг 3. Проверьте, нет ли других ошибок, связанных с файлами PROTO

Когда вышеупомянутые решения терпят неудачу, другие варианты должны быть продолжены. Возможно, файл PROTO поврежден или поврежден. Наиболее распространенные причины повреждения файла:

Источник

Расширение файла PROTO

Protocol Buffer Format

Что такое файл PROTO?

Программы, которые поддерживают PROTO расширение файла

В следующем списке перечислены программы, совместимые с файлами PROTO, которые разделены на категории 3 в зависимости от операционной системы, в которой они доступны. Файлы с суффиксом PROTO могут быть скопированы на любое мобильное устройство или системную платформу, но может быть невозможно открыть их должным образом в целевой системе.

Программы, обслуживающие файл PROTO

Как открыть файл PROTO?

Проблемы с доступом к PROTO могут быть вызваны разными причинами. Что важно, все распространенные проблемы, связанные с файлами с расширением PROTO, могут решать сами пользователи. Процесс быстрый и не требует участия ИТ-специалиста. Ниже приведен список рекомендаций, которые помогут вам выявить и решить проблемы, связанные с файлами.

Шаг 1. Скачайте и установите protobuf

чем открыть proto файл. Смотреть фото чем открыть proto файл. Смотреть картинку чем открыть proto файл. Картинка про чем открыть proto файл. Фото чем открыть proto файлОсновная и наиболее частая причина, препятствующая открытию пользователями файлов PROTO, заключается в том, что в системе пользователя не установлена программа, которая может обрабатывать файлы PROTO. Решение простое, просто скачайте и установите protobuf. Полный список программ, сгруппированных по операционным системам, можно найти выше. Одним из наиболее безопасных способов загрузки программного обеспечения является использование ссылок официальных дистрибьюторов. Посетите сайт protobuf и загрузите установщик.

Шаг 2. Проверьте версию protobuf и обновите при необходимости

чем открыть proto файл. Смотреть фото чем открыть proto файл. Смотреть картинку чем открыть proto файл. Картинка про чем открыть proto файл. Фото чем открыть proto файлЕсли проблемы с открытием файлов PROTO по-прежнему возникают даже после установки protobuf, возможно, у вас устаревшая версия программного обеспечения. Проверьте веб-сайт разработчика, доступна ли более новая версия protobuf. Иногда разработчики программного обеспечения вводят новые форматы вместо уже поддерживаемых вместе с новыми версиями своих приложений. Если у вас установлена более старая версия protobuf, она может не поддерживать формат PROTO. Последняя версия protobuf должна поддерживать все форматы файлов, которые совместимы со старыми версиями программного обеспечения.

Шаг 3. Настройте приложение по умолчанию для открытия PROTO файлов на protobuf

Если у вас установлена последняя версия protobuf и проблема сохраняется, выберите ее в качестве программы по умолчанию, которая будет использоваться для управления PROTO на вашем устройстве. Процесс связывания форматов файлов с приложением по умолчанию может отличаться в деталях в зависимости от платформы, но основная процедура очень похожа.

чем открыть proto файл. Смотреть фото чем открыть proto файл. Смотреть картинку чем открыть proto файл. Картинка про чем открыть proto файл. Фото чем открыть proto файл

Выбор приложения первого выбора в Windows

Выбор приложения первого выбора в Mac OS

Шаг 4. Убедитесь, что PROTO не неисправен

Если проблема по-прежнему возникает после выполнения шагов 1-3, проверьте, является ли файл PROTO действительным. Отсутствие доступа к файлу может быть связано с различными проблемами.

чем открыть proto файл. Смотреть фото чем открыть proto файл. Смотреть картинку чем открыть proto файл. Картинка про чем открыть proto файл. Фото чем открыть proto файл

1. Убедитесь, что PROTO не заражен компьютерным вирусом

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

2. Проверьте, не поврежден ли файл

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

3. Проверьте, есть ли у вашей учетной записи административные права

Иногда для доступа к файлам пользователю необходимы права администратора. Выйдите из своей текущей учетной записи и войдите в учетную запись с достаточными правами доступа. Затем откройте файл Protocol Buffer Format.

4. Убедитесь, что ваше устройство соответствует требованиям для возможности открытия protobuf

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

5. Проверьте, есть ли у вас последние обновления операционной системы и драйверов

Современная система и драйверы не только делают ваш компьютер более безопасным, но также могут решить проблемы с файлом Protocol Buffer Format. Устаревшие драйверы или программное обеспечение могли привести к невозможности использования периферийного устройства, необходимого для обработки файлов PROTO.

Вы хотите помочь?

Если у Вас есть дополнительная информация о расширение файла PROTO мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся здесь и отправьте нам свою информацию о файле PROTO.

Источник

Расширение файла PROTO

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

Информация о файле PROTO

Полное название файлаПроизводительПопулярность
Google Protocol Buffers Buffer FormatGoogle

Что такое файл PROTO?

Файл разработчика, созданный в формате буфера протокола Google, формат сериализации данных, используемый для обмена данными. Задает одно или несколько «сообщений» в виде логических записей, каждый из которых содержит пары имени и знака (eG, сообщение Person может иметь идентификатор, имя и адрес). Разработан в качестве альтернативы XML для обмена данными.

После того, как была указана схема протокола протокола, вы можете использовать библиотеки буферов протокола Java, C ++ или Python («protobuf») для автоматического генерации исходного кода. После сгенерирования исходный код может использоваться в вашей программе для создания структурированных данных и чтения и записи на входные и выходные потоки.

Буферы протокола используются для сериализации объектов из программ Java, C ++ или Python. Это позволяет кодировать данные в общем формате и обмениваться между приложениями, написанными на трех языках.

Буферы протокола используются почти всеми форматами файлов Google и протоколами RPC.

Как открыть файл PROTO?

Источник

Русские Блоги

Используйте буфер протокола в Android

Protocol Buffers Это гибкий, эффективный и автоматизированный механизм для сериализации структурированных данных, аналогичный XML, номеньшеБыстреепроще, Определите способ структурированных данных один раз, а затем вы можете просто написать его, используя специально сгенерированный код, или прочитать структурированные данные из большого количества потоков данных на разных языках. Вы даже можете обновить структуру данных, не разрушая развернутыестарый Формат скомпилированной программы. Давайте посмотрим, какProtocol Buffers Используется в нашем проекте Android.

обзор

Давайте взглянемProtocol Buffers То, что проект предоставил нам, мы используемProtocol Buffers Общий процесс того, что должно быть сделано. Как показано ниже:

чем открыть proto файл. Смотреть фото чем открыть proto файл. Смотреть картинку чем открыть proto файл. Картинка про чем открыть proto файл. Фото чем открыть proto файл

Мы можемprotobuf-gradle-plugin МестныйProtocol Buffers Путь к компилятору заставляет его использовать локальную компиляцию для выполнения компиляции, или вы можете использоватьProtocol Buffers Другой инструмент, предоставляемый проектом, динамически загружает и выполняет процесс компиляции во время компиляции.

Мы рассмотрим этот процесс подробно позже.

Скачать и скомпилировать протокол компилятора

Мы можем быть в следующих местах:

Скачав пакетный protobuf, вы также можете напрямую клонировать код protobuf и скомпилировать компилятор вручную. Здесь мы клонируем код из GitHub и вручную скомпилируем компилятор:

После загрузки кода войдите в каталог protobuf и выполнитеautogen.sh

Этот скрипт в основном используется для загрузки gmock-1.7.0 для тестирования и генерацииconfigure Жду документов. Вы можете использовать следующие команды, чтобы понять, какую конфигурацию мы можем сделать для компиляции protobuf и информацию о конфигурации по умолчанию:

Выполните configure для настройки компиляции:

Это сгенерирует make-файл, скомпилирует и установит:

Этот процесс компилируется и устанавливаетсяProtocol Buffers В дополнение к компилятору, он также будет скомпилирован для хоста для поддержки использования в C ++Protocol Buffers Библиотека. (Скомпилированный бинарный файл добавляется вprotobuf/src/.libs под. )

После установки выполните следующую команду, чтобы убедиться, что она установлена:

Добавляя к нему при выполнении protoc—help Параметры могут узнать больше использования этого инструмента.

Использовать буферные протоколы в проектах Android

чем открыть proto файл. Смотреть фото чем открыть proto файл. Смотреть картинку чем открыть proto файл. Картинка про чем открыть proto файл. Фото чем открыть proto файл

Добавьте пару в build.gradle нашего приложенияprotobuf-java Зависимости, как полагаться на другие библиотеки Java:

Добавьте класс для доступа к классу Protocol Buffers. Здесь мы добавляем два класса, AddPerson используется для создания объекта Person:

Класс AddressBookProtobuf используется для кодирования / декодирования объектов AddressBook:

Используйте protobuf-gradle-plugin

чем открыть proto файл. Смотреть фото чем открыть proto файл. Смотреть картинку чем открыть proto файл. Картинка про чем открыть proto файл. Фото чем открыть proto файл

Затем изменитьapp/build.gradle Сконфигурируйте подключаемый модуль protobuf gradle:

protoc Блок используется для настройки компилятора Protocol Buffers, здесь мы указываем компилятор, который мы скомпилировали ранее.
task.builtins Этот блок необходим. Этот блок используется для указания того, для какого языка программирования мы хотим сгенерировать код. Здесь мы генерируем код для C ++ и Java. Если этот блок отсутствует, во время компиляции будет сообщено о следующей ошибке:

В подсказке говорится, что путь к выходному каталогу не указан.
Это связано с тем, что параметры команды компилятора protobuf, выполняемой protobuf-gradle-plugin, находятся в protobuf-gradle-plugin/src/main/groovy/com/google/protobuf/gradle/GenerateProtoTask.groovy Построен в:

Как видите, выходной каталог создается встроенными.

Таким образом, нам не нужно каждый раз запускать protoc вручную.

Сделайте небольшую модификацию предыдущего блока protobuf, нам даже не нужно компилировать компилятор protobuf. Изменить следующим образом:

Протобуф и сравнительный тест JSON

После долгого разговора, как работает Protobuf? Здесь мы сравниваем производительность нашего наиболее часто используемого формата JSON и Protobuf. Тест основан на fastjson, который пользуется хорошей репутацией среди разработчиков.

Выполните тестирование с помощью следующего фрагмента кода:

Здесь мы выполняем 3 набора тестов кодирования и 3 набора тестов декодирования. Для теста кодирования первая группа одиночных данных содержит 10 человек, вторая группа содержит 50 человек, а третья группа содержит 100 человек. Затем каждая информация кодируется 5000 раз.

Для теста декодирования отдельные данные в трех группах также содержат 10 человек, 50 и 100, и затем операция кода декодирования выполняется 5000 раз для каждого из данных.

Выполните вышеуказанный тест на платформе Android 4.4.4 CM от Galaxy Nexus и, наконец, получите следующие результаты:

Сравнение длины данных после кодирования (в байтах)

Количество персонProtobufProtobuf(GZIP)JSONJSON(GZIP)
108602911703344
50430098484631047
10086001840169131913

Для тех же данных длина данных, закодированных в Protobuf, составляет примерно половину длины данных, закодированных в JSON. Но если закодированные данные снова сжимаются, разница между ними относительно невелика.

Сравнение производительности кодирования (S)

Количество персонProtobufJSON
104.6876.558
5023.72841.315
10045.60481.667

Производительность кодирования улучшена как минимум на 28,5% и максимум на 44,2%. По сравнению с JSON производительность кодирования Protobuf была значительно улучшена.

Сравнение производительности декодирования (S)

Количество персонProtobufJSON
100.2268.839
500.29143.869
1000.22085.444

С точки зрения производительности декодирования, Protobuf имеет потрясающее улучшение по сравнению с JSON. Время декодирования Protobuf едва ли увеличивается с увеличением длины данных, в то время как с увеличением длины данных время, необходимое для декодирования, становится все длиннее и длиннее.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *