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

Đồ án Xây dựng ứng dụng thực đơn điện tử trên Android cho Quán Cafe Nến

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 (1.96 MB, 63 trang )

LỜI CẢM ƠN
Trong suốt quá trình thực hiện đồ án em luôn nhận được sự giúp đỡ tận
tình của các thầy cô giáo, bạn bè và những người thân trong gia đình.
Em xin bày tỏ lòng biết ơn sâu sắc đến thầy giáo Ths. Nguyễn Văn Việt,
người đã trực tiếp hướng dẫn giúp đỡ em trong thời gian làm đồ án vừa qua.
Trong thời gian hướng dẫn tuy thầy rất bận nhưng thầy vẫn dành thời gian chỉ
bảo truyền đạt cho em những kinh nghiệm và những định hướng cho bài báo cáo
của em đảm bảo kết quả và hoàn thành đúng thời gian theo quy định.
Em xin gửi lời cám ơn chân thành nhất tới tất cả các thầy, cô giáo trường
Đại học Công nghệ Thông tin & Truyền thông - Đại học Thái Nguyên nói chung
và các thầy cô giáo trong Bộ môn Công nghệ phần mềm nói riêng đã tận tình
giảng dạy, trang bị cho em vốn kiến thức cũng như những kinh nghiệm quý báu
để em có thể đạt được kết quả tốt nhất trong học tập cũng như trong công việc
của em sau này.
Cuối cùng em xin cảm ơn sự giúp đỡ, động viên của gia đình, bạn bè
dành cho em trong suốt thời gian qua.
Do thời gian và điều kiện có hạn nên đồ án không tránh khỏi những thiếu
sót, em rất mong nhận được sự góp ý từ bạn bè, thầy cô và những người quan
tâm đến đồ án này.
Thái Nguyên, tháng 09 năm
2013
Sinh viên
Nguyễn Trọng Quân

57


LỜI CAM ĐOAN
Em xin cam đoan:
Những nội dung trong báo cáo này là do em thực hiện dưới sự hướng dẫn
trực tiếp của thầy giáo hướng dẫn : ThS. Nguyễn Văn Việt.


Mọi tham khảo dùng trong báo cáo đều được trích dẫn rõ ràng tên tác giả,
tên công trình, thời gian, địa điểm công bố.
Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo em xin chịu hoàn
toàn trách nhiệm.
Thái nguyên, tháng 09 năm
2013
Sinh viên
Nguyễn Trọng Quân

2


MỤC LỤC
TỔNG QUAN.........................................................................................................7
1. Sơ qua tình hình nghiên cứu trong và ngoài nước..........................................7
2. Tính cấp thiết của đề tài.................................................................................7
3. Mục tiêu của đề tài.........................................................................................8
CHƯƠNG 1 TỔNG QUAN HỆ ĐIỀU HÀNH ANDROID....................................9
1.1

Lịch sử android.........................................................................................9

1.2 Delving với máy ảo Dalvik........................................................................19
1.3 Kiến trúc của Android................................................................................19
1.3.1 Tầng ứng dụng...................................................................................20
1.3.2 Application framework......................................................................21
1.3.3 Library...............................................................................................22
1.3.4 Android Runtime...............................................................................23
1.3.5 Linux kernel......................................................................................23
1.4 Xây dựng Android Project.........................................................................24

1.4.1 Android Emulator..............................................................................24
1.4.2 Các thành phần trong Android Project...............................................24
1.4.3 Các thành phần tạo nên một ứng dụng Android.................................29
CHƯƠNG 2 SỬ DỤNG JSON GIAO TIẾP GIỮA ANDROID VÀ WEB
SERVICE..............................................................................................................37
2.1 Tìm hiểu JSON..........................................................................................37
2.2 Sử dụng PHP chuyển đổi CSDL MySQL thành cấu trúc JSON.................40
2.2.1 Cấu trúc JSON...................................................................................40
2.2.2 Kết nối Android với PHP, MySQL....................................................42

3


CHƯƠNG 3 ỨNG DỤNG THỰC ĐƠN ĐIỆN TỬ TRÊN ANDROID CHO NHÀ
HÀNG CAFE NẾN...............................................................................................47
3.1. Khảo sát....................................................................................................47
3.1.1. Giới thiệu..........................................................................................47
3.1.2. Đặc tả bài toán..................................................................................47
3.2. Phân tích hệ thống.....................................................................................48
3.2.1. Đặc tả hệ thống.................................................................................48
3.2.2 Biểu đồ User Case.............................................................................48
3.2.3 Biểu đồ lớp........................................................................................50
3.2.4 Đặc tả Use Case.................................................................................51
3.2.5 Cơ sở dữ liệu WebService..................................................................56
3.3 Một số hình ảnh Demo...............................................................................57
KẾT LUẬN...........................................................................................................58
TÀI LIỆU THAM KHẢO.....................................................................................59
NHẬN XÉT CỦA GIÁO VIÊN............................................................................60

4



DANH MỤC HÌNH ẢNH
Hình 1-1: Các thành viên trong Liên minh về thiết bị cầm tay mã nguồn mở
(Open Handset Alliance).........................................................................................9
Hình 1-2: Android phiên bản 1.1.......................................................................11
Hình 1-3: Android phiên bản 1.5.......................................................................12
Hình 1-4: Android phiên bản 1.6.......................................................................12
Hình 1-5: Android phiên bản 2.0.......................................................................13
Hình 1-6: Android phiên bản 2.2.......................................................................14
Hình 1-7: Android phiên bản 2.3.......................................................................15
Hình 1-8: Android phiên bản 3.0.......................................................................15
Hình 1-9: Android phiên bản 4.0.......................................................................16
Hình 1-10: Android phiên bản 4.1.....................................................................17
Hình 1-11: Biểu đồ phân phối các phiên bản....................................................18
Hình 1-12: Cấu trúc stack hệ thống Android.....................................................20
Hình 1-13: Các thành phần của applications.....................................................20
Hình 1-14: Các thành phần của Application framework....................................21
Hình 1-15: Các thành phần của Native Libraries...............................................22
Hình 1-16: Các thành phần trong Android Runtime..........................................23
Hình 1-17: Các driver trong Linux Kernel..........................................................23
Hình 1-18 :Android emulator............................................................................24
Hình 1-19: Cấu trúc một Project trong Android................................................25
Hình 1-20: Ngăn xếp Activity.............................................................................30
Hình 1-21 Chu kì sống của Activity....................................................................31
Hình 1-22 Chu kì sống của service.....................................................................34
Hình 1-23: Truyền thông giữa hai tiến trình......................................................34
Hình 1-24 Content Provider..............................................................................35
Hình 1-25Ứng dụng Contacts sử dụng Contacts Provider để lấy dữ liệu...........35
Hình 1-26: Intent...............................................................................................36

Hình 2-1 JSONObject.........................................................................................38
Hình 2-2 JSONArray...........................................................................................38
Hình 2-3 JSONValue..........................................................................................38
5


Hình 2-4 JSONString..........................................................................................39
Hình 2-5 JSONNumber......................................................................................39
Hình 2-6: JSONObject và JSONArray.................................................................41
Hình 2-7 JSONConnect......................................................................................42
Hình 3-1 : Mô hình vân hành hê thống............................................................48
Hình 3-2 User use case......................................................................................49
Hình 3-3 Restaurant use case............................................................................49
Hình 3-4 Biểu đồ lớp.........................................................................................50
Hình 3-5 Biểu đồ liên kết các Activity................................................................51
Hình 3-6 Biểu đồ trình tự Use case Select menu..............................................52
Hình 3-7 Biểu đồ cộng tác UC Select menu.......................................................52
Hình 3-8 Biểu đồ trình tự Use case Choose food..............................................53
Hình 3-9 Biểu đồ cộng tác UC Choose food......................................................54
Hình 3-10 Biểu đồ trình tự Use case Order.......................................................55
Hình 3-11 Biểu đồ cộng tác UC Order...............................................................56
Hình 3-12 Menu chính......................................................................................57
Hình 3-13 Menu món chính..............................................................................57
Hình 3-14 Menu đồ uống..................................................................................56
Hình3-15 Menu món tráng miệng.....................................................................56
Hình 3-16 Xử lý gọi món....................................................................................56

6



TỔNG QUAN

1. Sơ qua tình hình nghiên cứu trong và ngoài nước.
Mạng điện thoại di động xuất hiện tại Việt Nam từ đầu những năm 1990
và theo thời gian số lượng các thuê bao cũng như các nhà cung cấp dịch vụ di
động tại Việt Nam ngày càng tăng. Do nhu cầu trao đổi thông tin ngày càng tăng
và nhu cầu sử dụng sản phẩm công nghệ cao nhiều tính năng, cấu hình cao, chất
lượng tốt, kiểu dáng mẫu mã đẹp, phong phú nên nhà cung cấp phải luôn luôn
cải thiện, nâng cao những sản phẩm của mình. Do đó việc xây dựng các ứng
dụng cho điện thoại di động đang là một ngành công nghiệp mới đầy tiềm năng
và hứa hẹn nhiều sự phát triển vượt bậc của ngành khoa học kĩ thuật.
Cùng với sự phát triển của thị trường điện thoại di động là sự phát triển
mạnh mẽ của xu hướng lập trình phần mềm ứng dụng cho các thiết bị di động.
Phần mềm, ứng dụng cho điện thoại di động hiện nay rất đa dạng và phong phú
trên các hệ điều hành di động cũng phát triển mạnh mẽ và đang thay đổi từ ngày.
Các hệ điều hành J2ME, Android, IOS, Hybrid, Web based Mobile Application
đã rất phát triển trên thị trường truyền thông di động, nhưng đáng kể nhất chính
là hệ điều hành Android ra đời với sự kế thừa những ưu việt của các hệ điều
hành ra đời trước và sự kết hợp của nhiều công nghệ tiên tiến nhất hiện nay, đã
được nhà phát triển công nghệ rất nổi tiếng hiện nay là Google. Android đã
nhanh chóng là đối thủ cạnh tranh mạnh mẽ với các hệ điều hành trước đó và
đang là hệ điều hành di động của tương lai và được nhiều người ưa chuộng nhất.
2. Tính cấp thiết của đề tài.
Sự bùng nổ và phát triển mạnh mẽ của công nghệ đã và đang khiến con
người khó có thể thiếu đi chiếc điện thoại của mình. Cùng với sự phát triển đó
thì những ứng dụng trên di động càng ngày càng trở nên cần thiết. Đặc biệt lập
trình ứng dụng Android là một không gian mới hay một thử thách mới với những
người lập trình bởi nó hoàn toàn xa lạ và có nhiều cơ hội cho mọi người thử sức.

7



Là sinh viên, khi thực hiện đề tài, tìm hiểu, nghiên cứu về lĩnh vực mới
này, em tin sẽ học hỏi được nhiều kiến thức mới, nhiều kinh nghiệm thiết thực
hơn và có thể áp dụng vào thực tế, đem lại hiệu quả trong công việc sau này.
3. Mục tiêu của đề tài.
Qua thời gian thực hiện đề tài, em tin rằng sẽ nắm được những điểm
quan trọng trong hệ điều hành Android, thu được nhiều kiến thức, kỹ năng và
kinh nghiệm trong việc lập trình ứng dụng trên thiết bị di động. Nắm được các
yếu tố nền tảng và phát triển được phần mềm ứng dụng thực đơn điện tử.
Cụ thể:
- Nghiên cứu về hệ điều hành Android.
- Nghiên cứu JSON để liên kết ứng dụng Android với CSDL MySQL.
- Xây dựng các tính năng cơ bản cho ứng dụng: Thực đơn điện tử cho nhà
hàng Cafe Nến trên HĐH Android.

8


CHƯƠNG 1 TỔNG QUAN HỆ ĐIỀU HÀNH ANDROID
1.1 Lịch sử android.
Android Incorporation được thành lập ở Palo Alto, California, United
States vào tháng 10 năm 2003 bởi Andy Rubin: đồng sáng lập Danger Inc
(Danger Inc là một công ty độc quyền trong các nền tảng, phần mềm, thiết kế, và
dịch vụ cho thiết bị di động cầm tay), Rich Miner : đồng sáng lập Wildfire
Communications Inc, Nick Sears : từng là phó chủ tịch của T-Mobile, and Chris
White : trưởng nhóm thiết kế và phát triển giao diện tại WebTV. Khi đó, có rất ít
thông tin về các công việc của Android, ngoại trừ việc họ đang phát triển phần
mềm cho điện thoại di động. Cũng tại thời điểm đó, Rubin đã gặp phải một số
vấn đề về tài chính. Sau đó Android Inc đượcGoogle mua lại vào tháng 8/2005.

Vào tháng 11/2007, sau 2 năm phát triển, Google công bố hệ điều hành
điện thoại di động mã nguồn mở Android, cùng với sự thành lập “Liên minh di
động mở” (Open Handset Alliance) bao gồm hơn 78 nhà sản xuất phần cứng
điện thoại lớn trên thế giới như Intel, HTC, China Mobile, T-Mobile,....

Hình 1-1: Các thành viên trong Liên minh về thiết bị cầm tay mã nguồn mở
(Open Handset Alliance)
Mục tiêu của liên minh này là nhanh chóng đổi mới để đáp ứng tốt hơn
cho nhu cầu người tiêu dùng và kết quả đầu tiên của nó chính là nền tảng

9


Android. Android được thiết kế để phục vụ nhu cầu của các nhà sản xuất thiết,
các nhà khai thác và các lập trình viên thiết bị cầm tay.
Android là hệ điều hành mã nguồn mở trên điện thoại di động phát triển
bởi Google dựa trên nền tảng Linux. Mã nguồn của Android được công khai theo
bản cấp phép Apache. Hệ điều hành Android bao gồm 12 triệu dòng mã; 3 triệu
dòng XML, 2.8 triệu dòng mã C, 2.1 triệu mã Java và 1.75 triệu dòng mã C+
+.Các ứng dụng cho Android được viết dựa trên ngôn ngữ Java.
Phiên bản SDK lần đầu tiên phát hành vào tháng 11 năm 2007, hãng TMobile cũng công bố chiếc điện thoại Android đầu tiên đó là chiếc T-Mobile G1,
chiếc smartphone đầu tiên dựa trên nền tảng Android. Một vài ngày sau đó,
Google lại tiếp tục công bố sự ra mắt phiên bản Android SDK release Candidate
1.0.Trong tháng 10 năm 2008, Google được cấp giấy phép mã nguồn mở cho
Android Platform.
Khi Android được phát hành thì một trong số các mục tiêu trong kiến trúc
của nó là cho phép các ứng dụng có thể tương tác được với nhau và có thể sử
dụng lại các thành phần từ những ứng dụng khác. Việc tái sử dụng không chỉ
được áp dụng cho cho các dịch vụ mà nó còn được áp dụng cho cả các thành
phần dữ liệu và giao diện người dùng.

Các phiên bản Android:


Android 1.0: Ra mắt: ngày 10/2008.
HTC Dream là dòng smartphone thương mại dùng Android đầu tiên với

kiểu dáng trượt kèm bàn phím vật lý. Phiên bản Android 1.0 chưa được Google
định hình tên mã, dù trước đó tên gọi Astro Boy hay Bender được gán cho thế hệ
đầu tiên này.
Android 1.0 rất nguyên sơ, tích hợp sẵn khả năng đồng bộ dữ liệu với các
dịch vụ trực tuyến của Google như Gmail, Google Calendar và Contacts, một
trình phát media, hỗ trợ Wi-Fi và Bluetooth, thanh trạng thái hiển thị các thông

10


báo ứng dụng và một ứng dụng chụp ảnh (camera) tuy chưa cho phép thay đổi
độ phân giải và chất lượng ảnh.


Android 1.1: Ra mắt: ngày 2/2009.

Hình
1-2:
Andr
oid
phiê
n
bản
1.1

Bên cạnh con số, Google rục rịch đưa hệ thống tên gọi (tên mã) vào các
phiên bản Android. Tuy chưa chính thức áp dụng nhưng Android 1.1 đã có tên
Petit Four. Không bao gồm nhiều tính năng, phiên bản này bổ sung một số chức
năng mới cho Google Maps hiển thị chi tiết hơn, bàn phím ảo gọi điện thoại đã
có thể hiển thị hoặc ẩn khi gọi, chương trình SMS cho phép người dùng lưu tập
tin đính kèm. Android 1.1 sửa một số lỗi trong Android 1.0.


Android 1.5: Cupcake: Ra mắt: ngày 30/4/2009.
Cupcake, tên mã đầu tiên áp dụng cho phiên bản Android. Cupcake mang

nhiều tính năng mới như bàn phím ảo có khả năng dự đoán từ đang gõ, từ điển từ
ngữ do người dùng đặt ra, hỗ trợ widget trên giao diện chủ, quay phim và phát
lại video clip, lược sử thời gian cuộc gọi, chế độ tự động xoay màn hình theo
11


hướng sử dụng (screen rotation). Trình duyệt web trong Cupcake có thêm khả
năng sao chép/ dán (copy/paste).

Hình
1-3:
Andr
oid
phiê
n
bản
1.5
Ngoài ra, phiên bản này cho phép người dùng hiển thị hình ảnh trong
danh bạ, một điểm thú vị mà hầu hết người dùng điện thoại di động muốn có.

Màn hình chuyển đổi và hình ảnh khi khởi động máy được làm mới.


Android 1.6: Donut: Ra mắt: ngày 15/9/2009.
Donut khắc phục các chức năng "lỏng lẻo" trong Cupcake, mở rộng chức

năng tìm kiếm bằng giọng nói và ký tự đến bookmark và danh bạ. Android
Market trở thành "chợ đầu mối" để người dùng tìm kiếm và xem các ứng dụng
Android. Ứng dụng chụp ảnh và quay phim trong Donut nhanh hơn. Hệ điều
hành hỗ trợ màn hình có độ phân giải lớn hơn, hướng đến các thế hệ smartphone
màn hình lớn.

12


Hình 1-4: Android phiên bản 1.6


Android 2.0: Éclair: Ra mắt: ngày 26/10/2009.
Chỉ sau gần một tháng ra mắt Donut (Android 1.6), Google tung ra Eclair,

phiên bản được nhận định là "bước đi lớn" của hệ điều hành này.

Hình
1-5:
Andr
oid
phiê
n
bản

2.0
Eclair cải tiến rất nhiều, từ giao diện đến ứng dụng bên trong hệ thống.
Ứng dụng chụp ảnh tăng cường thêm chức năng zoom số (phóng to), cân bằng
trắng, hỗ trợ đèn flash và các hiệu ứng màu sắc.
13


Hệ thống hoạt động ổn định hơn, cải thiện khả năng xử lý, hỗ trợ kết nối
Bluetooth tốt hơn, đặc biệt tùy chọn đồng bộ nhiều tài khoản. Một điểm thuận
tiện được đánh giá cao lúc bấy giờ là giao diện danh bạ cho phép nhấn chọn vào
một ảnh danh bạ để gọi, nhắn tin hay email đến họ. Giao diện ứng dụng lịch biểu
(Calendar) cũng thay đổi.
Eclair là phiên bản Android đầu tiên hỗ trợ ảnh nền động (live wallpaper)
dù tùy chọn này tiêu tốn khá nhiều pin.


Android 2.2: Froyo: Ra mắt: ngày 20/5/2010.
Từ phiên bản 2.0 trở đi, Android dần hoàn thiện hơn. Phiên bản 2.2

(Froyo) mang Adobe Flash đến Android, kéo theo hàng loạt ứng dụng và game
trên nền Flash. Người dùng cũng có thể xem video clip nền Flash như YouTube
và "ra lệnh" thực hiện cuộc gọi qua Bluetooth.

Hình
1-6:
Andr
oid
phiê
n
bản

2.2
Một chức năng mới trong Froyo được nhóm người dùng lưu động yêu
thích là USB Tethering và Wi-Fi Hotspot, biến chiếc smartphone Android thành

14


thiết bị phát sóng Wi-Fi từ kết nối 3G. Tính năng này được sử dụng rất phổ
biến đến ngày nay.
Lần đầu tiên Android cho phép cài đặt ứng dụng (app) lên thẻ nhớ SD
thay vì mặc định cài ngay vào bộ nhớ trong của thiết bị. Điểm "đầu tiên" nữa
trong Froyo bao gồm mật khẩu đã hỗ trợ số và chữ số. Thiết bị đầu tiên mang
nhãn Froyo ra mắt thị trường là HTC Nexus One.


Android 2.3: Gingerbread: Ra mắt ngày: 6/12/2010.
Đến cuối năm 2012, Gingerbread vẫn đang "phủ sóng" trên rất nhiều thiết

bị dùng Android, chiếm đến hơn phân nửa (54%). Google hợp tác Samsung trình
làng dòng smartphone đầu tiên sử dụng Gingerbread mang tên Nexus S, hỗ trợ
công nghệ giao tiếp tầm gần NFC.

Hình
1-7:
Andr
oid
phiê
n
bản
2.3

Gingerbread đưa vào hệ thống một công cụ quản lý tải tập tin, cho phép
theo dõi và truy xuất đến các tập tin đã tải về máy. Hệ thống này hỗ trợ nhiều
camera cho các thiết bị có camera mặt sau và trước, quản lý nguồn pin hiệu quả

15


hơn, tiết kiệm thời lượng pin. Phiên bản này khắc phục khá nhiều lỗi từ Froyo,
kèm theo một số điều chỉnh trong giao diện người dùng (UI).


Android 3.0: Honeycomb: Ra mắt: ngày 22/2/2011.
Đây không chỉ là một phiên bản, mà có thể xem là một thế hệ Android

đầu tiên dành riêng cho máy tính bảng (tablet), ra mắt cùng tablet Motorola
XOOM.

Hình
1-8:
Andr
oid
phiê
n
bản
3.0
Mang những tính năng từ thế hệ Android 2.x, Android 3.0 cải tiến giao
diện phù hợp với cách sử dụng máy tính bảng, bàn phím ảo thân thiện hơn, hỗ
trợ xử lý đa tác vụ (multi-tasking), cho phép chuyển đổi qua lại các ứng dụng
đang cùng chạy. Không chỉ có bề mặt được trau chuốt, phần lõi hệ thống có các
cải tiến tương thích với phần cứng như hỗ trợ chip xử lý (CPU) đa lõi, tăng tốc

phần cứng...
Android 3.0 đặt nền móng quan trọng cho thế hệ Android 4.x hợp nhất,
khắc phục sự phân mảng của Android (có các phiên bản riêng dành cho
smartphone và tablet).
16


Android 4.0: Ice Cream Sandwich: Ra mắt: ngày 19/10/2011.



"Bánh kem sandwich" (ICS) là thế hệ Android được mong đợi nhất đến
nay, ra đời cùng dòng smartphone "bom tấn" Samsung Galaxy Nexus, thế hệ
smartphone đầu tiên trang bị ICS.

Hình 1-9: Android phiên bản 4.0
Android 4.0 đưa chức năng truy xuất nhanh các ứng dụng thường dùng
vào phần bên dưới giao diện chủ, tùy biến widget, dễ sắp xếp và duyệt danh sách
ứng dụng hơn. Các ứng dụng đã có thể truy xuất nhanh từ màn hình khóa thiết bị
(Lock screen), hiện các hãng sản xuất thiết bị chỉ mới cho phép Camera có thể
chọn nhanh từ Lock screen.
Ice Cream Sandwich hoạt động mượt mà, nhanh và đẹp hơn.


Android 4.1: Jelly Bean: Ra mắt: 9/7/2012.
Máy tính bảng Nexus 7, sản phẩm hợp tác giữa Google và Asus, là thiết

bị dùng Jelly Bean đầu tiên ra mắt. Android 4.1 nâng tầm hoạt động cho hệ điều
hành của Google, Và trở thành hệ điều hành cho thiết bị di động hàng đầu hiện
nay.

Khả năng sắp xếp giao diện chủ và widget trong Jelly Bean rất tùy biến và
linh hoạt. Hệ thống hỗ trợ dịch vụ ví điện tử Google Wallet, đặc biệt trình duyệt

17


web mặc định trong Android được thay thế bởi đại diện tên tuổi: Chrome, với
khả năng đồng bộ dữ liệu theo tài khoản với bản Chrome trên máy tính.

Hình
1-10:
Andr
oid
phiê
n
bản
4.1
Jelly Bean giới thiệu Google Now, dịch vụ trực tuyến mới hiện chỉ dành cho
Android, một phụ tá ảo đắc lực cho công việc sắp xếp lịch trình, tìm kiếm thông
tin, xác định vị trí... Rất đa năng và được xem như lời đáp trả của Google với
"phụ tá ảo" Apple Siri trong iOS.


Android 4.2: vẫn là Jelly Bean: Ra mắt: tháng 11/2012.
Chỉ sau gần năm tháng ra mắt Android 4.1, Google tiếp tục bồi thêm sức

nặng cho Android với phiên bản 4.2 và vẫn mang tên mã Jelly Bean.
Android 4.2 tiếp tục mang đến những cải tiến hấp dẫn cho ứng dụng chụp
ảnh (Camera) như HDR, Photo Sphere, hiệu ứng ảnh, Google Now, đưa tính
năng lướt chọn từ rất hay trong bàn phím ảo. Chức năng "bom tấn" hỗ trợ nhiều

tài khoản người dùng (multi-user profile) lần đầu tiên được áp dụng trong
Android 4.2 nhưng chỉ có người dùng máy tính bảng thừa hưởng chức năng này.

18


Bảng dưới đây cho biết quá trình phát hành các phiên bản của android.
Chỉ số phân phối mức độ sử dụng các phiên bản dưới đây được thống kê vào
ngày 02/06/2012.

Version

Ngày phát hành

1.0

10/2008

1.1

02/2009

API level

Phân phối

1.5 Cupcake

30/04/2009


3

0.3%

1.6 Donut

15/09/2009

4

0.6%

2.0, 2.1 Eclair

26/10/2009

7

5.2%

2.2 Froyo

20/05/2010

8

19.1%

2.3.x Gingerbread


06/12/2010

9-10

65%

3.x.x Honeycomd

22/02/2011

11-13

2.7%

4.0.x Ice CreamSandwich

19/10/1011

14-15

7.1%

Hình 1-11: Biểu đồ phân phối các phiên bản.

1.2 Delving với máy ảo Dalvik.
Dalvik là máy ảo giúp các ứng dụng java chạy được trên các thiết bị động
Android. Nó chạy các ứng dụng đã được chuyển đổi thành một file thực thi
19



Dalvik (dex). Định dạng phù hợp cho các hệ thống mà thường bị hạn chế về bộ
nhớ và tốc độ xử lý. Dalvik đã được thiết kế và viết bởi Dan Bornstein, người đã
đặt tên cho nó sau khi đến thăm một ngôi làng đánh cá nhỏ có tên là Dalvik ở
đảo Eyjafjörður, nơi mà một số tổ tiên của ông sinh sống.
Từ góc nhìn của một nhà phát triển, Dalvik trông giống như máy ảo Java
(Java Virtual Machine) nhưng thực tế thì hoàn toàn khác.Khi nhà phát triển viết
một ứng dụng dành cho Android, anh ta thực hiện các đoạn mã trong môi trường
Java. Sau đó, nó sẽ được biên dịch sang các bytecode của Java, tuy nhiên để thực
thi được ứng dụng này trên Android thì nhà phát triển phải thực thi một công cụ
có tên là dx. Đây là công cụ dùng để chuyển đổi bytecode sang một dạng gọi là
dex bytecode. "Dex" là từ viết tắt của "Dalvik executable" đóng vai trò như cơ
chế ảo thực thi các ứng dụng Android.
1.3 Kiến trúc của Android
Mô hình sau thể hiện một cách tổng quát các thành phần của hệ điều hành
Android. Mỗi một phần sẽ được đặc tả một cách chi tiết dưới đây.

Hình 1-12: Cấu trúc stack hệ thống Android

20


1.3.1 Tầng ứng dụng.

Hình 1-13: Các thành phần của applications.
Nằm ở tầng trên cùng của kiến trúc android. Bao gồm các ứng dụng cần
thiết cơ bản được tích hợp sẵn như: contacts, browser, camera, Phone, … cũng
như các ứng dụng mà chúng ta download và cài đặt thêm từ Google Play hay các
ứng dụng được viết tại tầng này. Tất cả các ứng dụng chạy trên hệ điều hành
Android đều có các đặc tính sau:
 Được viết bằng java, có phần mở rộng là .apk.

 Mỗi khi một ứng dụng chạy lại có một máy ảo riêng vì vậy mã nguồn
của ứng dụng chạy cô lập với mã nguồn của ứng dụng khác.
 Hệ điều hành Android là hệ điều hành đa nhiệm, do đó tại một thời
điểm có nhiều ứng dụng chạy, tuy nhiên mỗi ứng dụng chỉ có duy nhất
một thực thể được chạy. Việc này có tác dụng hạn chế sự lạm dụng tài
nguyên, giuos hệ thống hoạt động hiệu quả hơn. Các ứng dụng đưuọc
phân quyền và sẽ bị hệ thống hủy bỏ nếu mức ưu tiên thấp.
 Android là hệ điều hành có tính mở, nó cho phép ứng dụng của bên
thứ ba chạy nền. Tuy nhiên các ứng dụng chỉ được phép sử dụng
không quá 5~10% công suất CPU để tránh đuộc quyền sử dung CPU.
1.3.2 Application framework.

Hình 1-14: Các thành phần của Application framework
Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp cho
các nhà phát triển khả năng xây dựng các ứng dụng cực kỳ phong phú và sáng
tạo. Nhà phát triển được tự do tận dụng các thiết bị phần cứng, thông tin địa
21


điểm truy cập, các dịch vụ chạy nền, thiết lập hệ thống báo động, thêm các thông
báo để các thanh trạng thái, và nhiều hơn nữa.
Nhà phát triển có thể truy cập vào các API cùng một khuôn khổ được sử
dụng bởi các ứng dụng lõi. Các kiến trúc ứng dụng được thiết kế để đơn giản hóa
việc sử dụng lại các thành phần. Bất kỳ ứng dụng có thể xuất bản khả năng của
mình và ứng dụng nào khác sau đó có thể sử dụng những khả năng (có thể hạn
chế bảo mật được thực thi bởi khuôn khổ).Cơ chế này cho phép các thành phần
tương tự sẽ được thay thế bởi người sử dụng.
Cơ bản tất cả các ứng dụng là một bộ các dịch vụ và các hệ thống, bao gồm:



Một tập hợp rất nhiều các View có khả năng kế thừa lẫn nhau dùng để

thiết kế phần giao diện ứng dụng như: gridview, tableview, linearlayout,…

Một “Content Provider” cho phép các ứng dụng có thể truy xuất dữ liệu
từ các ứng dụng khác (chẳng hạn như Contacts) hoặc là chia sẻ dữ liệu giữa các
ứng dụng đó.

Một “Resource Manager” cung cấp truy xuất tới các tài nguyên không
phải là mã nguồn, chẳng hạn như: localized strings, graphics, and layout files.

Một “Notifycation Manager” cho phép tất cả các ứng dụng hiển thị các
custom alerts trong status bar.
Activity Manager được dùng để quản lý chu trình sống của ứng dụng và điều
hướng các activity.
1.3.3 Library.

Hình 1-15: Các thành phần của Native Libraries
Android bao gồm một tập hợp các thư viên C/C++ được sử dụng bởi
nhiều thành phần khác nhau trong hệ thống Android. Điều này được thể hiện
thông qua nền tảng ứng dụng Android. Một số các thư viện cơ bản được liệt kê
dưới đây:
22




Hệ thống thư viện C :triển khai BSD-derived có nguồn gốc từ các hệ

thống thư viện chuẩn C(libc), chỉnh để nhúng vào các thiết bị dựa trên Linux.


Media Libraries– Dựa trên gói Video OpenCORE; Các thư viện hỗ trợ
phát và ghi âm của các định dạng âm thanh và video phổ biến, cũng như các file
hình ảnh tĩnh, bao gồm MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG

Surface Manager– Quản lý việc truy xuất vào hệ thống hiển thị

LibWebCore- một trình duyệt web hiện đại có quyền hạn trong cả trình
duyệt Android và hiển thị nhúng web.

SGL– Các cơ sở công cụ đồ họa 2D.

3D libraries- Thực hiện dựa trên OpenGL ES 1.0 APIs; Thư viện sử dụng
hoặc là tăng tốc phần cứng 3D (nếu có) hoặc bao gồm tối ưu hóa phần mềm 3D.

FreeType– Vẽ phông chữ bipmap và vector.

SQLite– Một công cụ hỗ trợ thao tác trên CSDL một cách mạnh mẽ, gọn
nhẹ cho tất cả các ứng dụng.
1.3.4 Android Runtime.

Hình 1-16: Các thành phần trong Android Runtime
Android runtime nằm cùng tầng với các thư viện. Bao gồm một tập hợp
các thư viện cơ bản mà cung cấp hầu hết các chức năng có sẵn trong các thư viện
lõi của ngôn ngữ lập trình Java. Cho phép các nhà phát triển viết các ứng dụng
android bằng ngôn ngữ java.
Android runtime bao gồm một máy ảo Dalvik và thư viện lõi. Máy ảo
Dalvik cho phép các ứng dụng Android chạy trong tiến trình riêng. Dalvik là một
máy ảo chuyên dụng đã được viết để cho một thiết bị có thể chạy nhiều máy ảo
hiệu quả. Các VM Dalvik thực thi các tập tin thực thi Dalvik (dex). Định dạng

được tối ưu hóa cho bộ nhớ tối thiểu.VM là dựa trên register-based, và chạy các
lớp đã được biên dịch bởi một trình biên dịch Java để chuyển đổi thành các định
dạng dex. Các VM Dalvik dựa vào nhân Linux cho các chức năng cơ bản như
luồng và quản lý bộ nhớ thấp.
23


1.3.5 Linux kernel.

Hình 1-17: Các driver trong Linux Kernel
Android dựa trên Linux phiên bản 2.6 cho hệ thống dịch vụ cốt lõi như
quản lí bộ nhớ, quản lí tiến trình, bảo mật...và diều khiển mọi hoạt động của thiệt
bị. Thực tế Kernel Linux này đã được sửa đổi và nâng cấp để phù hợp với các
thiết bị cầm tay như hạn chế về bộ xử lí, dung lượng bộ nhớ thấp, kích thước
màn hình hẹp, nhu cầu kết nối mạng không dây…
1.4 Xây dựng Android Project.
1.4.1 Android Emulator.
Android SDK và Plugin Eclipse được gọi là một Android Deverloper Tool
(ADT).Các Android coder sẽ cần phải sử dụng công cụ IDE (Integrated
Development Enveronment) này để phát triển, debugging và testing cho ứng
dụng.Tuy nhiên, các coder cũng có thể không cần phải sử dụng IDE mà thay vào
đó là sử dụng command line để biên dịch và tất nhiên là vẫn có Emulator như
thường.
Android Emulator được trang bị đầy đủ hầu hết các tính năng của một
thiết bị thật. Tuy nhiên, một số đã bị giới hạn như là kết nối qua cổng USB,
camera và video, nghe phone, nguồn điện giả lập và bluetooth.
Android Emulator thực hiện các công việc thông qua một bộ xử lý mã
nguồn mở, công nghệ này được gọi là QEMU( được

24



phát triển bởi Fabrice Bellard. Hình dưới đây mô tả một Android emulator:

Hình 1-18 :Android emulator
1.4.2 Các thành phần trong Android Project.
Khi lập trình viên phát triển một project mới trên nền tảng Android hệ
thống được sắp xếp theo cấu trúc hình cây thư mục giống với các Project trong
ngôn ngữ Java. Cấu trúc cơ bản được mô tả trong hình sau. Ngoài ra lập trình
viên có thể dễ dàng thêm các gói, các nguồn tài nguyên, các phiên bản update
cần thiết cho ứng dụng của mình, họ chỉ việc copy vào các thư mục tương ứng
hoặc khởi tạo các thư mục mới nếu cần thiết.

25


×