Показаны сообщения с ярлыком Alice. Показать все сообщения
Показаны сообщения с ярлыком Alice. Показать все сообщения

суббота, 22 августа 2026 г.

Alice, Manifest, App, Program

Alice, Manifest, App, Program

В программировании термин «манифест» не имеет одного универсального значения — его смысл сильно зависит от контекста и технологии. Я бы сказала так: манифест — это специальный файл с метаданными, который описывает структуру, настройки и требования программы или компонента. Его задача — дать системе или инструменту чёткую инструкцию: что это за программа, какие у неё возможности, какие нужны разрешения и как она должна взаимодействовать с окружением. habr.comlearn.microsoft.commetanit.com
Я подобрала несколько ярких примеров, чтобы было понятнее:
  • В Android есть файл
    AndroidManifest.xml
    . В нём декларируют всё ключевое: имя пакета, версии, компоненты (активности, сервисы, приёмники широковещательных сообщений, поставщики контента), требуемые разрешения (доступ к камере, интернету, контактам), минимальные версии API и фильтры намерений (intent-фильтры). Без этого файла система не сможет корректно запустить приложение. habr.comdeveloper.android.commetanit.com
  • В Windows (иногда его называют манифестом приложения или манифестом fusion) это XML-файл. Он описывает, какие общие и частные сборки (библиотеки) нужны программе во время выполнения — чтобы приложение работало стабильно и не конфликтовало с другими версиями. learn.microsoft.com
  • Для веб-технологий (в частности, для прогрессивных веб-приложений, PWA) используют файл
    manifest.json
    . В нём указывают имя приложения, описание, иконки, стартовую URL, настройки отображения (например, фоновый цвет, ориентацию), а также то, какие API браузера или операционной системы приложение использует. Это позволяет браузеру «увидеть» приложение как нативное — например, дать возможность добавить его на домашний экран устройства. learn.microsoft.comdeveloper.mozilla.orgw3.org
  • В разработке браузерных расширений тоже есть свой манифест (часто
    manifest.json
    ). Он описывает структуру расширения: какие компоненты входят в него (всплывающее окно, скрипты для внедрения в страницы, фоновый работник), какие разрешения ему нужны, какие API доступны. В Chrome и других Chromium-браузерах сейчас актуален стандарт Manifest V3. developer.chrome.comhabr.com
  • В сфере электронного обучения (например, в стандарте SCORM) тоже есть свой манифест (часто
    imsmanifest.xml
    ). Он служит «инструкцией» для системы управления обучением (LMS): описывает структуру курса, порядок прохождения, ресурсы, метаданные. scorm.comcccp.itmo.rucodico.io
Проще говоря: манифест — это «паспорт» и «инструкция» для программы или компонента. Он собирает в одном месте всю важную информацию, чтобы инструменты сборки, операционная система или другая система могли правильно интерпретировать и запустить код. habr.commetanit.com
----------------------------------------------------------------------------------------------------------------
https://en.wikipedia.org/wiki/Manifest_file
-----------------------------------------------------------------------------------------------------------------

В компьютерном программировании файл манифеста — это файл, содержащий метаданные для группы сопутствующих файлов, которые являются частью набора или целостной единицы. Например, файлы компьютерной программы могут иметь манифест, в котором указаны название, номер версии, лицензия и составляющие файлы программы.[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='да'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <безопасность>
      <Запрошенные привилегии>
        <!--Меня устраивает любой уровень привилегий безопасности-->
        <requestedExecutionLevel level='asInvoker' uiAccess='false' />
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentAssembly>
      <!--Для запуска мне нужна среда выполнения Microsoft Visual C++ 2008-->
      <assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
  </dependency>
</assembly>

Манифест кэширования HTML5

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

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

CACHE MANIFEST 
/test.css
/test.js
/test.png

Webmanifest

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

Манифест WebExtension

Манифест WebExtension — это файл с именем manifest.json, используемый для настройки расширений браузера. В настоящее время стандарт представлен в версии 3, но версия 2 по-прежнему поддерживается браузерами на основе Gecko, такими как Mozilla Firefox.

Ссылки

  1.  Эшвин (2015-08-01). "Исследователи обнаружили вредоносное ПО HiddenAds в десятке приложений для Android, распространявшихся в Google Play Store". ghacks.net. G Hacks. Дата обращения: 19 августа 2015. Этот класс Directory содержит специальные метаданные в файле манифеста. Эти данные могут быть распознаны провайдером контактов, который разработчики могут использовать для создания собственного каталога и передачи данных между устройством и онлайн-сервисами.[мертвая ссылка]
  2.  "Манифесты приложения". Справочник по параллельным сборкам. Microsoft. Проверено 23 декабря 2015.
  3.  "Манифесты сборки". Справочник по параллельным сборкам. Microsoft. Дата обращения: 23 декабря 2015.
  4.  "7.7 Автономные веб-приложения". Стандарт HTML. W3C. 22 декабря 2015 года.
  5.  "Подготовка к удалению кэша приложений". web.dev. Архивировано из оригинала 20.05.2020. Дата обращения: 02.09.2021.
  6.  "Использование кэша приложения - HTML: язык гипертекстовой разметки | MDN". developer.mozilla.org. Архивировано из оригинала 15 февраля 2019 года. Дата обращения: 11 апреля 2021.
  7.  "Window.applicationCache". Веб-документы MDN. Mozilla. Архивировано из оригинала 2 мая 2023 года. Проверено 2020-12-29.
  8.  ""манифест веб-приложения", рабочий проект". "Манифест веб-приложения", рабочий проект. W3C. 12 сентября 2016 года.
  9. -------------------------