Программа для интерфейса позволяет легко изменять реализацию контракта, определяемого интерфейсом. Он позволяет свободно связываться между контрактом и конкретными реализациями.
IInterface classRef = new ObjectWhatever()
Вы можете использовать любой класс, который реализует IInterface? Когда вам это нужно?
blockquote>Взгляните на этот вопрос SE на хорошем примере.
Почему должен быть предпочтительным интерфейс для класса Java?
использует ли производительность интерфейса?
if так сколько?
blockquote>Да. В субсекундах он будет иметь незначительные эксплуатационные издержки. Но если ваше приложение требует динамического изменения интерфейса, не беспокойтесь о влиянии производительности.
как вы можете избежать этого, не имея необходимости поддерживать два бита кода?
blockquote>Не пытайтесь избежать нескольких реализаций интерфейса, если ваше приложение нуждается в них , В отсутствие жесткой связи интерфейса с одной конкретной реализацией вам может потребоваться развернуть патч, чтобы изменить одну реализацию на другую реализацию.
Один хороший вариант использования: реализация шаблона стратегии:
TCPDUMP является одним из моих любимых инструментов для анализа сети, но если вам сложно перекрестно скомпилировать tcpdump для android, я рекомендую вам использовать некоторые приложения с рынка.
Это приложения, о которых я говорил:
Приложение Shark работает с корневыми устройствами, поэтому, если вы хотите его установить, убедитесь, что у вас уже установлено ваше устройство.
Удачи;)
Вам нужно будет укоренить телефон и перекрестно скомпилировать tcpdump или использовать уже скомпилированную версию другого.
Возможно, вам будет легче выполнять эти эксперименты с эмулятором, и в этом случае вы можете сделать мониторинг от хостинга ПК. Если вы должны использовать реальное устройство, другой вариант заключается в том, чтобы поместить его в сеть Wi-Fi, висящую на дополнительном интерфейсе в ящике linux, на котором запущен tcpdump.
Я не знаю, с моей точки зрения как вы собираетесь фильтровать определенный процесс. Одно из предложений, которое я нашел в некотором быстром поисковом рассылке, - использовать strace на предметном процессе вместо tcpdump в системе.
Общий подход заключается в вызове «cat / proc / net / netstat», как описано здесь:
Инструмент DDMS, включенный в Android SDK, включает инструмент для мониторинга сетевого трафика. Он не предоставляет детали, которые вы получаете от tcpdump и подобных инструментов низкого уровня, но он по-прежнему очень полезен.
Официальная документация: http://developer.android.com/tools/ отладка / ddms.html # сеть
Попробуйте это приложение https://play.google.com/store/apps/details?id=app.greyshirts.sslcapture
Мы можем просмотреть все сетевые сообщения. даже зашифрованные сообщения SSL.
Без root вы можете использовать прокси-серверы отладки, такие как Charlesproxy & amp; Co.
Packet Capture - лучший инструмент для отслеживания сетевых данных на Android. Не требуется никакого корневого доступа и легко читать и сохранять вызовы на основе приложения. Проверьте этот вне
Примечание. tcpdump требует прав root, поэтому вам придется root-телефон, если он еще не сделан. Вот ARM binary tcpdump (это работает для моего Samsung Captivate). Если вы предпочитаете создавать свой собственный двоичный файл, инструкции здесь (да, вам, вероятно, придется перекрестно скомпилировать).
Также проверьте Shark For Root (инструмент захвата пакетов Android на основе tcpdump).
Я не верю, что tcpdump может отслеживать трафик по определенному идентификатору процесса. Метод strace , на который ссылается Крис Стреттон, кажется большим усилием, чем его ценность. Было бы проще контролировать определенные IP-адреса и порты, используемые целевым процессом. Если эта информация неизвестна, запишите весь трафик в течение периода активности процесса, а затем просеите полученный pcap с помощью Wireshark.