Отладка вашего приложения

Android Studio предоставляет отладчик, который позволяет выполнять следующие и многие другие действия:

  • Выберите устройство для отладки вашего приложения.
  • Установите точки останова в коде Java, Kotlin и C/C++.
  • Проверяйте переменные и оценивайте выражения во время выполнения.

Эта страница содержит инструкции по основным операциям отладчика. Для получения дополнительной документации см. также IntelliJ IDEA debugging docs .

Включить отладку

Прежде чем приступить к отладке, выполните следующие действия:

Включите отладку на вашем устройстве.
Если вы используете эмулятор, отладка включена по умолчанию. Но для подключенного устройства вам нужно включить отладку в параметрах разработчика устройства .
Запустите отладочный вариант сборки.

Используйте вариант сборки , включающий debuggable true ( isDebuggable = true в скриптах Kotlin) в конфигурации сборки.

Обычно вы можете выбрать вариант "debug" по умолчанию, который включен в каждый проект Android Studio, даже если он не виден в файле build.gradle . Однако, если вы определяете новые типы сборки, которые должны быть отлаживаемыми, вы должны добавить debuggable true к типу сборки:

Круто

android {
    buildTypes {
        customDebugType {
            debuggable true
            ...
        }
    }
}

Котлин

android {
    buildTypes {
        create("customDebugType") {
            isDebuggable = true
            ...
        }
    }
}

Это свойство также применимо к модулям с кодом C/C++ .

Примечание: свойство jniDebuggable больше не используется.

Если ваше приложение зависит от модуля библиотеки, который вы также хотите отладить, эта библиотека также должна быть упакована с debuggable true , чтобы она сохранила свои отладочные символы. Чтобы гарантировать, что отлаживаемые варианты вашего проекта приложения получат отлаживаемый вариант модуля библиотеки, опубликуйте нестандартные версии вашей библиотеки.

Начать отладку

Начать сеанс отладки можно следующим образом:

  1. Установите точки останова в коде вашего приложения.
  2. На панели инструментов выберите устройство для отладки приложения из меню целевого устройства.
    Меню целевого устройства.
    Рисунок 1. Меню целевого устройства.

    Если у вас нет настроенных устройств, вам необходимо подключить устройство через USB , подключить устройство через Wi-Fi или создать AVD для использования эмулятора Android .

  3. На панели инструментов нажмите «Отладка». .

    Если ваше приложение уже запущено на устройстве, отобразится диалоговое окно с вопросом, хотите ли вы переключиться с Run на Debug. Устройство необходимо перезапустить, чтобы начать отладку. Чтобы сохранить тот же экземпляр приложения запущенным, нажмите Cancel Debug и вместо этого прикрепите отладчик к запущенному приложению . В противном случае Android Studio создаст APK, подпишет его ключом отладки, установит на выбранном вами устройстве и запустит его.

    Если вы добавляете код C и C++ в свой проект , Android Studio также запускает отладчик LLDB в окне отладки для отладки вашего собственного кода.

  4. Если окно отладки не открыто, выберите Вид > Окна инструментов > Отладка или щелкните Отладка. на панели окна инструментов.

Присоедините отладчик к работающему приложению

Если ваше приложение уже запущено на вашем устройстве, вы можете начать отладку без перезапуска приложения следующим образом:

  1. Нажмите Присоединить отладчик к процессу Android. .
  2. В диалоговом окне «Выбор процесса» выберите процесс, к которому вы хотите присоединить отладчик.
    1. Если вы используете эмулятор или рутированное устройство, вы можете установить флажок Показать все процессы , чтобы увидеть все процессы. На рутированном устройстве это покажет все процессы, запущенные на устройстве. Однако на нерутированном устройстве это покажет только отлаживаемые процессы.
    2. В меню Use Android Debugger Settings from можно выбрать существующую конфигурацию запуска/отладки . Для кода C и C++ это позволяет повторно использовать команды запуска LLDB, команды LLDB после присоединения и каталоги символов в существующей конфигурации.
    3. Если у вас нет существующей конфигурации запуска/отладки, выберите Create New . Этот выбор активирует меню Debug Type , в котором вы можете выбрать другой тип отладки . По умолчанию Android Studio использует тип отладки Detect Automatically, чтобы выбрать лучший вариант отладчика в зависимости от того, содержит ли ваш проект код Java или C/C++.
  3. Нажмите ОК .

    Появится окно отладки.

Вкладка «Процессы» в проводнике устройств ( Вид > Окна инструментов > Проводник устройств ) также содержит список отлаживаемых процессов. Оттуда вы можете выбрать процесс и выполнить его завершение. , принудительная остановка , или прикрепить отладчик к данному процессу .

Окно отладки

Рисунок 2. Окно отладки.

Окно отладки разделено на

  1. Панель инструментов выполнения и навигации. См. Работа с точками останова.
  2. Селектор тем
  3. Оценка и просмотр записи выражения. См. Проверка переменных .
  4. Отображение стека
  5. Панель переменных. См. Проверка переменных .

Примечание: Отладчик Android Studio и сборщик мусора слабо интегрированы. Виртуальная машина Android гарантирует, что любой объект, о котором знает отладчик, не будет собран мусором, пока отладчик не отключится. Это может привести к накоплению объектов, пока отладчик подключен. Например, если отладчик видит работающий поток, связанный объект Thread не будет собран мусором, пока отладчик не отключится, даже если поток был завершен.

Изменить тип отладчика

Поскольку для отладки кода Java/Kotlin и кода C/C++ требуются разные инструменты отладки, отладчик Android Studio позволяет вам выбрать, какой тип отладчика использовать. По умолчанию Android Studio решает, какой отладчик использовать, на основе того, какие языки он обнаруживает в вашем проекте с помощью типа отладчика Detect Automatically .

Чтобы вручную выбрать отладчик в конфигурации отладки , нажмите Выполнить > Изменить конфигурации . Вы также можете выбрать отладчик в диалоговом окне, которое появляется при нажатии Выполнить > Присоединить отладчик к процессу Android .

Доступны следующие типы отладки:

Определить автоматически
Выберите этот тип отладки, если хотите, чтобы Android Studio автоматически выбирала наилучший вариант для отлаживаемого вами кода. Например, если в вашем проекте есть код C или C++, Android Studio автоматически использует тип отладки Dual. В противном случае Android Studio использует тип отладки Java-Only.
Только Java
Выберите этот тип отладки, если вы хотите отлаживать только код, написанный на Java или Kotlin. Отладчик Java-Only игнорирует любые точки останова или наблюдения, которые вы устанавливаете в своем собственном коде.
Только собственный (доступно только с кодом C/C++)
Выберите этот тип отладки, если вы хотите использовать только LLDB для отладки своего кода. При использовании этого типа отладки просмотр сеанса отладчика Java недоступен. По умолчанию LLDB проверяет только ваш собственный код и игнорирует точки останова в вашем коде Java. Если вы также хотите отлаживать свой код Java, переключитесь на тип отладки Detect Automatically или Dual.

Собственная отладка работает только на устройствах, которые соответствуют следующим требованиям:

  • Устройство поддерживает run-as .

    Чтобы проверить, поддерживает ли устройство run-as , выполните следующую команду в оболочке ADB, подключенной к вашему устройству:

    run-as your-package-name pwd
    

    Замените your-package-name на имя пакета вашего приложения. Если устройство поддерживает run-as , команда должна вернуться без ошибок.

  • На устройстве включена ptrace .

    Чтобы проверить, включен ли ptrace , выполните следующую команду в оболочке ADB, подключенной к вашему устройству:

    sysctl kernel.yama.ptrace_scope
    

    Если ptrace включен, команда выведет значение 0 или ошибку unknown key . Если ptrace не включен, команда выведет значение, отличное от 0 .

Двойной (Java + Native) — доступен только с кодом C/C++
Выберите этот тип отладки, если вы хотите переключаться между отладкой Java и собственного кода. Android Studio подключает отладчик Java и LLDB к процессу вашего приложения, чтобы вы могли проверять точки останова как в Java, так и в собственном коде без перезапуска приложения или изменения конфигурации отладки.

На рисунке 2 обратите внимание на две вкладки справа от заголовка окна Debug. Поскольку приложение содержит код как Java, так и C++, одна вкладка предназначена для отладки собственного кода, а другая — для отладки кода Java, как указано в -java .

Рисунок 3. Вкладка для отладки собственного кода и вкладка для отладки кода Java.

Примечание: При отладке собственного кода, оптимизированного компилятором, может появиться следующее предупреждающее сообщение:
This function was compiled with optimizations enabled. Some debugger features may not be available . При использовании флагов оптимизации компилятор вносит изменения в ваш скомпилированный код, чтобы сделать его более эффективным. Это может привести к тому, что отладчик будет сообщать неожиданную или неверную информацию, поскольку отладчику будет сложно сопоставить оптимизированный скомпилированный код с исходным кодом. По этой причине следует отключить оптимизацию компилятора во время отладки собственного кода.

Используйте системный журнал

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

Записывайте сообщения журнала в свой код

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

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

Котлин

import android.util.Log
...
class MyActivity : Activity() {
    ...
    override fun onCreate(savedInstanceState: Bundle?) {
        ...
        if (savedInstanceState != null) {
            Log.d(TAG, "onCreate() Restoring previous state")
            /* restore state */
        } else {
            Log.d(TAG, "onCreate() No saved state available")
            /* initialize app */
        }
        ...
    }
  ...
  companion object {
    private val TAG: String = MyActivity::class.java.simpleName
    ...
  }
}

Ява

import android.util.Log;
...
public class MyActivity extends Activity {
    private static final String TAG = MyActivity.class.getSimpleName();
    ...
    @Override
    public void onCreate(Bundle savedInstanceState) {
       ...
       if (savedInstanceState != null) {
            Log.d(TAG, "onCreate() Restoring previous state");
            /* restore state */
        } else {
            Log.d(TAG, "onCreate() No saved state available");
            /* initialize app */
        }
        ...
    }
}

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

Котлин

fun someOtherMethod() {
    try {
        ...
    } catch (e : SomeException) {
        Log.d(TAG, "someOtherMethod()", e)
    }
}

Ява

void someOtherMethod() {
    try {
        ...
    } catch (SomeException e) {
        Log.d(TAG, "someOtherMethod()", e);
    }
}

Примечание: Удалите сообщения журнала отладки и вызовы печати трассировки стека из вашего кода, когда вы будете готовы опубликовать свое приложение. Для этого установите флаг DEBUG и поместите сообщения журнала отладки внутрь условных операторов.

Просмотреть системный журнал

Вы можете просматривать и фильтровать отладочные и другие системные сообщения в окне Logcat, как показано на рисунке 4. Например, вы можете видеть сообщения, когда происходит сборка мусора, или сообщения, которые вы добавляете в свое приложение с помощью класса Log .

Чтобы использовать Logcat, запустите отладку и выберите вкладку Logcat.

Рисунок 4. Окно Logcat с настройками фильтра.

Описание Logcat и его параметров фильтрации см. в разделе Запись и просмотр журналов с помощью Logcat .

Работа с точками останова

Android Studio поддерживает точки останова, которые запускают различные действия отладки. Существует несколько типов точек останова:

Точка останова строки
Наиболее распространенный тип — это точка останова строки, которая приостанавливает выполнение вашего приложения на указанной строке кода. Во время паузы вы можете проверять переменные, оценивать выражения, а затем продолжать выполнение строка за строкой, чтобы определить причины ошибок времени выполнения.
Метод точки останова
Точка останова метода приостанавливает выполнение вашего приложения, когда оно входит или выходит из определенного метода. Во время паузы вы можете проверять переменные, оценивать выражения, а затем продолжать выполнение строка за строкой, чтобы определить причины ошибок времени выполнения. Когда вы устанавливаете точку останова на составной функции, отладчик перечисляет параметры составной функции и их состояние, чтобы помочь определить, какие изменения могли вызвать перекомпозицию.
Поле контрольной точки
Точка останова поля приостанавливает выполнение вашего приложения, когда оно считывает данные из определенного поля или записывает их в него.
Исключительная точка останова
Точка останова исключения приостанавливает выполнение вашего приложения при возникновении исключения.

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

Чтобы добавить точку останова строки, выполните следующие действия:

  1. Найдите строку кода, в которой вы хотите приостановить выполнение.
  2. Щелкните по левому полю вдоль этой строки кода или поместите курсор на строку и нажмите Control+F8 (в macOS Command+F8 ).
  3. Если ваше приложение уже запущено, нажмите «Прикрепить отладчик к процессу Android». . В противном случае, чтобы начать отладку, нажмите кнопку Отладка .

При установке точки останова рядом с линией появляется красная точка, как показано на рисунке 5.

Рисунок 5. Красная точка появляется рядом с линией, когда вы устанавливаете точку останова.

Когда выполнение кода достигает точки останова, Android Studio приостанавливает выполнение вашего приложения.

Чтобы определить состояние приложения, используйте инструменты на вкладке «Отладчик»:

  • Чтобы изучить дерево объектов для переменной, разверните его в представлении Переменные. Если представление Переменные не отображается, щелкните Параметры макета и убедитесь, что переменные проверены.

  • Чтобы перейти к следующей строке кода без ввода метода, нажмите «Шаг с обходом». .

  • Чтобы перейти к первой строке внутри вызова метода, нажмите «Шаг внутрь». .

  • Чтобы перейти на следующую строку за пределами текущего метода, нажмите «Шаг наружу». .

  • Чтобы продолжить работу приложения в обычном режиме, нажмите «Возобновить программу». .

Если ваш проект использует какой-либо собственный код, по умолчанию тип отладки Detect Automatically присоединяет к вашему приложению как отладчик Java, так и LLDB как два отдельных процесса. Вы можете переключаться между проверкой точек останова Java и C/C++ без перезапуска приложения или изменения настроек.

Примечание: Чтобы Android Studio могла обнаружить точки останова в вашем коде C или C++, вам необходимо использовать тип отладки, поддерживающий LLDB, например Detect Automatically, Native или Dual. Вы можете изменить тип отладки, используемый Android Studio, отредактировав конфигурацию отладки . Чтобы узнать больше о различных типах отладки, прочитайте раздел об использовании других типов отладки .

Когда Android Studio развертывает ваше приложение на целевом устройстве, открывается окно отладки с вкладкой или видом сеанса отладки для каждого процесса отладчика, как показано на рисунке 6.

Рисунок 6. Отладка собственного кода с использованием LLDB.
  1. Android Studio переключается на вкладку <your-module> , когда отладчик LLDB обнаруживает точку останова в вашем коде C/C++. Панели Frames, Variables и Watches также доступны и работают точно так же, как если бы вы отлаживали код Java.

    Хотя панель Threads недоступна в представлении сеанса LLDB, вы можете получить доступ к процессам вашего приложения, используя список в панели Frames. Узнайте больше об этих панелях в разделах о том, как отлаживать оконные фреймы и проверять переменные .

    Примечание: При проверке точки останова в вашем собственном коде система Android приостанавливает работу виртуальной машины, на которой выполняется байт-код Java вашего приложения. Это означает, что вы не сможете взаимодействовать с отладчиком Java или извлекать какую-либо информацию о состоянии из сеанса отладчика Java при проверке точки останова в вашем собственном коде.

  2. Android Studio переключается на вкладку <your-module> -java, когда отладчик Java обнаруживает точку останова в коде Java или Kotlin.
  3. При отладке с помощью LLDB вы можете использовать терминал LLDB в представлении сеанса LLDB для передачи параметров командной строки в LLDB . Если у вас есть определенные команды, которые вы хотите, чтобы LLDB выполнял каждый раз при запуске отладки вашего приложения, либо непосредственно перед, либо сразу после того, как отладчик присоединится к процессу вашего приложения, вы можете добавить эти команды в конфигурацию отладки .

При отладке кода C/C++ вы также можете устанавливать специальные типы точек останова, называемые контрольными точками , которые могут приостанавливать процесс вашего приложения, когда оно взаимодействует с определенным блоком памяти. Чтобы узнать больше, прочитайте раздел о том, как добавлять контрольные точки .

Просмотр и настройка точек останова

Чтобы просмотреть все точки останова и настроить параметры точек останова, нажмите «Просмотреть точки останова». в окне Debug. Появится окно Breakpoints, как показано на рисунке 7.

Рисунок 7. В окне «Точки останова» перечислены все текущие точки останова и указаны настройки поведения для каждой из них.

Окно Breakpoints позволяет вам включать или отключать каждую точку останова из списка на панели. Если точка останова отключена, Android Studio не останавливает ваше приложение, когда оно достигает этой точки останова.

Выберите точку останова из списка, чтобы настроить ее параметры. Вы можете настроить точку останова так, чтобы она была отключена в первую очередь, а система включила ее после срабатывания другой точки останова. Вы также можете настроить, должна ли точка останова быть отключена после срабатывания. Чтобы установить точку останова для любого исключения, выберите Exception Breakpoints в списке точек останова.

Чтобы временно отключить все точки останова, нажмите «Отключить точки останова». в окне Debug. Нажмите еще раз, чтобы включить снова.

Отладка оконных рам

В окне отладчика панель Frames позволяет вам просматривать кадр стека, который вызвал срабатывание текущей точки останова. Это позволяет вам перемещаться и изучать кадр стека, а также просматривать список потоков в вашем приложении Android.

Чтобы выбрать поток, используйте меню выбора потока и просмотрите его стековый фрейм. Щелкните элементы в фрейме, чтобы открыть исходный код в редакторе. Вы также можете настроить представление потока и экспортировать стековый фрейм, как описано в руководстве Examine Frames .

Проверить переменные

В окне отладчика панель переменных позволяет вам проверять переменные, когда система останавливает ваше приложение на точке останова, и вы выбираете кадр из панели кадров. Панель переменных также позволяет вам оценивать специальные выражения с использованием статических методов и/или переменных, доступных в выбранном кадре.

Чтобы добавить выражение в дерево объектов (во время отладки приложения):

Рисунок 8. Дерево объектов и поле ввода выражения в окне отладки.
  1. Введите выражение для просмотра или отображения
  2. Нажмите «Добавить в наблюдения» или нажмите Enter, чтобы оценить выражение один раз.

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

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

Вычисленные выражения будут отображаться в верхней части дерева объектов до тех пор, пока вы вручную не вычислите другое выражение или не выполните пошаговое выполнение кода.

Чтобы удалить наблюдаемое выражение из дерева объектов, щелкните правой кнопкой мыши выражение и выберите Удалить наблюдение .

Добавить точки наблюдения

При отладке кода C/C++ вы можете устанавливать специальные типы точек останова, называемые контрольными точками , которые могут приостанавливать процесс вашего приложения, когда оно взаимодействует с определенным блоком памяти. Например, если вы устанавливаете два указателя на блок памяти и назначаете ему контрольную точку, использование любого указателя для доступа к этому блоку памяти запускает контрольную точку.

В Android Studio вы можете создать точку наблюдения во время выполнения, выбрав определенную переменную, но LLDB назначает точку наблюдения только блоку памяти, который система выделяет для этой переменной, а не самой переменной. Это отличается от добавления переменной на панель Watches, которая позволяет вам наблюдать за значением переменной, но не позволяет приостанавливать процесс вашего приложения, когда система считывает или изменяет его значение в памяти.

Примечание: когда процесс вашего приложения выходит из функции и система освобождает его локальные переменные из памяти, вам необходимо переназначить все созданные вами точки наблюдения для этих переменных.

Чтобы установить точку наблюдения, необходимо выполнить следующие требования:

  • Ваше целевое физическое устройство или эмулятор использует процессор x86 или x86_64. Если ваше устройство использует процессор ARM, то вы должны выровнять границу адреса вашей переменной в памяти либо до 4 байтов для 32-разрядных процессоров, либо до 8 байтов для 64-разрядных процессоров. Чтобы выровнять переменную в вашем собственном коде, укажите __attribute__((aligned( num_bytes ))) в переменной deceleration, как показано ниже:
    // For a 64-bit ARM processor
    int my_counter __attribute__((aligned(8)));
  • Вы уже назначили три или меньше точек наблюдения. Android Studio поддерживает только до четырех точек наблюдения на целевых устройствах x86 или x86_64. Другие устройства могут поддерживать меньше точек наблюдения.

Примечание: при отладке приложения с 32-битными ARM ABI добавление точки наблюдения или наведение курсора на переменные внутри кода для исследования их значений может привести к сбою. В качестве обходного пути выполните отладку с использованием 64-битных двоичных файлов ARM, x86 или x86_64. Эта проблема будет исправлена ​​в предстоящем выпуске Android Studio.

Если вы соответствуете требованиям, вы можете добавить точку наблюдения следующим образом:

  1. Пока ваше приложение приостановлено на точке останова, перейдите на панель «Переменные» в представлении сеанса LLDB.
  2. Щелкните правой кнопкой мыши переменную, занимающую блок памяти, который вы хотите отслеживать, и выберите Добавить точку наблюдения .

    Рисунок 9. Добавление точки наблюдения к переменной в памяти.
  3. Появится диалоговое окно для настройки точки наблюдения, как показано на рисунке 9.

    Настройте точку наблюдения, используя следующие параметры:

    • Включено: Снимите этот флажок, если вы хотите указать Android Studio игнорировать точку наблюдения, пока вы не измените настройку. Android Studio сохраняет вашу точку наблюдения, чтобы вы могли получить к ней доступ позже.
    • Suspend: По умолчанию система Android приостанавливает процесс вашего приложения, когда он обращается к блоку памяти, который вы назначаете точке наблюдения. Снимите этот флажок, если вы не хотите такого поведения. Это открывает дополнительные параметры, которые вы можете использовать для настройки поведения при взаимодействии системы с вашей точкой наблюдения: Log message to console и Remove when hit .
    • Тип доступа: выберите, должно ли ваше приложение запускать вашу точку наблюдения при попытке чтения или записи в блок памяти, который система выделяет переменной. Чтобы запустить вашу точку наблюдения при чтении или записи, выберите Any .
  4. Нажмите Готово .

Чтобы просмотреть все точки наблюдения и настроить параметры точек наблюдения, нажмите «Просмотреть точки останова». в окне Debug. Появится диалоговое окно Breakpoints, как показано на рисунке 10.

Рисунок 10. Диалоговое окно «Точки останова» содержит список текущих точек наблюдения и настройки поведения для каждой из них.

После добавления точки наблюдения нажмите «Возобновить программу» . в окне Debug, чтобы возобновить процесс вашего приложения. По умолчанию, если ваше приложение пытается получить доступ к блоку памяти, на который вы установили контрольную точку, система Android приостанавливает процесс вашего приложения и значок контрольной точки отображается рядом со строкой кода, которую ваше приложение выполнило последней, как показано на рисунке 11.

Рисунок 11. Android Studio указывает строку кода, которую ваше приложение выполняет непосредственно перед срабатыванием точки наблюдения.

Просмотр и изменение формата отображения значения ресурса

В режиме отладки вы можете просматривать значения ресурсов и выбирать другой формат отображения для переменных в коде Java или Kotlin. При отображенной вкладке Variables и выбранном фрейме выполните следующие действия:

  1. В списке переменных щелкните правой кнопкой мыши в любом месте строки ресурса, чтобы отобразить список.
  2. В списке выберите «Просмотреть как» и выберите нужный формат.

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

    • Класс: Отобразить определение класса.
    • toString: Отображение формата строки.
    • Объект: Отображение определения объекта (экземпляра класса).
    • Массив: Отображение в формате массива.
    • Временная метка: отображать дату и время следующим образом: гггг-мм-дд чч:мм:сс.
    • Авто: Android Studio выбирает лучший формат на основе типа данных.
    • Двоичный: Отображение двоичного значения с использованием нулей и единиц.
    • MeasureSpec: Значение, переданное от родителя выбранному дочернему элементу. См. MeasureSpec .
    • Hex: Отображение в виде шестнадцатеричного значения.
    • Примитивный: Отображение в виде числового значения с использованием примитивного типа данных.
    • Целое число: Отображение в виде числового значения типа Integer .

Чтобы создать собственный формат, выполните следующие действия:

  1. Щелкните правой кнопкой мыши значение ресурса.
  2. Выберите Просмотреть как .
  3. Выберите Создать .
  4. Отобразится диалоговое окно Java Data Type Renderers . Следуйте инструкциям в разделе Java Data type Renderers .