stringtranslate.com

Файл манифеста

В компьютерном программировании файл манифеста — это файл, содержащий метаданные для группы сопутствующих файлов, которые являются частью набора или связного блока. Например, файлы компьютерной программы могут иметь манифест, описывающий имя, номер версии , лицензию и составляющие файлы программы. [1] Термин «манифест» заимствован из процедуры грузовых перевозок, где в манифесте судна перечисляются экипаж и/или груз судна.

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

Системы сборки и операционные системы могут использовать файлы манифестов, чтобы понять, как настроить, выполнить или интегрировать компьютерную программу в существующую систему. Кроме того, в то время как файлы манифестов фокусируются на информации на уровне проекта или системы (например, настройки времени выполнения или зависимости), файлы деклараций фокусируются на деталях на уровне кода (например, типы или сигнатуры функций и объектов).

Типы

Манифест пакета

Дистрибутивы Linux в значительной степени полагаются на системы управления пакетами для распространения программного обеспечения. В этой схеме пакет представляет собой архивный файл, содержащий файл манифеста. Основная цель — перечислить файлы, которые включены в дистрибутив, либо для обработки различными инструментами упаковки, либо для потребления человеком. Манифесты могут содержать дополнительную информацию; например, в JAR (формат пакета для доставки программного обеспечения, написанного на языке программирования Java ) они могут указывать номер версии и точку входа для выполнения. Манифест может опционально содержать криптографический хэш или контрольную сумму каждого файла. Создав криптографическую подпись для такого файла манифеста, можно проверить подлинность и целостность всего содержимого пакета дистрибутива, поскольку изменение любого из файлов сделает контрольные суммы в файле манифеста недействительными.

Манифест по применению и сборке

В Microsoft Windows программное обеспечение, которое полагается на Windows Side-by-Side ( WinSxS ), нуждается в манифесте приложения, который представляет собой XML- документ, который либо встроен в исполняемый файл , либо содержится в отдельном XML- файле, который его сопровождает. Он содержит имя, версию, информацию о доверии, привилегии, необходимые для выполнения, и зависимости от других компонентов. [2]

Манифест сборки очень похож на манифест приложения, но описывает идентичность компонентов, известных как « сборки ». Эти сборки упоминаются в манифесте приложения. [3]

Пример манифеста приложения выглядит следующим образом. Этот манифест приложения состоит из двух основных частей: безопасность и зависимость. Часть безопасности говорит, что приложению требуется уровень безопасности "asInvoker"; то есть, оно может работать на любом уровне безопасности, на котором оно выполняется. Часть зависимости говорит, что приложению нужен компонент с именем "Microsoft.VC90.CRT" с номером версии "9.0.21022.8".

<?xml version='1.0' encoding='UTF-8' standalone='yes'?> <assembly xmlns= 'urn:schemas-microsoft-com:asm.v1' manifestVersion= '1.0' > <trustInfo xmlns= "urn:schemas-microsoft-com:asm.v3" > <security> <requestedPrivileges> <!--Меня устроит любой уровень привилегий безопасности--> <requestedExecutionLevel level= 'asInvoker' uiAccess= 'false' /> </requestedPrivileges> </security> </trustInfo> <dependency> <dependentAssembly> <!--Мне нужна среда выполнения Microsoft Visual C++ 2008 для запуска--> <assemblyIdentity type= 'win32' name= 'Microsoft.VC90.CRT' версия = '9.0.21022.8' архитектура процессора = 'x86' publicKeyToken = '1fc8b3b9a1e18e3b' /> </dependentAssembly> </dependency> </assembly>                          

Манифест кэша HTML5

Манифест кэша в HTML5 — это простой текстовый файл, сопровождающий веб-приложение , который помогает ему работать при отсутствии сетевого подключения. Механизм кэширования считывает этот файл и обеспечивает локальную доступность его содержимого. Манифест кэша HTML5 обслуживается с типом содержимого, установленным на "text/cache-manifest". [4]

Пример манифеста кэша:

МАНИФЕСТ КЭША/test.css/test.js/тест.png

Вебманифест

Веб-манифест — это файл JSON, используемый в прогрессивных веб-приложениях , чтобы сделать их легкодоступными для совместного использования через URL, обнаруживаемыми поисковыми системами и облегчающими сложные процедуры установки. Кроме того, PWA поддерживают собственные взаимодействия и навигацию в стиле приложений, включая добавление на домашний экран , отображение заставок и т. д. [5]

Ссылки

  1. ^ Ashwin (2015-08-01). "Исследователи обнаружили вредоносное ПО HiddenAds в дюжине приложений Android, которые распространялись в Google Play Store". ghacks.net . G Hacks . Получено 2015-08-19 . Этот класс Directory содержит специальные метаданные в файле манифеста. Эти данные могут быть распознаны Contact Provider, который разработчики могут использовать для создания настраиваемого каталога и для передачи данных между устройством и онлайн-сервисами.
  2. ^ "Application Manifests". Справочник параллельных сборок . Microsoft . Получено 23 декабря 2015 г.
  3. ^ "Assembly Manifests". Справочник параллельных сборок . Microsoft . Получено 23 декабря 2015 г.
  4. ^ "7.7 Офлайновые веб-приложения". Стандарт HTML . W3C . 22 декабря 2015 г.
  5. ^ ""Web App Manifest", рабочий проект". "Web App Manifest", рабочий проект . W3C . 12 сентября 2016 г.