Android and file manager

Путеводитель по файловым менеджерам для Android, часть 1

Мобильные файловые менеджеры сегодня отлично справляются с основными обязанностями. В довесок к функциям управления данными (копирование, перемещение, удаление, архивация и т. д.), их инструментарий очень часто включает в себя работу с различными протоколами и просмотр мультимедиа, документов.

Среди мобильных менеджеров встречаются как ориентированные на файловые операции программы, так и более интегрированные решения — с поддержкой облачных сервисов, сетевых протоколов, файловых систем и несколькими вариантами синхронизации с ПК.

Учитывая сказанное, обзор состоит из следующих аспектов:

  • Интерфейс и навигация: состав панели инструментов, история, закладки, настройка стартовой страницы
  • Доступные файловые операции, работа с архивами, возможность root-доступа к файловой системе
  • Встроенные средства просмотра мультимедиа и документов
  • Поддержка сетевых протоколов и сервисов
  • Дополнительные инструменты

Участники обзора:

  • Total Commander
  • ES Explorer
  • X-plore File Manager
  • FX File Explorer
  • File Manager

Total Commander

Настольная версия Total Commander достаточно популярна, поэтому не нуждается в особом представлении. Искать сходства с мобильным приложением, в данном случае, нет особого смысла, тем более что их не так уж и много.

В мобильном менеджере доступен двухпанельный режим. Здесь он опционален и отключен изначально. На главной странице присутствуют основные разделы: корень файловой системы, фото, загрузки, SD-карта. В Total Commander нельзя реорганизовать рабочее пространство аналогично другим менеджерам, как, например, в ES Explorer (см. ниже).

В целом, интерфейс статичен: нет режимов отображения, выдвижных панелей, переключения между окнами и т. д. Визуальная составляющая приложения аскетична, изменить можно только настройки шрифта и цвет. Взамен пользователь получает производительность и отличную скорость работы, удобство навигации. В файловых операциях может быть задействовано перетаскивание, для быстрого перемещения предназначены история каталогов и закладки, подобно настольной версии.

Для управления данными предусмотрена нижняя панель, где доступны основные операции, такие как копирование, перемещение, удаление, zip-архивация, выделение файлов по маске. При необходимости, на эту панель также могут быть добавлены дополнительные элементы: пользовательские каталоги, внутренние команды и команды оболочки.

Для просмотра документов используется встроенный редактор, для мультимедиа — легкий проигрыватель с поддержкой стандартных форматов Android. Превью изображений в TC показываются без проблем, но для полноэкранного их отображения необходимо указать внешнее приложение.

По части поддержки протоколов и сервисов, Total Commander не особо выделяется. Из встроенного инструментария, можно отметить возможность передачи файлов по Bluetooth (OBEX) и поддержку локальной сети. Такие протоколы, как WebDAV и FTP, доступны для передачи после установки плагинов.

Резюме. Total Commander — быстрый и стабильный менеджер с акцентом на локальных файловых операциях, обладающий простым интерфейсом. Двухпанельный режим — отдельный «плюс», хотя некоторые пользователи сочтут более удобным многооконный менеджер. Работает со старыми версиями прошивок (от 1.6 и выше). Поддерживает несколько сетевых протоколов, просмотр мультимедиа форматов (за исключением изображений).

[−] Отсутствие просмотрщика изображений
[−] Нет поддержки облачных хранилищ
[+] Наличие двухпанельного режима
[+] Скорость работы

ES Explorer

ES Explorer — однопанельный файловый менеджер с поддержкой облачных сервисов, протоколов передачи и возможностью просмотра мультимедиа.

Адресная строка ES Explorer служит для навигации, по нажатию на нее открывается история переходов. С левой стороны экрана находится панель быстрого доступа, необходимая для навигации по закладкам, библиотеке и сетевым источникам. Также здесь находятся дополнительные инструменты: менеджер приложений, диспетчер задач, анализатор SD-карты, удаленный менеджер и другие.

Нижняя панель приложения сосредоточена на разнообразных файловых операциях, настроить ее по своему усмотрению нельзя. Разработчики отказались от привычного контекстного меню. При этом, управлять данными удобно, файловые операции «копировать/вырезать/удалить» всегда под рукой.

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

В ES Explorer имеется встроенный плеер для открытия аудио и видео. Доступны превью и полноэкранный просмотр изображений. Текстовый редактор работает с некоторыми офисными форматами, среди них — документы OpenOffice.

Для передачи данных в ES Explorer используются сетевые протоколы FTP, WebDAV и файловая система Samba. Кроме того, данные можно пересылать на облако (Dropbox, Яндекс.Диск, Google Drive, SkyDrive, Amazon S3, Box и др.), что, в принципе, и предполагает WebDAV.

Как уже было сказано, функциональность менеджера дополняется приложениями, которые доступны в секции «Средства» левой панели. Некоторые из них дублируют системные: менеджер приложений, диспетчер задач и т. п. Анализатор SDCard — инструмент, встречаемый также в других менеджерах, — необходим для анализа занимаемого дискового пространства. Удаленный доступ будет полезен при обмене файлами между мобильным устройством и компьютером по Wi-Fi. Кроме того, передавать данные можно и через Bluetooth, непосредственно в файловом браузере.

Резюме. ES Explorer будет полезен не только в качестве локального файлового менеджера. Он примечателен поддержкой сетевых протоколов, облачных хостингов и возможностью обмена данными между ПК и мобильными платформами. Большой плюс — полноценная поддержка медиа- и офисных форматов документов. Все эти функции предлагаются бесплатно и, как будет видно далее в путеводителе, подобная функциональность характерна больше для платных решений.

[+] Внутренний просмотр документов и мультимедиа
[+] Поддержка сетевых технологий
[+] Удобная навигация

Читайте также:  Android clock with alarm

X-plore File Manager

X-plore File Manager — файловый менеджер с поддержкой различных протоколов и сервисов и встроенным просмотром медиаданных.

На стартовой странице X-plore представлены ключевые разделы: доступ к сети и облачному хранилищу, основной памяти, SD-карте и, опционально, к защищенным системным файлам (root). Нужно отметить, что некоторые сетевые опции могут быть задействованы только при покупке полной версии программы. Сюда относятся передача файлов по Wi-Fi, синхронизация с ПК через браузер, SSH.

Первое, на что акцентируется внимание — это древовидное отображение данных, что не есть самый привычный мобильный вариант, но вполне удобный в применении. При переходе на следующий уровень древо раскрывается, позволяя при этом отследить полный путь от самого начала иерархии. Единственный момент, который вызывает неудобство — высокая плотность элементов. На этот случай, в настройках можно поварьировать с настройками высоты элементов и шрифтами.

Файловые операции — удаление, копирование, перемещение, архивация, распаковка и другие — доступны через контекстное меню. Настраиваемая боковая панель предназначена для доступа к основным функциям и частично дублирует контекстное меню.

Быстрый доступ осуществляется через избранное либо историю. Переключение панелей позволяет быстро переходить к данным из сетевых и локальных источников. Касательно навигации, также стоит отметить удобное множественное выделение и настраиваемые сочетания клавиш.

Из дополнительного инструментария следует отметить утилиту Disk map (карта диска). Она будет полезна при анализе дискового пространства и, следственно, для удаления ненужных данных. Также доступен диспетчер программ — замена стандартной утилиты практически тем же набором функций.

Поддержка облачных хранилищ представлена Google Drive, Dropbox, Box.net, SkyDrive, Яндекс.Диск и другими популярными сервисами. Поделиться файлами можно через почту, по Bluetooth, Wi-Fi, по сети, FTP или WebDAV (что также можно отнести к облачным функциям). Удобно то, что все необходимое для передачи файлов может быть собрано в одном месте — на домашней странице приложения.

X-plore отображает текстовую информацию, мультимедиа. Превью доступны непосредственно при иерархическом отображении. Галерея изображений достаточно быстра, но есть нарекание: неудобно реализовано пролистывание файлов, смещение по вертикали стоило бы убрать.

Резюме. X-plore File Manager — программа с интерфейсом, требующим привыкания. Это не нарекание, а некоторая особенность, которая не каждому пользователю придется по вкусу, ввиду отсутствия других режимов отображения. Менеджер удобен при обращении с сетевыми протоколами, одновременно может быть задействовано несколько стандартов. Также X-plore предоставляет гибкие настройки и включает в себя дополнительный набор системных инструментов.

[−] Отсутствие альтернативных режимов просмотра данных
[+] Высокая скорость работы
[+] Поддержка облачных сервисов и протоколов передачи
[+] Анализ занимаемого пространства

FX File Explorer

FX File Explorer — простой файловый менеджер, облегченная версия приложения FX File Explorer Plus. Ознакомительный режим FX Plus доступен 7 дней, после чего можно установить платное дополнение или продолжить использование, но уже с базовым инструментарием.

С главной страницы FX осуществляется доступ к закладкам, утилитам и файлам. В свою очередь, последний раздел позволяет работать с данными карты памяти, основной памятью и системными данными в режиме root-доступа — для получения последнего необходимо установить расширение. В расширенной версии FX Plus также доступны управление медиа, сетевыми каталогами, доступ к облачным хостингам и передача данных по Bluetooth.

Интерфейс FX, Holo, очень удобен, основная его черта — наличие «воздуха» между элементами. Менеджер поддерживает многооконность, позволяя быстро переходить между разделами. Для этого предназначена панель действий, Actions.

Аналогично Total Commander, в наличии имеется split view, или совмещенный режим, позволяющий отобразить в одном окне два рабочих экрана. В данном случае, расположение панелей не горизонтальное, а вертикальное. Поддерживаются режимы переключения, независимо для каждой панели: в виде списка, сетки или в порядке занимаемого пространства (Usage). Последний вариант — своего рода продолжение инструментов для очистки (Cleaning Tools). Usage позволяет проанализировать распределение данных на диске по их типам.

Еще две примечательные особенности относятся к управлению: это изменение масштаба и выделение объекта посредством слайдинга.

В состав FX File Explorer включен txt/hex-редактор, просмотрщик изображений, медиа- и аудио- проигрыватели. В FX Plus имеется возможность конвертации Google Docs файлов в форматы Microsoft Word, Excel, PowerPoint, OpenDocument, PDF и прочие.

Резюме. По своей функциональности, бесплатная версия FX File Explorer ближе всего соответствует Total Commander, так как поддержка сетевых протоколов и облачных сервисов отсутствует. Приложение будет полезно в том случае, если необходимы только базовые файловые операции или в целях ознакомления с расширенной версией FX Plus.

[−] Невысокая функциональность
[+] Удобный просторный интерфейс
[+] Мощный архиватор
[+] Продуманная навигация

File Manager

File Manager — простой однопанельный менеджер с поддержкой сетевых протоколов и облачных хранилищ.

Интерфейс приложения предельно прост: он состоит из основной области, с возможностью переключения отображения (сетка/список), и верхней панели инструментов. Эта панель включает в себя почти все функции, хотя некоторые дополнительные команды обнаруживаются и в контекстом меню. Недостатки в такой организации следующие: во-первых, для доступа к нужным кнопками приходится пролистывать панель; во-вторых, какая-либо группировка элементов отсутствует. С другой стороны, содержимое верхней панели можно изменить на свое усмотрение, минимизировать.

Для пакетной работы с файлами предназначен раздел «Много». С первого взгляда сложно определить назначение этой кнопки, и только по мере необходимости множественного выделения файлов все становится по местам. Неудобно то, что нет начальной страницы с закладками, хотя, например, можно добавить ярлыки. Нельзя организовать рабочую область для быстрого доступа к сетевым устройствам и файловым хранилищам.

Читайте также:  Power max для android

Если говорить о других сторонах инструментария File Manager, то здесь ситуация более интересна. Поддерживается доступ к файлам и потоковая загрузка медиа по локальной сети и протоколам SMB, FTP, FTPS, SFTP и WebDAV. Список облачных хранилищ включает в себя традиционный набор (Dropbox, Box, Google Drive, SkyDrive, SugarSync, Яндекс. Диск).

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

Резюме. Приложение File Manager интуитивно в использовании и вполне функционально, благодаря широкой поддержке протоколов и облачных сервисов. При этом оно недостаточно гибко в навигации. Скажем, боковая панель (см. X-plore или FX File Explorer) или жесты были бы кстати.

[−] Неудобная навигация
[+] Поддержка протоколов и файловых хранилищ
[+] Мультимедийные функции, включая потоковое воспроизведение

Источник

AndroidDev #1. Создаем файловый менеджер

Android — перспективная и динамично развивающаяся операционная система. И многие программисты хотят научиться программировать приложения для OS Android, но беглый поиск структурированных материалов в сети Интернет и, в частности, Рунете, приводит их в ступор. Действительно, до сих пор существует проблема поиска обучающих статей (особенно на русском языке) по разработке приложений для этой весьма популярной операционной системы.
Ну, что ж, будем потихоньку улучшать данную ситуацию при помощи Хабра.
Сразу предупрежу, что материалы предназначены для тех, кто не имеет опыта разработки приложений для Android, но очень-очень хочет этот опыт приобрести.

Готовимся

Первое, что нам потребуется — установить и настроить IDE. Мы будем использовать Eclipse, однако важно отметить, что существует возможность использовать любую среду разработки.
Подробная инструкция по установке и настройке IDE Eclipse содержится в документации на сайте Android. Если вкратце:

  • Устанавливаем Eclipse Classic отсюда
  • Устанавливаем SDK Starter Package отсюда
  • Устанавливаем ADT Plugin при помощи данной инструкции, по той же инструкции выполняем действия, описанные в разделе Configuring the ADT Plugin
  • Запускаем Eclipse, нажимаем Window > Android SDK and AVD Manager и выбираем необходимые компоненты для установки. Самый простой вариант — выбрать всё, но необходимый минимум — SDK Platform Android 2.1 (или 2.2), Android SDK Tools, Android SDK Platform-tools

После всего этого мы имеем рабочую среду для разработки приложений для ОС Android. Но нам нужно где-то проверять наши приложения, верно? И тут мы стоим перед выбором — либо осуществлять эти действия в эмуляторе, либо на реальном устройстве.
Эмулятор можно добавить в уже знакомом нам окне Android SDK and AVD Manager, нажав кнопку New. во вкладке Virtual Devices. Заполняем поле Name, указываем версию API и добавляем наше виртуальное устройство.

Если же вы хотите тестировать свои приложения на реальном устройстве, смотрите сюда. Важно отметить, что в конечном счёте вам всё равно придётся проверять своё приложение на реальном устройстве, ведь немного странно выпускать приложение, допустим, в Android Market, как следует его не протестировав на действующих образцах телефонов/планшетов.

Создаем проект

Пришло время создать новый проект. Для этого жмём File > New > Project, выбираем в появившемся окне Android > Android Project и жмем Next. Появляется следующее окно, которое мы заполняем примерно так:

Теперь немного объяснений.
Project Name — имя проекта в среде Eclipse.
Application Name — название приложение, то самое, которое будут видеть пользователи на конечном Android-устройстве.
Package Name — название пакета. Тут всё аналогично любому Java-проекту. Важно знать, что данное имя должно быть уникальным среди всех пакетов, имеющихся на конечном устройстве. Посему достаточно эффективна классическая логика давать название, соответствующего веб-домену, записанному наоборот (как тут — ru.alwake), а далее — название самого проекта. Данный шаг в какой-то мере обеспечит уникальность названия.
Create Activity — имя класса, который в будущем будет являться подклассом класса Activity.
Min SDK Version — минимальная версия SDK. Если посмотреть выше на список Build Target в данном окне, то можно прийти к выводу, что наше приложение запускается только для устройств с Android >= 2.1 (Android 2.1 соответствует версия SDK 7). В данном случае это не очень принципиально, но пусть будет так.

Теперь можно смело нажать Finish и лицезреть свой проект в панели Package Exploper. Проект создан и неплохо бы ознакомиться с некоторой теоретической основой по устройству Android-приложений, которая неплохо изложена тут.

О нашем проекте

Для начала определимся, что мы хотим от нашего файлового менеджера. В идеале — полную замену ASTRO и eStrongs. Ну, а пока нам требуется обеспечить базовую навигацию по каталогам, причем под «базовой» мы понимаем, что нам не нужно заходить в те папки, в которые имеет доступ только root. Помимо этого, в поле сверху у нас будет отображаться наше текущее расположение в структуре каталогов.

Ну, а сначала поговорим о структуре проекта:

/res/drawable-*dpi — в этих трёх папках у нас содержатся ресурсы, предназначенные для разных расширений экрана. На данный момент там имеется всего-навсего файл icon.png, то есть иконка нашего приложения.
/res/layout — в данной папке содержатся xml-файлы, описывающие внешний вид форм и различных элементов форм. После создания проекта там уже имеется файл main.xml, также там нужно создать файл row.xml, который будет описывать внешний вид каждого отдельно взятого ряда (то есть элемента списка нашего файлового древа).
/res/values — тут у нас располагаются какие-либо константы, которые мы можем использовать в нашем проекте.

Читайте также:  Как записать контакты с андроид

Стоит отметить, что данные XML-файлы можно редактировать как в визуальном режиме, так и в текстовом (меняя непосредственно xml-код). Мы будем действовать по второму способу. Для редактирования кода необходимо нажать правой кнопкой по xml-файлу в панели Package Explorer и выбрать Open with > Text Editor. Это так, на будущее 😉

Файл FileManager.java — в данном файле, собственно, содержится наш основной класс для главной и единственной формы приложения. Весь наш код в данном проекте будет размещаться тут.
Файл AndroidManifest.xml — файл с основными свойствами нашего проекта, в частности, заданными при создании проекта (такими как, например, название). Соответственно, чтобы поменять, предположим, название, нам нужно ковырять данный файл.

Остальные файлы нас пока мало интересуют.

Начинаем писать код

В общем-то, всё что было выше — базовые сведения, которые каждый Android-программист обязан знать. А теперь пришла пора разбираться непосредственно с нашим кодом.

xml version =»1.0″ encoding =»utf-8″ ? >
TableLayout xmlns:android =»http://schemas.android.com/apk/res/android»
android:orientation =»vertical»
android:layout_width =»fill_parent»
android:layout_height =»fill_parent» >

TableRow >
TextView android:id =»@+id/titleManager»
android:layout_width =»fill_parent»
android:layout_height =»fill_parent»
android:padding =»5dip»
/>
TableRow >
TableRow >
ListView android:id =»@id/android:list»
android:layout_width =»fill_parent»
android:layout_height =»fill_parent»
android:layout_weight =»2″
android:drawSelectorOnTop =»false»/>
TableRow >
TableLayout >

* This source code was highlighted with Source Code Highlighter .

Здесь у нас задается разметка для нашего основного Layout’а формы. TableLayout здесь значит, что элементы у нас выстроены в виде таблицы. Далее в верхней ячейке таблицы размещается элемент TextView (текстовое поле), а в нижней ячейке — ListView (список). Оба элемента имеют id, используя который, мы можем изменять содержимое элементов. Например, используя R.id.titleManager для нашего текстового поля TextView.

xml version =»1.0″ encoding =»utf-8″ ? >
TextView
xmlns:android =»http://schemas.android.com/apk/res/android»
android:layout_width =»fill_parent»
android:layout_height =»40sp»
android:padding =»5dip»
android:gravity =»center_vertical»
/>

* This source code was highlighted with Source Code Highlighter .

Здесь мы задаем разметку для каждого элемента нашего ListView, то есть непосредственно для каждой отдельно взятой папки или каждого файла. В данном коде у нас задается ширина каждого элемента, высота, отступ (padding) и выравнивание center_vertical — то есть центрование по вертикали.

  1. package ru.alwake.filemanager;
  2. import java.io. File ;
  3. import java.util. ArrayList ;
  4. import java.util. List ;
  5. import android.app.AlertDialog;
  6. import android.app.ListActivity;
  7. import android.content.DialogInterface;
  8. import android.content.Intent;
  9. import android.content.DialogInterface.OnClickListener;
  10. import android.net. Uri ;
  11. import android.os.Bundle;
  12. import android.view.View;
  13. import android.widget.ArrayAdapter;
  14. import android.widget.ListView;
  15. import android.widget.TextView;
  16. public class FileManager extends ListActivity <
  17. private List String > directoryEntries = new ArrayList String >();
  18. private File currentDirectory = new File ( «/» );
  19. //when application started
  20. @Override
  21. public void onCreate(Bundle icicle) <
  22. super.onCreate(icicle);
  23. //set main layout
  24. setContentView(R.layout.main);
  25. //browse to root directory
  26. browseTo( new File ( «/» ));
  27. >
  28. //browse to parent directory
  29. private void upOneLevel() <
  30. if ( this .currentDirectory.getParent() != null ) <
  31. this .browseTo( this .currentDirectory.getParentFile());
  32. >
  33. >
  34. //browse to file or directory
  35. private void browseTo(final File aDirectory) <
  36. //if we want to browse directory
  37. if (aDirectory.isDirectory()) <
  38. //fill list with files from this directory
  39. this .currentDirectory = aDirectory;
  40. fill(aDirectory.listFiles());
  41. //set titleManager text
  42. TextView titleManager = (TextView) findViewById(R.id.titleManager);
  43. titleManager.setText(aDirectory.getAbsolutePath());
  44. > else <
  45. //if we want to open file, show this dialog:
  46. //listener when YES button clicked
  47. OnClickListener okButtonListener = new OnClickListener() <
  48. public void onClick(DialogInterface arg0, int arg1) <
  49. //intent to navigate file
  50. Intent i = new Intent(android.content.Intent.ACTION_VIEW, Uri .parse( «file://» + aDirectory.getAbsolutePath()));
  51. //start this activity
  52. startActivity(i);
  53. >
  54. >;
  55. //listener when NO button clicked
  56. OnClickListener cancelButtonListener = new OnClickListener() <
  57. public void onClick(DialogInterface arg0, int arg1) <
  58. //do nothing
  59. //or add something you want
  60. >
  61. >;
  62. //create dialog
  63. new AlertDialog.Builder( this )
  64. .setTitle( «Подтверждение» ) //title
  65. .setMessage( «Хотите открыть файл » + aDirectory.getName() + «?» ) //message
  66. .setPositiveButton( «Да» , okButtonListener) //positive button
  67. .setNegativeButton( «Нет» , cancelButtonListener) //negative button
  68. .show(); //show dialog
  69. >
  70. >
  71. //fill list
  72. private void fill( File [] files) <
  73. //clear list
  74. this .directoryEntries.clear();
  75. if ( this .currentDirectory.getParent() != null )
  76. this .directoryEntries.add( «..» );
  77. //add every file into list
  78. for ( File file : files) <
  79. this .directoryEntries.add(file.getAbsolutePath());
  80. >
  81. //create array adapter to show everything
  82. ArrayAdapter String > directoryList = new ArrayAdapter String >( this , R.layout.row, this .directoryEntries);
  83. this .setListAdapter(directoryList);
  84. >
  85. //when you clicked onto item
  86. @Override
  87. protected void onListItemClick(ListView l, View v, int position, long id) <
  88. //get selected file name
  89. int selectionRowID = position;
  90. String selectedFileString = this .directoryEntries. get (selectionRowID);
  91. //if we select «..» then go upper
  92. if (selectedFileString.equals( «..» )) <
  93. this .upOneLevel();
  94. > else <
  95. //browse to clicked file or directory using browseTo()
  96. File clickedFile = null ;
  97. clickedFile = new File (selectedFileString);
  98. if (clickedFile != null )
  99. this .browseTo(clickedFile);
  100. >
  101. >
  102. >

* This source code was highlighted with Source Code Highlighter .

В начале указывается название пакета (package name).
Строки 2-18 отвечают за импорт нужных нам библиотек. Важно отметить, что импорт библиотек Eclipse может производить автоматически, как только встретит что-нибудь неизвестное.
В данном коде у нас всего 5 достаточно очевидных функций, в которых несложно разобраться. И это — скелет приложения, обеспечивающий основную навигацию по файловой структуре. Однако у данного приложения существует одна проблема — при попытке зайти в директорию, доступ к которой разрешен только суперпользователю, мы получаем ошибку и приложение завершает работу.
Соответственно, в следующий раз мы подумаем как избавиться от этой ошибки, а также о том, как сделать отображение иконок, соответствующих типу файла. Кроме того, мы подумаем о реализации функции Copy-Paste в нашем файловом менеджере.

В конечном счёте предполагается получить большое и грамотное приложение, которое должно дать основную информацию об аспектах программирования под Android.

Источник

Оцените статью