Всем доброго дня!
Я являюсь разработчиком приложений под Android. И, конечно же, для меня очень важно — на чем я буду отлаживать свои приложения и с помощью чего? В этом топике я постараюсь рассмотреть соответствующие варианты отладки.
1. Самый первый и простой — виртуальная машина, которая грузится очень долго и упорно не внимает нашим командам. Честно говоря, давно я ей не пользовался. Уверен, что сейчас уже есть решения, позволяющие упростить и ускорить работу с виртуальной машиной.
2. Отладка на реальном устройстве. Он чуть-чуть посложнее. Но им пользуются подавляющее большинство пользователей, так как нет ничего лучше — чем отладка на реальном устройстве. На этом варианте я остановлюсь поподробнее.
2.1. Отладка по USB-кабелю. Все хорошо, но вы не замечали, как потом быстро у вас убивается аккумулятор? Устройство находится на постоянной зарядке, а так быть не должно. Соответственно возникает вопрос — а можно ли производить отладку приложения через usb-кабель, при этом не заряжая устройство. Оказывается можно и даже несколькими способами.
2.1.1. Можно удалить в usb-кабеле пины, отвечающие за питание. Вот схема питания кабеля — pinouts.ru/Slots/USB_pinout.shtml. Однако, если Вы — не гуру электротехники, скорее всего минимум один провод можно выкинуть.
2.1.2. Программный способ. Если у Вас есть root-права, Вы можете залезть в нутро системы и отключить зарядку устройства, несмотря на воткнутый кабель. Например, для моего htc sensation необходимо выставить флаг /sys/class/power_supply/battery/charger_control = 0, тогда зарядка не производится. Значение «1» этого флага говорит о том, что устройство заряжается. При перезагрузке устройства выставленное ручным способом значение флага сбрасывается и снова автоматически регулируется системой. Все хорошо, и даже не смущает то, что root-права нужны, но беда в том — что для каждого устройства данная процедура отключения флага индивидуальны. Может быть для HTC такой способ прокатит, а вот для того же samsung. Где у них этот флаг находится, и один ли он?
2.2. Помимо кабеля очень распространен метод отладки «по воздуху», через wi-fi. В Google play полно таких приложений. Правда для них тоже необходимы root-права. Но лично у меня возникла непредвиденная проблема. При отладке в логах вроде идет отображение инфо об устройстве, но ничего про приложение, которое я тестирую. Пробовал чинить, ведь проблема такая не у меня одного — пока никак. Плюс в устройстве интернет вы можете ловить только по wi-fi. А если нужно протестировать работу с 3G? Снова кабель?
Таким образом я постарался охватить все способы отладки приложений, рассмотреть их преимущества и недостатки.
Надеюсь, мой топик Вам помог!
Я являюсь разработчиком приложений под Android. И, конечно же, для меня очень важно — на чем я буду отлаживать свои приложения и с помощью чего? В этом топике я постараюсь рассмотреть соответствующие варианты отладки.
1. Самый первый и простой — виртуальная машина, которая грузится очень долго и упорно не внимает нашим командам. Честно говоря, давно я ей не пользовался. Уверен, что сейчас уже есть решения, позволяющие упростить и ускорить работу с виртуальной машиной.
2. Отладка на реальном устройстве. Он чуть-чуть посложнее. Но им пользуются подавляющее большинство пользователей, так как нет ничего лучше — чем отладка на реальном устройстве. На этом варианте я остановлюсь поподробнее.
2.1. Отладка по USB-кабелю. Все хорошо, но вы не замечали, как потом быстро у вас убивается аккумулятор? Устройство находится на постоянной зарядке, а так быть не должно. Соответственно возникает вопрос — а можно ли производить отладку приложения через usb-кабель, при этом не заряжая устройство. Оказывается можно и даже несколькими способами.
2.1.1. Можно удалить в usb-кабеле пины, отвечающие за питание. Вот схема питания кабеля — pinouts.ru/Slots/USB_pinout.shtml. Однако, если Вы — не гуру электротехники, скорее всего минимум один провод можно выкинуть.
2.1.2. Программный способ. Если у Вас есть root-права, Вы можете залезть в нутро системы и отключить зарядку устройства, несмотря на воткнутый кабель. Например, для моего htc sensation необходимо выставить флаг /sys/class/power_supply/battery/charger_control = 0, тогда зарядка не производится. Значение «1» этого флага говорит о том, что устройство заряжается. При перезагрузке устройства выставленное ручным способом значение флага сбрасывается и снова автоматически регулируется системой. Все хорошо, и даже не смущает то, что root-права нужны, но беда в том — что для каждого устройства данная процедура отключения флага индивидуальны. Может быть для HTC такой способ прокатит, а вот для того же samsung. Где у них этот флаг находится, и один ли он?
2.2. Помимо кабеля очень распространен метод отладки «по воздуху», через wi-fi. В Google play полно таких приложений. Правда для них тоже необходимы root-права. Но лично у меня возникла непредвиденная проблема. При отладке в логах вроде идет отображение инфо об устройстве, но ничего про приложение, которое я тестирую. Пробовал чинить, ведь проблема такая не у меня одного — пока никак. Плюс в устройстве интернет вы можете ловить только по wi-fi. А если нужно протестировать работу с 3G? Снова кабель?
Таким образом я постарался охватить все способы отладки приложений, рассмотреть их преимущества и недостатки.
Надеюсь, мой топик Вам помог!