lập trình trên thiết bị di động đề tài xây dựng chương trình android explorer

15 834 3
lập trình trên thiết bị di động đề tài xây dựng chương trình android explorer

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KỸ THUẬT MÁY TÍNH LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG ĐỀ TÀI: Xây dựng chương trình Android Explorer GVHD : ThS. Phạm Xuân Khánh SVTH : Trần Ngọc Thành 08520352 Trần Hữu Thành 08520351 Võ Ngọc Hải Đăng 08520087 Huỳnh Thanh Việt 08520616 TP. Hồ Chí Minh – 2012 Mục Lục Mục Lục 2 I. Tổng quan 1. Giới thiệu về hệ điều hành Android - Hệ điều hành là chương trình chạy trên hệ thống máy tính, quản lý các tài nguyên trên máy tính và là môi trường cho các chương trình ứng dụng chạy trên nó. Ngày nay, khái niệm hệ điều hành không chỉ là trên máy vi tính mà còn được mở rộng cho nhiều thiết bị điện tử khác chẳng hạn như điện thoại thông minh (smart phone), các thiết bị cầm tay PDA v.v. Như vậy hệ điều hành di động là hệ điều hành chạy trên hệ thống Page 2 máy có tính di động cao. Với đặc thù đó, hệ điều hành di động phải có những khả năng đặc biệt mà những hệ điều hành thông thường không có được. Chẳn hạn như nó phải chạy trên hệ thống máy có cấu hình máy hạn chế về tốc độ bộ vi xử lý, bộ nhớ sử dụng, phải chạy được ổn định liên tục trong một thời gian dài mà chỉ sử dụng một lượng điện năng nhỏ, trong suốt thời gian chạy đó có thể duy trì các kết nối mạng không dây để đảm bảo việc liên lạc. - Android là một hệ điều hành chạy trên điện thoại di động được phát triển từ nhân Linux, mang nhiều đặc tính đặc trưng của môt hệ điều hành di động nhưng vẫn mang những tính chất chung của các hệ điều hành. Là một hệ điều hành trẻ trung, hiện đại, tuy ra đời muộn nhưng lại được phát triển từ linux, rút kinh nghiệm từ nhiều hệ điều hành đi trước, được tích hợp nhiều công nghệ tiên tiến và đặc biệt là được phát triển từ một “ông trùm công nghệ” tầm cỡ thế giới là Google nên Android đã sớm tìm được chổ đứng của mình. 2. Hệ thống tập tin, thư mục trên Android  Tổng quan về hệ thống file trên Android : - Trong android, các file được tổ chức thành các thư mục, theo mô hình phân cấp. Tham chiếu đến một file bằng tên và đườ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 1 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 (byte stream). 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ư các 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.  Các kiểu file và tổ chức quyền hạn trên android : - Trong nhiều hệ điều hành như window, 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 - Tương tự trên hệ thống linux, trên 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). Page 3  Cây thư mục trên hệ điều hành android: - Thư mục (hay có thể gọi là file) root là thư mục gốc của tất cả các file thư mục còn lại. Dưới nó có chứa một số file thư mục hệ thống. Mỗi thư mục (trừ thư mục root) đều có một thư mục cha chứa nó, bản thân nó cũng có thể có nhiều file thư mục con. Cấu trúc đó có thể mô tả bằng một cây thư mục có dạng như sau : Giới thiệu một vài thư mục tiêu biểu : o /(root) : Là thư mục gốc. Là thư mục duy nhất không có thư mục cha o / mnt : thư mục chứa thiết bị lưu động (removeable) o /system : chứa những thành phần cơ bản nhất của hệ thống o /ect : chứa những file cấu hình của hệ thống, nó cực kỳ quan trọng vì sự hoạt động của hệ thống đều bị chi phối ở những file cấu hình này. o /system/font : chứa những font chữ hiển thị được o /system/lib : chứa các thư viện để các phần mềm hoạt động (các phần mềm viết bằng ngôn ngữ java) o /system/app : chứa các file apk của phần mềm. (Các file cài đặt ứng dụng, kiểu như MSI trong window hay dev trong Linux) Page 4 II. Xây dựng chương trình 1. Phân tích chức năng - Hiển thị một danh sách các tập tin và thư mục trong thẻ nhớ của thiết bị chạy hệ điều hành Android, thiết lập icon tương ứng với các thư mục hay tập tin hiển thị. Khi người dùng thao tác với các item trong danh sách đó thì : • Nếu item đó là thư mục thì chuyển qua hiển thị danh sách các thư mục và tập tin trong đó • Nếu item đó là tập tin thì thực thi mở tập tin đó bằng một chương trình thích hợp. Ví dụ như mở các file hình ảnh, file nhạc - Hỗ trợ các tính năng thao tác giúp quản lý thư mục, tập tin cho người dùng : • Copy : sao chép thư mục, tập tin • Move : di chuyển thư mục, tập tin • Rename : đổi tên thư mục, tập tin • Delete : xóa thư mục, tập tin • Multi : hỗ trợ thao tác nhiều thư mục, tập tin • Properties : xem thông tin của thư mục, tập tin • Sorting : sắp xếp thư mục, tập tin • Create new directory : tạo một thư mục mới • Open : mở thư mục, tập tin • Go up : trở về thư mục cha Page 5 Android Explorer //mnt/sdcard Thư Mục Tập Tin Create New Folder Copy Move Rename Delete Properties Sorting Open 2. Xây dựng chức năng 2.1Giao diện chương trình - Chương trình khi khởi chạy có giao diện như hình trên, bao gồm 1 listview hiển thi danh sách các thư mục và tập tin có trong thư mục hiện hành. Các button hỗ trợ cho việc quản lý. Màn hình làm việc chính của chương trình được xây dựng trong 2 layout là main.xml : chứa ListView hiển thị các tập tin và thư mục trên sdcard và list_row.xml : chứa 2 trường là TextView – filename và ImageView - fileicon - Để hiển thị thông tin thư mục, tập tin cũng như chèn các icon phù hợp cho từng item trong list, nhóm em đã xậy dựng lớp CustomAdapter.java . Giao diện trong list_row.xml sẽ được gán cho đối tượng View để thực thi bằng cách sử dụng LayoutInflater. Toàn bộ công việc sẽ được xử lý trong phương thức getView - Trong lớp Main.java, ta khởi tạo một đối tượng thộc lớp CustomAdapter.java và set thông tin các trường filename, fileicon lên ListView để hiển thị ra chương trình. - Phương thức setOnItemClickListener sẽ xử lý sự kiện khi có một item trên ListView được nhấn. Nếu như vị trí item được nhấn là 0 thì chương trình sẽ trở về thư mục cha của thư mục hiện hành. Nếu các item là thư mục thì phương thức sẽ xử lý đường dẫn và hiển thị danh mục tệp trong thư mục vừa nhấn. Khi item được nhấn là tập tin, phương thức này sẽ gọi đến chương trình phù hợp để khởi chạy tập tin trên - Trong lớp Main.java, phương thức refreshFileList thực thi việc hiển thị các tập tin và thư mục có trong thư mục hiện hành. Đầu tiên, nó sử dụng câu lệnh static String rootPath=new Environment().getExter nalStorageDirectory().getPath(); để lấy đường dẫn dữ liệu trong sdcard - Tiếp đó toàn bộ dữ liệu trả về sẽ được đưa vào một ArrayList là mFiles và tiến hành xử lý để xuất ra private String currentPath=rootPath; private void refreshFileList() Page 6 { File file=new File(currentPath); File[] files = file.listFiles(); mFiles.clear(); mFiles.add(file); if (files!=null) { for (int i = 0; i< files.length; i++) mFiles.add(files[i]); } mAdapter.notifyDataSetChanged(); path.setText(currentPath); } 2.2Chức năng Open - Thực hiện thao tác mở tập tin hoặc thư mục khi các đối tượng trên được nhấp chọn - Phương thức xử lý khi có 1 đối tượng trên ListView được nhấn Page 7 public void onItemClick(AdapterView<?> arg0, View v, int position, long id) { File f = (File) list.getItemAtPosition(position); if(position==0) { if(currentPath.compareTo(rootPath)!=0) { currentPath=f.getParent(); refreshFileList(); } } else if(f.isDirectory()) { currentPath=f.getPath(); refreshFileList(); } else { actionOpen(f.getPath()); } } - Để mở 1 tập tin thì trên thiết bị đó phải có chương trình hỗ trợ để mở tập tin này. Sau đó, ta sử dụng một Intent để gọi hàm API trên hệ thống giúp mở tập tin vừa chọn 2.3Chức năng tạo thư mục mới - Để tạo thư mục mới, chương trình sử dụng phương thức mkdir() nằm trong gói thư viện java.io , một bàn phím ảo sẽ được gọi ra để hỗ trợ cho việc gõ tên thư mục 2.4Chức năng sắp xếp Page 8 - Hỗ trợ sắp xếp thư mục, tập tin theo tên trong chương trình. Đồng thời có thể phát triển lên nhiều cách sắp xếp khác nhứ : theo kích thước, theo đuôi mở rộng - Một biến kiểu boolean là iSort được gán true khi button Sort trên thanh công cụ được nhấn. Lúc này chương trình sẽ thực hiện hiển thị lại tất cả file và folder trong thư mục hiện thời, chúng sẽ được đưa vào một list Comparator để tiến hành so sánh và sắp xếp theo tên rồi trả về lại giá trị để hiển thị theo thứ tự public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { iSort=isChecked; refreshFileList(); } private void refreshFileList() { File file=new File(currentPath); File[] files = file.listFiles(); mFiles.clear(); mFiles.add(file); if(iSort) Arrays.sort(files, filecomparator); if (files!=null) { for (int i = 0; i< files.length; i++) mFiles.add(files[i]); } mAdapter.notifyDataSetChanged(); path.setText(currentPath); } Comparator<? super File> filecomparator = new Comparator<File>() { public int compare(File file1, File file2) { return String.valueOf(file1.getName().toLowerCase()).compareTo(file2.getName().toL owerCase()); } }; - Trước khi sắp xếp : Page 9 - Sau khi sắp xếp : 2.5Chức năng Rename : Page 10 [...]... Trong thực tế thì việc di chuyển file hoặc thư mục thì được thực hiện bằng cách đổi đường dẫn của file cần di chuyể như vậy để thực hiện việc di chuyển file và thư mục trong đồ án này ta sẽ dùng hàm rename() mà java đã hỗ trợ sẳn Một chương trình chạy trên Android có thể sẽ có cấu trúc phức tạp Yêu cầu kết nối đến Server, CSDL, tải file … Nếu chúng ta xử lý các công việc đó trên Main Thread sẽ làm... được chọn sẽ được gửi đi đến class tương ứng để xử lý Vd: nhấn nút Copy thi ta sẽ thực hiện copy tất cả các file mà ta đã chọn Page 14 Tài liệu tham khảo III - www.goole.vn www.vietandroid.com Wei-Meng Lee Beginning Android Application Development Mark L Murphy Beginning Android Apress Page 15 ... vẻ chạy chậm hay treo vì chúng làm gián đoạn việc cập nhật, xử lý trên GUI Có nhiều cách để giải quyết vấn đề này: sử dụng Service, Thread hay đơn giản hơn là dùng Async Task (Asynchronous Task) Ở đây chúng ta dùng Async Task Class AsyncTask này cho phép chúng ta chạy tác vụ nền và sau đó trả lại kết quả cập nhật lên GUI mà không phải động đến Thread/handler khá rắc rối và đau đầu private class MyTask... copyfile.xml quygiao di n và Filescopy.java sẽ xử lý việc copy và thể hiện tiến trình này lên Thực hiện đệ là có ProgressBar của copyfile.xml thông qua Intent để truyền dữ liệu và hàm startActivityForResult để gọi Activity mới Là File hay Thực hiện copy file Sơ đồ thuật giải: là thư mục File Thư mục Tạo thư mục Lấy danh sách của thư mục Page 11 Hình minh họa thao tác copy: 2.7 Di chuyển file và thư... startActivityForResult để gọi Activity mới Rỗng Thư Ta có sơ đồ giải thuật sau: mục Có phần tử con Lấy danh sách của thư mục Page 13 2.9 Di chuyển file và thư mục: Chức năng này cho phép ta chọn nhiều file hoặc thư mục để thực hiện các tao tác copy, move, delete Trong đồ án này chúng ta dùng một AlertDialog và dùng hàm setMultiChoiceItems để thể hiện một danh sách cho phép đánh dấu nhiều file hoặc thư mục Ngoài ra ta... (Không nhất thiết phải đầyKhông đủ theo trong + onPreExecute() báo thay đổi đến UI ngay khi task chạy, thường được dùng để hiện ds progressbar chẳng hạn +Thực hiện đệ quy doInBackground(Params ) Dùngcó xử lý Task, có thể tốn nhiều thời gian để + onProgressUpdate(Progress ), cập nhật tiến độ Task + onPostExecute(Result), trảLà File hay cập nhật lên UI về kết quả File Xóa File là thư mục 2.8 Di chuyển...- Một AlertDialog được gọi để hiển thị hộp thoại Rename, phương thức actionRename sẽ kiểm tra tên mới có trùng với một tên nào đó trong thư mục hiện tại hay không Sau đó sẽ tiến hành đổi tên file hoặc folder - Phương . TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KỸ THUẬT MÁY TÍNH LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG ĐỀ TÀI: Xây dựng chương trình Android Explorer GVHD : ThS. Phạm Xuân Khánh SVTH : Trần Ngọc Thành. thiệu về hệ điều hành Android - Hệ điều hành là chương trình chạy trên hệ thống máy tính, quản lý các tài nguyên trên máy tính và là môi trường cho các chương trình ứng dụng chạy trên nó. Ngày nay, khái. Linux) Page 4 II. Xây dựng chương trình 1. Phân tích chức năng - Hiển thị một danh sách các tập tin và thư mục trong thẻ nhớ của thiết bị chạy hệ điều hành Android, thiết lập icon tương ứng

Ngày đăng: 12/02/2015, 08:58

Từ khóa liên quan

Mục lục

  • Mục Lục

Tài liệu cùng người dùng

Tài liệu liên quan