viewcompiler Скомпилировать файлы макета XML в код Java Тип файла: команда usage: viewcompiler <xmlfile> <option> <appfile> загрузить флаги из файла тип: строка по умолчанию: "" установить флаги из среды [использовать 'export FLAGS_flag1=value'] тип: строка установите флаги из среды, если они есть тип: строка список имен флагов, разделенных запятыми, которые можно указать на командную строку, даже если программа не определяет флаг с этим именем. ВАЖНО: флаги в этом списке, которые имеют аргументы, ДОЛЖНЫ использовать флаг=формат значения тип: строка по умолчанию: "" Флаги из external/gflags/src/gflags_completions.cc: Количество столбцов для использования в выводе для вкладки завершения тип: int32 по умолчанию: 80 Если не пусто, HandleCommandLineCompletions() захватит процесс и попытается выполнить завершение флага командной строки в стиле bash для этого значения тип: строка по умолчанию: "" Флаги из external/gflags/src/gflags_reporting.cc: показать справку по всем флагам [совет: все флаги могут иметь два тире]) тип: bool по умолчанию: false в настоящее время: true показывать справку по всем флагам -- то же, что и -help тип: bool по умолчанию: ложь показать справку по модулям, имя которых содержит указанную подстроку тип: строка по умолчанию: "" показать справку по модулям, названным этим значением флага тип: строка по умолчанию: "" показать справку по всем модулям основного пакета type: bool по умолчанию: ложь показать справку только по основному модулю этой программы type: bool по умолчанию: ложь создать xml-версию справки тип: bool по умолчанию: false показать версию и информацию о сборке и выйти тип: bool по умолчанию: false Флаги из frameworks/base/startop/view_compiler/main.cc: Скомпилировать макеты в APK тип: bool по умолчанию: false создать файл DEX вместо Java тип: bool по умолчанию: false чтение ввода из заданного файлового дескриптора тип: int32 по умолчанию: -1 куда записать сгенерированный class тип: строка по умолчанию: "stdout" имя пакета для сгенерированного класса (обязательно) тип: строка по умолчанию: "" Комментарии Он расположен в /bin/viewcompiler. Загрузите файл макета xml (теги слияния и включения не поддерживаются) и будет создан файл CompiledView.java. Добавьте его в свой проект и вызовите setContentView(CompiledView.inflate(this)) вместо традиционного setContentView(R.layout.my_layout). Количество вещей, которые он компилирует, кажется ограниченным, однако он по-прежнему извлекает атрибуты из исходного файла my_layout.xml, которые должны присутствовать. https://android.googlesource.com/platform/frameworks/base/+/master/startop/view_compiler/README.md Экспериментальный компилятор для файлов макетов. Он возьмет XML-файл макета и создаст файл CompiledLayout.java со специальной функцией расширения макета. Чтобы использовать его, предположим, что у вас есть макет в my_layout.xml, а ваше приложение находится в языковом пакете Java com.example.myapp. Выполните следующую команду: viewcompiler my_layout.xml --package com.example.myapp --out CompiledView.java Это создаст CompiledView.java, который затем можно будет скомпилировать в ваше приложение для Android. Затем, чтобы использовать его, в местах, где вы заполнили бы R.layouts.my_layout, вместо этого вызовите CompiledView.inflate. Подобная предварительная компиляция представлений обычно сокращает время, необходимое для их заполнения. Этот инструмент все еще находится на ранних стадиях и имеет ряд ограничений. В настоящее время одновременно может быть скомпилирован только один макет. узлы слияния и включения не поддерживаются. Компиляция представления — это ручной процесс, который требует внесения изменений в код приложения. Это работает только для приложений, которые не используют надувной модуль пользовательского макета. Другие ограничения еще предстоит обнаружить. |