Задание
Разработать приложение удаленный файловый менеджер с поддержкой FTP протокола, с возможностью подключения к FTP-серверу и передачи файлов между устройствами.
Функционал программы
- Подлключение к FTP-серверу
- Скачивание файлов
- Загрузка файлов на сервер
- Создание папок
- Удаление файлов и папок
- Получение информации о файле
Содержание отчета к программе
1.ТЕХНИЧЕСКОЕ ЗАДАНИЕ .......................................................................................... 5
2.Научно-исследовательская часть .............................................................................. 8
2.1 Постановка задачи проетирования ......................................................................... 8
2.2 Описание предметной области ............................................................................... 9
2.2.1 Android .............................................................................................................. 9
2.2.2 Работа приложения в Android............................................................................... 10
2.2.3 Работа с FTP........................................................................................................ 12
2.3. Анализ аналогов и прототипов .............................................................................. 14
2.4. Перечень задач, подлежащих решению в процессе разработки................................ 17
2.5. Обоснование выбора инструментов и платформы для разработки. ........................... 17
3. Проектно-конструкторская часть. ............................................................................. 20
3.1. Разработка структуры приложения. . ...................................................................... 20
3.2. Разработка архитектуры приложения. . ................................................................... 21
3.3. Разработка систем предачи информации. ................................................................ 22
3.4. Разработка интерфейса взаимодействия с пользователя с системой. ......................... 26
4. Проектно-технологическая часть. .............................................................................. 31
4.1. Тестирование и отладка макета рабочей программы. ................................................ 31
4.2. Разработка руководства пользователя и программиста. ............................................ 35
4.2.1 Руководство обычного пользователя. ..................................................................... 35
4.3 Экспериментальные данные тестирование процедур. ................................................. 37
4.4 Разработка спецификаций на оснащение подразделений. ........................................... 39
Заключение................................................................................................................... 41
Список использованных источников. .............................................................................. 42
Часть отчёта
Для тестирования функций приложения и анализа, используемых приложением ресурсов, были использован эмулятор Google Pixel 4 c операционной системой Android 8.1 API 27.
Проверена нагрузка на систему и сеть при передаче файлов. (Рис. 21 - 22)
Рисунок 21 – Нагрузка на систему при передаче файлов.
Рисунок 22 – Нагрузка на сеть при передаче файлов.
В данных тестах было выявлено:
При запуске приложения:
· Нагрузка на процессор не превышает 60%
· Нагрузка на память не превышает 350 MB
· Энерго потребление было на высоком уровне.
При подключении:
· Нагрузка на процессор не превышает 65%
· Нагрузка на память не превышает 130 MB
· Энерго потребление было на высоком уровне.
· Нагрузка на сеть не превышает 2 KB/s
При передаче файлов:
· Нагрузка на процессор не превышает 35%
· Нагрузка на память не превышает 80 MB
· Энерго потребление было на среднем уровне.
· Нагрузка на сеть не превышает 8.3 МB/s
Фрагмент программного кода
private var ftpClient = FTPClient() //Создаем экземпляр класса FTPClient var isConnected = false //Флаг подключения private set // Функция подлкючения к серверу fun connect(hostname: String) { try { val address = InetAddress.getByName(hostname) ftpClient.connect(address) val replyCode = ftpClient.replyCode println("Code: ${replyCode} ${ftpClient.replyStrings.joinToString("")}") isConnected = FTPReply.isPositiveCompletion(replyCode) if (!isConnected) { println("Disconnecting") ftpClient.disconnect() } } catch (ex: IOException) { ex.printStackTrace() } } // Функция подклчения к серверу с указным портом fun connect(hostname: String, port: Int) { try { val address = InetAddress.getByName(hostname) ftpClient.connect(address, port) val replyCode = ftpClient.replyCode isConnected = FTPReply.isPositiveCompletion(replyCode) if (!isConnected) { println("Disconnecting") ftpClient.disconnect() } } catch (ex: IOException) { ex.printStackTrace() } } // Авторизация при подключении fun login(username: String, password: String) { try { ftpClient.login(username, password) ftpClient.setFileType(FTP.BINARY_FILE_TYPE) ftpClient.enterLocalPassiveMode() } catch (ex: IOException) { ex.printStackTrace() } }
Скриншот архива с проектом
В архиве:
- Папка с полным проектом для Android Studio
- Скомпилированная программа в формате .apk для Android
- Расчётно пояснительная записка 42 стр. (в формате .docx)
- 4 листа c UML диаграммами, по алгоритмам и логике работы программы (в формате .vsdx и .png)
- Презентация для выступления
Пояснения по запуску программы
Запуск через APK файл
В папке с проект присутсвует APK файл с программой его можно найти по пути ...\AndroidFtpClient-master\app\build\outputs\apk\debug\app-debug.apk
Можно установить программу из это файла на свое Android устройство или эмулятор.
Запуск через проект
В архиве расположена папка с проектом для Android Studio, распакуйте папку в удобное для вас место. Откройте Android Studio, при запуске или в меню файл выбирает пункт откырть проект и выбирает папку, которая была в архиве.
После синхронизируете проект под вашу Android Studio, в меню файл выбираете пункт "Sync Project with Grandle Files".
После синхронизации запускаем проет на эмуляторе или физическом устройстве, подключеном через USB.
imlkenshi