Как открыть arsc файл
Если файл .ARSC известен Вашей системе, то открыть его можно двойным нажатием мышкой или клавишей ENTER. Эта операция запустит ассоциируемые с файлом .ARSC аппликации, установленные в системе. Если система встречает файл впервые и отсутствуют соответствующие ассоциации, то акция закончится предложением системы, найти соответствующее программное обеспечение в компьютере либо сети интернет.
Иногда случается, что для обслуживания типа файлов .ARSC приписана неправильная программа. Это случается в следствии действия враждебных программ, таких как вирусы или вредоносные программы, но чаще всего это результат ошибочного совмещения аппликации с расширением файла .ARSC. Если во время обслуживания нового типа файлов .ARSC мы укажем системе неправильную программу, то система ошибочно будет рекомендовать ее использование всякий раз, когда будет встречаться файл этого типа. В таком случае следует попробовать повторно выбрать соответствующую аппликацию. Нажмите правой кнопкой мышки на файл .ARSC, а затем выберите из меню опцию "Открыть с помощью. " затем "Выбрать программу по умолчанию" . Сейчас выберите одну из установленных аппликаций из вышеуказанного списка и попробуйте снова.
Windows
Google Android SDK ToolsEclipse
IntelliJ IDEA
Linux
Android SDKMAC
Android SDKAndroid
Google AndroidРучное редактирование Реестра Windows
Если наша система не справляется с расширением .ARSC и подвели все автоматические и полуавтоматические методы обучения его этому искусству, остается ручное редактирование реестра Windows. Этот реестр хранит всю информацию, касающуюся рабоы нашей операционной системы, в том числе соединения расширений файлов с программами для их обслуживания. Команда REGEDIT вписанная в окне „поиск программ и файлов” или „запустить в случае старших версий операционной системы, предоставляет нам доступ к реестру нашей операционной системы. Все операции, проведенные в реестре (даже не очень сложные, касающееся расширения файла .ARSC) имеют значительное влияние на работу нашей системы, поэтому прежде чем проводить какие-либо модификации следует убедится, что сделана копия актуального реестра. Интересующий нас раздел - это ключ HKEY_CLASSES_ROOT. Следующая инструкция показывает, шаг за шагом, как модифицировать реестр, а конкретно запись в реестре, содержащую информацию о файле .ARSC.
ARSC - это файл ресурсов приложения Android. Файлы ARSC используются разработчиками для хранения дополнительных ресурсов приложения. Файлы ресурсов ARSC содержат статические данные, то есть данные, которые не изменяются в процессе работы приложения. Файлы ARSC могут содержать изображения, текст, числовые значения или двоичные данные. Исходный код и файлы ресурсов используются в процессе компиляции исполняемого файла или программы установки, что приводит к созданию файла APK . Созданный APK-файл затем можно использовать для установки данного приложения на устройстве.
Для чего используются файлы ресурсов?
Все инструменты среды разработки программного обеспечения используют какие-то файлы ресурсов, но только Android использует формат файлов ресурсов ARSC. Файлы ресурсов не могут быть восстановлены из скомпилированного файла. Файлы ресурсов обеспечивают безопасное хранение данных, ограниченное одним или несколькими файлами. Файлы ресурсов предназначены для доступа в любом месте данного проекта - на ресурсы можно ссылаться в любом месте исходного кода. Такое решение позволяет изменять кодовую базу без изменения каждой строки, на которую ссылается данный ресурс.
Программы, которые поддерживают ARSC расширение файла
Следующий список содержит программы, сгруппированные по 4 операционным системам, которые поддерживают ARSC файлы. ARSC файлы можно встретить на всех системных платформах, включая мобильные, но нет гарантии, что каждый из них будет должным образом поддерживать такие файлы.
Программы, обслуживающие файл ARSC
Updated: 04/10/2020
Как открыть файл ARSC?
Проблемы с доступом к ARSC могут быть вызваны разными причинами. К счастью, наиболее распространенные проблемы с файлами ARSC могут быть решены без глубоких знаний в области ИТ, а главное, за считанные минуты. Мы подготовили список, который поможет вам решить ваши проблемы с файлами ARSC.
Шаг 1. Получить Google Android SDK Tools
Наиболее распространенной причиной таких проблем является отсутствие соответствующих приложений, поддерживающих файлы ARSC, установленные в системе. Наиболее очевидным решением является загрузка и установка Google Android SDK Tools или одной из перечисленных программ: Eclipse, IntelliJ IDEA, Google Android SDK. Полный список программ, сгруппированных по операционным системам, можно найти выше. Самый безопасный способ загрузки Google Android SDK Tools установлен - для этого зайдите на сайт разработчика (Google Inc.) и загрузите программное обеспечение, используя предоставленные ссылки.
Шаг 2. Убедитесь, что у вас установлена последняя версия Google Android SDK Tools
Если у вас уже установлен Google Android SDK Tools в ваших системах и файлы ARSC по-прежнему не открываются должным образом, проверьте, установлена ли у вас последняя версия программного обеспечения. Иногда разработчики программного обеспечения вводят новые форматы вместо уже поддерживаемых вместе с новыми версиями своих приложений. Причиной того, что Google Android SDK Tools не может обрабатывать файлы с ARSC, может быть то, что программное обеспечение устарело. Все форматы файлов, которые прекрасно обрабатывались предыдущими версиями данной программы, также должны быть открыты с помощью Google Android SDK Tools.
Шаг 3. Назначьте Google Android SDK Tools для ARSC файлов
Если проблема не была решена на предыдущем шаге, вам следует связать ARSC файлы с последней версией Google Android SDK Tools, установленной на вашем устройстве. Процесс связывания форматов файлов с приложением по умолчанию может отличаться в деталях в зависимости от платформы, но основная процедура очень похожа.
Изменить приложение по умолчанию в Windows
- Нажатие правой кнопки мыши на ARSC откроет меню, из которого вы должны выбрать опцию Открыть с помощью
- Выберите Выбрать другое приложение → Еще приложения
- Наконец, выберите Найти другое приложение на этом. , укажите папку, в которой установлен Google Android SDK Tools, установите флажок Всегда использовать это приложение для открытия ARSC файлы свой выбор, нажав кнопку ОК
Изменить приложение по умолчанию в Mac OS
Шаг 4. Убедитесь, что ARSC не неисправен
Вы внимательно следили за шагами, перечисленными в пунктах 1-3, но проблема все еще присутствует? Вы должны проверить, является ли файл правильным ARSC файлом. Вероятно, файл поврежден и, следовательно, недоступен.
1. Убедитесь, что ARSC не заражен компьютерным вирусом
Если файл заражен, вредоносная программа, находящаяся в файле ARSC, препятствует попыткам открыть его. Немедленно просканируйте файл с помощью антивирусного инструмента или просмотрите всю систему, чтобы убедиться, что вся система безопасна. ARSC файл инфицирован вредоносным ПО? Следуйте инструкциям антивирусного программного обеспечения.
2. Убедитесь, что структура файла ARSC не повреждена
Если вы получили проблемный файл ARSC от третьего лица, попросите его предоставить вам еще одну копию. В процессе копирования файла могут возникнуть ошибки, делающие файл неполным или поврежденным. Это может быть источником проблем с файлом. При загрузке файла с расширением ARSC из Интернета может произойти ошибка, приводящая к неполному файлу. Попробуйте загрузить файл еще раз.
3. Проверьте, есть ли у пользователя, вошедшего в систему, права администратора.
Некоторые файлы требуют повышенных прав доступа для их открытия. Войдите в систему, используя учетную запись администратора, и посмотрите, решит ли это проблему.
4. Убедитесь, что в системе достаточно ресурсов для запуска Google Android SDK Tools
Если в системе недостаточно ресурсов для открытия файлов ARSC, попробуйте закрыть все запущенные в данный момент приложения и повторите попытку.
5. Убедитесь, что ваша операционная система и драйверы обновлены
Регулярно обновляемая система, драйверы и программы обеспечивают безопасность вашего компьютера. Это также может предотвратить проблемы с файлами Google Android Resource Format. Устаревшие драйверы или программное обеспечение могли привести к невозможности использования периферийного устройства, необходимого для обработки файлов ARSC.
Вы хотите помочь?
Если у Вас есть дополнительная информация о расширение файла ARSC мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся здесь и отправьте нам свою информацию о файле ARSC.
Обычно решить проблему с файлом ARSC просто - просто установите соответствующее программное обеспечение и откройте файл. Прочтите руководство и откройте файл ARSC прямо сейчас!
- 1. ARSC расширение файла
- 2. Что такое ARSC файл?
- 3. Как открыть файл ARSC?
- 3.1 Установите программу, которая поддерживает ARSC файлы
- 3.2 Найти и скачать подходящее программное обеспечение
- 3.2.1 Программы, поддерживающие файлы с расширением ARSC
ARSC расширение файла
- Тип файла Google Android Resource Format
- Разработчик файлов Google
- Категория файла Файлы разработчика
- Рейтинг популярности файлов
Что такое ARSC файл?
Файл ресурсов приложения с расширением .ARSC характерен для приложений, разработанных для Android. В файле хранятся данные приложения, сохраненные в двоичном формате, которые включены в файлы из пакета .APK, а также графика, строки, проприетарные данные. Благодаря их существованию исходный код имеет доступ к указанным ресурсам.
Как открыть файл ARSC?
Может быть несколько причин, по которым система не поддерживает данный файл. В случае расширения ARSC вероятно, что ни одна из установленных программ не поддерживает данный тип файла. Поэтому пользователь должен предпринять следующие шаги
Шаг 1: Установите программу, которая поддерживает ARSC файлы
Если приложение, поддерживающее файлы ARSC, установлено в системе пользователя, но не используется для открытия таких файлов по умолчанию, щелкните правой кнопкой мыши значок файла и выберите в меню пункт «Открыть с помощью». Затем выберите подходящее приложение и установите флажок «Всегда использовать выбранное приложение для открытия файлов такого типа». Система будет хранить эту информацию в своем реестре и использовать выбранную программу для открытия файлов с расширением ARSC по умолчанию.
Подсказка для пользователей Mac OS
Для пользователей Mac OS процедура аналогична - откройте меню файла, щелкнув правой кнопкой мыши по файлу ARSC, выберите опцию «Информация» и выберите опцию «Открыть с помощью программы». В подменю выберите приложение и нажмите кнопку «Изменить все».
Шаг 2: Найти и скачать подходящее программное обеспечение
Невозможность открыть файлы ARSC также может быть связана с отсутствием какого-либо приложения, поддерживающего данный файл, устанавливаемого в системе. В этом случае пользователь должен загрузить и установить одно из следующих приложений. После установки система автоматически свяжет вновь установленное приложение с файлами ARSC. Если этот шаг не пройден, см. Шаг 1.
ARSC files are associated with Android operating system. ARSC file contain application resources in binary format. ARSC files are typically a part of APK application archives.
ARSC files allow easy access to the application source code when needed. This solution is also used for protecting sensitive data by storing it in binary format.
Файлы ARSC связаны с операционной системой Android. Файл ARSC содержит ресурсы приложения в двоичном формате. Файлы ARSC обычно являются частью архивов приложений APK.
Файлы ARSC обеспечивают легкий доступ к исходному коду приложения при необходимости. Это решение также используется для защиты конфиденциальных данных путем их хранения в двоичном формате.
Программа(ы), умеющие открыть файл .ARSC
Windows
Mac OS
Linux
Android
Как открыть ARSC файлы
Если появилась ситуация, в которой Вы не можете открыть файл ARSC на своем компьютере - причин может быть несколько. Первой и одновременно самой важной (встречается чаще всего) является отсутствие соответствующей аппликации обслуживающей ARSC среди установленных на Вашем компьютере.
Самым простым способом решения этой проблемы является нахождение и скачивание соответствующей аппликации. Первая часть задания, уже выполнена, - программы для обслуживания файла ARSC Вы найдете ниже. Теперь достаточно скачать и установить соответствующую аппликацию.
В дальнейшей части этой страницы Вы найдете другие возможные причины, вызывающие проблемы с файлами ARSC.
Возможные проблемы с файлами в формате ARSC
Отсутствие возможности открытия и работы с файлом ARSC, совсем не должен значить, что мы не имеем установленного на своем компьютере соответствующего программного обеспечения. Могут выступать другие проблемы, которые также блокируют нам возможность работы с файлом Google Android Resource Format. Ниже находится список возможных проблем.
- Повреждение открываемого файла ARSC.
- Ошибочные связи файла ARSC в записях реестра.
- Случайное удаление описания расширения ARSC из реестра Windows
- Некомплектная установка аппликации, обслуживающей формат ARSC
- Открываемый файл ARSC инфицирован нежелательным, вредным программным обеспечением.
- На компьютере слишком мало места, чтобы открыть файл ARSC.
- Драйверы оборудования, используемого компьютером для открытия файла ARSC неактуальные.
Если Вы уверены, что все перечисленные поводы отсутствуют в Вашем случае (или были уже исключены), файл ARSC должен сотрудничать с Вашими программами без каких либо проблем. Если проблема с файлом ARSC все-таки не решена, это может значить, что в этом случае появилась другая, редкая проблема с файлом ARSC. В таком случае остается только помощь специалиста.
Похожие расширения
.a Unix Static Object Code Library Format .a2w Alice Program World Format .actx DS Game Maker Action Description Format .ada ADA Language Source Code Format .addin Microsoft Visual Studio Addin Format .ads Ada Package Specification .agi Asterisk Gateway Interface Format .alb Alpha Five Data Dictionary Как связать файл с установленной программой?
Если Вы хотите связать какой-то файл с новой программой (напр. moj-plik.ARSC) Вы можете воспользоваться двумя вариантами. Первый и самый простой - это нажатие правой кнопкой мышки на избранный файл ARSC. Из открытого меню выберите опцию Выбрать программу по умолчанию", затем опцию "Пересматривать" и найти требуемую программу. Всю операцию необходимо утвердить нажатием кнопки OK.
Есть ли универсальный метод открытия неизвестных файлов?
Многие файлы содержат данные в виде текста или чисел. Возможно, что во время открытия неизвестных файлов (напр. ARSC) популярный в системе Windows простой редактор текста, которым является Notatnik позволит нам увидеть часть данных, закодированных в файле. Этот метод позволяет просмотреть содержимое многих файлов, однако не в такой форме, как программа, предназначенная для их обслуживания.
Подробное объяснение ресурса Rsources.arsc в приложении Android6.0
Resources.arsc в Apk - это важный файл, создаваемый при компиляции ресурсов инструментом aapt. Ресурсы приложения могут быть проиндексированы на соответствующие ресурсы в соответствии с изменениями конфигурации. Например, язык устройства Android, когда размер экрана устройства отличается, приложение может находить разные ресурсы для отображения через один и тот же идентификатор.
Краткое описание процесса упаковки ресурсов
При разработке приложения вам нужны код и ресурсы. Код в конечном сгенерированном apk преобразуется в файл dex, поэтому ресурсы в файле apk остаются теми же файлами ресурсов во время разработки приложения? Или были какие-то изменения в этих файлах ресурсов?
Чтобы процитировать картину Лао Ло о процессе упаковки ресурсов и поиска:
Как видно из рисунка выше:
За исключением ресурсов и ресурсов res / raw, которые упакованы в APK в их исходном виде, другие ресурсы будут скомпилированы или обработаны. XML-файл будет скомпилирован в двоичный XML-файл, поэтому после распаковки apk-файла XML-файл нельзя открыть напрямую.
В дополнение к ресурсам ресурсов другим ресурсам будет присвоен идентификатор ресурса.
Инструмент упаковки отвечает за компиляцию и упаковку ресурсов. После завершения компиляции будет создан файл resources.arsc и файл R.java. Первый сохраняет таблицу индекса ресурсов, а последний определяет различные константы идентификатора ресурса для индексации ресурсов в коде.
Файл конфигурации приложения AndroidManifest.xml также будет скомпилирован в двоичный XML-файл, а затем упакован в APK.
Когда приложение запущено, к ресурсу, наконец, осуществляется доступ через AssetManager, либо через идентификатор ресурса, либо через имя файла.
В сгенерированном apk, только активы и ресурсы res / raw упакованы в apk без изменений. Все остальные ресурсы будут скомпилированы или обработаны. Вы можете использовать следующую команду для просмотра списка файлов в apk:
После распаковки apk напрямую вы обнаружите, что xml не может быть открыт, что указывает на неправильный формат, поскольку он стал двоичным xml. Кроме того, такие изображения, как PNG, также будут соответствующим образом оптимизированы. Есть еще один файл resources.arsc.
Вещи, чтобы подготовить
Проанализируйте файл resources.arsc, он должен существовать. Используйте Android studio для создания проекта ResourceDemo,
Ресурсы можно разделить на две категории: ресурсы типа сумки и ресурсы не сумки.
Ресурс мешка: с точки зрения непрофессионала, этот тип ресурса не может быть назначен случайным образом при назначении значения, только одно назначение может быть выбрано из предварительно определенных значений. Очень похоже на перечисление.
В дополнение к строкам, у ресурсов значений типов есть много других типов ресурсов, некоторые из которых являются более специальными, такие как bag, style, множественное число и ресурсы массива. Эти ресурсы будут определять некоторые специальные значения для себя, и эти ресурсы со специальными значениями вместе называются ресурсами Bag.
Например, диапазон значений атрибута android: direction, предоставляемый системой Android, равен , что эквивалентно определению двух пакетов вертикального и горизонтального.
Создайте файл attrs.xml в res / values и настройте в нем ресурс атрибута типа сумки.
Этот файл определяет ресурс атрибута с именем «custom_orientation», который является атрибутом в формате перечисления (также понимаемом как тип перечисления) и может принимать значение «custom_vertical» или «custom_horizontal».
custom_vertical и custom_hor Horizontal - это две сумки custom_orientation.Мы можем рассматривать custom_vertical и custom_horizont как два метаданных custom_orientation, которые используются для описания набора значений custom_orientation.
«Custom_orientation» является перечисляемым ресурсом атрибута attr, и для описания его типа атрибута также используются внутренние метаданные. Эти метаданные также представлены сумкой.
Другими словами, custom_orientation состоит из трех пакетов:
Первый пакет: имя «^ type» и значение TYPE_ENUM (TYPE_ENUM = 1 << 16)
Второй пакет: имя «custom_vertical» и значение 100
Третий пакет: имя «custom_horizontal», значение 200
Кроме того, сумке должен быть присвоен идентификатор ресурса, поскольку эти перечисляемые значения используются по ссылке, например, custom_vertical, поэтому ему должен быть присвоен идентификатор ресурса.
Формат идентификатора ресурса - PPTTEEEE, где TT представляет тип ресурса. Затем:
Назначенный идентификатор ресурса мешка с именем «^ тип» относится к типу attr, а идентификаторы ресурса, назначенные для «custom_vertical» и «custom_horizontal», имеют тип id, поэтому значение может быть заключено в код в следующей форме:
Ресурсы, не входящие в пакет: с точки зрения непрофессионала, этот тип назначения ресурсов является произвольным и может быть задан произвольно.
Возьмите в качестве примера файл res / values / strings.xml:
В этом файле определен ресурс строкового типа с именем app_name, а значением ресурса является ResourceDemo.
После компиляции этого проекта ResourceDemo разархивируйте APK, и вы можете получить файл resources.arsc.
Что делать
Следующим шагом является анализ resources.arsc, чтобы увидеть, где три ресурса bag и один ресурс non-bag, который мы указали, хранятся в resources.arsc в какой форме.
Пока вы понимаете это, вы можете выяснить формат файла resources.arsc.
resources.arsc
Функция файла resources.arsc - индексировать лучшие ресурсы в соответствии с различными конфигурациями и отображать их в пользовательском интерфейсе через один и тот же идентификатор.
В целом его структура такова: заголовок таблицы индекса ресурсов + строковый пул ресурсов + N блоков данных пакета. формат файла:
Эта карта богов широко распространена в Интернете, но ее нижнюю часть легко понять неправильно, потому что на самом деле Type Spec и Config List появляются попеременно, а Type Spec обычно имеет более одного списка конфигурации.
Я больше не хочу рисовать, поэтому я все еще использую карту бога в качестве шаблона для анализа файла resources.arsc.
Давайте не будем беспокоиться о том, как этот файл генерируется здесь. Давайте пойдем другим путем и посмотрим, из чего он состоит, из самого файла.
Разделитель структуры файла resources.arsc
Из карты богов, показанной выше, мы можем видеть, что файл ARSC состоит из нескольких типов чанков, а каждый тип чанков состоит из заголовка для записи некоторой соответствующей информации, например, что это за часть и сколько места она занимает.
И голова каждого куска расширяется от базовой головы, которая является strcut Resheader:
Заголовок каждой части также является структурой, которая наследуется от Resheader (в языке C первым элементом структуры является Resheader).
Значения типа в resources.arsc:
заголовок resources.arsc
Глава resources.arsc, глава индексной таблицы, имеет следующую структуру:
Здесь header.headerSize - это размер этой структуры ResTable_header, а header.size - это размер файла resources.arsc. И pacakageCount равен 1.
Файл resources.arsc является индексной таблицей RES_TABLE_TYPE, что означает, что header.type является RES_TABLE_TYPE.
0x2 равно RES_TABLE_TYPE, а количество пакетов в 1 соответствует ожиданиям.
Пул значений ресурсов строки
Все хранимые строки в этой части являются значениями ресурсов, а значения имеют строковый тип.
Возьмите в качестве примера файл res / values / strings.xml:
В этом файле определен ресурс строкового типа с именем app_name, а значением ресурса является ResourceDemo.
ResourceDemo существует в этой части, а "app_name" и "string" здесь не хранятся.
Этот пул строк также содержит заголовок:
Кратко расскажите, как этот пул строк хранит и индексирует строки.
Из основного изображения видно, что сразу после заголовка находятся два массива типа uint32: массив смещения строки и массив смещения стиля, число элементов массива - stringCount и styleCount соответственно.
После этих двух массивов, есть два символьных массива: массив символов строки и массив символов стиля. Оба массива символов очень большие. , , ,
Элемент в массиве смещения строки является индексом строки в массиве символов строки, и первые два байта строки, полученные в соответствии с индексом, указывают его длину, и он заканчивается на NULL, поэтому он не будет проиндексирован Для другого контента.
Элемент в массиве смещения стиля является индексом стиля в массиве символов стиля. Стиль здесь не рассматривается. Желающие могут обратиться к блогу Лао Ло.
Теперь я выяснил структуру этого пула строк, а также знаю, что строка «ResourceDemo» должна находиться в этом пуле строк, но перед этой строкой добавляются два байта, чтобы указать ее длину.
Два байта, используемые для хранения длины, не просто хранятся в этих двух байтах, но существуют правила:
Относится к строковому формату string8 или string16
Длина типа string8 декодируется следующим образом:
Переданный параметр является строкой, индексированной из массива символов строки со смещением в массиве смещения строки (первые два байта являются длиной).
- Длина типа string16 декодируется следующим образом:
Итак, чтобы проверить:
Тип правильный для RES_STRING_POOL_TYPE.
Флаги - 0x100, указывая, что это строка8, которая является строкой utf-8.
len равно 0xc, что равно 12, а длина ResourceDemo равна 12, что также правильно. ResourceDemo также был найден.
часть данных пакета
Эта часть самая сложная. В поле заголовка таблицы индекса в поле packageCount указывается количество частей данных каждого пакета в таблице индекса. Обычно есть только один.
Начало этой части также является заголовком, структура выглядит следующим образом:
Идентификатор определяется правилами именования, идентификатор пакета системных ресурсов равен 0x1, а идентификатор пакета ресурсов приложения равен 0x7f, 0x1-0x7f - все они допустимы.
Из карты бога видно, что после этого заголовка находятся два пула строк, каждый из которых имеет ту же структуру, что и пул строк элемента ресурса, описанный ранее.
Так, что эти два пула строк используются для хранения?
Еще возьмем в качестве примера файл res / values / strings.xml:
Этот файл определяет элемент ресурса строкового типа с именем «имя_приложения», а значением ресурса является ResourceDemo.
ResourceDemo существует в пуле строк элементов ресурса, представленном ранее, «строка» хранится в пуле строк типов, а «имя_приложения» хранится в пуле строк имен элементов ресурса.
Под проверкой кода:
Тип resTablePackage правильный RES_TABLE_PACKAGE_TYPE.
Он также распечатывает все типы ресурсов в пакете ресурсов, и элемент ресурса "имя_приложения" найден.
Введите Spec и Config List
Тип спецификации и список конфигурации на карте бога по-прежнему принадлежат разделу данных пакета.
Этот фрагмент контента является наиболее важной частью таблицы индекса ресурсов, но это также место, где карта богов не может быть четко выражена. Эта часть также является ключом для поиска разных файлов ресурсов в разных конфигурациях с одинаковым идентификатором ресурса. Итак, вот дополнение к этой части структуры.
Общая структура этой части сегментирована по типу ресурса Тип. Структура данных каждого сегмента аналогична. Она начинается с ResTable_typeSpec, за которым следует массив спецификаций, несколько ResTable_types, а за каждым ResTable_type следует массив смещений ResTable_entry и несколько ResTable_entry. ,
Следует отметить, что размер заголовка чанка в ResTable_typeSpec включает пространство, занимаемое массивом спецификаций, который следует сразу за ним, а размер заголовка чанка в ResTable_type также включает размер данных, следующих за ним.
Затем начните с ResTable_typeSpec типа ресурса, за которым следуют структуры, упомянутые выше. Пока все типы ресурсов не будут сохранены.
Другими словами, типов ресурсов будет столько же, сколько в resources.arsc. ResTable_typeSpec структура.
Числовая структура Type Spec определяется следующим образом:
За этой структурой следует массив типа uint32_t, количество элементов в массиве которого равно entryCount.
Битовая карта данных uint32_t в массиве представляет конфигурацию ресурса. И если этот ресурс является экспортируемым ресурсом, то его SPEC_PUBLICbit равен 1. Остальные биты конфигурации следующие:
В качестве примера возьмем ресурс типа mipmap (значок приложения хранилища):
Ресурс типа mipmap предоставляет пять конфигураций для адаптации к разным размерам экрана, таким как mdpi, hdpi, xhdpi, xxhdpi и xxxhpdi.
Имя элемента ресурса типа mipmap - ic_launcher (обратите внимание, что суффикс файла не включен), что соответствует пяти файлам.При запуске приложения оно выберет лучший файл для отображения в соответствии с текущей конфигурацией системы.
Взяв это в качестве примера, entryCount равен 1. Число элементов спецификации в массиве конфигурации также равно 1.
Для каждого типа ресурса в файле resources.arsc будет только одна структура данных ResTable_typeSpec, которая используется для стандартизации этого типа ресурса, например, имеет ли элемент ресурса в этом типе ресурса конфигурацию (то есть необязательный ресурс), и какая конфигурация существует.
Сразу после массива конфигурации находится список конфигурации, структура данных которого:
Количество структур данных ResTable_type связано с типом конфигурации. Например, если в этом примере в ic_launcher пять конфигураций, таких структур будет пять.
Предполагая, что в res / mipmap-hdpi-v4, помимо ic_launcher.jpg, есть еще один файл с именем test.jpg, и такого файла нет в папке mipmap других конфигураций, тогда остается только пять конфигураций, то есть пять структур данных ResTable_type ,
То есть количество структур данных ResTable_type определяется наиболее сконфигурированным элементом ресурса в ресурсе определенного типа, а количество равно сконфигурированному количеству элементов ресурса.
Далее, я надеюсь проверить в коде, что entryCount типа mipmap равен 1, и есть пять структур данных ResTable_type.
Из результата видно, что entryCount равен 1, а число ResTable_types типа mipmap также равно 5, что совпадает с типом конфигурации.
Затем, согласно предыдущему предположению, поместите файл с именем test.jpg в res / mipmap-hdpi-v4. Перекомпилируйте и сгенерируйте новый файл resources.arsc и снова запустите тест (добавлено ResTable_type.entryCount):
Как вы можете видеть, хотя в res / mipmap-hdpi-v4 был помещен только файл с именем test.jpg, а не в другие mip-карты, каждый ResTable_type.entryCount также изменился с 1 на 2.
То есть ResTable_type.entryCount и ResTable_typeSpec.entryCount должны быть одинаковыми.Это количество элементов ресурса этого типа.Если элемент ресурса типа существует только в определенной папке конфигурации, он также считается элементом ресурса.
ResTable_entry
На данный момент, только ResTable_entry в структуре ResTable_type осталось. Он хранит значение элемента ресурса и идентификатор ресурса элемента ресурса, который можно понимать как блок данных элемента ресурса.
За каждой структурой ResTable_type будет несколько ResTable_entry. Что касается количества ResTable_entry, то каждый ResTable_type может отличаться.
Также возьмите предыдущий res / mipmap-hdpi-v4, чтобы поместить файл с именем test.jpg и не помещайте его в другие папки mipmap в качестве примера, тогда за структурой ResTable_type есть два ResTable_entry, соответствующие mipmap-hdpi-v4, другие Существует только один ResTable_entry после ResTable_type, соответствующего мип-карте. Однако количество элементов в массиве смещений ResTable_entry, за которым следуют все структуры ResTable_type, одинаково и равно 2.
Посмотрите на ResTable_type еще раз:
За структурой ResTable_type следует массив смещения Resintable_entry массива uint32_t размера entryCount. Каждый элемент массива используется для описания позиции смещения блока данных элемента ресурса.
EntryStart в структуре ResTable_type указывает начальную позицию серии ResTable_entry после ResTable_type.
Здесь есть еще один очень важный момент: как упоминалось ранее, значения элемента ресурса делятся на две категории: значения типа bag и значения типа non-bag.
Блок данных элемента ресурса со значением, отличным от мешка, представляет собой ResTable_entry, а блок данных элемента ресурса со значением мешка описывается с помощью ResTable_map_entry.
Для ic_launcher типа mipmap его значение заранее не определено, поэтому оно не является сумкой. Это можно проверить с помощью флагов.
Для значений, не входящих в пакет, ResTable_entry сопровождается структурой Res_value:
Теперь используйте код, чтобы получить значение ic_launcher для проверки:
Затем для типа значения сумки, типы, перечисленные в предыдущем введении сумки:
Создайте файл attrs.xml в res / values и настройте в нем ресурс атрибута типа сумки.
Мы уже знали, что custom_orientation состоит из трех пакетов:
Первый пакет: имя «^ type» и значение TYPE_ENUM (TYPE_ENUM = 1 << 16)
Второй пакет: имя «custom_vertical» и значение 100
Третий пакет: имя «custom_horizontal», значение 200
Кроме того, идентификатор ресурса должен быть присвоен этой сумке:
Назначенный идентификатор ресурса мешка с именем «^ тип» имеет тип attr, в то время как идентификатор ресурса, назначенный для «custom_vertical» и «custom_horizontal», имеет тип id.
Блок данных элемента ресурса для значения пакета - ResTable_map_entry:
За ResTable_map_entry следует несколько ResTable_maps, а точнее, у элемента ресурса Bag есть N сумок, поэтому после ResTable_map_entry есть N ResTable_maps.
Результаты и ожидания совпадают, иначе они не будут проанализированы.
Здесь особо указано, что блок данных элемента ресурса, следующий за ResTable_type, может иметь как ResTable_entry, так и ResTable_map_entry.Например, это случай ResTable_type для типа ресурса attr в этом примере.
Читайте также: