Tải bản đầy đủ (.docx) (31 trang)

Quản lý tập tin và thư mục trên android

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (865.6 KB, 31 trang )

|
ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CỘNG NGHỆ PHẦN MỀM
----------

BÁO CÁO CUỒI KỲ

QUẢN LÝ TẬP TIN & THƯ MỤC
TRÊN ANROID

Giảng viên hướng dẫn:

ThS. PHAN NGUYỆT MINH

Nhóm 2

TP. Hồ Chí Minh, tháng 12 năm 2013


LỜI CẢM ƠN
---------Lời đầu tiên, nhóm em xin chân thành cảm ơn ThS. Phan Nguyệt Minh! Cô đã
tận tình chỉ bảo, truyền đạt những kiến thức vô cùng bổ ích, quý báu cũng như những
ví dụ cụ thể, sinh động, hấp dẫn để nhóm em có thể thực hiện tốt đề tài này.
Nhóm em cũng xin cảm ơn Trường Đại Học Công Nghệ Thông Tin! Trường đã
tạo thư viện học tập rất lý tưởng cho chúng em có thể họp nhóm hiệu quả.

Nhóm em cũng xin gửi lời cảm ơn sâu sắc đến gia đình, bạn bè và những người
thân đã động viên, cổ vũ về vật chất cũng như tinh thần giúp em vượt qua khó khăn,
trở ngại để tiếp tục hoàn thành đề tài.



Xin chân thành cảm ơn!

TP. HCM, tháng 12 – 2013
Nhóm thực hiện


MỤC LỤC


Lập trình nhúng căn bản – Ths Phan Nguyệt Minh

LỜI NÓI ĐẦU
----------

Trong thời đại công nghệ thông tin phát triển như vũ bão, nhịp sống con người
ngày càng nhanh, cũng chính vì thế mà các thiết bị di động cầm tay như máy tính bảng,
điện thoại thông minh ngày một phổ biến, đi kèm với chúng là những nền tảng hệ điều
hành mới cũng phát triển một cách mạnh mẽ, như hệ điều hành Android, iOS, Window
phone, Symbian OS ... Lập trình trên các thiết bị di động cũng ngày càng phát triển.
Nhiều công nghệ đã ra đời giúp chúng ta hiên thực hóa ý tưởng của mình trên các thiết
bị nhỏ gọn ấy. Việc ra đời của những chiếc điện thoại thông minh đã tạo nên một bước
ngoặt lớn cho nhân loại, có thể nói nó đã thay đổi hoàn toàn cuộc sống của con người.
Bây giờ, chúng ta có thể làm hầu như mọi thứ trên chiếc điện thoại di động của
mình(làm việc, giải trí, mua sắm, học tập, …).
Công việc của bạn đòi hỏi việc đi lại di chuyển nhiều, bạn không có điều kiện sử
dụng máy vi tính nhiều, bạn cần có nhiều tài liệu cần quản lý, hay bạn là người thích “tự
sướng” với chiếc điện thoại thông minh của mình và bạn muốn xem nhưng bức ảnh này,
hay chia sẻ chúng cho bạn bè hay là đơn giản chỉ là muốn thêm nhạc vào điện thoại của
bạn nhưng nhầm thư mục, nhưng bạn lại lười mở máy vi tính lên, hay cáp USB của dế

yêu của bạn đã bị hỏng, … bạn muốn thao tác với các tập tin, thư mục trong điện thoại
của bạn… Và quản lý tập tin/thư mục trên điện thoại là điều cần thiết. Nhận thức được
điều đó, nhóm chúng em đã phát triển một ứng dụng nho nhỏ để quản lý tập tin/thư mục
trên nền tảng hệ điều hành Android, ứng dụng mang tên “File Manager Adroid”.
Bài báo cáo của nhóm gồm có 6 phần chính:







Chương 1: Giới thiệu.
Chương 2: Phân tích.
Chương 3: Thiết kế.
Chương 4: Cài đặt và thử nghiệm.
Chương 5: Kết luận.
Chương 6: Tài liệu tham khảo.

Trang 4


Lập trình nhúng căn bản – Ths Phan Nguyệt Minh

NHẬN XÉT CỦA GIẢNG VIÊN
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................

................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
................................................................................................................................................
Trang 5


Lập trình nhúng căn bản – Ths Phan Nguyệt Minh

Chương 1 – GIỚI THIỆU
Đề tài: Ứng dụng quản lý tập tin & thư mục trên android

1.1 Hệ thống tập tin trong hệ diều hành Android
1.1.1 Tổng quan về hệ thống tập tin trên Android
Trong Android các file được tổ chức lưu trữ thành các thư mục theo mô hình phân
cấp. Tham chiếu đến 1 file bằng tên hoặc đường dẫn. Các câu lệnh thao tác file cho
phép thực hiện các chức năng như dịch chuyển, sao chép toàn bộ thư mục cùng với

các thư mục con chứa trong nó…
Có thể sử dụng các ký tự, dấu gạch dưới, chữ số, dấu chấm và dấu phảy để đặt tên
file. Không được bắt đầu một tên file bằng dấu chấm hay chữ số. Những ký tự khác
như “/”, “?”, “*”, là ký tự đặc biệt được dành riêng cho hệ thống. Chiều dài của tên
file có thể tới 256 ký tự. Trong hệ điều hành Android có sự phân biệt tên file chữ hoa
và chữ thường, điều đó có nghĩa là trong cùng một thư mục có thể tồn tại những file
có tên là: File, FILE, file…và chúng là những file khác nhau.
Tất cả các file trong Android có chung cấu trúc vật lý là chuỗi các byte. Cấu trúc
thống nhất này cho phép Android áp dụng khái niệm file cho mọi thành phần dữ liệu
trong hệ thống. Thư mục cũng như các thiết bị được xem như file. Chính việc xem
mọi thứ như các file cho phép Android quản lý và chuyển đổi dữ liệu một cách dễ
dàng. Một thư mục chứa các thông tin về thư mục, được tổ chức theo một định dạng
đặc biệt. Các thành phần được xem như file, chúng được phân biệt dựa trên kiểu file:
ordinary file, directory file, character device file và block device file.

1.1.2 Các kiểu tập tin trên Android
Trong hệ điều hành như Windows, người ta phân biệt rõ file (tập tin) và folder (hay
directory: thư mục) là 2 thành phần khác hẳn nhau. Tuy nhiên trên hệ điều hành Android
(cũng như Linux) thì coi directory cũng là file và nó là một loại file đặc biệt. Thực tế còn
một số loại file khác được liệt kê theo bảng sau:

Trang 6


Lập trình nhúng căn bản – Ths Phan Nguyệt Minh

Bảng 1.1. Liệt kê 1 số kiểu tập tin trong Android
Chữ cái biểu diễn
Kiểu tập tin
D

Thư mục (Directory)
B

File kiểu khối (block-type-special file)

C

File kiểu ký tự (character –type special file)

L

Liên kết tượng trưng (symbolic link)

P

File đường ống (pipe)

S

Socket

-

File bình thường (regular file)

1.1.3 Tổ chức quyền sở hữu và quyền hạn trên tập tin
Tương tự trên Linux, với hệ điều hành Android một file có thể liên kết với một người sử
dụng và một nhóm người sử dụng. Sự liên kết đó là một tập hợp các quyền hạn truy cập
bao gồm quyền được phép đọc (read), được phép ghi (write) và được phép thực thi
(execute).

Cụ thể như sau: một file sẽ có những quyền hạn tương ứng với 9 ký tự theo mẫu sau:
Với ký tự r w x nghĩa là có quyền tương ứng với ký hiệu viết tắt đó, - nghĩa là không có
quyền hạn đó.
Bảng 1.2. Tổ chức quyền sở hữu và quyền hạn trên tập tin
Owner
r/-

w/-

Owner group
x/-

r/-

w/-

Other
x/-

r/-

w/-

x/-

3 ký tự đầu tiên là quyền hạn của chủ nhân tệp tin.
3 ký tự giữa là quyền hạn của nhóm tài khoản sở hữu tệp tin.
3 ký tự cuối là quyền hạn của nhóm người không có quyền sở hữu tệp tin.
Ví dụ: Một file có dãy ký tự biểu diễn quyền hạn là rwx r-x r– thì điều đó có nghĩa:
3 ký tự đầu là rwx: chủ nhân tệp tin có quyền đọc, ghi và thực thi file.

3 ký tự tiếp theo là r-x thì nhóm tài khoản sở hữu tệp tin có quyền đọc và thực thi file
chứ không có quyền ghi file.
3 ký tự cuối là r– nghĩa là những người không sở hữu file chỉ được phép đọc mà không
được chỉnh sửa và chạy file.

Trang 7


Lập trình nhúng căn bản – Ths Phan Nguyệt Minh

1.2 Giới thiệu về đề tài
Hiện nay, lập trình ứng dụng cho di động là một công việc khá hấp dẫn và là
mảnh đất màu mỡ cho các lập trình viên, bên cạnh đó cũng có những khó khăn nhất
định. Các phiên bản hệ điều hành được cập nhật liên tục, có nhiều control và đặc biệt là
giới hạn về phần cứng(bộ nhớ ít, vi xử lý chậm, ..). Vì thế việc tối ưu mã nguồn chương
trình và thiết kế giao diện là những vấn đề được quan tâm hàng đầu của các lập trình
viên.
Ứng dụng File Manager trên Android của nhóm chúng em phát triển nhằm hỗ trợ
người dùng dễ dàng quản lý tập tin, thư mục, chia sẻ tập tin một cách dễ dàng, với giao
diện thân thiện, tiện dụng, đẹp mắt, và dễ sử dụng nhằm đem lại cảm giác thoải mái cho
người dùng.
Ứng dụng được xây dựng trên nền tảng hệ điều hành Android, sử dụng ngôn ngữ
Java và bộ thư viện Android SDK của Google được tích hợp trên Eclipse IDE.
Ngôn ngữ hỗ trợ: Tiếng Anh.
Phiên bản hệ điều hành Android 3.2 –
Android 4.3.
Android divice: KT Tech KM – E200

Trang 8



Lập trình nhúng căn bản – Ths Phan Nguyệt Minh

1.3 Mục tiêu
Mục tiêu của nhóm chúng em là phát triển và xây dụng một ứng dụng đơn giản
chạy trên các thiết bị di động.
Hiểu được cách hoạt động của một ứng dụng trên thiết bị di động, sau đó vận
dụng những kiến thức thu thập, học tập được vào các môn học sau này, luyện tập tư duy
logic cho công việc lập trình sau này. Củng cố các kỹ năng về làm việc nhóm, code
nhóm, đọc tài liệu tiếng anh, …
Với bộ thư viện Android SDK, cùng với những kiến thức về lập trình hướng đối
tượng, lập trình cấu trúc, và thiết kế giao diện từ các mông học trước, nhóm chúng em
đã hoàn thành ứng dụng đầu tay của mình. Tuy nhiên, ứng dụng còn một số thiếu sót do
chưa có nhiều kinh nghiệm trong lập trình di động cũng như thời gian tìm hiểu ngắn,
mong cô thông cảm. Hy vọng các phiên bản tiếp theo của nhóm chúng em sẽ có nhiều
tiến bộ, nhiều cải tiến hơn, nhiều tính năng hấp dẫn hơn.

1.4 Các chức năng chính
File Manager có các chức năng chính:
• Tạo mới tập tin, thư mục.
• Thực hiện các thao tác như: xóa, di chuyển, đổi tên, chia sẻ nhiều tập tin, thư
mục.
• Hỗ trợ người dùng chọn nhiều tập tin hoặc thư mục.
• Hỗ trợ tạo file .zip, unzip(giải nén) nhiều tập tin, thư mục.
• Tìm kiếm tập tin, thư mục.
• Hỗ trợ mở tập tin, xem thông tin tập tin, thư mục.
• Sắp xếp tập tin/thư mục theo tên, ngày, kiểu, kích thước, và theo mặc định.
• Hỗ trợ người dùng thanh cuộn ngang chức các phím tắt nhằm hỗ trợ người dùng
đi đến các thư mục thường dùng cần thiết, đồng thời có thể thoát nhanh ứng dụng.
• Hỗ trợ người dùng thiết lập cho ứng dụng ở mục setting.

• Hỗ trợ chương trình chơi nhạc(.mp3).

Trang 9


Lập trình nhúng căn bản – Ths Phan Nguyệt Minh

Chương 2 – PHÂN TÍCH
• Về mặt khái niệm, việc phân tích yêu cầu ứng dụng bao gồm ba nhóm hoạt động
chính sau:
 Làm rõ yêu cầu (Eliciting requirements): trao đổi, giao tiếp với khách hàng
và người dùng để xác định các yêu cầu của họ.
 Xem xét yêu cầu (Analyzing requirements): xác định xem các yêu cầu
được đặt ra có ở tình trạng không rõ ràng, không hoàn chỉnh, đa nghĩa,
hoặc mâu thuẫn hay không, và giải quyết các vấn đề đó.
 Làm tài liệu yêu cầu (Recording requirements): các yêu cầu có thể được
ghi lại theo nhiều hình thức, chẳng hạn các tài liệu ngôn ngữ tự nhiên,
các tình huống sử dụng (use case), câu chuyện người dùng (user story),
hoặc các đặc tả tiến trình.
• Các yêu cầu về ứng dụng của nhóm chúng em như sau:
 Ứng dụng thuộc loại ứng dụng dành cho điện thoại, máy tính bảng chạy hệ
điều hành Android.
 Có thể chạy trên các phiên bản Android 3.2 đến 4.3.
 Hỗ trợ đầy đủ các tính năng cơ bản về quản lý tập tin & thư mục trong
Android.
 Giao diện phải thiết kế đơn giản, đẹp mắt, dễ sử dụng.
 Hỗ trợ người dùng khi cần giúp đỡ.
 …

Trang

10


Lập trình nhúng căn bản – Ths Phan Nguyệt Minh

Chương 3 – THIẾT KẾ
3.1 Kiến trúc chương trình
Ứng dụng File Manager gồm các phần chính :





Mã nguồn(src)
Resource(res)
Library(libs)
Tập tin Manifest(AndroidManifest)

3.1.1 Mã nguồn(src)
Phần mã nguồn được chia thành 8 package, với mỗi
package chứa các class thực hiện các công việc, nhiệm vụ khác nhau.

• Package ray.filemanager.action
Chứa class FileManaget.action.java


Package ray.filemanager.activity
Chứa 3 class AudioPlayer.java, FileManagerActivity.java và class
Settings.java.


• Package ray.filemanager.adapter
Chứa class FileArrayAdapter.java
Trang
11


Lập trình nhúng căn bản – Ths Phan Nguyệt Minh

• Package ray.filemanager.callback
Chứa class FileManagerCallback.java

• Package ray.filemanager.exception
Chứa class LocationInvalidException.java



Chứa class FileItem.java

Package ray.filemanager.obj

• Package ray.filemanager.util
Chứa 3 class: FileSort.java, Preference.java và Util.java

• Package ray.filemanager.worker
Chứa 6 class: FileActionWorker.java, FileDeleteBackgroundWork.java,
FileMoverBackgroundWork.java,
FileUnZipBackgroundWork.java,
FileZipBackgroundWork.java, SearchBackgroundWork.java

Trang

12


Lập trình nhúng căn bản – Ths Phan Nguyệt Minh

3.1.2 Resource(res)

Phần resource(res) gồm các thư mục chứa các .xml ở các thư mục: anim,
drawable, layout, menu, values, xml, và các file hình ảnh nằm ở các thư mục:
drawable-hdpi, drawable-ldpi, drawable-mdpi, drawable-xhdpi, drawable-xxhdpi.
• Anim: chứa 2 file from_middle.xml và to_middle.xml, nhằm chuyển đối giữa các
hình hiển thị checkbox được chọn và bỏ chọn

• Drawable: chứa file cutom_btn_black.xml dùng để thiết kế các button trên
HorizontalScrollView ở Activity chính của ứng dụng, và file list_selector.xml
thực hiện việc đối màu background của các item được chọn trong ListView hiển
thị thông tin thư mục

• Layout : chứa các file .xml thiết kế giao diện cho các Activity của ứng dụng như:

Trang
13


Lập trình nhúng căn bản – Ths Phan Nguyệt Minh

Trang
14



Lập trình nhúng căn bản – Ths Phan Nguyệt Minh

• Menu: gồm các file .xml thiết kế Option Menu, các Context Menu.

• Values: gồm các file .xml

• Xml: chứa file settings.xml cài đặt giao diện cho Activity Settings của ứng dụng

3.1.3 Library
Ứng dụng của nhóm chúng em sử dụng thư viện ActionBarSherlock của Jake
Wharton,
phiên
bản
mới
nhất

4.4.0,
tại
trang
chủ:
để phục vụ việc thiết kế một số control.

3.1.4 Manifest
Để thực hiện các thao tác với tập tin & thư mục trong Internal Storage và External
Storage cần phải thêm dòng 2 dòng code bên dưới vào tập tin AndroidManifest.
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Trang

15


Lập trình nhúng căn bản – Ths Phan Nguyệt Minh

3.2 Các lớp và đối tượng
3.2.1 Đối tượng
Với đặc thù của ứng dụng là quản lý tập tin và thư mục nên đối tượng chính là tập
tin và thư mục.
Các đối tượng của ứng dụng nằm trong package ray.filemanager.obj.
Đối tượng FileItem được định nghĩa trong class FileItem.java, class FileItem
được implements từ lớp cơ sở là Comparable.
Các thuộc tính của FileItem:


: chỉ đường dẫn tuyệt đối của tập tin/thư mục.



: tên của tập tin/thư mục



: thể hiện số tập tin và thư mục có trong thư mục hoặc kích
thước của tập tin.



: thể hiện thời gian chỉnh sửa tập tin/thư mục lần cuối cùng.





: icon đại diện cho tập tin/thư mục.
: thể hiện FileItem này có được chọn hay không, giá trị
mặc định là “false”(không được chọn).

Các phương thức chính của đối tượng FileItem gồm: setPath(String path),
getPath(), setName(String name), getName(), setData(String data) , getData(),
setImage(String image), getImage(), isChecked(), setChecked(boolean isChecked), và
phương thức so sánh giữa 2 FileItem: compareTo(FileItem o).

3.2.2 Các lớp
** Lớp “FileManagerActivity”
Activity chính của ứng dụng, thực hiện các thao tác hiển thị thông tin các tập tin
& thư mục lên màn hình.
 Class này gồm danh sách các biến static final dùng để lưu các giá trị
mặc định cần sử dụng:

Trang
16


Lập trình nhúng căn bản – Ths Phan Nguyệt Minh

 Các biến lưu trữ các giá trị do người dùng cài đặt trên màn hình
Settings:

 Các biến thể hiện các control được thiết kế trong tập tin
activity_main.xml:


 Một số biến thành phần khác: adapter(FileArrayAdapter),
worker(FileActionWorker), m_CanPaste(có thể dán chưa),
mShowMenuSort( hiển thị Context menu sắp xếp hay không), currentDir(thư
mục hiện tại), root(thư mục gốc), i(biến đếm) ,strCurPath(đường dẫn hiện taiij),
comparator(kiểu sắp xếp);

Các phương thức, hàm:
 onCreate(): khởi tạo thể hiện ứng dụng, gọi giao diện, hiển thị các control
lên giao diện, khởi tạo các đối tượng cần thiết.
 onActivityResult(): thực hiện những thay đổi với result bởi một Activity
khác.
 onItemClick(): thực hiện sự kiện click vào một item trên ListView.
 onCreateOptionsMenu(),/onCreateContextMenu(): thực hiện việc load và
hiển thị option/context menu từ res/menu.
 onPrepareOptionsMenu(), onContextItemSelected(): kiểm tra các thay đổi,
chuẩn bị, cập nhật lại option menu khi có sự thay đổi.
 OnMenuItemSelected(): thực hiện sự kiện chọn một item trong menu.
 readUserSettings(): lấy thông số cài đặt ứng dụng do người dùng thiết đặt.
 initListView(), initCurrentDir(), initHorizontalScroll(): khởi tạo cho
ListView, thư mục hiện tại, HorizontalScrollView.
 onFileClick(): mở một tập tin khi nhấn vào item đó.
 setupSearchView(), onQueryTextChange(),onQueryTextSubmit(): khởi tạo
tìm kiếm tập tin, thư mục.
 fillFile(): lấy danh sách tất cả các tập tin & thư mục.
 refresh(): cập lại danh sách tập tin & thư mục hiện hành.
Trang
17



Lập trình nhúng căn bản – Ths Phan Nguyệt Minh

** Lớp “Settings”
Lớp này nhằm hỗ trợ người dùng thiết lập cài đặt cho ứng dụng, lớp Settings
extends từ lớp SherlockPreferenceActivity của thư viện ActionBarSherlock.
Phương thức onCreate(): khởi tạo một Preference bằng việc load từ resource file
settings.xml trong xml/settings.xml.
** Lớp “AutoPlayer”
Chứa các thuộc tính, phương thức để thực hiện việc mở tập tin audio, tạm dừng,
stop, các xử lý với audio.
** Lớp “FileManagerAction”
Lớp này chứa các phương thức tĩnh thực hiện các thao tác như tạo mới, đổi tên,
xóa , mở tập tin, lấy thông tin về thư mục, tập tin, thiết lập những item menu cần thiết
trong context menu ở Activity chính của ứng dụng.
Các phương thức:
 copyFile(), cutFile(): gán đường dẫn của tập tin/ thư mục cần copy/cut(di
chuyển). Hỗ trợ cập nhật option menu ở Activity chính.
 getContextMenuOptions(): thiết lập danh sách các item menu có trong
Option menu.
 openFile(): thực hiện mở một tập tin khi click vào item của tập tin đó trên
ListView.
 delete(), rename(), newFolder(), newFile(): (trả về kiểu boolean) thực hiện
các công việc xóa, đổi tên, tạo mới thư mục, tạo mới tập tin.
** Lớp “FileArrayAdapter”
Lớp này dùng để cung cấp dữ liệu, thông tin cần thiết để hiện thị lên ListView,
FileArrayAdapter extends từ lớp cơ sở là BasicAdapter.
Các thuộc tính: context, activity(activity của FileManagerActivity), fileList(List<Item>,
danh sách FileItem ).
Các biến: animation1, animation2(các animation của image thể hiển được chọn và không
được chọn), ivFlip(ảnh dùng để chuyển đổi), checkedCount(số item được chọn),

mMode(bên selections),…
 FileArrayAdapter(): constructor khởi tạo.
 getCount(): lấy số lượng FileItem trong fileList.
 getItemId(); lấy id của FileItem.
Trang
18


Lập trình nhúng căn bản – Ths Phan Nguyệt Minh

 getView(): thiết lập các hiển thị cần thiết cho các FileItem.
 setAnimationListners(), …
** Lớp “FileItem”
Lớp đã được trình bày ở phần
** Lớp “FileManagerCallback”
Lớp FileManagerCallback dùng để thực hiện việc chọn một hoặc nhiều item trên
ListView và tiến hành các thao tác với những FileItem được chọn, implements với
ActionMode.Callback.
Các thuộc tính: context, activity(activity của FileManagerActivity), fileList(List<Item>,
danh sách FileItem ), selectedListItems(danh sách FileItem đã được chọn).
 FileManagerCalback(): constructor khởi tạo
 onCreateActionMode(),onPrepareActionMode(),
onActionItemClicked(),
onDestroyActionMode(): các phương thức khởi tạo , chuẩn bị, sự kiện nhấn vào
menu item, hủy của ActionMode.
 createContextMenu(): hàm hiển thị lên context menu, được gọi ở
oncreateActionMode().
 createMenuItemShare(): hàm khởi tạo item share trên context menu, menu này sẽ
xuất hiện khi chúng ta chọn một hay một số tập tin/thư mục.
 confirmPaste(): thực hiện việc khởi tạo một FileMoverBackgroundWork() để

thực hiện việc copy hay di chuyển tập tin & thư mục.
** Lớp “LocationInvalidException”
Kế thừa từ lớp Exception trong java, được dùng để kiểm tra ngoại lệ.
** Lớp “FileSort”
Là một lớp bình thường, được tạo ra nhằm mục đích chữa các hàm tĩnh(phương
thức static) để xác định các tiêu chí sắp xếp các tập tin & thư mục: sắp xếp theo ngày,
kích thước, đinh dạng, tên, …
Các phương thức có trong class đều trả về một Comparator<? Super File>





filecomparatorByLastModified(): sắp xếp theo ngày chỉnh sửa.
filecomparatorByAlphabetically(): theo thứ tự alphabe.
filecomparatorBySize(): theo kích thước.
filecomparatorByFormat(): theo định dạng, kiểu tập tin.

Trang
19


Lập trình nhúng căn bản – Ths Phan Nguyệt Minh

** Lớp “Preference”
Gồm những phương thức như: kiểm tra xem tập tin có đuôi .zip có thể giải nén
hay không, các thư mục/ tập tin có thể tao ra .zip được hay không, phương thức lấy ra
thư mục gốc….
** Lớp “Util”
Class được định nghĩa là final chứa các hàm thực hiện các thao tác như lấy đường

dẫn tập tin/thư mục cần copy, cut, gán đường dẫn, copy, move(cut) , kiểm tra định dạng
của tập tin, … các phương thức của class này được dùng ở toàn bộ chương trình.
Các phương thức, hàm có trong class util đều là được định nghĩa là static.
 setPasteSrcFile(), getFileToPaste(), getPasteMode(): gắn, lấy đường dẫn, lấy hình
thức paste(copy hay move).
 copyToDirectory(), move(): copy, di chuyển tập tin/thư mục được dùng ở các
class FileActionWorker,…
 isMusic, isVideo, isPicture, ….các phương thức kiểm tra định dạng tập tin.
 getIcon(): thiết lập icon cho các loại tâp tin/thư mục.
 getSizeStr(): lấy ra kích thước của từng tập tin theo đơn vị Bytes, KB, MB, GB,

 getFileProperties(): lấy ra thông tin về tập tin: đường dẫn, kích thước, ngày chỉnh
sửa hay tạo.
**Lớp ”FileActionWorker”
Tại lớp này định nghĩa các phương thức, hàm thực thi các công việc cần thiết, sử
dụng các phương thức của các class FileManagerAction, Util.s
 context, activity: 2 thuộc tính của class.
 FileActionWorker(): constructor khởi tạo.
 delete(), rename(), newFile(), newFolder() : thực hiện việc xóa, đổi tên, tạo mới
tập tin/thư mục và hiển thị thông báo(thành công/thất bại).
 zip(): tạo file có định dạng .zip.
 searchInDirectory(), search_file(): tìm kiếm thư mục, tập tin.
 createAlertRenameF(),createAlertDialogNewF(): tạo ra AlertDialog để nhập tên
cần thay đổi, tên cần tạo mới cho tập tin/thư mục.

Trang
20


Lập trình nhúng căn bản – Ths Phan Nguyệt Minh


**Các lớp ”FileDeleteBackgroundWork”,”FileMoverBackgroundWork”,
”FileUnZipBackgroundWork”,”FileZipBackgroundWork”,”SearchBackgrou
ndWork”
Các lớp này đều kế thừa(extends) từ lớp AsyncTask, dùng để hiển thị lên
ProcessDialog(hộp thoại chờ tiến trình) để chờ các hoạt động như xóa, di chuyển, zip,
unzip, tìm kiếm tập tin /thư mục.

3.3 Giao diện
3.3.1 Màn hình chính(FileManagerActivity)
Gồm có:
 Một button home: hiển thị đường dẫn thư
mục.
 Một thanh HorizontalScrollView để chứa các
button: ROOT, UP, SDCARD, EXTERNAL
SD CARD, … để thực hiện các truy cập
nhanh đến các thư mục người dùng thường
xuyên sử dụng.
 ListView: hiển thị các thư mục, tập tin. Mỗi
item của ListView gồm: 3 TextBox( 1 hiển
thị tên tâp tin/thư mục, 1 hiển thị thông tin
thư mục/tập tin, 1 hiển thị ngày chỉnh sửa), 2
ImageView( 1 hiển thị icon về thư mục/tập
tin, 1 hiển thị tình trạng được chọn hay
không).
 Một option menu: gồm các item chính: Search,
Reresh, New, Sort (hiển thị đầy đủ), các item
Paste, Cancel sẽ được hiển thị sau khi chọn
tập tin/thư mục để copy/cut.


Trang
21


Lập trình nhúng căn bản – Ths Phan Nguyệt Minh

Trang
22


Lập trình nhúng căn bản – Ths Phan Nguyệt Minh

3.3.2 Màn hình mở rộng(Settings)
Màn hình Settings nhằm hỗ trợ người dùng tự cài
đặt các thông số cho ứng dụng:
Display options:


Sorting type: cho phép thay đổi kiểu sắp xếp.

• Show date modified: hiển thị ngày chỉnh sửa hay tạo hay không.
• Text color: thay đổi màu text hiển thị trên ListView.

Trang
23


Lập trình nhúng căn bản – Ths Phan Nguyệt Minh

• Theme: thay đổi theme cho ứng dụng.


Advance settings:
• Directory default: thư mục mặc đình cho ứng dụng, khi ứng dụng khởi chạy thì
tiến hành load thư mục này đầu tiên.

• Search: tùy chỉnh tìm kiếm theo sự thay đổi của text hay là sau khi submit.

• About: thông tin về ứng dụng.
Trang
24


Lập trình nhúng căn bản – Ths Phan Nguyệt Minh

3.3.3 Các Menu
Option menu:

Option menu gồm có 6 item chính:

Search:

tìm kiếm.

Refresh:

New:

refresh lại thư mục hiện tại

tạo mới thư mục/tập tin.


Sort :

sắp xếp.

Paste:

dán

Cancel:

Context menu:
Gồm 3 nhóm menu chính:
• “New”: có 2 menu item “Folder”, “File”.

Trang
25

đóng menu paste.


×