1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

63 260 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 63
Dung lượng 2,65 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tổng quan hệ điều hành Android. Sử dụng JSON giao tiếp giữa Android và Web Server. Ứng dụng thực đơn điện tử trên Android cho nhà hàng Café Nến. 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. Nhu cầu trao đổi thông tin ngày càng tăng cùng với nhu cầu sử dụng sản phẩm công nghệ cao nhiều tính năng thông minh. 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.

Trang 1

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ìnhgiả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ệccủ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ếusót, em rất mong nhận được sự góp ý từ bạn bè, thầy cô và những người quantâm đến đồ án này

Thái Nguyên, tháng 09 năm2013

Sinh viênNguyễn Trọng Quân

Trang 2

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àntoàn trách nhiệm

Thái nguyên, tháng 09 năm 2013

Sinh viên

Nguyễn Trọng Quân

Trang 3

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

Trang 4

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

Trang 5

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

Trang 6

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

Trang 7

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ấtlượng tốt, kiểu dáng mẫu mã đẹp, phong phú nên nhà cung cấp phải luôn luôncả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 ứngdụ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ểnmạ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ềuhà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 conngườ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ậptrình ứng dụng Android là một không gian mới hay một thử thách mới với nhữngngườ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

Trang 8

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ớinà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ựchơ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ểmquan 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ácyế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

Trang 9

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, UnitedStates 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 WildfireCommunications Inc, Nick Sears : từng là phó chủ tịch của T-Mobile, and ChrisWhite : trưởng nhóm thiết kế và phát triển giao diện tại WebTV Khi đó, có rất ítthông tin về các công việc của Android, ngoại trừ việc họ đang phát triển phầnmề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ơncho 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

Trang 10

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ểnbởi Google dựa trên nền tảng Linux Mã nguồn của Android được công khai theobản cấp phép Apache Hệ điều hành Android bao gồm 12 triệu dòng mã; 3 triệudò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 Mobile 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 Candidate1.0.Trong tháng 10 năm 2008, Google được cấp giấy phép mã nguồn mở choAndroid Platform

T-Khi Android được phát hành thì một trong số các mục tiêu trong kiến trúccủ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ànhphầ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ớikiể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ácdịch vụ trực tuyến của Google như Gmail, Google Calendar và Contacts, mộttrình phát media, hỗ trợ Wi-Fi và Bluetooth, thanh trạng thái hiển thị các thông

Trang 11

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ácphiên bản Android Tuy chưa chính thức áp dụng nhưng Android 1.1 đã có tênPetit Four Không bao gồm nhiều tính năng, phiên bản này bổ sung một số chứcnă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ậptin đí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 mangnhiề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átlại video clip, lược sử thời gian cuộc gọi, chế độ tự động xoay màn hình theo

Trang 12

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 trongdanh 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ứcnăng tìm kiếm bằng giọng nói và ký tự đến bookmark và danh bạ AndroidMarket trở thành "chợ đầu mối" để người dùng tìm kiếm và xem các ứng dụngAndroid Ứng dụng chụp ảnh và quay phim trong Donut nhanh hơn Hệ điềuhành hỗ trợ màn hình có độ phân giải lớn hơn, hướng đến các thế hệ smartphonemàn hình lớn

Trang 13

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ằngtrắng, hỗ trợ đèn flash và các hiệu ứng màu sắc

Trang 14

Hệ thống hoạt động ổn định hơn, cải thiện khả năng xử lý, hỗ trợ kết nốiBluetooth tốt hơn, đặc biệt tùy chọn đồng bộ nhiều tài khoản Một điểm thuậntiện được đánh giá cao lúc bấy giờ là giao diện danh bạ cho phép nhấn chọn vàomộ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à gametrê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êuthích là USB Tethering và Wi-Fi Hotspot, biến chiếc smartphone Android thành

Trang 15

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ớ SDthay vì mặc định cài ngay vào bộ nhớ trong của thiết bị Điểm "đầu tiên" nữatrong Froyo bao gồm mật khẩu đã hỗ trợ số và chữ số Thiết bị đầu tiên mangnhã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ìnhlà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éptheo 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ềucamera cho các thiết bị có camera mặt sau và trước, quản lý nguồn pin hiệu quả

Trang 16

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 MotorolaXOOM

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 giaodiệ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áccả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ốcphầ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 chosmartphone và tablet)

Trang 17

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 đếnnay, 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ùngvà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ềuhành của Google, Và trở thành hệ điều hành cho thiết bị di động hàng đầu hiệnnay

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

Trang 18

web mặc định trong Android được thay thế bởi đại diện tên tuổi: Chrome, vớikhả 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 choAndroid, 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ôngtin, 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ứcnặ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ínhnă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

Trang 19

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àongày 02/06/2012.

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ị độngAndroid Nó chạy các ứng dụng đã được chuyển đổi thành một file thực thi

Trang 20

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ếtmột ứng dụng dành cho Android, anh ta thực hiện các đoạn mã trong môi trườngJava Sau đó, nó sẽ được biên dịch sang các bytecode của Java, tuy nhiên để thựcthi đượ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ànhAndroid 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

Trang 21

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ầnthiết cơ bản được tích hợp sẵn như: contacts, browser, camera, Phone, … cũngnhư 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ànhAndroid đề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ồncủ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ấtmộ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àinguyên, giuos hệ thống hoạt động hiệu quả hơn Các ứng dụng đưuọcphâ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ênthứ ba chạy nền Tuy nhiên các ứng dụng chỉ được phép sử dụngkhô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 chocá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ángtạ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

Trang 22

đ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ôngbá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óaviệ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ủamình và ứng dụng nào khác sau đó có thể sử dụng những khả năng (có thể hạnchế 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ầntươ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ôngphả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áccustom alerts trong status bar

Activity Manager được dùng để quản lý chu trình sống của ứng dụng và điềuhướ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ởinhiều thành phần khác nhau trong hệ thống Android Điều này được thể hiệnthô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:

Trang 23

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 filehì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ợpcá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ệnlõ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ụngandroid 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 ảoDalvik cho phép các ứng dụng Android chạy trong tiến trình riêng Dalvik là mộtmáy ảo chuyên dụng đã được viết để cho một thiết bị có thể chạy nhiều máy ảohiệ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áclớp đã được biên dịch bởi một trình biên dịch Java để chuyển đổi thành các địnhdạ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

Trang 24

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ácthiết bị cầm tay như hạn chế về bộ xử lí, dung lượng bộ nhớ thấp, kích thướcmà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 (IntegratedDevelopment Enveronment) này để phát triển, debugging và testing cho ứngdụ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ộtthiế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(http://bellard.org/qemu/) được

Trang 25

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 trongngôn ngữ Java Cấu trúc cơ bản được mô tả trong hình sau Ngoài ra lập trìnhviê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 updatecầ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 ứnghoặc khởi tạo các thư mục mới nếu cần thiết

Trang 26

Hình 1-19: Cấu trúc một Project trong Android

- AndroidManiFest.xml Là một File XML chứa các mô tả về ứng dụng và

các Compoment-Actives, Services, Permission,… và những gì được cung cấpbởi ứng dụng

- Res/ Lưu trữ tài nguyên cho ứng dụng như các hình ảnh các biểu tượng,

GUI layout…, sẽ được đóng gói trong quá trình biên dịch ứng dụng Java

- Assets/ Chứa các tập tin tĩnh cần thiết cho việc triển khai vào thiết bị, thư

mục này sẽ được đóng gói trong quá trình biên dịch

- Thư mục chứa các gói hỗ trợ cho ứng dụng

- Src/ Lưu trữ mã nguồn Java của ứng dụng.

- Default.propertices Một tệp tin thuộc tính được sử dụng bởi Ant để xây

dựng Script

- Bind/ Thư mục được khởi tạo khi ứng dụng được biên dịch.

- Libs/ Chứa thư viện Java JARs cần thiết cho ứng dụng.

Trang 27

Khi khởi tạo một ứng dụng tài nguyên tĩnh cần thiết cho ứng dụng được

lưu trữ trong thư mục Res/ các tài nguyên này sẽ được đóng gói cùng với ứng

dụng Trong thư mục này có thêm các thư mục sau

- Res/drawable/ Thư mục chứa các tệp tin hình ảnh (*.PNG,*.JPEG,…).

- Res/layout/ Chứa các tệp tin xml chỉ ra các thành phần giao diện người

- Res/values Chứa các xâu, kích thước và các giá trị tương tự.

- Res/xml Chứa các tệp tin xml đa mục đích, lập trình có thể thỏa trí thêm

các compoment cần thiết, các file định nghĩa các giao diện người dùng cần thiết

Khi biên dịch project kết quả sẽ được lưu lại trong thư mục bin/ Thư mục này

bao gồm các thành phần sau

- Bin/classes/ Chứa các lớp Java đã được biên dịch.

- Bin/classes.hex Chứa các lớp thực thi đã được biên dịch từ các lớp Java.

- Bin/yourapp.ap_ yourapplà tên của ứng dụng Tệp này chứa các tài

nguyên cần cho ứng dụng được đóng gói dưới dạng tệp Zip

- bin/yourapp-debug.apk hoặc bin/yourapp-unsigned.apk là ứng dụng Android thực tế yourapp là tên của ứng dụng.

AndroidManifest.xml

Trong bất kì một project Android nào khi tạo ra đều có một fileAndroidManifest.xml, file này được dùng để định nghĩa các screen sử dụng, cácpermission cũng như các theme cho ứng dụng Đồng thời nó cũng chứa thông tin

về phiên bản SDK, cũng như main activity sẽ chạy đầu tiên

File này được tự động sinh ra khi tạo một Android project Trong file manifestbao giờ cũng có 3 thành phần chính đó là: application, permission và version

Trang 28

Dưới đây là nội dung của một file AndroidManifest.xml:

android:icon = “drawable resource” Ở đây đặt đường dẫn đến file icon của ứng

dụng khi cài đặt VD: android:icon = “@drawable/icon”

android:name = “string” thuộc tính này để đặt tên cho ứng dụng Android Tên

này sẽ được hiển thị lên màn hình sau khi cài đặt ứng dụng

Trang 29

android:theme = “drawable theme” thuộc tính này để đặt theme cho ứng dụng.

Các theme là các cách để hiển thị giao diện ứng dụng

Cụ thể những công việc mà AndroidManifest.xml thực hiện:

- Đặt tên cho Java package của ứng dụng

- Mô tả các thành phần (component) của ứng dụng: activity, service, broadcast receiver hoặc content provider

- Thông báo những permission mà ứng dụng cần có để truy nhập các protectedAPI và tương tác với các ứng dụng khác

- Thông báo những permission mà các ứng dụng khác cần có để tương tác vớiứng dụng hiện thời

- Thông báo level thấp nhất của Android API mà ứng dụng cần để chạy.(Android 1.6 level 4, 2.1 level 7, 2.2 level 8, 2.3.3 level 10… và mới nhất hiệnnay là Android 4.0.3 level 15)

Permission

Bao gồm các thuộc tính chỉ định quyền truy xuất và sử dụng tài nguyên của ứngdụng Khi cần sử dụng một loại tài nguyên nào đó thì trong file manifest của ứngdụng cần phải khai báo các quyền truy xuất như sau:

Trang 30

File R.java là một file tự động sinh ra ngay khi tạo ứng dụng, file này được sửdụng để quản lý các thuộc tính được khai báo trong file XML của ứng dụng vàcác tài nguyên hình ảnh.

Mã nguồn của file R.java được tự động sinh khi có bất kì một sự kiện nàoxảy xa làm thay đổi các thuộc tính trong ứng dụng Chẳng hạn như, bạn kéo vàthả một file hình ảnh từ bên ngoài vào project thì ngay lập tức thuộc tính đườngdẫn đến file đó cũng sẽ được hình thành trong file R.java hoặc xoá một file hìnhảnh thì đường dẫn tương ứng đến hình ảnh đó cũng tự động bị xoá

Có thể nói file R.java hoàn toàn không cần phải đụng chạm gì đến trong

cả quá trình xây dựng ứng dụng

1.4.3 Các thành phần tạo nên một ứng dụng Android.

Các ứng dụng Android sẽ được xây dựng từ các thành phần cơ bản đó là:Activity, Service, Broadcast receiver, Content Provider và Intent-Activity

Activity

Activity là một thành phần ứng dụng cung cấp một màn hình mà ngườidùng có thể tương tác để làm một việc gì đó Chẳng hạn như quay số điện thoại,chụp ảnh, gửi email hoặc xem một bản đồ Một Activity có thể bắt đầu từ cácActivity khác.Bên trong hệ thống các Activity được quản lý như một ngăn xếp.Khi một Activity mới được bắt đầu thì nó được đặt ở đỉnh của ngăn xếp và trởtrành Activity đang chạy Activity trước sẽ ở bên dưới Activity mới và sẽ khôngthấy trong suốt quá trình Activity mới tồn tại Nếu người dùng nhấn nút Back thìActivity kế tiếp của ngăn xếp sẽ di chuyển lên và trở thành active Hình dướiđâymô tả một ngăn xếp các Activity:

Trang 31

Hình 1-20: Ngăn xếp Activity

Mỗi tiến trình chạy ứng dụng trên nền tảng Android được đặt trên mộtngăn xếp Khi sử dụng một Activity trên foreground thì tiến trình hệ thống sẽđưa Activity đó lên trên cùng của ngăn xếp và tiến trình trước đó sẽ được chuyểnxuống mức dưới Tất cả các Activity đều có khả năng bị dừng lại hoặc bị pháhủy bất cứ lúc nào bởi vì người sử dụng có thể thay đổi các Activity tùy theo ýthích của họ Chẳng hạn như: họ đang dùng Activity là một cuộc gọi và sau đó

họ dừng cuộc gọi và chuyển sang Activity khác là chụp ảnh, gửi email hay nhắntin SMS Nếu tiến trình Activity bị thoát ra khỏi foreground thì nó sẽ bị hủy.Hình dưới đây mô tả chu kỳ sống của Activity:

Ngày đăng: 25/04/2019, 05:12

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w