CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI
1.1 Sơ lược về các hệ điều hành
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 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.
34 trang |
Chia sẻ: tlsuongmuoi | Lượt xem: 2064 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Đề tài Thiết kế và xây dựng chương trình, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Tìm hiểu về hệ điều hành Android 1
voquanghoa@gmail.com Võ Quang Hòa – Nhóm 09A, Lớp 07T4
CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI ............................................................................... 2
1.1 Sơ lược về các hệ điều hành ............................................................................................. 2
1.2 Đề tài và mục tiêu của đề tài ............................................................................................. 4
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT ........................................................................................ 5
2.1 Giới thiệu chung về hiệu hành android ............................................................................. 5
2.2 Kiến trúc hệ điều hành android ......................................................................................... 7
2.3 Hệ thống tập tin trên hệ điều hành android ..................................................................... 12
2.4 So sánh giữa các hệ điều hành ........................................................................................ 16
CHƯƠNG 3. THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH .......................................... 18
3.1 Phân tích chức năng ....................................................................................................... 18
3.2 Xây dựng chức năng....................................................................................................... 20
CHƯƠNG 4. TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ .................................................... 24
4.1 Môi trường triển khai. .................................................................................................... 24
4.2 Kết quả chức năng của chương trình .............................................................................. 24
4.3 Đánh giá và nhận xét ...................................................................................................... 32
CHƯƠNG 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ...................................................... 33
5.1 Kết luận.......................................................................................................................... 33
5.2 Hướng phát triển ............................................................................................................ 33
TÀI LIỆU THAM KHẢO ........................................................................................................ 34
ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN Bộ môn Mạng & Truyền Thông
Võ Quang Hòa – Nhóm 09A, Lớp 07T4
CHƯƠNG 1. TỔNG QUAN VỀ ĐỀ TÀI
1.1 Sơ lược về các hệ điều hành
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 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.
Một số hệ điều hành tiêu biểu :
o Trên máy tính cá nhân : MS DOS, MS WINDOW, MACOS, LINUX, UNIX,
o Trên điện thoại thông minh : Android, Sybian, Window Mobile, iPhone OS,
BlackBerry, S60, Bada OS, Palm OS.
Ngoài ra còn có các hệ điều hành chạy trên mainframe, server, thẻ chíp, ...
1) Các chức năng chính của hệ điều hành
Quản lý chia sẻ tài nguyên.Tài nguyên ở đây là bao gồm:
o Tài nguyên phần cứng (CPU, Bộ nhớ, các thiết bị IO)
o Tài nguyên phần mềm (Các file, chương trình dùng chung)
Tìm hiểu về hệ điều hành Android 3
voquanghoa@gmail.com Võ Quang Hòa – Nhóm 09A, Lớp 07T4
Tạo lập môi trường ảo ít phụ thuộc vào phần cứng để các phần mềm ứng
dụng hoạt động, phục vụ người dùng.
2) Các thành phần của hệ điều hành
- Thành phần quản lý tiến trình
- Thành phần quản lý bộ nhớ
- Thành phần quản lý nhập xuất
- Thành phần quản lý tập tin
- Thành phần bảo vệ hệ thống
- Thành phần dịch lệnh
- Thành phần quản lý mạng
3) Phân loại hệ điều hành
a. Theo loại thiết bị mà hệ điều hành hoạt động
- Hệ điều hành dành cho máy MainFrame
- Hệ điều hành dành cho máy Server
- Hệ điều hành dành cho máy nhiều CPU
- Hệ điều hành dành cho máy tính cá nhân (PC)
- Hệ điều hành dành cho máy PDA
- Hệ điều hành dành cho máy chuyên biệt
- Hệ điều hành dành cho thẻ chíp (SmartCard)
b. Theo số user và số chương trình cùng hoạt động
- Hệ điều hành đơn nhiệm một người dùng
- Hệ điều hành đa nhiệm một người dùng
- Hệ điều hành đa nhiệm nhiều người dùng
c. Theo góc độ người dùng
- Một người dùng
- Nhiều người dùng(Mạng ngang hàng, mạng có máy chủ)
d. Theo hình thức xử lý
- Hệ thống xử lý theo lô
- Hệ thống xử lý theo lô đa chương
- Hệ thống chia sẻ thời gian
- Hệ thống song song
- Hệ thống phân tán
- Hệ thống xử lý thời gian thực
ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN Bộ môn Mạng & Truyền Thông
Võ Quang Hòa – Nhóm 09A, Lớp 07T4
1.2 Đề tài và mục tiêu của đề tài
Đồ án Nguyên lý hệ điều hành lần này của chúng em được giao đề tài.
Tìm hiểu về hệ điều hành android, viết chương trình minh họa.
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.
Trong phạm vi một bài báo cáo, chúng em sẻ chỉ đi đến 2 vấn đề sau đây :
Nghiên cứu về kiến trúc hệ điều hành android
So sánh hệ điều hành android với các hệ điều hành khác bao gồm các hệ điều hành
trên máy tính PC và các hệ điều hành di động khác.
Nghiên cứu kỹ hệ thống file trên android
Phần demo, xây dựng chương trình thể hiện cấu trúc hệ thống file trên android và thực hiện
một số thao tác như tạo thư mục, sao chép, di chuyển, đổi tên, xem thuộc tính, xem và chỉnh sửa
các quyền hạn trên file đối với người dùng, nhóm người dùng.
Tìm hiểu về hệ điều hành Android 5
voquanghoa@gmail.com Võ Quang Hòa – Nhóm 09A, Lớp 07T4
CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
2.1 Giới thiệu chung về hiệu hành android
Android là một hệ điều hành di động dựa trên nền tảng linux phiên bản 2.6 dành cho các
dòng điện thoại SmartPhone. Đầu tiên được ra đời bởi công ty liên hợp Android, sau đó được
Google mua lại và phát triển từ năm 2005 và trở thành một hệ điều hành di động mã nguồn mở,
miễn phí, mạnh mẽ và được ưa chuộng cao trên thế giới.
Hệ điều hành android một hệ điều hành rất mạnh mạnh, có bảo mật cao, hỗ trợ được nhiều
công nghệ tiên tiến như 3G, GPS, EDGE, Wifi.. tương thích với nhiều phần cứng, hỗ trợ nhiều
loại bộ nhập dữ liệu như keyboard, touch và trackball. Android là hệ điều hành di động nên có khả
năng kết nối cao với các mạng không dây. Hỗ trợ công nghệ OpenGL nên có khả năng chơi các
phương tiện media, hoạt hình cũng như trình diễn các khả năng đồ họa khác cực tốt, là tiền đề để
phát triển các ứng dụng có giao diện phức tạp chẳng hạn như là các trò chơi.
Android liên tục được phát triển, mỗi bản cập nhật từ google là mỗi lần android được tối ưu
hóa để hoạt động tốt hơn, nhanh và ổn định hơn, hỗ trợ thêm công nghệ mới. Chẳng hạn như theo
một đánh giá thì android phiên bản 2.2 hoạt động nhanh hơn bản 2.1 tới 450%. Hiện nay, phiên
bản mới nhất 2.3 phát hành ngày 6/12/2010 và đang tiếp tục được cập nhật.
Năm 2008, hệ điều hành android đã chính thức mở toàn bộ mã nguồn, điều đó cho phép
các hãng điện thoại có thể đem mã nguồn về tùy chỉnh, thiết kế lại sao cho phù hợp với mỗi mẫu
mã điện thoại của họ và điều quan trọng nữa là hệ điều hành mở này hoàn toàn miễn phí, không
phải trả tiền nên giúp họ tiết kiệm khá lớn chi phí phát triển hệ điều hành. Những điều đó là cực
kỳ tốt không chỉ đối với các hãng sản xuất điện thoại nhỏ mà ngay cả với những hãng lớn như
Samsung, HTC....
Với Google, vì android hoàn toàn miễn phí, Google không thu tiền từ những hãng sản xuất
điện thoại, tuy không trực tiếp hưởng lợi từ android nhưng bù lại, những dịch vụ của hãng như
Google Search, Google Maps,... nhờ có android mà có thể dễ dàng xâm nhập nhanh vào thị trường
ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN Bộ môn Mạng & Truyền Thông
Võ Quang Hòa – Nhóm 09A, Lớp 07T4
di động vì mỗi chiếc điện thoại được sản xuất ra đều được tích hợp hàng loạt dịch vụ của Google.
Từ đó hãng có thể kiếm bội, chủ yếu là từ các nguồn quảng cáo trên các dịch vụ đó.
Với các nhà phát triển ứng dụng (developers), việc hệ điều hành android được sử dụng phổ
biến đồng nghĩa với việc họ có thể thoải mái phát triển ứng dụng trên nền android với sự tin tưởng
là ứng dụng đó sẻ có thể chạy được ngay trên nhiều dòng điện thoại của các hãng khác nhau. Họ ít
phải quan tâm là đang phát triển cho điện thoại nào, phiên bản bao nhiêu vì nền tảng android là
chung cho nhiều dòng máy, máy ảo Java đã chịu trách nhiệm thực thi những ứng dụng phù hợp
với mỗi dòng điện thoại mà nó đang chạy. Tất cả các chương trình ứng dụng được viết bằng ngôn
ngữ Java kết hợp với XML nên có khả năng khả chuyển cao.
Một số hãng sản xuất điện thoại có sử dụng hệ điều hành android tiêu biểu :
HTC với các dòng Desire HD, Evo 4G, DROID ERIS, Desire Z, Hero, Desire,
Tattoo, Wildfire, Droid Incredible, Legend, Magic, Google Nexus One, Dream,
Aria, Paradise
LG với các dòng GT540 Optimus, Optimus Chic E720, Optimus One P500,
GW620, Optimus Z, Optimus Q, KH5200 Andro-1, GW880, C710Aloha
MOTOROLA với các dòng MILESTONE 2, BACKFLIP, Droid XTreme,
MT710 ZHILING, MILESTONE, XT720 MOTOROI, A1680, XT800
ZHISHANG, DEFY, CHARM, XT806...
SAMSUNG với các dòng máy I9000 Galaxy S, Galaxy Tab, Epic 4G, i5510,
I5500 Galaxy 5, I7500 Galaxy, I5800 Galaxy 3, M110S Galaxy S, I6500U
Galaxy, Galaxy Q, I5700 Galaxy Spica, I8520 Galaxy Beam, I909 Galaxy S
SONY : XPERIA X10, XPERIA X10 mini, XPERIA X8
ACER với các dòng máy beTouch T500, Liquid E, Stream, Liquid, beTouch
E110, beTouch E130, beTouch E400, beTouch E120, Liquid Metal
Ngoài ra còn nhiều hãng điện thoại vừa và nhỏ khác nữa cũng sử dụng hệ điều
hành android trong sản phẩm của mình....
Tìm hiểu về hệ điều hành Android 7
voquanghoa@gmail.com Võ Quang Hòa – Nhóm 09A, Lớp 07T4
2.2 Kiến trúc hệ điều hành android
Hệ điều hành android có 4 tầng từ dưới lên trên là tầng hạt nhân Linux (Phiên bản 2.6),
tầng Tầng Libraries & Android runtime , Tầng Application Framework và trên cùng là tầng
Application.
1. Tầng hạt nhân Linux (Linux Kernel layer)
Hệ điều hành android được phát trển dựa trên hạt nhân linux, cụ thể là hạt nhân linux phiên
bản 2.6, điều đó được thể hiện ở lớp dưới cùng này. Tất cả mọi hoạt động của điện thoại muốn thi
hành được thì đều được thực hiện ở mức cấp thấp ở lớp này bao gồm quản lý bộ nhớ (memory
management), giao tiếp với phần cứng (driver model), thực hiện bảo mật (security), quản lý tiến
trình (process).
ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN Bộ môn Mạng & Truyền Thông
Võ Quang Hòa – Nhóm 09A, Lớp 07T4
Tuy được phát triển dựa vào nhân linux nhưng thực ra nhân linux đã được nâng cấp và sửa
đổi rất nhiều để phù hợp với tính chất của những thiết bị cầm tay như hạn chế về bộ vi xử lý,
dung lượng bộ nhớ, kích thước màn hình, nhu cần kết nối mạng không dây...
Tầng này có các thành phần chủ yếu :
Display Driver : Điều khiển việc hiển thị lên màn hình cũng như thu nhận những
điều khiển của người dùng lên màn hình (di chuyển, cảm ứng...)
Camera Driver : Điều kiển hoạt động của camera, nhận luồng dữ liệu từ camera
trả về.
Bluetooth Driver : Điều khiển thiết bị phát và thu sóng Bluetooth.
USB driver : Quản lý hoạt động của các cổng giao tiếp USB
Keypad driver : Điều khiển bàn phím
Wifi Driver : Chịu trách nhiệm về việc thu phát sóng wifi
Audio Driver : điều khiển các bộ thu phát âm thanh, giải mã các tính hiệu dạng
audio thành tín hiệu số và ngược lại
Binder IPC Driver : Chịu trách nhiệm về việc kết nối và liên lạc với mạng vô
tuyến như CDMA, GSM, 3G, 4G, E để đảm bảo những chức năng truyền thông
được thực hiện.
M-System Driver : Quản lý việc đọc ghi... lên các thiết bị nhớ như thẻ SD, flash
Power Madagement : Giám sát việc tiêu thụ điện năng.
2. Tầng Library và android runtime
Phần này có 2 thành phần là phần Library và Android Runtime
a. Phần Libraries. Phần này có nhiều thư viện được viết bằng C/C++ để các phần mềm
có thể sử dụng, các thư viện đó được tập hợp thành một số nhóm như :
Thư viện hệ thống (System C library) : thư viện dựa trên chuẩn C,
được sử dụng chỉ bởi hệ điều hành
Tìm hiểu về hệ điều hành Android 9
voquanghoa@gmail.com Võ Quang Hòa – Nhóm 09A, Lớp 07T4
Thư viện Media (Media Libraries) : Có nhiều codec để hỗ trợ việc
phát và ghi các loại định dạng âm thanh, hình ảnh, video thông dụng.
Thư viện web (LibWebCore) : Đây là thành phần để xem nội dung
trên web, được sử dụng để xây dựng phần mềm duyệt web (Android Browse)
cũng như để các ứng dụng khác có thể nhúng vào. Nó cực kỳ mạnh, hỗ trợ
được nhiều công nghệ mạnh mẽ như HTML5, JavaScript, CSS, DOM,
AJAX..
Thư viện SQLite : Hệ cơ sở dữ liệu để các ứng dụng có thể sử dụng.
.....
b. Phần Android runtime
Phần này chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java có thể
hoạt động. Phần này có 2 bộ phận tương tự như mô hình chạy Java trên máy tính
thường. Thứ nhất là các thư viện lõi (Core Library) , chứa các lớp như JAVA IO,
Collections, File Access. Thứ hai là một máy ảo java (Dalvik Virtual Machine) .
Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java của hệ điều
hành android không được chạy bằng JRE của Sun (nay là Oracle) (JVM) mà là
chạy bằng máy ảo Dalvik do Google phát triển.
3. Tầng Application Framework.
Tầng này xây dựng bộ công cụ - các phần tử ở mức cao để các lập trình viên có thể
nhanh chóng xây dựng ứng dụng. Nó được viết bằng Java, có khả năng sử dụng chung để
tiết kiệm tài nguyên.
Đây là một nền tảng mở, điều đó có 2 điều lợi:
c. Với các hãng sản xuất điện thoại : Có thể tùy biến để phù hợp với cấu hình điện
thoại mà họ sản xuất cũng như để có nhiều mẫu mã, style hợp thị hiếu người dùng.
Vì thế nên tuy cùng chung nền tảng android mà điện thoại của Google có thể khác
hẳn với Motorola, HTC, T-Mobile, Samsung...
d. Với lập trình viên : Cho phép lập trình viên có thể sử dụng các API ở tầng trên mà
không cần phải hiểu rõ cấu trúc bên dưới, tạo điều kiện cho lập trình viên tự do sáng
tạo bởi vì chỉ cần quan tâm đến nội dung mà ứng dụng họ làm việc. Một tập hợp
API rất hữu ích được xây dựng sẵn như hệ thống định vị, các dịch vụ chạy nền, liên
lạc giữa các ứng dụng, các thành phần giao diện cấp cao ...
ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN Bộ môn Mạng & Truyền Thông
Võ Quang Hòa – Nhóm 09A, Lớp 07T4
Giới thiệu một số thành phần của phần này :
a. Activity Manager : Quản lý các chu kỳ sống của một ứng dụng cũng như cung
cấp công cụ điều khiển các Activity.
b. Telephony Manager : Cung cấp công cụ để thực hiện việc liên lạc như gọi điện
thoại
c. XMPP Service : Cung cấp công cụ để liên lạc trong thời gian thực
d. Location Manager : Cho phép xác định vị trí của điện thoại thoại dựa vào hệ
thống định vị toàn cầu GPS và Google Maps.
e. Window Manager : Quản lý việc xây dựng và hiển thị các giao diện người dùng
cũng như tổ chức quản lý các giao diện giữa các ứng dụng.
f. Notication Manager : Quản lý việc hiển thị các thông báo (như báo có tin nhắn,
có e-mail mới..)
g. Resource Manager : Quản lý tài nguyên tĩnh của các ứng dụng bao gồm các file
hình ảnh, âm thanh, layout, string. (Những thành phần không được viết bởi ngôn
ngữ lập trình)
h. .....
4. Tầng Application :
Đây là lớp ứng dụng giao tiếp với người dùng, bao gồm các ứng dụng như :
Các ứng dụng cơ bản, được cài đặt đi liền với hệ điều hành là gọi
điện(phone), quản lý danh bạ(Contacts), duyệt web (Browser), nhắn tin (SMS), lịch
làm việc (Calendar), đọc e-mail (Email-Client), bản đồ (Map), quay phim chụp ảnh
(camera)...
Các ứng dụng được cài thêm như các phần mềm chứng khoán (Stock), các
trò chơi (Game), từ điển...
Các chương trình có các đặc điểm là :
Tìm hiểu về hệ điều hành Android 11
voquanghoa@gmail.com Võ Quang Hòa – Nhóm 09A, Lớp 07T4
Viết bằng Java, phần mở rộng là apk
Khi mỗi ứng dụng được chạy, nó có một phiên bản Virtual Machine được dựng
lên để phục vụ cho nó. Nó có thể là một Active Program : Chương trình có giao
diện với người sử dụng hoặc là một background : chương trình chạy nền hay là
dịch vụ.
Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một thời điểm,
có thể có nhiều chương trình cùng chạy một lúc, tuy nhiên, với mỗi ứng dụng thì
có duy nhất một thực thể (instance) được phép chạy mà thôi. Điều đó có tác
dụng hạn chế sự lạm dụng tài nguyên, giúp hệ thống hoạt động tốt hơn.
Các ứng dụng được gán số ID của người sử dụng nhằn phân định quyền hạn khi
sử dụng tài nguyên, cấu hình phần cứng và hệ thống.
Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành di động
khác, android cho phép một ứng dụng của bên thứ ba được phép chạy nền. Các
ứng dụng đó chỉ có một hạn chế nhỏ đó là nó không được phép sử dung quá
5~10% công suất CPU, điều đó nhằn để tránh độc quyền trong việc sử dụng
CPU.
Ứng dụng không có điểm vào cố định, không có phương thức main để bắt đầu.
ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN Bộ môn Mạng & Truyền Thông
Võ Quang Hòa – Nhóm 09A, Lớp 07T4
2.3 Hệ thống tập tin trên hệ điều hành android
Trong phạm vi một bài tìm hiểu về hệ điều hành, em chỉ xin tìm hiểu rõ một vấn đề của hệ
điều hành android đó là vấn đề quản lý hệ thống tập tin. Phần này có điểm thuận lợi để tìm hiểu
đó là vì được phát triển từ nhân linux nên hệ thống tập tin trên android cực kỳ giống hệ thống tập
tin trên linux như là về cách tổ chức, những quyền hạn của người sử dụng lên file...
a. 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.
b. Các kiểu file 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
Tìm hiểu về hệ điều hành Android 13
voquanghoa@gmail.com Võ Quang Hòa – Nhóm 09A, Lớp 07T4
(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 nữa có thể liệt kê theo bảng sau :
Chữ cái biểu diễn Kiểu file
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)
Hình 2: Bảng liệt kê một số kiểu file trong Linux
c. Tổ chức quyền sở hữu và quyền hạn trên file:
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).
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ý tự viết tắt đó, - nghĩa
là không có quyền hạn đó.
Owner Owner Group Other
r/- w/- x/- r/- w/- x/- r/- w/- x/-
3 ký tự đầu tiên là quyền hạn chủ nhân file
3 ký tự giữa là quyền hạn của nhóm tài khoản sở hữu file
3 ký tự cuối là quyền hạn của những người không thuộc nhóm sở hữu file.
Ví dụ : Một file có dãy ký tự biểu diễn quyền hạn là rwxr-xr—thì điều đó có
nghĩa :
3 ký tự đầu là rwx : Chủ nhân có thể đọ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 file có quyền đọc và thực thi file
chứ không có quyền ghi, chỉnh sửa 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 thể chỉnh sửa hay thực thi file.
ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN Bộ môn Mạng & Truyền Thông
Võ Quang Hòa – Nhóm 09A, Lớp 07T4
Trên hệ thống android, để biết xem được quyền hạn đó, ta có thể sử dụng câu lệnh ls –l –d.
Ví dụ : ls -l -d /mnt/sdcard/QuangHoa để xem quyền hạn của file /mnt/sdcard/QuangHoa
thì có thể trả về kết quả như sau
d---rwxr-x system sdcard_rw 2010-12-29 21:00 QuangHoa
Thì những thông tin có thể lấy về là :
o Ký tự đầu tiên là chữ d : vậy file đó có kiểu là thư mục hay là file bao hàm
o Chuổi ghi quyền hạn là ---rwxr-x thì có nghĩa
(---)Người sở hữu không được phép đọc, ghi, thực thi file
(rwx) Nhóm tài khoản sử hữu được phép đọc, ghi, thực thi file
r-x : Những người không sở hữu file được phép đọc và thực thi file nhưng
không được phép chỉnh sửa hay ghi lên file.
o Chuổi miêu tả file : sdcard_rw nghĩa là đây thuộc thiết bị thẻ nhớ sd, đọc và ghi
được.
o 2010-12-29 21:00 Thời gian chỉnh sửa lần cuối
o QuangHoa : tên của file.
Ngoài ra có 2 lệnh khác cũng hữu dụng là lệnh chown để thay đổi quyền sở hữu file,
lệnh chmod để thay đổi quyền hạn liên quan đến file và lệnh chgrp để thay đổi nhóm
người sở hữu file.
d. 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 :
/root
var ect mnt system cache
lost+found font lib app bin framework
Tìm hiểu về hệ điều hành Android 15
voquanghoa@gmail.com Võ Quang Hòa – Nhóm 09A, Lớp 07T4
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/lost+found : chứa những tập tin bị mất lúc khởi động má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)
o /system/bin : Chứa các chương trình nội trú của hệ thống.
o ....
-
ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN Bộ môn Mạng & Truyền Thông
Võ Quang Hòa – Nhóm 09A, Lớp 07T4
2.4 So sánh giữa các hệ điều hành
1) So sánh giữa hệ điều hành di động và hệ điều hành trên
desktop.
Giống nhau về bản chất hệ điều hành, những thành phần lõi hệ điều hành.
Khác nhau :
o Hệ điều hành di động : hoạt động trên các thiết bị nhỏ gọn, hạn chế nhất là về
vấn đề năng lượng. Pin thì có hạn, vì thế tất cả các thành phần trên thiết bị
đều phải tối ưu để tiết kiệm pin, điều đó nảy sinh nhiều mâu thuẩn với nhu
cầu sử dụng của người dùng.
Màn hình càng lớn và càng sáng thì sẻ tốn điện càng nhiều.
Bộ nhớ lớn thì chi phí về điện cũng sẻ cao.
Bộ vi xử lý càng nhanh thì càng tốn điện.
Điều đó chưa kể đến việc thiết bị di động thì phải nhỏ gọn, nhẹ nhàng,
vì vậy càng đè nặng việc phải tối ưu phần cứng.
Khi đó hệ điều hành di động cũng có trách nhiệm phải tối ưu hoạt
động của mình để tiết kiệm năng lượng một cách tối đa.
Nó phải quản lý các ứng dụng không để các ứng dụng chạy chiếm
quá nhiều tài nguyên, tránh sự độc quyền, xung đột, tranh chấp tài
nguyên giữa các ứng dụng trong khi các hệ điều hành chạy desktop
thì ít chú ý hơn. Hệ điều hành di động luôn có bộ công cụ quản lý
điện năng sử dụng trong máy, trong những tình huống cần thiết thì
hệ thống sẻ tự tắt những ứng dụng không cần thiết để duy trì các
chương trình cần thiết hơn hoạt động.
Đa số các hệ điều hành trên desktop đều cho phép nhiều ứng dụng
chạy đồng thời (đa nhiệm) và khá tự do. Trong khi đó, các hệ điều
Tìm hiểu về hệ điều hành Android 17
voquanghoa@gmail.com Võ Quang Hòa – Nhóm 09A, Lớp 07T4
hành chạy trên di động thường không cho phép chạy đa nhiệm,
hoặc có đa nhiệm thì các ứng dụng bị giới hạn khá nhiều.
o Việc hiển thị giao diện trên một khung hình nhỏ cũng điều khó khăn hơn so
với hệ điều hành chạy trên desktop, thường thì trên hệ điều hành di động gần
như không có giao diện cửa sổ cho phép nhiều ứng dụng cùng hiển thị một
lúc mà chỉ là một giao diện mà trên đó mỗi thời điểm chỉ hiển thị một giao
diện của một ứng dụng mà thôi.
o Hệ điều hành di động phải có khả năng hoạt động liên tục không ngừng nghĩ
để đảm bảo liên lạc, đảm bảo kết nối của thiết bị tới mạng không dây cần kết
nối trong khi vẫn di chuyển. Vì thế cần được thiết kế đặc biệt hơn so với hệ
điều hành trên desktop.
2) So sánh hệ điều hành android với các hệ điều hành di động
khác.
Giống nhau : Đều là hệ điều hành di động nên mang đầy đủ bản chất của hệ điều
hành di động nói chung. (Đã đề cập ở trên)
Khác nhau :
o Android là hệ điều hành mã nguồn mở và miễn phí trong khi các hệ điều
hành di động còn lại đều là nguồn đóng và có phí (khi một hãng thứ hai sử
dụng)
o Android được phát triển từ nhân linux do đó nó có thể chạy tốt trên nhiều
dòng điện thoại khác nhau. Có độ tương thích cao với các loại phần cứng
khác nhau nhiều hơn so với các hệ điều hành di động còn lại.
o Các ứng dụng chạy trên android được viết bằng Java trong khi đó, ứng dụng trên các hệ
điều hành khác chủ yếu là viết bằng C/C++/Object C. Ngay cả symbian có hỗ trợ Java thì
cũng khác so với android, trong khi hệ điều hành android sử dụng máy ảo Java là Dalvik
VM do chính Google phát triển thì Symbian lại sử dụng máy ảo Java là J2ME của Sun.
ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN Bộ môn Mạng & Truyền Thông
Võ Quang Hòa – Nhóm 09A, Lớp 07T4
CHƯƠNG 3. THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH
3.1 Phân tích chức năng
Với yêu cầu giới thiệu, demo cho hệ thống quản lý tập tin trên android, chương trình chúng
em xây dựng sẻ có các chức năng như sau :
1) Hiển thị một list bao gồm các file trong một thư mục. Khi người dùng chọn 1 file
trong đó :
a. Nếu file đó là file bao hàm (thư mục) thì chuyển list hiển thị danh sách
file trong thư mục đó.
b. Nếu file đó là file thông thường thì mở file đó bằng chương trình thích
hợp chẳng hạn như file hình ảnh thì mở chương trình xem ảnh, file nhạc thì
mở chương trình chơi nhạc...
2) Cài đặt một menu cho phép người dùng chọn các chức năng như sau :
Properties : Xem và sửa chữa thuộc tính của file
Delete : Xóa file
Copy : Đặt file chuẩn bị sao chép
Cut : Đặt file chuẩn bị di chuyển sang nơi khác
Paste : Thực hiện lệnh sao chép hoặc di chuyển file đã đặt trước đó.
Rename : Đổi tên file
Create new directory : Tạo thư mục mới (tại thư mục hiện hành)
Refresh : Cập nhật lại danh sách file
Go home : Trở về thư mục gốc (/)
Go up : Trở lên thư mục cha (Có thể dùng phím back trên điện thoại
để thực hiện nhanh lệnh này)
Exit : Thoát chương trình
About : Xem giới thiệu
Tìm hiểu về hệ điều hành Android 19
voquanghoa@gmail.com Võ Quang Hòa – Nhóm 09A, Lớp 07T4
Android Explorer
Hiển thị danh
sách file
Tạo thư mục
Sao chép file
Di chuyển file
Đổi tên file
Xóa file
Đổi quyền hạn trên file Xem thuộc tính
Mở file bằng
chương trình
liên kết
Đổi thư mục
hiện hành
ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN Bộ môn Mạng & Truyền Thông
Võ Quang Hòa – Nhóm 09A, Lớp 07T4
3.2 Xây dựng chức năng
1) Tạo danh sách file trong một thư mục
2) Mở chương trình liên kết
Bắt đầu Lấy danh sách file trong thư mục
Còn file
chưa xử lý
Lấy 1 file chưa xử lý
Dựa vào kiểu file và phần mở
rộng của file để đặt biểu
tượng thích hợp Kết thúc
Hiển thị Đúng
Sai
Bắt đầu
Kết thúc
Lấy chuổi định kiểu
liên kết với file
Tạo đối tượng Itent.
Chuẩn bị các tham số
bao gồm kiểu activity,
hành động, dữ liệu
truyền vào
Khởi động activity
Tìm hiểu về hệ điều hành Android 21
voquanghoa@gmail.com Võ Quang Hòa – Nhóm 09A, Lớp 07T4
3) Xem và sửa thuộc tính của file
a. Xem thuộc tính file
b. Đổi thuộc tính file
Đúng
Đúng
Bắt đầu
Kết thúc
Thực thi lệnh ls
InputStream và
ErrorStream
chưa sẵn sàng
Chờ đợi
Sai
Báo lỗi
Sai
Đọc inputstream
Tách thông tin
Hiển thị kết quả
InputStream
sẵn sàng
Đúng
Bắt đầu
Kết thúc
Thực thi lệnh chmod
InputStream và
ErrorStream
chưa sẵn sàng
Chờ đợi
Sai
Sai
Báo lỗi
Đúng ErrorStream
sẵn sàng
Nhận yêu cầu
ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN Bộ môn Mạng & Truyền Thông
Võ Quang Hòa – Nhóm 09A, Lớp 07T4
4) Xóa file
5) Sao chép file
Sai
Đúng
Sai
Bắt đầu:
Kết thúc
Còn file trong
danh sách
Copy file
tới đích
File cần xóa là
file bao hàm
Tạo danh sách file
File hiện tại là
file bao hàm
copy file hiện
tại tới đích
Đúng
Sai
Đúng
Tạo file đích
bao hàm
Bắt đầu:
Kết thúc
Còn file trong
danh sách
Xóa file
cần xóa
File cần xóa là
file bao hàm
Tạo danh sách file
File hiện tại là
file bao hàm
Xóa file hiện tại
Đúng
Đúng
Sai
Đúng Sai
Tìm hiểu về hệ điều hành Android 23
voquanghoa@gmail.com Võ Quang Hòa – Nhóm 09A, Lớp 07T4
6) Di chuyển file và đổi tên file
Hai chức năng này java hỗ trợ khá tốt rồi, nên không xây dựng lại nữa, sử dụng phương
thức rename từ File f1 sang File f2. Nếu f1 và f2 cùng chung thư mục thì là chức năng rename,
nếu khác thì mục thì đó là phương thức di chuyển file.
ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN Bộ môn Mạng & Truyền Thông
Võ Quang Hòa – Nhóm 09A, Lớp 07T4
CHƯƠNG 4. TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ
4.1 Môi trường triển khai.
Chương trình được thực hiện trên :
Hệ điều hành Microsoft Window 7
IDE : Eclipse Helios & ADT Plugin
Android SDK, Plasform Android 2.2, API 8, revision 2
4.2 Kết quả chức năng của chương trình
Sau đây là kết quả demo chạy chương trình :
Giao diện chính, xem danh sách file. Hiển thị menu...
Tìm hiểu về hệ điều hành Android 25
voquanghoa@gmail.com Võ Quang Hòa – Nhóm 09A, Lớp 07T4
Xem menu ẩn. Chọn menu more để hiển thị
ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN Bộ môn Mạng & Truyền Thông
Võ Quang Hòa – Nhóm 09A, Lớp 07T4
Xem hình ảnh khi mở file có đuôi jpg, jpe, bmp...
Chơi nhạc khi mở file mp3
Tìm hiểu về hệ điều hành Android 27
voquanghoa@gmail.com Võ Quang Hòa – Nhóm 09A, Lớp 07T4
Khung thuộc tính của file khi chọn 1 file và chọn menu Properties
ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN Bộ môn Mạng & Truyền Thông
Võ Quang Hòa – Nhóm 09A, Lớp 07T4
Khung thuộc tính thư mục khi chọn 1 thư mục và chọn menu Properties
Tìm hiểu về hệ điều hành Android 29
voquanghoa@gmail.com Võ Quang Hòa – Nhóm 09A, Lớp 07T4
Thay đổi quyền hạn của file khi bấm button Change permission từ hộp thoại properties
Đổi tên file khi chọn file và chọn chức nằn rename từ menu
ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN Bộ môn Mạng & Truyền Thông
Võ Quang Hòa – Nhóm 09A, Lớp 07T4
Chọn lệnh xóa file từ menu
Tạo thư mục mới
Tìm hiểu về hệ điều hành Android 31
voquanghoa@gmail.com Võ Quang Hòa – Nhóm 09A, Lớp 07T4
Hộp thoại copy file khi yêu cầu copy file
Hộp thoại giới thiệu.
ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN Bộ môn Mạng & Truyền Thông
Võ Quang Hòa – Nhóm 09A, Lớp 07T4
4.3 Đánh giá và nhận xét
Android là một hệ điều hành di động hiện đại, có tiềm năng phát triển cao. Hiện nay đã sử
dụng rộng rãi ở nhiều hãng điện thoại và thực sự đã trở thành một tập đoàn điện thoại mạnh mẽ
khi cạnh tranh với những dòng điện thoại khác như iPhone, Window Phone, Sysbian..
Android có nguồn gốc từ nhân Linux nên được thừa hưởng những đặc tính quý báu của
linux, nhất là về độ bảo mật và hiệu năng hoạt động cao. Không những thế, từ nhân linux đã được
tối ưu, cải thiện để phù hợp với hệ thống điện thoại nên nó có khả năng tùy biến, tương thích cao
với nhiều mẫu điện thoại của nhiều hãng khác nhau.
Hệ điều hành android được tích hợp nhiều công nghệ hiện đại, hỗ trợ phần cứng tốt, liên
tục được cập nhật những phiên bản mới hơn, hoạt động tốt hơn. Có nhiều API hữu ích cho các nhà
phát triển phần mềm, nhà phát triển ROM có thể xây dựng nên nhiều ứng dụng, hệ thống khác
nhau.
Android là hệ điều hành đa nhiệm một người dùng. Tính đa nhiệm cho phép cùng một thời
gian, người dùng có thể chạy được nhiều nhiều ứng dụng để làm được nhiều việc khác nhau. Tuy
nhiên, mỗi ứng dụng trên android thì chỉ được phép chạy với một thực thể mà thôi.
Hệ thống quản lý tập tin trong android là được phát triển từ linux nên có nhiều đặc điểm
giống với hệ thống quản lý tập tin trên linux. Đó là những đặc điểm về quy tắc đặt tên file, đường
dẫn thư mục, hệ thống cây thư mục, những thư mục đặc trưng, hệ thống quyền hạn của file đối với
người/ nhóm sử dụng trên hệ thống. Cũng giống như linux, trên android có thể thực thi nhiều lệnh
liên quan đến hệ thống file như chmod, chown, chgrp... để chỉnh sửa thuộc tính, hệ thống quyền
hạn trên file.
Tìm hiểu về hệ điều hành Android 33
voquanghoa@gmail.com Võ Quang Hòa – Nhóm 09A, Lớp 07T4
CHƯƠNG 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
5.1 Kết luận
Những kết quả đạt được
Biểu diễn được hệ thống file trên android. Xem được cấu trúc của cây thư mục
một cách trực quan. Sử dụng chương trình có thể nói là dễ dàng vì danh sách thư
mục dễ nhìn, menu chọn được xây dựng sẵn.
Xây được nhiều chức năng thao tác với file như xem và chỉnh sửa quyền hạn
file, sao chép, di chuyển, đổi tên, xóa file.
Liên kết file với chương trình đã cài đặt, điều đó cho phép mở file nhạc, video,
hình ảnh với chương trình có trong máy.
Những mặt hạn chế
Chương trình được xây dựng trên emulator mô phỏng chứ chưa thực sự chạy
trên phần cứng thật.
Cũng vì chỉ chạy trên emulator nên chức năng chỉnh sửa quyền hạn thực hiện
chưa được tốt do không đăng nhập bằng tài khoản thật.
5.2 Hướng phát triển
Xây dựng nhiều chức năng tích hợp hơn để xử lý file
Xây dựng ứng dụng có tùy biến hơn về giao diện, chức năng thực hiện
Chạy được thật trên emulator để có kết quả thực tế hơn.
ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG
KHOA CÔNG NGHỆ THÔNG TIN Bộ môn Mạng & Truyền Thông
Võ Quang Hòa – Nhóm 09A, Lớp 07T4
TÀI LIỆU THAM KHẢO
[1] Trần Hồ Thủy Tiên. Giáo trình nguyên lý hệ điều hành. Đại học Bách khoa Đà Nẵng,
2009.
[2] Mark L. Murphy. The Busy Coder's Guide to Android Development. CommonsWare, LLC
[3] Mark L. Murphy. Beginning Android Apress
[4] Sayed Y. Hashimi và Satya Komatineni Pro Android Appress
[5] Trang phát triển android
Các file đính kèm theo tài liệu này:
- Tìm hiểu về hệ điều hành Android.pdf