40
| ĐẠ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 thực hiện: VÕ VĂN TỊNH 11520415

BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

Embed Size (px)

DESCRIPTION

BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

Citation preview

Page 1: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

|

ĐẠ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 thực hiện:

VÕ VĂN TỊNH 11520415

LÊ ĐỨC SANG 11520326

Page 2: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

|

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

Page 3: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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

Page 4: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

MỤC LỤC

LỜI NÓI ĐẦU...............................................................................................................1

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

Chương 1 – GIỚI THIỆU..............................................................................................3

Đề tài: Ứng dụng quản lý tập tin & thư mục trên android.............................................3

1.1 Hệ thống tập tin trong hệ diều hành Android.......................................................3

1.1.1 Tổng quan về hệ thống tập tin trên Android...................................................3

1.1.2  Các kiểu tập tin trên Android........................................................................3

1.1.3  Tổ chức quyền sở hữu và quyền hạn trên tập tin...........................................4

1.2 Giới thiệu về đề tài...............................................................................................5

1.3 Mục tiêu................................................................................................................6

1.4 Các chức năng chính.............................................................................................6

Chương 2 – PHÂN TÍCH...............................................................................................7

Chương 3 – THIẾT KẾ..................................................................................................8

3.1 Kiến trúc chương trình.........................................................................................8

3.1.1 Mã nguồn(src)...........................................................................................8

3.1.2 Resource(res)...........................................................................................10

3.1.3 Library......................................................................................................11

3.1.4 Manifest...................................................................................................11

3.2 Các lớp và đối tượng.......................................................................................12

3.2.1 Đối tượng.................................................................................................12

3.2.2 Các lớp.....................................................................................................12

3.3 Giao diện.............................................................................................................17

3.3.1 Màn hình chính(FileManagerActivity).........................................................17

3.3.2 Màn hình mở rộng(Settings)....................................................................18

3.3.3 Các Menu.................................................................................................20

3.3.4 Các Button...............................................................................................21

3.3.5 Các thông báo..........................................................................................22

Page 5: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

Chương 4: CÀI ĐẶT VÀ THỬ NGHIỆM..................................................................23

Chương 5: KẾT LUẬN................................................................................................24

Chương 6: TÀI LIỆU THAM KHẢO..........................................................................25

Page 6: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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 1

Page 7: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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 2

Page 8: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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 AndroidTrong 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 AndroidTrong 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 3

Page 9: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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 AndroidChữ 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 tinTươ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 tinOwner Owner group Other

r/- w/- x/- r/- w/- 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 4

Page 10: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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 5

Page 11: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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 6

Page 12: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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 7

Page 13: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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.adapterChứa class FileArrayAdapter.java

Trang 8

Page 14: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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

Package ray.filemanager.objChứa class FileItem.java

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

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

Trang 9

Page 15: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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 10

Page 16: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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 là 4.4.0, tại trang chủ: http://actionbarsherlock.com/, để 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" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Trang 11

Page 17: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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ượngVớ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 12

Page 18: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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 13

Page 19: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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 14

Page 20: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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 15

Page 21: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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 16

Page 22: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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

**Các lớp ”FileDeleteBackgroundWork”,”FileMoverBackgroundWork”, ”FileUnZipBackgroundWork”,”FileZipBackgroundWork”,”SearchBackgroundWork”

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 17

Page 23: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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

Trang 18

Page 24: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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.

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

Trang 19

Page 25: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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

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 20

Page 26: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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

3.3.3 Các MenuOption menu:

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

Search: tìm kiếm. Sort : sắp xếp.

Refresh: refresh lại thư mục hiện tại Paste: dán

New: tạo mới thư mục/tập tin. Cancel: đóng menu paste.

Context menu:

Gồm 3 nhóm menu chính:

“New”: có 2 menu item “Folder”, “File”.

“Choose Sort Order”: có 5 menu item: “None”(sắp xếp theo chuẩn), “Name(a-z)”(theo tên), “Modified(last)”(theo ngày), “Size”(kích thước), “Type”(theo định dạng)

Trang 21

Page 27: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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

Các menu item thực hiện chọn chức năng: patse, cut, delete, select all, ….

3.3.4 Các Button

Gồm 11 button chính:

, hai buttob di chuyển nhanh trong danh sách các button.

: quay về thư mục gốc của tất cả các thư mục.

: quay về thư mục trước đó.

: di chuyển nhanh đến SDCard.

: di chuyển nhanh đến Exteral SDCard(nếu có thì hiện button này lên nếu không có thì ẩn đi ).

: di chuyển nhanh đến thư mục Download.

: di chuyển nhanh đến thư mục DCIM.

: di chuyển nhanh đến thư mục Picture.

: mở màn hình thiết lập “Settings”.

: thoát nhanh khỏi ứng dụng.

Trang 22

Page 28: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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

3.3.5 Các thông báoToast:Ứng dụng có các thông báo sau:

Thư mục/tập tin đã copy

Xóa tập tin/thư mục thành công.

Tập tin/thư mục đã được tạo

Thông báo trước khi thoát ứng dụng

AlertDialog: Gồm các thông báo sau:

Tập tin/thư mục ở chế độ protected, không thể truy cập

Có muốn dán tập tin/thư mục vào thư mục hiện hành hay không?

Có muốn xóa tập tin/thư mục được chọn hay không?

Trang 23

Page 29: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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

Chương 4: CÀI ĐẶT VÀ THỬ NGHIỆM

Môi trường phát triển: Android.Ngôn ngữ cài đặt: Java.Thử nghiệm giả lập: điện thoại Nexus S 4.2.2- API 17- 480x800 của emulator Genymotion.Thiết bị thật: KT Tech KM – E200Đánh giá kết giả: ứng dụng chạy mượt trên cả máy thật và máy giả lập, các thao tác chạy tốt.

Trang 24

Page 30: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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

Chương 5: KẾT LUẬN

Chúng em đã điểm qua các phần cơ bản nhất của việc lập trình ứng dụng di động trên nền tảng Android thông qua một ứng dụng cụ thể. Qua đó, chúng ta nhận thấy được tầm quan trọng của lập trình ứng dụng trên di động nói riêng và lập trình trên di động nói chung. Ứng dụng của nhóm chúng em chỉ dừng lại ở mức độ đơn giản, nhằm giúp người dùng thực hiện các thao tác cơ bản với tập tin/thư mục, giúp người dùng quản lý được hệ thống tập tin/thư mục một cách nhanh nhất.

Hướng phát triển tiếp theo của chúng em không chỉ dừng ở lại đây, nếu có thể chúng em sẽ tiếp tục nghiên cứu sâu hơn nữa về lĩnh vực này, phát triển thêm một số tính năng mới cho ứng dụng File Manager.

Những tính năng dự định cho phiên bản tiếp theo của nhóm như:

Tăng tính bảo mật hệ thống.Quản lý các tiến trình và ứng dụng đang chạy.Có thể có thêm một số chức năng bổ trợ như: chương trình nghe nhạc, xem video, đọc file word, exel.

Trang 25

Page 31: BAO CAO CUOI KY LAP TRINH NHUNG CAN BAN

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

Chương 6: TÀI LIỆU THAM KHẢO.

[1] http://developer.android.com/[2] http://stackoverflow.com/[3] Roy Sandberg, Mark Rollins - The Business of Android Apps Development, 2nd Edition

[4] http://jakewharton.com/ - thư viện ActionBarSherlock.

Trang 26