Hacker News

Глубокое погружение в формат файлов .car от Apple.

Глубокое погружение в формат файлов .car от Apple. Это исследование углубляется, изучая его значение и потенциальное влияние. — ОС Mewayz Business.

1 минута чтения

Mewayz Team

Editorial Team

Hacker News

Глубокое погружение в формат файлов .car от Apple

Формат файла .car от Apple — сокращение от Compiled Asset Catalog Resource — представляет собой двоичный контейнер, который Apple использует для упаковки, оптимизации и доставки ресурсов приложений по всей своей экосистеме платформ. Понимание этого формата важно для любого разработчика iOS, macOS, tvOS или watchOS, который хочет выпускать более компактные, быстрые и лучше оптимизированные приложения.

Что такое файл .car и почему Apple его использует?

Когда вы создаете проект Xcode, ваш каталог Assets.xcassets компилируется компилятором каталога активов (acttool) в двоичный файл .car, который поставляется в комплекте вашего приложения. Вместо того, чтобы предоставлять отдельные файлы PNG, PDF или HEIC во время выполнения, Apple объединяет все в один структурированный двоичный файл.

Мотивы, лежащие в основе этого дизайна, продуманы и многоуровневы. Компилятор выполняет несколько оптимизаций во время сборки, которые были бы невозможны для файлов необработанных изображений:

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

Срез масштабного коэффициента — варианты @1x, @2x и @3x сохраняются и обслуживаются в зависимости от плотности экрана целевого устройства.

Интеграция App Thinning — App Store удаляет варианты ресурсов, не относящиеся к загружающему устройству, значительно уменьшая размер установки.

Управление цветовым пространством — ресурсы помечаются тегами и преобразуются для отображения P3, sRGB или расширенных цветовых пространств в зависимости от ситуации.

Поддержка именованных цветов и символов. Символы SF и семантические цветовые маркеры разрешаются и встраиваются вместе с растровыми данными.

💡 ЗНАЕТЕ ЛИ ВЫ?

Mewayz заменяет 8+ бизнес-инструментов в одной платформе

CRM · Выставление счетов · HR · Проекты · Бронирование · eCommerce · POS · Аналитика. Бесплатный тариф доступен навсегда.

Начать бесплатно →

Ключевая идея: формат .car — это не просто контейнер, это активный конвейер оптимизации. Тяжелая работа происходит во время компиляции, поэтому загрузка ресурсов во время выполнения становится практически мгновенной, и это основная причина, по которой собственные приложения Apple кажутся более быстрыми, чем веб-альтернативы, использующие эквивалентные ресурсы.

Как организована внутренняя структура файла .car?

Apple никогда не публиковала официальную спецификацию двоичного формата .car, но усилия сообщества по реверс-инжинирингу — в первую очередь такие проекты, как Asset Catalog Tinkerer и ThemeEngine — позволили детально отобразить его структуру.

На верхнем уровне файл .car создается на основе файловой системы BOM (спецификация материалов) — того же формата, который Apple использует для установочных пакетов. В этом дереве спецификации вы найдете несколько именованных потоков:

Поток RENDITIONS является самым большим и важным и содержит фактические полезные данные изображения и данных, индексированные уникальным ключом воспроизведения. Поток KEYFORMAT определяет схему для этих ключей, атрибуты кодирования, такие как идиома (iPhone, iPad, Mac), масштаб, гамму отображения и внешний вид (светлый, темный). Потоки FACETKEYSDB и FEATUREFLAGS содержат метаданные об именованных активах и флагах возможностей соответственно. Поток EXTENDED_METADATA, добавленный в более поздних версиях SDK, поддерживает такие вещи, как имена локализованных символов и символы переменной ширины.

Каждая полезная нагрузка представления сама по себе структурирована — она содержит заголовок, описывающий размеры пикселей, цветовое пространство, тип сжатия, а затем необработанные сжатые данные. Для растровых изображений это могут быть необработанные пиксели, сжатые LZFSE; для векторов PDF — это исходные байты PDF; для активов данных это любой сохраненный вами двоичный объект.

Какие инструменты могут использовать разработчики для проверки и извлечения содержимого .car?

Поскольку файлы .car представляют собой скомпилированные двоичные файлы, их нельзя просто открыть в Preview или Finder. Apple предоставляет некоторую официальную информацию через частные платформы, но для практической проверки вы обычно обращаетесь к сторонним инструментам.

Каталог активов Tinkerer (от Гильерме Рэмбо) — наиболее широко используемый инструмент с графическим пользовательским интерфейсом. Он позволяет просматривать, просматривать и экспортировать отдельные активы из любого файла .car. acextract — это утилита командной строки сообщества, которая восстанавливает свободную структуру папок из скомпилированного каталога. Собственная команда Apple assetsutil, поставляемая с набором инструментов Xcode, может запрашивать метаданные и фильтровать каталоги для конкретных устройств. Для глубокого двоичного кода

Build Your Business OS Today

From freelancers to agencies, Mewayz powers 138,000+ businesses with 207 integrated modules. Start free, upgrade when you grow.

Create Free Account →

Попробуйте Mewayz бесплатно

Единая платформа для CRM, выставления счетов, проектов, HR и многого другого. Банковская карта не требуется.

Начните управлять своим бизнесом умнее уже сегодня.

Присоединяйтесь к 30,000+ компаниям. Бесплатный тариф навсегда · Без кредитной карты.

Нашли это полезным? Поделиться.

Готовы применить это на практике?

Присоединяйтесь к 30,000+ компаниям, использующим Mewayz. Бесплатный тариф навсегда — кредитная карта не требуется.

Начать бесплатный пробный период →

Готовы действовать?

Начните ваш бесплатный пробный период Mewayz сегодня

Бизнес-платформа все-в-одном. Кредитная карта не требуется.

Начать бесплатно →

14-дневный бесплатный пробный период · Без кредитной карты · Можно отменить в любой момент