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

В Android Studio есть отладчик, который позволяет:

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

На этой странице приведены инструкции по основным операциям отладчика. Дополнительную информацию можно найти в документации по отладке в IntelliJ IDEA.

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

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

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

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

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

Яркий

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

Kotlin

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

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

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

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

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

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

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

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

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

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

    Если вы добавите в проект код C и C++, Android Studio также запустит отладчик LLDB в окне Debug (Отладка), чтобы отладить нативный код.

  4. Если окно Debug (Отладка) не открыто, выберите View > Tool Windows > Debug (Вид > Окна инструментов > Отладка) или нажмите Debug (Отладка) на панели окон инструментов.

Как подключить отладчик к запущенному приложению

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

  1. Нажмите Attach debugger to Android process (Подключить отладчик к процессу Android) .
  2. В диалоговом окне Choose Process (Выбрать процесс) выберите процесс, к которому нужно подключить отладчик.
    1. Если вы используете эмулятор или устройство с настроенным root-доступом, установите флажок Показать все процессы. На устройстве с root-доступом будут показаны все запущенные процессы. Однако на устройстве без root-доступа будут показаны только процессы, доступные для отладки.
    2. В меню Use Android Debugger Settings from (Использовать настройки отладчика Android из) можно выбрать существующую конфигурацию выполнения/отладки. Для кода на C и C++ это позволяет повторно использовать команды запуска LLDB, команды LLDB после подключения и каталоги символов в существующей конфигурации.
    3. Если у вас нет конфигурации выполнения/отладки, выберите Create New (Создать). После этого станет доступно меню Тип отладки, в котором можно выбрать другой тип отладки. По умолчанию Android Studio использует тип отладки Detect Automatically (Определять автоматически), чтобы выбрать оптимальный вариант отладчика в зависимости от того, содержит ли проект код Java или C/C++.
  3. Нажмите ОК.

    Откроется окно отладки.

Список отладочных процессов также можно найти на вкладке Processes (Процессы) в Device Explorer (View (Вид) > Tool Windows (Окна инструментов) > Device Explorer). Здесь вы можете выбрать процесс и завершить его , остановить принудительно или подключить к нему отладчик .

Окно отладки

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

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

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

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

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

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

Чтобы вручную выбрать отладчик в конфигурации отладки, нажмите Run (Запустить) > Edit Configurations (Изменить конфигурации). Вы также можете выбрать отладчик в диалоговом окне, которое появляется при нажатии Run (Запустить) > Attach debugger to Android process (Подключить отладчик к процессу 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 + нативный) – доступен только для кода C/C++.
Выберите этот тип отладки, если хотите переключаться между отладкой кода Java и нативного кода. Android Studio подключает к процессу приложения отладчик Java и LLDB, чтобы вы могли проверять точки останова в коде Java и нативном коде, не перезапуская приложение и не меняя конфигурацию отладки.

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

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

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

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

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

Как записывать сообщения в журнале в коде

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

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

Kotlin

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
    ...
  }
}

Java

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 */
        }
        ...
    }
}

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

Kotlin

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

Java

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

Примечание. Перед публикацией приложения удалите из кода сообщения в журнале отладки и вызовы трассировки стека. Для этого установите флаг DEBUG и поместите сообщения в журнале отладки в условные операторы.

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

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

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

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

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

Как работать с контрольными точками

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

Точка останова в строке
Самый распространенный тип – это точка останова в строке, которая приостанавливает выполнение приложения в указанной строке кода. Во время паузы вы можете изучить переменные, оценить выражения и продолжить выполнение построчно, чтобы определить причины ошибок выполнения.
Точка останова метода
Точка останова метода приостанавливает выполнение приложения при входе в определенный метод или выходе из него. Во время паузы вы можете изучить переменные, оценить выражения и продолжить выполнение построчно, чтобы определить причины ошибок выполнения. Когда вы устанавливаете точку останова в composable-функции, отладчик показывает список ее параметров и их состояние, чтобы вы могли определить, какие изменения могли вызвать рекомпозицию.
Точка останова поля
Точка останова поля приостанавливает выполнение приложения, когда оно считывает данные из определенного поля или записывает их в него.
Точка останова исключения
Точка останова исключения приостанавливает выполнение приложения, когда возникает исключение.

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

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

  1. Найдите строку кода, на которой нужно приостановить выполнение.
  2. Нажмите на левое поле рядом с этой строкой кода или поместите на нее курсор и нажмите Control + F8 (в macOS – Command + F8).
  3. Если приложение уже запущено, нажмите Attach debugger to Android process (Подключить отладчик к процессу Android) . В противном случае нажмите Отладка .

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

Рисунок 5. Рядом со строкой появится красная точка.

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

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

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

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

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

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

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

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

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

Когда Android Studio развернет приложение на целевом устройстве, откроется окно Debug (Отладка) с вкладкой или представлением сеанса отладки для каждого процесса отладчика, как показано на рисунке 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++ вы также можете установить специальные типы точек останова, называемые контрольными точками, которые могут приостановить процесс приложения, когда оно взаимодействует с определенным блоком памяти. Подробнее о том, как добавлять контрольные точки…

Как посмотреть и настроить точки останова

Чтобы посмотреть все точки останова и настроить их, нажмите Показать точки останова в окне отладки. Откроется окно Breakpoints (Точки останова), как показано на рисунке 7.

Рисунок 7. В окне Breakpoints (Контрольные точки) перечислены все текущие контрольные точки и настройки поведения для каждой из них.

В окне Breakpoints (Точки останова) можно включить или отключить каждую точку останова из списка на панели. Если точка останова отключена, Android Studio не приостанавливает работу приложения при ее достижении.

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

Чтобы временно отключить все точки останова, нажмите Mute Breakpoints (Отключить точки останова) в окне отладки. Чтобы снова включить, нажмите ещё раз.

Окна отладки

На панели Frames (Фреймы) в окне Debugger (Отладчик) можно посмотреть стековый фрейм, который вызвал текущую точку останова. Это позволяет перемещаться по стековому фрейму и изучать его, а также просматривать список потоков в приложении для Android.

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

Проверка переменных

На панели Variables (Переменные) в окне Debugger (Отладчик) можно просматривать переменные, когда система останавливает приложение на точке останова и вы выбираете фрейм на панели Frames (Фреймы). На панели "Переменные" также можно вычислять специальные выражения, используя статические методы и/или переменные, доступные в выбранном фрейме.

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

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

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

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

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

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

Добавление контрольных точек

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

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

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

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

  • На целевом физическом устройстве или эмуляторе используется процессор x86 или x86_64. Если на вашем устройстве используется процессор ARM, то вам необходимо выровнять границу адреса переменной в памяти до 4 байт для 32-разрядных процессоров или до 8 байт для 64-разрядных процессоров. Чтобы выровнять переменную в нативном коде, укажите __attribute__((aligned(num_bytes))) в объявлении переменной, как показано ниже:
    // 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. Пока приложение приостановлено на контрольной точке, перейдите на панель Variables (Переменные) в окне сеанса LLDB.
  2. Нажмите правой кнопкой мыши на переменную, которая занимает блок памяти, который вы хотите отслеживать, и выберите Add Watchpoint (Добавить контрольную точку).

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

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

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

Чтобы посмотреть все контрольные точки и настроить их, нажмите View Breakpoints (Посмотреть точки останова) в окне отладки. Появится диалоговое окно Breakpoints (Точки останова), как показано на рисунке 10.

Рисунок 10. В диалоговом окне "Точки останова" перечислены текущие контрольные точки и настройки поведения для каждой из них.

Добавив контрольную точку, нажмите Resume Program (Возобновить программу) в окне отладки, чтобы возобновить процесс приложения. По умолчанию, если приложение пытается получить доступ к блоку памяти, для которого вы установили контрольную точку, система Android приостанавливает процесс приложения, а рядом со строкой кода, которую приложение выполнило последней, появляется значок контрольной точки , как показано на рисунке 11.

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

Как посмотреть и изменить формат отображения значения ресурса

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

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

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

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

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

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