Приложения для Android: как работает приложение Share It для Android?

Если вы спрашиваете о реализации. Ну, я сам создал приложение для обмена файлами. Это все о сетевых концепциях. Есть получатель и отправитель. Один из них создает точку доступа WiFi. А другой подключается к нему. Сейчас локальная сеть сформирована. Оба будут иметь IP-адреса. Теперь отправитель может выбрать файл и нажать «Отправить». Файл передается через TCP, и получатель идентифицируется по IP-адресу (TCP — я думаю, это так. Потому что, когда я сам пробовал UDP, многие пакеты были потеряны. Многие.)

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

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

Но я создал свое приложение с простыми концепциями и достиг скорости до 6 МБ / с.

И максимальная скорость соединения при подключении к точке доступа Android обычно составляет 65 Мбит / с, что составляет около 8 МБ / с (обратите внимание на ‘b’ и ‘B’. B — байт. B — бит.), Возможно, есть устройства с лучшими картами WiFi NIC, обеспечивающими лучшую максимальную скорость соединения. Таким образом, даже если вы используете полную полосу пропускания и отправляете файл, он будет отправляться со скоростью около 8 МБ / с. Так что, я думаю, в моем приложении даже 6 МБ / с — это хорошо. И скорость обмена зависит от многих факторов! Вот некоторые из них, которые я обнаружил (так что, по сути, это всего лишь теории. Но я нашел хорошую причину в теориях.):
1. Скорость соединения. Скорость соединения зависит от расстояния между устройствами. Я имею в виду, что он основан на силе сигнала WiFi. Вот почему я использовал слово «максимум» вместе со словом «скорость соединения».
2. Скорость чтения внутреннего хранилища или SD-карты, где хранится файл (на стороне отправителя), и Скорость записи внутреннего хранилища или SD-карты, где когда-либо будет храниться файл (на стороне получателя).
3. Размер из отправляемых кусков
4. Сколько полосы пропускания используется приложением для отправки файла. Это хорошо, если он может использовать максимальную пропускную способность. Это потому, что я мог догадаться, что некоторые вещи могут помешать приложению использовать полную полосу пропускания. Мне еще предстоит перепроверить и подтвердить использование сетевых анализаторов. Но я думаю, что я прав в этом предположении. Это единственное объяснение, которое я мог найти для резко меняющихся скоростей для разных сеансов передачи, в то время как я передаю файлы между одними и теми же устройствами. Итак, это предположение. Например, когда получатель подключается к точке доступа отправителя, некоторые приложения в получателе, работающие в фоновом режиме, обнаруживают этот WiFi (они обнаруживают всякий раз, когда изменяется состояние устройства), и думают, что это подключение к Интернету, и пытаются отправлять запросы на свои серверы для получения данных для отображения уведомлений, но только после попытки отправить большое количество запросов, он поймет, что нет подключения к Интернету. И перестанет пытаться отправлять запросы. Будет много таких приложений. Например, WhatsApp, Hike, YouTube и т. Д. Так как эти запросы пытаются быть отправлены, он фактически использует пропускную способность соединения, и наше приложение для обмена не сможет использовать полную пропускную способность.

Если вы разработчик приложений для Android, и вы хотите знать, как кодировать и прочее. Во-первых, вы должны изучить программирование сокетов на Java и попробовать их на уровне ПК. Затем вы узнаете, как реализовать сетевые операции в Android, вы не можете просто вставить код Java, который вы пробовали на уровне ПК, вы должны использовать потоки или службы и делать некоторые дополнительные вещи. Спросите меня, если вы в такой вещи и хотите узнать больше.

0

Ура! Вы первые нашли эту информацию, сделайте доброе дело, поделитесь ей в: