Файлы System/bin Android 12. Справочник.


  Все     Команда     Скрипт     Служба     Приложение  

viewcompiler
Скомпилировать файлы макета XML в код Java

Тип файла: команда
  Eng  

usage: viewcompiler <xmlfile> <option> <appfile>

Пример использования:
viewcompiler layout.xml --package com.example.androidapp

Флаги из external/gflags/src/gflags.cc:

  • -flagfile
    загрузить флаги из файла
    тип: строка
    по умолчанию: ""

  • -fromenv
    установить флаги из среды
    [использовать 'export FLAGS_flag1=value']
    тип: строка

  • -tryfromenv
    установите флаги из среды, если они есть
    тип: строка

  • -undefok
    список имен флагов, разделенных запятыми,
    которые можно указать на командную строку,
    даже если программа не определяет флаг
    с этим именем.
    ВАЖНО: флаги в этом списке, которые имеют аргументы,
    ДОЛЖНЫ использовать флаг=формат значения
    тип:
    строка по умолчанию: ""

    Флаги из external/gflags/src/gflags_completions.cc:

  • -tab_completion_columns
    Количество столбцов для использования в выводе
    для вкладки завершения
    тип: int32
    по умолчанию: 80

  • -tab_completion_word
    Если не пусто, HandleCommandLineCompletions()
    захватит процесс и попытается выполнить завершение
    флага командной строки в стиле bash для этого значения
    тип: строка
    по умолчанию: ""

    Флаги из external/gflags/src/gflags_reporting.cc:

  • -help
    показать справку по всем флагам
    [совет: все флаги могут иметь два тире])
    тип: bool
    по умолчанию: false
    в настоящее время: true

  • -helpfull
    показывать справку по всем флагам -- то же, что и -help
    тип: bool
    по умолчанию: ложь

  • -helpmatch
    показать справку по модулям, имя которых содержит
    указанную подстроку
    тип: строка
    по умолчанию: ""

  • -helpon
    показать справку по модулям, названным
    этим значением флага
    тип: строка
    по умолчанию: ""

  • -helppackage
    показать справку по всем модулям основного пакета
    type: bool
    по умолчанию: ложь

  • -helpshort
    показать справку только по основному модулю
    этой программы
    type: bool
    по умолчанию: ложь

  • -helpxml
    создать xml-версию справки
    тип: bool
    по умолчанию: false

  • -version
    показать версию и информацию о сборке и выйти
    тип: bool
    по умолчанию: false

    Флаги из frameworks/base/startop/view_compiler/main.cc:

  • -apk
    Скомпилировать макеты в APK
    тип: bool
    по умолчанию: false

  • -dex
    создать файл DEX вместо Java
    тип: bool
    по умолчанию: false

  • -infd
    чтение ввода из заданного файлового дескриптора
    тип: int32
    по умолчанию: -1

  • -out
    куда записать сгенерированный class
    тип: строка
    по умолчанию: "stdout"

  • -package
    имя пакета для сгенерированного класса (обязательно)
    тип: строка
    по умолчанию: ""

       

    Комментарии
    Android Q содержит новый экспериментальный инструмент командной строки viewcompiler.

    Он расположен в /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.

    Подобная предварительная компиляция представлений обычно сокращает время,
    необходимое для их заполнения.

    Этот инструмент все еще находится на ранних стадиях и имеет ряд ограничений.

    В настоящее время одновременно может быть скомпилирован только один макет.
    узлы слияния и включения не поддерживаются.

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