Подтвердить что ты не робот

Отладка с горячей заменой с помощью Android

1) Существуют ли какие-либо специальные настройки/настройки, необходимые для включения отладки с возможностью "горячей" замены на Android?

Пример:

  • Добавить точку останова сразу после ввода функции onCreate.
  • Добавить новую строку на лету после точки останова (фиктивный "if (1 == 1) return;" code)
  • Шаг к следующей инструкции - > Проблема: мой отладчик не разбивается на эту строку, вместо этого переходите к следующему, заставляя меня считать, что новая строка не была горячей заменой на виртуальную машину.

2) Поддерживает ли только эмулятор поддержку горячей замены? Есть ли телефоны, которые также поддерживают его?

4b9b3361

Ответ 1

Сам эмулятор не поддерживает hotswap-код, но с дополнительными инструментами, такими как InstaReloader, может быть достигнуто желаемое действие. Вы можете бесплатно использовать Android hotswapping

Ответ 2

Каждый раз, когда проект Android строится, он дешифруется и помещается в apg-debug-apk, который отправляется на ваш телефон/эмулятор. Следовательно, hotswapping не так просто сделать.

Hotswap - продукт хорошо продуманного JVM, и он позволяет обмениваться классами. На Android у вас есть Dalvik VM, который в настоящее время не поддерживает горячую замену.

Я предполагаю, что команда ADT имеет этот высокий уровень в своем списке.

РЕДАКТОР: Несмотря на то, что прошло уже 2,5 года после этого ответа, мало что изменилось. Однако у ZeroTurnaround есть свои рукава, и JRebel для Android должен дать нам очень необходимый метод горячей замены. http://zeroturnaround.com/software/jrebel-for-android/

EDIT2: С выпуском Android Studio 2.0 Instant Run вы можете выполнить "горячую" замену. Горячая замена приведет к изменению класса во время работы вашего приложения.

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

Смотрите этот разговор от Android Dev Summit 2015 для получения дополнительной информации: https://www.youtube.com/watch?v=fs0eira2pRY

Ответ 3

В предварительном просмотре Android Studio 2.0 появилась функция "горячей замены". Вы получите его, обновив до:

        classpath group: 'com.android.tools.build', name: 'gradle', version: '2.0.0-alpha1'

И затем установите его из меню:

введите описание изображения здесь

Ответ 4

Не по-настоящему горячая замена, но в Github есть библиотека, которая имитирует это. Вы можете найти его здесь: https://github.com/mmin18/LayoutCast

У него есть некоторые проблемы, но он активен с момента написания этого ответа.

Кроме того, ZeroTurnaround, похоже, работает над проблемой с JRebel для Android. Вы можете запросить бета-доступ здесь: http://zeroturnaround.com/software/jrebel-for-android/