В какой папке необходимо разместить xml файлы которые определяют все меню приложения

Обновлено: 04.07.2024

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

  • Program Files
  • My Documents
  • User\Application Data
  • User\Local Settings\Application Data
  • All Users\Application data

My Documents
XP: Documents and Settings\User\My Documents
Vista: Users\User\Documents
На мой взгляд не верный подход. Папку не зря назвали Мои Документы. Поэтому, если программа не формирует каких-либо документов, а должна всего-лишь хранить свои настройки, то им там не место. Не знаю как Вас, а меня слегка раздражают папки внутри папки с документами. Я их там, между прочим упорядочиваю, распихиваю по подкаталогам и тут на тебе, захожу в папку и вижу Visual Studio 2008.

User\Application Data
XP: Documents and Settings\User\Application Data
Vista: Users\User\AppData\Roaming
Файлы из этой папки входят в состав перемещаемых профилей (roaming profiles, per-user). Т.е. если вы хотите, чтобы данные Вашей программы могли бы перемещаться вместе с профилем пользователя храните их в этой папке.

User\Local Settings\Application Data
XP: Documents and Settings\User\Local Settings
Vista: Users\User\AppData\Local
В этой папке можно хранить файлы, не входящие в состав перемещаемых профилей (per-user-per-machine), а так же временные и большие по размеру файлы, перемещение которых либо не требуется (временные, кэш, прочий рабочий «мусор»), либо потребует значительных временных затрат (храните файл размером в пару сотен мегабайт в перемещаемом профиле и пользователь обязательно скажет Вам «спасибо»).

All Users\Application data
XP: Documents and Settings\All Users\Application Data
Vista: ProgramData
В этой папке можно хранить файлы, которые являются общими для всех пользователей компьютера, например общая база данных, набор общих документов, клипарт и т.д. Эта папка не входит в состав перемещаемых профилей (per-machine). Обычные пользователи (не администраторы) имеют к этой папке доступ в режиме только для чтения.

Корневой каталог каждого приложения под Android должен содержать файл AndroidManifest. xml (в точности с таким названием). Манифест приложения содержит всю необходимую информацию, используемую системой для запуска и выполнения приложения. Основная информация , содержащаяся в манифесте:

В файле манифеста только два элемента: <manifest> и <application> являются обязательными и при этом встречаются ровно по одному разу. Остальные элементы могут встречаться несколько раз или не появляться совсем, в этом случае манифест определяет пустое приложение .

Следующий листинг демонстрирует общую структуру файла манифеста.

В манифесте элементы одного уровня, такие как <activity> , <service> , <receiver> , <provider> , могут следовать друг за другом в любой последовательности. Элемент <activity-alias> является исключением из этого правила, он должен следовать за соответствующей активностью.

Более предметно разговор о файле манифеста и его основных элементах пойдет в лабораторных работах.

3.6 Ресурсы

При разработке мобильных приложений необходимо выработать привычку отделять ресурсы приложения от кода. К ресурсам приложения могут относиться: изображения, строки, цвета, компоновки элементов пользовательского интерфейса ( layout ) и т. д. Отделение ресурсов от кода позволяет использовать альтернативные ресурсы для различных конфигураций устройств: язык, разрешение экрана и т. д. Для обеспечения совместимости с различными конфигурациями, ресурсы необходимо сгруппировать в директории по типу ресурсов и конфигурации устройства, полученные директории поместить в папку res/.

Для любого типа ресурсов можно определить две группы. Первая определяет ресурсы, которые будут использоваться независимо от конфигурации устройства или в том случае, когда под конфигурацию нет подходящих альтернативных ресурсов. Эта группа называется ресурсы по умолчанию ( default ). Вторая группа определяет ресурсы, подходящие для определенной конфигурации устройства, размещается в директории с названием, обозначающим данную конфигурацию. Такие ресурсы называются альтернативными.



а) используется компоновка по умолчанию (приложение не содержит альтернативы) б) каждое устройство использует соответствующую компоновку
Рис. 3.6. Использование ресурсов

Каждый тип ресурсов необходимо размещать в специальной поддиректории папки res/. Рассмотрим основные из этих поддиректорий:

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

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

Чтобы определить зависимые от конфигурации альтернативы для множества ресурсов:

Например, если компоновка элементов пользовательского интерфейса сохранена, как ресурс по умолчанию, в папке res/layout/, можно (скорее даже нужно) определить альтернативную компоновку элементов пользовательского интерфейса, соответствующую горизонтальной (альбомной) ориентации экрана смартфона и сохранить ее в папке res/layout-land/. Android автоматически определит подходящую компоновку, сверяя текущее состояние устройства с именами папок в каталоге /res.

Все ресурсы после определения могут быть доступны по ссылке на их ID , которые определены в автоматически генерируемом классе R . Для каждого типа ресурсов в R классе существует подкласс , например, R.drawable для всех графических ресурсов. ID ресурса всегда имеет две составляющие:

  • тип ресурса - все ресурсы группируются по типам, например, string, drawable, layout;
  • имя ресурса - либо имя файла без расширения, либо значение атрибута android:name в XML файле для простого значения.

Получить доступ к ресурсу можно двумя способами:

  • в коде: можно использовать выражения вида R.тип_ресурса.имя_ресурса, например, R.string.hello ;
  • в XML: используется специальный XML синтаксис, который соответствует ID определенному в R классе, например, @string/hello .

Более предметно разговор об использовании ресурсов в лабораторных работах.

При разработке мобильных приложений необходимо выработать привычку отделять ресурсы приложения от кода. К ресурсам приложения могут относиться: изображения, строки, цвета, компоновки элементов пользовательского интерфейса (layout) и т. д. Отделение ресурсов от кода позволяет использовать альтернативные ресурсы для различных конфигураций устройств: язык, разрешение экрана и т. д. Для обеспечения совместимости с различными конфигурациями, ресурсы необходимо сгруппировать в директории по типу ресурсов и конфигурации устройства, полученные директории поместить в папку res/ .

Для любого типа ресурсов можно определить две группы. Первая определяет ресурсы, которые будут использоваться независимо от конфигурации устройства или в том случае, когда под конфигурацию нет подходящих альтернативных ресурсов. Эта группа называется ресурсы по умолчанию (default). Вторая группа определяет ресурсы, подходящие для определенной конфигурации устройства, размещается в директории с названием, обозначающим данную конфигурацию. Такие ресурсы называются альтернативными.


Каждый тип ресурсов необходимо размещать в специальной поддиректории папки res/. Рассмотрим основные из этих поддиректорий:

  • animator/ - содержит XML файлы, которые определяют свойства анимации;
  • anim/ - содержит XML файлы, которые определяют анимацию преобразований;
  • color/ - содержит XML файлы, которые определяют списки цветов;
  • drawable/ - содержит графические файлы или XML файлы, которые компилируются в графические ресурсы;
  • layout/ - содержит XML файлы, которые определяют компоновку элементов пользовательского интерфейса;
  • menu/ - содержит XML файлы, которые определяют все меню приложения;
  • values/ - содержит XML файлы, которые определяют простые значения, таких ресурсов как, строки, числа, цвета.

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

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

Выходные файлы и папки XML

Этот раздел описывает сгенерированные файлы и папки, когда Вы компилируете вывод XML с каждой из этих опций. Больше деталей относительно формата файлов XML смотрите в формат выходного файла XML.

Метка времени файла XML:

Все выведенные файлы, когда Вы компилируете в XML, имеют оригинальную метку времени, насколько это уместно и применимо. Файлы XML для отдельных разделов имеют метку времени последнего редактирования раздела, а не последнего компилирования в XML. То же относится к файлам рисунков и файлам Багажа, каждый из которых сохранен с их оригинальной меткой времени.

Имена файлов и папок вывода XML:

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

То же относится к именам всех выходных файлов. Они являются основными для структуры системы XML и не должны быть изменены, иначе и чтение, и переимпортирование файлов XML будет вероятно терпеть неудачу.

Если Вы непременно должны редактировать имена папки и файла и структуру, Help & Manual будет в состоянии повторно импортировать ваш измененный проект, если Вы правильно измените все уместные ссылки всюду по всей системе проекта XML. Это не рекомендуется, как бы то ни было. Намного проще оставить оригинальную структуру неповрежденной.

Вывод единственного файла XML:

Когда Вы компилируете ваш проект, как единственный XML файл, сгенерированы следующие файлы и папки:

Этот файл содержит все данные XML. Он имеет то же содержание, как ваш файл проекта .HMX . Все, что обычно сохраняется в вашем проектном файле, находится также в этом файле, кроме файлов Багажа (см. ниже).

Это - файл Языковой схемы XML Help & Manual, который автоматически экспортируется с каждым проектом, когда Вы сохраняете в XML. Между прочим, он позволяет редакторам XML, которые поддерживают проверку синтаксиса, проверять ваши изменения редактирования на согласие со схемой.

Это - файл таблицы стилей XSL с форматирующими правилами. Он не является основным – он предоставлен, только чтобы редакторы XML и web броузеры, которые поддерживают таблицы стилей XSL, могли генерировать приблизительный WYSIWYG предпросмотр так, чтобы Вы могли получить основную идею относительно того, на что будут похожи размещение раздела и форматирование, когда это компилируется Help & Manual.

Эта папка содержит все изображения, на которые ссылаются в ваших разделах. В отличие от других форматов справки, изображения здесь выводятся в их родных форматах – то есть изображения .BMP экспортируются как .BMP , и изображения Impict .IPP экспортируются как .IPP . Это необходимо, потому что иначе ссылка изображения в коде XML была бы неправильной, когда Вы повторно импортируете ваши изображения.

Редакторы XML вообще будут в состоянии обработать все форматы изображения, поддержанные Help & Manual, кроме Impict .IPP , который является частным форматом Software EC. Если изображения важны для понимания текста (например для переводчика), лучше использовать другой формат изображений. Вы можете использовать тэги условного текста, чтобы создать альтернативные версии ваших изображений .IPP для экспорта XML, если Вы желаете.

Файлы рисунка экспортируются с их оригинальной меткой времени, а не меткой времени операции экспорта XML.

Эта папка содержит все файлы из секции Багажа вашего проекта, которые обычно внедряются в ваш файл проекта .HMX .

Файлы багажа экспортируются с их оригинальными форматами и с их оригинальной меткой времени.

Вывод нескольких файлов XML:

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

Когда Вы генерируете многократные файлы XML, этот файл содержит всю вашу проектную информацию кроме содержимого отдельных разделов, которые сохранены в отдельных файлах.

Это - файл Языковой схемы XML Help & Manual, который автоматически экспортируется с каждым проектом, когда Вы сохраняете в XML. Между прочим, он позволяет редакторам XML, которые поддерживают проверку синтаксиса, проверять ваши изменения редактирования на согласие со схемой.

Эта папка содержит все файлы XML для ваших отдельных разделов, с одним файлом для каждого раздела. Файлы названы, комбинируя ID раздела в строчных буквах с расширением .xml .

Файлы раздела экспортируются с меткой времени последнего редактирования раздела в Help & Manual.

Это - файл таблицы стилей XSL с форматирующими правилами, чтобы предварительно просмотреть файл проекта XML projectname.xml в редакторах XML и web броузерах с поддержкой XSL. Это необходимо только для предпросмотра и не очень важно.

Это - дополнительная таблица стилей XSL с форматирующими правилами, чтобы рассмотреть файлы XML отдельных разделов. Как основная таблица стилей XSL, она необходима только для предпросмотра и не очень важна.

Эта папка содержит все изображения, на которые ссылаются в ваших разделах. В отличие от других форматов справки, изображения здесь выводятся в их родных форматах – то есть изображения .BMP экспортируются как .BMP , и изображения Impict .IPP экспортируются как .IPP . Это необходимо, потому что иначе ссылка изображения в коде XML была бы неправильной, когда Вы повторно импортируете ваши изображения.

Редакторы XML вообще будут в состоянии обработать все форматы изображения, поддержанные Help & Manual, кроме Impict .IPP , который является частным форматом Software EC. Если изображения важны для понимания текста (например для переводчика), лучше использовать другой формат изображений. Вы можете использовать тэги условного текста, чтобы создать альтернативные версии ваших изображений .IPP для экспорта XML, если Вы желаете.

Файлы рисунка экспортируются с их оригинальной меткой времени, а не меткой времени операции экспорта XML.

Эта папка содержит все файлы из секции Багажа вашего проекта, которые обычно внедряются в ваш файл проекта .HMX .

Файлы багажа экспортируются с их оригинальными форматами и с их оригинальной меткой времени.

Читайте также: