Блог программиста
не только о программировании

Дружественные ресурсы:

IntSystem.org | Веб-разработка, все о ней

DevOps-заметки |

25.12.2016

Кроссплатфоменный файловый менеджер для Android (Windows, linux, macOS)

Давным давно, когда устройства на базе Android еще не умели в MTP и PTP, приходилось устанавливать драйвера на ПК, монтировать флешку вручную. При этом, разумеется, работать с флешкой можно было либо на ПК, либо на мобильном устройстве. При этом на ОС, отличных от Windows, с этим было очень грустно, а на macOS грустно до сих пор даже с MTP. Поэтому я и написал свой файловый менеджер: хотелось иметь двунаправленный обмен файлами, с ПК на Android и обратно, не зависеть от ОС на ПК и т.д.. Достоинства, недостатки и все остальное под катом.

Зачем

Забегая вперед, отвечу, зачем мне понадобился еще один файловый менеджер, когда их итак хватает, причем зачастую они уступают по возможностям. Итак, прежде всего, мне нужно было решение, работающее на всех ОС. По этой причине, например, пришлось отказаться от ранее любого ADB Plugin для Total Commander. А о таких программах, как QtADB еще не существовали. Вдобавок, мне нужен был софт без проблем с лицензированием (бесплатный, желательно с возможностью модифицировать исходный код). А список по таким критериям стремился к 0, вот поэтому я и взялся за написание. К тому же, это просто интересно!

Проекту несколько лет, почему статья вышла только сейчас?

Действительно, первый архив с исходниками, который лежит в бекапах, датируется 16.08.2013 (это было то славное время, когда я еще не освоил git).

aexplorer_old_source

Потом в различные периоды времени, интерес к проекту то появлялся, то опять угасал. Связано это прежде всего с собственными интересами. Когда у меня возникала необходимость, я возвращался к проекту, пользовался им, а заодно правил баги, добавлял новые функции. После чего, когда необходимости не было, проект оставался без сопровождения в состоянии “как есть”.

А написать материал о проекте я решил только когда в нем опять возникла необходимость, и когда довел его до состояния “баги поправлены, код рефакторим и документируем, ждем новых фич”.

Возможности

file_transfer_android_mac_os

Прежде всего это классический двухпанельный файловый менеджер. Слева файлы устройства на Android, справа – ПК. Однако, в работе я добавил пару дополнительных фич, т.к. они были необходимы в работе:

  • снятие скриншотов (скриншот автоматически отправляется на ПК в активную папку);
  • редактирование файлов “на лету”;
  • управление приложениями.

Недостатки

К основным недостаткам можно отнести отсутствие сборок для операционных систем. Приложение запускается через выполнение основного .jar файла, а это не во всех ОС делается двойным кликом по файлу.

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

И по части юзабилити есть некоторые претензии: при исключительных ситуациях поведение контролов неочевидно (хоть все исключения и обрабатываются и пишутся в лог), также все работа с устройством и контролами выполняется в одном потоке. А это плохо, если, например, передается большой файл, то приложение просто “подвисает”.

Пару слов об использовании

Приложение и его исходный код можно юзать как угодно, где угодно и сколько угодно. А вот на его компоненты (adb, иконочки) смотрите лицензии для них.