Вопрос по android – Отладка горячей замены с Android

19

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

Пример дела:

Add breakpoint just after entering activity's onCreate method. Add new line on the fly after the breakpoint (dummy "if (1==1) return;" code) Step to next instruction --> Problem: my debugger doesn't break at this line, instead skipping to the next leading me to believe the new line was not hot swapped into the VM.

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

Ваш Ответ

4   ответа
5

но с помощью дополнительных инструментов, таких как InstaReloader, желаемое действие может быть достигнуто. Вы можете использовать этоAndroid hotswapping tool бесплатно

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
2

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

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

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

21

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

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

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

EDIT: Even though it has been 2,5 years since this answer, not much has changed. ZeroTurnaround, however, have stuff up their sleeves, and JRebel for Android should give us a much needed method for hot swapping. http://zeroturnaround.com/software/jrebel-for-android/

EDIT2: With the release of Android Studio 2.0 Instant Run enables you to hot swap. Hot swap will i.e. change a class while your app is running.

They also support warm swap, which is doing a lot more than hot swap in terms of messing with your app. Warm swap still leaves your app running. Resource changes will trigger a warm swap.

Watch this talk from Android Dev Summit 2015 for more info: https://www.youtube.com/watch?v=fs0eira2pRY

8

аете это путем обновления до:

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

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

enter image description here

Похожие вопросы