0% found this document useful (0 votes)
16 views

Android Development Resources

Andorid related data helps in android app development
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views

Android Development Resources

Andorid related data helps in android app development
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

Software Requirements Specification CoreDe

Confidential only to read by developer working with [email protected]


Date: 18 September 2024 ------ Page: 1 of 8 ------ Version: 1.1

Table of Content
Introduction for CoreDe ............................................................................................................. 2
Requirements .............................................................................................................................. 3
ID 1.0 Folder structure............................................................................................................ 3
ID 2.0 Main pages .................................................................................................................. 3
ID 3.0 Overview page ............................................................................................................. 4
ID 3.1 Modify ..................................................................................................................... 4
ID 3.2 Delete ...................................................................................................................... 4
ID 3.3 Stop ......................................................................................................................... 4
ID 4.0 Run .............................................................................................................................. 4
ID 4.1 Run Copy ................................................................................................................ 4
ID 4.2 Run Compare .......................................................................................................... 5
ID 4.3 Run Delete............................................................................................................... 5
ID 4.4 Run Resize .............................................................................................................. 5
ID 5.0 Setting page ................................................................................................................. 6
ID 6.0 Expert page .................................................................................................................. 7
ID 7.0 SMB page .................................................................................................................... 7
ID 8.0 Localization and Language Support ............................................................................ 7
ID 9.0 Authentication and Security ........................................................................................ 7
ID 10.0 Errors ......................................................................................................................... 7
Buglist ........................................................................................................................................ 8
History ........................................................................................................................................ 8
Software Requirements Specification CoreDe
Confidential only to read by developer working with [email protected]
Date: 18 September 2024 ------ Page: 2 of 8 ------ Version: 1.1

Introduction for CoreDe


I need software development for an Android app called "CoreDe" that helps save storage on the
phone by copying or moving files to a Network Attached Storage (NAS) via SMB, resizing images and
videos, and deleting files on the phone. The app shall be developed using Android Studio and run on
phones with Android 7.0 and above.

The app features four main pages: an Overview page, a Settings page, an SMB page, and an Expert
page, navigable via a menu in the top-left corner. The Overview page displays a list of tasks that users
can modify, run, stop, or delete. The Settings page allows users to create and configure tasks with
elements like Task Number, Task Name, Source and Destination Paths (selectable from local or SMB
paths using an integrated file picker), Trigger options, Date, and Task Type (Copy, Compare, Resize, or
Delete). Depending on the selected Task Type, additional fields appear—for example, resizing factors
for images and videos or file size criteria for deletion tasks.

Tasks and SMB profiles are securely stored as encrypted XML files in the app's internal storage using
Android's EncryptedFile API and Keystore system, ensuring data persistence and protection from
cross-app access. The app requires network permissions to transfer files to NAS devices via SMB. On
the SMB page, users can enter necessary connection details test the connection, and save the profile.
The Expert page displays detailed logs of ongoing activities, lists all open-source packages used and
shows the app version. All text elements utilize the strings.xml resource file to facilitate future
translation. Date and time formats automatically adjust based on the user's locale settings.
Media processing tasks support all video and image formats compatible with FFmpeg and the app
ensures tasks continue running even if the phone display turns off or the app is closed.

Expected deliverables:

• Project file with source code for the app to be opened in Android Studio Koala.
• CoreDe.Apk compile version to test on the Phone.
Software Requirements Specification CoreDe
Confidential only to read by developer working with [email protected]
Date: 18 September 2024 ------ Page: 3 of 8 ------ Version: 1.1
Requirements
ID 1.0 Folder structure Requirement:
The code shall be following the standard structure for a app as following.

root/

├── app/ # The core Android app module
│ ├── manifests/ # Contains AndroidManifest.xml and related manifest files
│ │ └── AndroidManifest.xml # Defines app components, permissions, etc.
│ │
│ ├── java/ # Contains Java/Kotlin source code files organized by package
│ │ └── com/example/yourapp/
│ │ ├── MainActivity.kt # Main activity for the app
│ │ ├── data/ # Data handling (models, repositories, etc.)
│ │ ├── ui/ # UI-related components (Activities, Fragments, ViewModels)
│ │ └── utils/ # Utility classes (helpers, constants, extensions)
│ │
│ ├── res/ # Resource directory for UI elements and other non-code resources
│ │ ├── drawable/ # Image and graphic resources (PNG, JPG, XML shapes, etc.)
│ │ ├── layout/ # Layout XML files for UI (Activities, Fragments, Views)
│ │ ├── mipmap/ # Launcher icons for different device densities
│ │ ├── values/ # Stores XML files for strings, colors, dimensions, styles
│ │ ├── anim/ # XML files for defining animations
│ │ ├── xml/ # Miscellaneous XML files (e.g., backup configurations, custom settings)
│ │ └── menu/ # Menu resource files for options menus and context menus

├── build/ # Auto-generated build output (not to be modified manually)
├── gradle/ # Gradle wrapper for build scripts
├── build.gradle # Project-wide Gradle build configuration file
├── settings.gradle # Settings file to manage modules in a multi-module project
├── .gitignore # Files to be ignored by version control (e.g., unnecessary build files)
└── README.md # Documentation file with project setup and usage instructions

ID 2.0 Main pages requirement:


The app has 4 main pages an overview page, a setting page, a SMB page and an expert page. The
start page is the overview page. The app has on the top a field showing the page name. On the left
top corner is a button which opens a menu to change between the pages.
Software Requirements Specification CoreDe
Confidential only to read by developer working with [email protected]
Date: 18 September 2024 ------ Page: 4 of 8 ------ Version: 1.1
ID 3.0 Overview page requirement:
The overview page shows a list of tasks. The list is populated with the task are saved in the internal
storage in XML and updated by loading the overview page.

Each shown task consists following elements:


-String Name is the name of the saved task as XML. The file name is “Task No” separated by “-“
and the “Task Name”.
-Sting Date is the date save in the XML file.
-Sting Trigger is the trigger save in the XML file and defines the next task to run.
-Button Set When the button Set is pressed the options Modify, Run, Stop and Delete are shown.

ID 3.1 Modify requirement:


When the option Modify is selected the Setting Page opens with the information of the selected task.

ID 3.2 Delete requirement:


When the option Delete is selected the saved task as XML is searched and deleted for the internal
storage. The overview page is reloaded to update shown tasks.

ID 3.3 Stop requirement:


When the option Stop is selected the running task will be stopped.

ID 4.0 Run requirement:


When the option Run is selected the task will be performed with the information of the selected task.
The “Type:” Copy, Compare, Resize, Delete is loaded and determine which routine is performed. The
task shall continue even if phone display tuns off or the app is closed. Only one task can run at the
time.

ID 4.1 Run Copy requirement:


The routine copies the files in folder “Source Path:” to folder “Destination Path:”. Files with the same
file name are skipped. When all files are copied in the log are the number of copied and skipped files
are shown. When all files are copied the next task defined at “Trigger:” is started or stopped defined
with none.
Before the next task is started the field “Date” of the current task is updated with the current time.
Software Requirements Specification CoreDe
Confidential only to read by developer working with [email protected]
Date: 18 September 2024 ------ Page: 5 of 8 ------ Version: 1.1
ID 4.2 Run Compare requirement:
The routine compares the files in folder “Source Path” to folder “B Path” by file name and check that
the size is bigger as zero. Also, the median file size of “Source Path” and “Destination Path” are
calculated. The results should say:

all [number of files] files of path “Source Path” are found in “Destination Path”
all check files [number of files] have a size greater as zero.
[number of files] are found with the size zero.
the median of “Source Path”: [Median of a path]
the median of “Destination Path”: [Median of a path]

The result is shown in log on the expert page. If all files of “Source Path” are found in “Destination
Path” then the next task defined at “Trigger:” is started or stopped defined with none. If not all files
of “Source Path” are found in “Destination Path” then stop the task and show the stop in the log.
Before the next task is started the field “Date” of the current task is updated with the current time.

ID 4.3 Run Delete requirement:


The routine deletes all files in the "Source Path" with the specified "extension" and deletes files that
are either larger than the defined "size" when the "way" indicates it, or deletes files that are smaller
than the defined "size" when the "way" specifies it.

ID 4.4 Run Resize requirement:


The routine resizes the image or video to the target resolution defined by “factor”. The files in folder
“Source Path:” are store the resized file with the same file name and the same attributes (taken date,
GPS) in folder “Destination Path:”. When the file name exists already the file is skipped. In the log
shall shown the number of resized files and the number of skipped files. If all image files in “Source
Path” are resized and stored in “Destination Path” then the next task defined at “Trigger:” is started
or stopped defined with none. Before the next task is started the field “Date” of the current task is
updated with the current time.
Software Requirements Specification CoreDe
Confidential only to read by developer working with [email protected]
Date: 18 September 2024 ------ Page: 6 of 8 ------ Version: 1.1
ID 5.0 Setting page requirement:
The setting page creates the task and has the following elements.

A field named “Task No” it is the highest number of all stored task and will be updated when
the page Setting is open. highest number is found by search all the
saved task names in the internal storage. The file name is “Task No”
separated by “-“ and the “Task Name”.

A field named “Task Name” which can be defined by the user.

A field named “Source Path” which opens a dialog to choose a path from the phone. When a SMB
profile exists, it shall be possible to choose a path from the server.

A field named “Destination Path” which opens a dialog to choose a path from the phone or
from the NAS when a SMB profile exists. When option Delete
is chosen the field “Destination Path:” disappears.

A drop-down menu named “Trigger” which show the already saved task. When no task is available
the only option is “none”

A field named “Date” which shows the last date time of task was running or the time and
date of creating the task.

A button named “Save Task” which save the information to the task as XML file in the internal
storage. The file name is “Task No” separated by “-“ and the “Task
Name”. After saving returns to the overview page.

A drop-down menu named “Type” with the options Copy, Compare, Resize, Delete

When option Resize is chosen the additional elements appear


drop-down menu named “factor” appears with the options for images of 1MP, 1.6MP,
2MP, 4MP, 8MP and with the options for videos of
240p, 360p, 480p, 720p, 1080p

field “extension” defines the extension of the files to manipulate. Note: all video and
image formats supported by FFmpeg should be available. video:
mp4, avi, mkv, mov, wmv, flv, webm, 3gp, mpeg, mpg, ogg, ogv, mts,
m2ts, ts, vob, m4v, hevc, h265 image: jpg, jpeg, png, bmp, tiff, gif,
webp

When option Delete is chosen the „Destination Path:” disappears and additional elements appear:

field “size” this field defines the size in kiloByte

field “extension” defines the extension of the files to manipulate e.g. JPEG, PNG, AVI,
MP4, MOV, MkV

drop-down menu “way” with the option “delete files bigger as size” or “delete files smaller as
size”
Software Requirements Specification CoreDe
Confidential only to read by developer working with [email protected]
Date: 18 September 2024 ------ Page: 7 of 8 ------ Version: 1.1
ID 6.0 Expert page requirement:
The Expert page shall display a log string that provides details of the ongoing activities. Additionally,
it shall include a field that lists all open-source packages used in the app, such as FFmpegKit or
MobileFFmpeg, and a field that shows the current version of the app.

ID 7.0 SMB page requirement:


The SMB page shall request all necessary information to establish an SMB client connection,
including fields for server address, port, username, password, domain/workgroup, and selection of
the SMB protocol version (SMB1, SMB2, SMB3). The page shall include two buttons: one to test the
connection and another to save the SMB profile as an encrypted XML file in the app's internal
storage.

ID 8.0 Localization and Language Support requirements:


All text elements in the app shall use the `strings.xml` resource file to prepare for future translations
into English, German, French, and other languages. Date and time displays shall automatically format
according to the user's locale settings: for German and French locales, dates shall be shown in the
format `dd.MM.yyyy` with 24-hour time; for English locales, dates shall be shown in the format
`MM/dd/yyyy` with 12-hour time including AM/PM indicators.

ID 9.0 Authentication and Security requirements:


Storage of Tasks and SMB Profiles: The internal storage shall be used for storing tasks in XML format
because it simplifies future extensions without requiring modifications to a Room database.
SMB profiles shall also be stored in the internal storage. According to Google's guidelines, the
internal storage is protected from cross-app access, providing a level of security for stored data.
Network Permissions:
The app requires network permissions to transfer files to Network Attached Storage (NAS) devices.

ID 10.0 Errors Handling requirements:


All exceptions shall be catches log in on expert page.
Software Requirements Specification CoreDe
Confidential only to read by developer working with [email protected]
Date: 18 September 2024 ------ Page: 8 of 8 ------ Version: 1.1
Buglist
Version Depiction
N/A N/A

History
Version Depiction
1.0 First version
1.1 Added to the requirement ID 4.4 Run Resize that also the attributes (taken date, GPS)
are the same as original file

You might also like