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

xây dựng ứng dụng “ẩm thực đà thành” trên nền tảng android

58 400 2

Đ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 58
Dung lượng 2,72 MB

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

Nội dung

xây dựng ứng dụng “ẩm thực đà thành” trên nền tảng android

Trang 1

KHOA CÔNG NGHỆ THÔNG TIN

Tel (84-511) 3736 949, Fax (84-511) 842 771 Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn

LUẬN VĂN TỐT NGHIỆP KỸ SƯ

NGÀNH CÔNG NGHỆ THÔNG TIN

SINH VIÊN : HỨA BÁCH TRUNG

ĐÀ NẴNG, 06/2013

Trang 2

Em xin chân thành cảm ơn các Thầy Cô trong khoa Công Nghệ Thông Tin, trường Đại Học Bách Khoa – Đại Học Đà Nẵng đã truyền đạt những kiến thức quý báu cho em trong những năm em theo học tại trường và nhất

là tạo điều kiện thuận lợi cho em học tập và thực hiện đề tài tốt nghiệp này

Đặt biệt, em xin chân thành cảm ơn cô Lê Thị Mỹ Hạnh, thuộc bộ môn Công Nghệ Phần Mềm, ngành Công Nghệ Thông Tin, trường Đại Học Bách Khoa Người đã trực tiếp, tận tình hướng dẫn, động viên và giúp đở em trong suốt thời gian thực hiện đề tài

Để có được kết quả như ngày hôm nay, em rất biết ơn Ông Bà, Cha Mẹ

và những người thân trong gia đình đã động viên, khích lệ và tạo mọi điều kiện thuận lợi nhất về vật chất lẫn tinh thần trong suốt quá trình học tập cùng như quá trình thực hiện đề tài tốt nghiệp này

Mặc dù đã cố gắng hoàn thành đồ án trong phạm vi và khả năng cho phép nhưng chắc chắn khó tránh khỏi những thiếu sót Do đó, em rất mong nhận được sự thông cảm và góp ý bảo tận tình của Quý Thầy Cô vá các bạn

Một lần nữa, em xin chân thành cảm ơn!

Đà Nẵng, ngày …… tháng 06 năm 2013

Sinh viên thực hiện

Hứa Bách Trung

Trang 3

Đà Nẵng, ngày …… tháng 06 năm 2013

Cán bộ hướng dẫn

Th.S Lê Thị Mỹ Hạnh

Trang 4

LỜI CAM ĐOAN

Em xin cam đoan :

1 Những nội dung trong luận văn này là do em thực hiện dưới sự hướng dẫn trực tiếp của Cô Th.S Lê Thị Mỹ Hạnh

2 Mọi tham khảo dùng trong luận văn này đề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ố

3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá,

em xin chịu hoàn toàn trách nhiệm

Sinh viên,

Trang 5

I Bối cảnh của đề tài 1

II Mục đích và ý nghĩa của đề tài 1

II.1 Mục đích của đề tài 1

II.2 Ý nghĩa của đề tài 1

III Nhiệm vụ của đề tài 2

IV Nội dung nghiên cứu 2

CƠ SỞ LÝ THUYẾT 3

I Hệ điều hành Android 3

I.1 Lịch sử của Android 3

I.2 Kiến trúc của Android 4

I.2.1 Tầng ứng dụng 4

I.2.2 Application framework 4

I.2.3 Library 5

I.2.4 Android Runtime 6

I.2.5 Linux Kernel 6

I.3 Android Emulator 6

I.4 Các thành phần của một ứng dụng Android 7

I.5 Cấu trúc một Project 10

II Công cụ để tạo một ứng dụng Android 10

II.1 Eclipse IDE 10

II.2 Android SDK 11

III Các thành phần giao diện trong Android 11

III.1 View 11

III.2 ViewGroup 12

III.2.1 LinearLayout 12

III.2.2 FrameLayout 13

III.2.3 AbsoluteLayout 13

III.2.4 RetaliveLayout 14

III.2.5 TableLayout 14

III.3 Button 15

III.4 ImageButton 16

III.5 ImageView 16

III.6 ListView 17

III.7 TextView 18

III.8 EditText 18

III.9 CheckBox 19

III.10 Acvivity & Intend 19

III.10.1 Activity 19

III.10.2 Intent 20

IV SQLite 22

V GPS 23

VI Google Map 23

Trang 6

I.2 Các chức năng chính của hệ thống 24

I.2.1 Đồng bộ facebook 24

I.2.2 Tìm kiếm quán ăn 24

I.2.3 Xem thông tin quán ăn 24

I.2.4 Quán ăn ưa thích 24

I.2.5 Chỉ đường quán ăn 25

I.2.6 Bản đồ quán ăn 25

I.2.7 Học nấu ăn 25

II Các biểu đồ hệ thống 26

II.1 Biểu đồ ca sử dụng 26

II.1.1 Biểu đồ ca sử dụng tổng quát 26

II.1.2 Xem quán ăn 27

II.1.3 Đồng bộ facebook 28

II.1.4 Xem bản đồ 28

II.1.5 Học nấu ăn 29

II.2 Biểu đồ hoạt động 30

II.2.1 Tìm kiếm 30

II.2.2 Bản đồ 31

II.2.3 Tìm đường 32

II.2.4 Đăng nhập facebook 33

II.2.5 Xem thông tin quán ăn 34

II.3 Biểu đồ tuần tự 35

II.3.1 Tìm kiếm 35

II.3.2 Bản đồ 36

II.3.3 Tìm đường 37

II.3.4 Đăng nhập facebook 38

III Cơ sở dữ liệu sqlite 39

III.1 Bảng tblATDT 39

III.2 Bảng tblNauAn 39

TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ 40

I Hướng dẫn cài đặt 40

II Minh họa chạy chương trình 40

KẾT LUẬN 47

I Kết quả đạt được 47

II Đánh giá kết quả 47

III Hướng phát triển 47

Trang 7

Hình 11: Cấu trúc hệ thống Android 4

Hình 12: Android emulator 7

Hình 13: Vòng đời của Activity 8

Hình 14: Cấu trúc một giao diện ứng dụng Android 12

Hình 15: Bộ trí các widget sử dụng LinearLayout 13

Hình 16: Bố trí các widget trong FrameLayout 13

Hình 17: Bố trí widget trong RelativeLayout 14

Hình 18: Bố trí widget trong TableLayout 15

Hình 19: ImageButton 16

Hình 20: ImageView và ImageButton 17

Hình 21: Minh họa cho một ListView 18

Hình 25: Truyền dữ liệu giữa 2 Acticity 21

Hình 26: Các thuộc tính của Intent 21

Hình 27: Các Action đã được định nghĩa sẵn trong Intent 22

Hình 27: SQLite Manager 22

Hình 28 Biểu đồ ca sử dụng tổng quát 26

Hình 29 Biểu đồ ca sử dụng xem quán ăn 27

Hình 30 Biểu đồ ca sử dụng đồng bộ facebook 28

Hình 31 Biểu đồ ca sử dụng xem bản đồ 28

Hình 32 Biểu đồ ca sử dụng học nấu ăn 29

Hình 33 Biểu đồ hoạt động Tìm kiếm 30

Hình 34 Biểu đồ hoạt động Bản đồ 31

Hình 35 Biểu đồ hoạt động Tìm đường 32

Hình 36 Biểu đồ hoạt động Đăng nhập facebook 33

Hình 37 Biểu đồ hoạt động Xem thông tin quán ăn 34

Hình 38 Biểu đồ tuần tự Tìm kiếm 35

Hình 39 Biểu đồ tuần tự Bản đồ 36

Hình 40 Biểu đồ tuần tự Tìm đường 37

Hình 41 Biểu đồ tuần tự Đăng nhập facebook 38

Hình 42 Giao diện màn hình chính 40

Hình 43 Giao diện màn hình Tìm Kiếm 41

Hình 44 Giao diện màn hình Yêu Thích 41

Hình 45 Giao diện màn hình danh sách quán ăn 42

Hình 46 Giao diện màn hình chi tiết quán ăn 42

Hình 47 Giao diện màn hình tìm đường đi 43

Hình 48 Giao diện màn hình chia sẻ quán ăn 43

Hình 49 Giao diện màn hình bình luận quán ăn 44

Hình 50 Giao diện màn hình chủ dạy hướng dẫn nấu ăn 44

Hình 51 Giao diện màn hình danh sách các món được hướng dẫn nấu 45

Hình 52 Giao diện màn hình chi tiết hướng dẫn nấu ăn 45

Hình 53 Giao diện màn hình bản đồ quán ăn 46

Trang 8

Bảng 1 Mô tả các usecase trong biểu đồ ca sử dụng tổng quát 27

Bảng 2 Mô tả các usecase trong biểu đồ ca sử dụng xem quán ăn 27

Bảng 3 Mô tả các usecase trong biểu đồ ca sử dụng đồng bộ facebook 28

Bảng 4 Mô tả các usecase trong biểu đồ ca sử dụng xem bản đồ 29

Bảng 5 Mô tả usecase trong biểu đồ ca sử dụng học nấu ăn 29

Bảng 6 Cơ sở dữ liệu bảng tblATDT 39

Bảng 7 Cơ sở dữ liệu bảng tblNauAn 39

Trang 9

I Bối cảnh của đề tài

Nền công nghệ thông tin đang thực sự đi vào giai đoạn phát triển bậc nhất từ trước đến nay Nếu trước kia, sự ra đời của máy tính xách tay mang lại sự thuận tiện cho người sử dụng, thì sau sự ra đời của chiếc điện thoại thông minh đánh dấu sự phát triển vượt bậc của công nghệ thông tin Mọi sản phẩm công nghệ đều nằm trong chiếc điện thoại thông minh Thật dễ dàng cho cuộc sống các bạn khi có cho bản thân chiếc điện thoại như thế

Thế giới điện thoại phát triển không ngừng, những chiếc điện thoại chạy hệ điều hành Android đầu tiên ra đời đã đánh dấu bước tiến lớn của Google trong thị trường này Số lượng sử dụng điện thoại này càng tăng do có nhiều tính năng và giá cả khá mềm

Ngày nay việc thưởng thức ẩm thực càng ngày càng trở nên khắc khe hơn đối với thực khách,những quán ăn cũng trở nên phong phú và mở rộng nhiều nơi khắp thành phố Việc tìm được một quán ăn ưng ý hay chỉ là nhớ ra quán ăn ở vị trí nào cũng hết sức khó khăn hơn

Với những suy nghĩ đó em quyết định chọn đề tài Xây dựng ứng dụng “Ẩm thực Đà Thành” trên nền tảng Android,giúp giải quyết được khó khăn trong việc tìm kiếm quán

ăn chỉ với thiết bị cầm tay

II Mục đích và ý nghĩa của đề tài

II.1 Mục đích của đề tài

Luận văn tốt nghiệp trên ý tưởng đề tài với hai mục đích chính như sau :

 Thứ nhất là tìm hiểu về kỹ thuật lâp trình ứng dụng với Android SDK

 Thứ hai là xây dựng ứng dụng trên thiết bị di động Android có khả năng triển khai ứng dụng vào thực tế,đem lại sự tiện lợi cho người sử dụng có thể tra cứu mọi nơi

Với những kiến thức đã học được tại trường, kết hợp với sự tìm hiểu công nghệ của

cá nhân Em hy vọng luận văn tốt nghiệp của em sẽ đạt được kết quả như mong đợi

II.2 Ý nghĩa của đề tài

Trước hết, ứng dụng “Ẩm thực Đà Thành” được xây dựng như một đề tài thể hiện việc áp dụng những kiến thức quý báu đã được các Thầy, Cô của trường Đại học Bách Khoa – Đại học Đà Nẵng đã nhiệt tình truyền đạt lại cho em Và đặc biệt là sự theo dõi

Trang 10

và tận tình giúp đỡ của Cô Lê Thị Mỹ Hạnh trong suốt thời gian em thực hiện đề tài này

Trong thời đại công nghệ thông tin phát triển như vũ bão ngày nay, công nghệ không ngừng được cải tiến, những công nghệ mới ra đời đòi hỏi người lập trình viên phải cố gắn nghiên cứu và tìm hiểu để áp dụng vào thực tiễn Điều này củng được thể hiện qua

sự cố gắng của em khi quyết định thực hiện đề tài này với công nghệ được coi là mới hiện nay và được phát triển mạnh mẽ trong tương lai

Ứng dụng có thể nói như là một phụ kiện đi kèm theo các bà nội trợ để hổ trợ cho các bà làm tốt hơn trong việc chuẩn bị bữa cơm cho gia đình

III Nhiệm vụ của đề tài

Ứng dụng “Ẩm thực Đà Thành” là một ứng dụng chạy trên nền Android Dưới đây

là các chức năng chính mà em dự định thực hiện trong ứng dụng như sau:

 Người dùng có thể tìm kiếm các địa điểm quán ăn trên địa bàn thành phố Đà Nẵng

 Người dùng có thể xem tất cả các quán ăn,thông tin chi tiết quán ăn

 Thêm quán ăn vào danh sách yêu thích

 Người dùng có thể xem chỉ dẫn đường đi từ vị trí đang đứng tới quán ăn muốn đến

 Có thể gọi điện trực tiếp từ ứng dụng

 Ứng dụng có chức năng hiển thị các quán ăn lên bản đồ để người dùng định hướng và chọn quán ăn ngay trên bản đồ

 Ứng dụng có chức năng hướng dẫn nấu một số món ăn theo từng loại cụ thể

 Có thể chia sẻ quán ăn và bình luận về quán ăn đang xem

IV Nội dung nghiên cứu

 Tìm hiểu công nghệ Android và kỹ thuật cần thiết để lập trình ứng dụng điện thoại Android

 Phân tích các yêu cầu cần thiết của đề tài

 Phân tích thiết kế hệ thống

 Xây dựng cơ sở dữ liệu

 Xây dựng ứng dụng với đầy đủ các chức năng cần thiết

 Viết báo cáo tổng kết đề tài và đề ra hướng phát triển

Trang 11

CHƯƠNG 1

CƠ SỞ LÝ THUYẾT

I.1 Lịch sử của Android

Năm 2003, một công ty hoạt động trong lĩnh vực phát triển phần mềm cho các thiết

bị di động mạng tên Android được thành lập bởi 4 thành viên là:

1 Andu Rubin: nhà đồng sáng lập công ty Danger – công ty chuyên về các nền

tảng, phần mềm, thiết kế và dịch vụ cho các thiết bị điện toán di động

2 Rich Miner: nhà đồng sáng lập công ty truyền thông Wildfire

Communications

3 Nick Sears: một trong những vị phó chủ tịch của nhà cung cấp mạng viễn

thông di động T-Mobile ở Mỹ

4 Chris While: trưởng bộ phận thiết kế và phát triển giao diện WebTV

Năm 2005, sau hơn 2 năm hoạt động thì Android được Google mua lại với một khoản tiền không được tiết lộ và chính thức trở thành một trong những công ty con của

gã khổng lồ ngành tiềm kiếm Đồng thời cả Andy Rubin, Rich Miner và Chris While đều quyết định tiếp tục làm việc tại chính công ty của mình sau khi được mua lại Ở thời điểm đó, nhiều người không thực sự chú ý vào thương vụ này thế nhưng nó lại đánh dấu bước đi đầu tiên của Google trong thị trường thiết bị di động thế giới

Tại Google, một nhóm nghiên cứu đứng đầu là Rubin đã bắt đầu phát triển một nền tảng dành cho thiết bị di động dựa trên nhân của hệ điều hành Linux Và sau đó hệ điều hành này cũng được giới thiệu đến các nhà phát triển phần cứng lẫn phần mềm, báo hiệu sự có mặt của một “ngôi sao” khác trên “thiên hà” thị trường công nghệ di động Đến tháng 12 năm 2006, suy đoán về ý định gia nhập thị trường truyền thông di động của Google tiếp tục được củng cố sau khi BBC và The Wall Street Journal cho biết rằng hang này muốn đưa ứng dụng và chức năng tìm kiếm của mình lên các thiết

bị di động Lập tức ngay sau đó, nhiều tin đồn về chiếc điện thoại mang thương hiệu Google xuất hiện khắp các phương tiện truyền thông

Tháng 7 năm 2007, liên minh các nhà sản xuất thiết bị cầm tay – Open Handset Alliance (OHA) được thành lập bao gồm Google và một số thành viên khác của cộng đồng Linux như: Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile

và Texas Instruments Mục tiêu của OHA là phát triển tiêu chuẩn mở cho các thiết bị di động và sản phẩm đầu tiền của liên minh này đó là Android, một nền tảng di động được xây dựng trên nhân Linux phiên bản 2.6

Trang 12

Tính cho tới thời điểm này, Google Android đã có 5 phiên bản chính thức và 1 phiên bản sắp ra mắt được đặt tên theo những món tráng miệng, vợi ngụ ý người dung sẽ dễ dàng sử dụng hệ điều hành của họ như thưởng thức các món ăn đó Các phiên bản Android có tên mã lần lượt là: Cupcake 1.5, Donut 1.6, Écair 2.0, Froyo 2.2, Gingerbread 2.3, Honeycomb 3.0/3.1,, và các phiên bản sắp ra mắt là Android Ice Cream Sandwich

I.2 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 11: Cấu trúc hệ thống Android

I.2.1 Tầng ứng dụng

Android được tích hợp sẵn một số ứng dụng cần thiết cơ bản như: contacts, brower, camera, phone,… Tất cả các ứng dụng chạy trên hệ điều hành Android đều viết bằng java

I.2.2 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 điểm truy cập, các dịch vụ

Trang 13

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, 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ụn lại các thành phần, bất kỳ ứng dụng nào 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 dung để thiết

kế 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 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 string graphics và layout files

- Một “Notifycation Manager” cho phép tất cả các ứng dụng hiện thị 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

I.2.3 Library

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 Andorid Một số thư viện cơ bản được liệt kê dưới đây:

 System C library: có nguồn gốc từ hệ thống thư viện chuẩn C (LIBC) giúp

điều chỉnh nhúng cho các thiết bị sử dụng nền tảng Linux

 Media Libraries: dựa trên OpenCore của PacketVideo, hổ trợ ghi và phát

lại âm thanh, hình ảnh, video dưới nhiều định dạng phổ biện như MPEG4, H.264, MP3, AAC, AMR, JPG và PNG

 LibWebCore: trình duyệt web hiện đại hổ trợ cả trình duyệt web của

Android và các trình duyệt web nhúng khác

 3D Libraries: dựa trên OpenGL ES 1.0 API, dùng để tăng tốc phần cứng 3D

(nếu có) hoặc để tối ưu hóa các phần mềm 3D

 SQLite: cở sở dữ liệu dùng cho tất cả các ứng dụng

Trang 14

I.2.4 Android Runtime

Cung cấp các chức năng có sẵn trong thư viện gốc của ngôn ngữ lập trình Java Mỗi ứng dụng trên hệ điều hành Android sẽ chạy trên một tiến trình của riêng nó Ví dụ: các máy ảo Dalvik chạy trên các lớp được biên soạn bởi một trình biên dịch ngôn ngữ Java

và được chuyển đổi sang định dạng Dalvik (.dex) bằng công cụ “dx” tích hợp Các tập tin được thực thi dưới dạng dex sẽ giúp tối ưu hóa cũng như quản lý bộ nhớ ở cấp độ thấp

I.2.5 Linux Kernel

Android hoạt động dựa trên nhân hệ điều hành Linux 2.6 qua đó cung cấp các dịch

vụ cho hệ thống cốt lõi như an ninh, quản lý bộ nhớ, quá trình hay mô hình điều khiển… Đồng thời nhân hệ điều hành hoạt động như một lớp trừu tướng giúp kết nối giữa phần cứng và phần mềm còn lại trên nền tảng

I.3 Android Emulator

Android SDK và Plugin Eclip đượ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 phát triển bởi Fabrice Bellard

Trang 15

 Vòng đời của ứng dụng Android

Activity là thành phần quan trọng nhất và đóng vai trò chinh trong xây dựng ứng dụng Android

Hệ điều hành Android quản lý Activity theo dạng stack: khi một Activity mới được khởi tạo, nó sẽ được xếp lên đầu của stack và trở thành running activity, các Activity trước đó sẽ bị tạm dừng và chỉ hoạt động trở lại khi Activity mới được giải phóng

Các trạng thái trong Activity:

- Running: Activity đang hiện thị trên màn hình

- Paused: Activity vẫn hiện thị nhưng không thể tương tác

- Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái stop

Trang 16

- Killed: khi hệ thống bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo nguyên tắc ưu tiên Các Activity ở trạng thái stop hoặc paused cũng có thể

bị giải phóng và khi nó được hiện thị lại thì các Activity này được khởi động lại hoàn toàn và phục hồi lại trạng thái trước đó

Hình 13: Vòng đời của Activity

- Service

Service là một ứng dụng component có thể thực hiện các hoạt động long-running trong background và không cung cấp một giao diện người dùng Một ứng dụng component có thể bắt đầu một service và nó tiếp tục chạy trong background thậm chí nếu người dùng chuyển cho ứng dụng khác Ngoài ra, một component có thể liên kết cho một dịch vụ tương tác với nó và thậm chí thực hiện giao tiếp InterProcess Ví dụ, một dịch vụ có thể xử lý giao diện mạng, nghe nhạc, thực hiện các tập tin I/O hoặc tương tác với một provider content, tất cả từ background

Một service cơ bản có thể có hai hình thức như sau:

Trang 17

 Bound

Service là “bound” khi một component ứng dụng liên kết cho nó bằng cách gọi bindService() Một service rang buộc cung cấp một giao diện client-server cho phép các component tương tác với các dịch vụ, gửi các yêu cầu, có được kết quả và thậm chí làm như vậy qua quá trình giao tiếp InterProcess Một service bound chỉ chạy miễn là ứng dụng component khác bị rang buộc vào nó Nhiều thành phần có thể liên kết cho dịch

vụ cùng một lúc, nhưng khi tất cả chúng unbind, service này bị phá hủy

Để tạo ra một service, bạn phải tạo một lớp dịch vụ Trong implementation của bạn, bạn cần cho ghi đè lên một số method gọi lại có thể xử lý các khía cạnh quan trọng của vòng đời service và cung cấp một cơ chế cho các component gắn kết với dịch vụ nếu thích hợp Các method quan trọng nhất bạn có nên ghi đè lên gọi là:

- onStartCommand()

Hệ thống gọi method này khi component như là một Activity, yêu cầu các service được started, bằng cách gọi startService() Sau đó thực hiện phương pháp này, các service được khởi động và có thể chạy trong background vô thời hạn Nếu bạn có triển khai điều này, đó là trách nhiệm của bạn đề dừng dịch vụ khi công việc của mình được thực hiện, bởi stopSelf gọi điện thoại () hoặc stopService()

- onBind()

Hệ thống này gọi method này khi component muốn liên kết với các service, bằng cách gọi bindService() Trong implemention của phương thức này, bạn phải cung cấp một giao diện đó khách hàng sử dụng để giao tiếp với dịch vụ, bằng cách trả lại một IBinher Bạn luôn luôn phải triển khai phương pháp này, nhưng bạn không muốn cho phép liên kết, sau đó bạn nên trở về null

- onCreate()

Hệ thống gọi method này khi service đầu tiên tạo ra, để thực hiện các thủ tục thiết lập một lần (trước khi cuộc gọi hoặc là onStartCommand() hoặc onBind()) Nếu service đang chạy, phương pháo này không được gọi

- onDestroy()

Hệ thống gọi method này khi service không còn được sư dụng và đang được bị phá hũy Service của bạn nền triển khai điều này cho làm sạch bất cứ nguồn tài nguyên như chủ đề, người nghe đa đăng ký, nhận v v Đây là các cuộc gọi qua dịch

vụ này nhận được

- Content Provider

Có thể coi như là một máy chủ cơ sở dữ liệu Công việc của nó là quản lý truy cập

và chia sẻ dữ liệu đang tồn tại, chẳng hạn như một cơ sở dữ liệu SQLite Nó có thể được cấu hình để cho phép các ứng dụng khác truy xuất và ngược lại Nếu ứng dụng rất đơn giản thì không nhất thiết phải tạo ra một trình cung cấp nội dung

Trang 18

Content Provider giúp tách biệt tầng ứng dụng ra khỏi tầng dữ liệu Nó có đầy đủ các quyền điều khiển và được truy xuất thông qua mô hình URI đơn giản như là có thể thêm, xóa, cập nhập dữ liệu của các ứng dụng

- Broadcats Receiver

Bằng cách tạo và đăng ký một Broadcast Receiver, ứng dụng Android có thể lắng nghe toàn bộ các Intent theo một chuẩn cụ thể được chỉ định Các Broadcast Receiver

sẽ chạy ứng dụng một cách tự động để đáp ứng một Intent gửi đến, hay xữ lý một phần

từ dữ liệu hoặc đáp ứng một sự kiện, chẳng hạn như nhận một văn bản thông báo Broadcast Receiver chỉ có duy nhất một phương thức onReceiver():

 Khi có sự kiện mà Broadcast Receiver đã đăng ký nhận được phát đi, thì phương thức onReceiver() của Broadcats Receiver đó sẽ được gọi

 Sauk hi thực thi xong phương thức này, vòng đời của một Broadcast Receiver kết thúc

I.5 Cấu trúc một Project

Một Android project bao gồm các thư mục sau:

 Thư mục src chứa source code ứng dụng Gồm các package và các class

 Thư mục gen chứa các file tự động phát sinh (mà thường gặp nhất là R.class)

 Thư mục res để chứa các resource dùng trong ứng dụng (thông qua ID)

 Thư mục assets chứa các resource file mà ứng dụng cần dùng (dưới dạng file)

 File Manifest là file khai báo thông tin về ứng dụng với hệ thống (như ứng

dụng gồm những activity nào, có service nào… xin các quyền gì, phiên bản bao nhiêu, dùng từ SDK phiên bản nào )

 File thư viện…

II Công cụ để tạo một ứng dụng Android

Cách dễ nhất để bắt đầu phát triển các ứng dụng Android là tải về Bộ công cụ phát triển phần mềm Android và Môi trường phát triển tích hợp Eclipse (Eclipse IDE) Việc phát triển Android có thể diễn ra trên Microsoft Windows, Mac OS X, hoặc Linux Trong bài luận văn này, nhóm chúng em chọn phát triển ứng dụng Android bằng Microsoft Windows

II.1 Eclipse IDE

Các ứng dụng Android được viết bằng ngôn ngữ Java nhưng biên dịch và thi hành bằng máy ảo Dalvik Viết mã bằng ngôn ngữ Java trong Eclipse là rất trực quan Eclipse cung cấp môi trường Java phong phú, gồm cả việc trợ giúp theo ngữ cảnh và các mách

Trang 19

nước gợi ý về mã Khi bộ mã Java được biên dịch thành công, Android Deverloper Tools sẽ đảm bảo rằng ứng dụng đó được đóng gói một cách đúng đắn, gồm cả tập tin Android Manifest.xml

II.2 Android SDK

Bộ công cụ phát triển ứng dụng Android SDK là công cụ giả lập thiết bị ảo trên máy tính để phát triển ứng dụng với các hàm API hỗ trợ cho lập trình viên lập trình trên các thiết bị di động sử dụng nền tảng Android thông qua ngôn ngữ lập trình Java SDK gồm có:

 Android.jar: tập tin lưu trữ Java chứa toàn bộ các lớp SDK Android cần thiết

để xây dựng ứng dụng

 Document.html và thư mục docs: tài liệu SDK được cung cấp tại chỗ và trên web, chủ yếu nó ở dạng JavaDocs, tạo điều kiện dễ dàng cho việc hướng dẫn trong nhiều gói SDK Tài liệu cũng gồm cả hướng dẫn phát triển mức cao và các liên kết đến cộng đồng Android rộng rãi

 Thư mục sample (các ví dụ mẫu): thư mục con samples chứa bộ mã nguồn đầy đủ dùng cho một loạt các ứng dụng, gồm cả ApiDemo, nó sử dụng nhiều API Ứng dụng mẫu là một nơi khám phá tuyệt vời khi bắt đầu phát triển ứng dụng Android

 Thư mục tools (các công cụ): chứa toàn bộ các công cụ dòng lệnh để xây dựng nên các ứng dụng Android Công cụ được dùng phổ biến và hữu ích nhất là tiện ích adb (Android Debug Bridge)

 Usb driver: thư mục chứa các trình điều khiển cần thiết để kết nối môi trường phát triển với một thiết bị có khả năng chạy Android, chẳng hạn như G1 hay điện thoại đã được phát triển Android Dev 1 Các tập tin này là đòi hỏi duy nhất đối với các nhà phát triển đang sử dụng nền Windows

III Các thành phần giao diện trong Android

III.1 View

Trong một ứng dụng Android, giao diện người dùng được xây dựng từ các đối tường View và ViewGroup Có nhiều kiểu View và ViewGroup Mỗi một kiểu là một hậu duệ của classs View và tất cả các kiểu đó được gọi là các Widget

Tất cả mọi widget đều có chung các thuộc tính cơ bản như là cách trình bày vị trí, background, kích thước, lề… Tất cả những thuộc tính chung này được thể hiện hết ở trong đối tượng View

Trong Android Platform, các screen luôn được bố trí theo một kiểu cấu trúc phân cấp như hình dưới Một screen là một tập hợp các Layout và các widget được bố trí có

Trang 20

thứ tự Để thể hiện một screen thì trong hàm onCreate của mỗi Activity cần phải được gọi một hàm là setContentView(R.layout.main), hàm này sẽ load giao diện tử file xml lên để phân tích thành mã bytecode

Hình 14: Cấu trúc một giao diện ứng dụng Android

III.2 ViewGroup

ViewGroup thực ra chính là View hay nói đung shown thì ViewGroup chính là các widget Layout được dùng để bố trí các đối tượng khác trên một screen Có một số loại ViewGroup như sau:

Trang 21

Hình 15: Bộ trí các widget sử dụng LinearLayout

III.2.2 FrameLayout

FrameLayout được dùng để bố trí các đối tượng theo kiểu giống như các Layer trong Photoshop Những đối tượng nào thuộc Layer bên dưới thì sẽ bị che khuất bởi các đối tượng thuộc Layer nằm trên FrameLayout thường được sử dụng khi muốn tạo ra các đối tượng có khung hình bên ngoài chẳng hạn như contact image button

Hình 16: Bố trí các widget trong FrameLayout

Trang 22

giữa các đối tượng Khi chuyển ứng dụng sang một màn hình có kích thước với màn hình thiết kế ban đầu thì vị trí của các đối tượng sẻ không còn chính xác như ban đầu

III.2.4 RetaliveLayout

Layout này cho phép bố trí các widget theo mộ trục đối xứng ngang hoặc dọc Để đặt được đúng vị trí thì các widget cần được xác định một mối ràng buộc nào đó với các widget khác Các ràng buộc này là các ràng buộc trái, phải, trên, dưới so với một widget hoặc so với layout parent Dựa vào những mội ràng buộc đó mà RetaliveLayout cũng không phụ thuộc vào kích thước của screen thiết bị Ngoài ra, nó còn có ưu điểm là giúp tiết kiệm layout sử dụng nhằm mục địch giảm lượng tài nguyên sử dụng khi load đồng thời đẩy nhanh quá trình xử lý

Hình 17: Bố trí widget trong RelativeLayout

III.2.5 TableLayout

Layout này được sử dụng khi cần thiết kế một table chứa dữ liệu hoặc cần bố trí các widget theo các row và column Chẳng hạn như, giao diện của một chiếc máy tính đơn giản hoặc danh sách dữ liệu

Trang 23

Hình 18: Bố trí widget trong TableLayout

khai báo trong file mã nguồn tương ứng thì sẽ phát sinh một exception Ngược lại,

phương thức “touchMe” sẽ nhận được một đối tham biến là đối tượng View nơi đã sinh

ra sự kiện Đối với View này có thể ép kiểu trực tiếp sang kiểu Button vì thực chất nó

là một button

Ví dụ: trong file mã nguồn khai báo một hàm như sau:

Trang 24

public void touchMe(View v){

Để khai báo một Button trong code ta làm như sau:

Button cmdButton = new Button(this);

Cũng tương tự như Button, ImageButton chỉ có thêm một thuộc tính android:src =

”@drawable/icon” để thêm hình ảnh vào và không có thẻ text

Trang 25

Để thực hiện được một list thông tin lên một screen thì cần phải có 3 yếu tố chính:

 Data Source: Data Source có thể là một ArrayList, HashMap hoặc bất kỳ

một cấu trúc dữ liệu kiểu danh sách nào

 Adapter: Adapter là một class trung gian giúp ánh xạ dữ liệu trong Data

Source vào đúng vị trí hiển thị trong ListView Chẳng hạn, trong Data Source

có một trường name và trong ListView cũng có một TextView để thể hiện trường name này Tuy nhiên, ListView sẽ không thể hiện thị dữ liệu trong Data Source lên được nếu như Adapter không gán dữ liệu vào cho đối tượng hiện thị

 ListView: ListView là đối tượng để hiện thị các thông tin trong Data Source

ra một cách trực quan và người dùng có thể thao tác trực tiêp trên đó

Trang 26

Hình 21: Minh họa cho một ListView

Trang 27

để nhập Email thì thuộc tính này sẽ làm điều đó

 Android:singleLine = “true” EditText của bạn sẽ trở thành một TextField, ngược lại sẽ là TextBox

 Chu kỳ sống của một Activity

 Tạo menu và dialog

Trang 28

(ComponentName) hoặc setClass (Context, Class) sẽ thực thi các hành động được đặc tả trong Intent Thông thường thì những Intent này không chứa bất

kỳ thông tin nào khác như category , type mà đơn giản chỉ là cách để ứng dụng mở các Activity khác bên trong một Activity

- Intent không tường minh – Implicit Intent: không chỉ định một thành phần nào cả, thay vào đó, chúng sẽ chứa đủ thông tin để hệ thống có thể xác định component có sẵn nào là tốt nhất để thực thi hiệu quả cho Intent đó

Tính liênlạc giữa 2 activity: Khi chuyển sang một Activity khác ta có thể gửi kèm

dữ liệu trong intent đó như sau:

III.10.2 Intent

 Khái niệm Intent

Là một cấu trúc dữ liệu mô tả cách thức, đối tượng thực hiện của một Activity

Là cầu nối giữa các Activity: ứng dụng Android thường bao gồm nhiều Activity, mỗi Activity hoạt động độc lập với nhau và thực hiện những công việc khác nhau Intent chính là người đưa thư, giúp các Activity có thể triệu gọi cũng như truyền các dữ liệu cần thiết tới một Activity khác Điều này cũng giống như việc di chuyển qua lại giữa các Forms trong lập trình Windows Form

Trang 29

Hình 25: Truyền dữ liệu giữa 2 Acticity

 Dữ liệu của Intent

Intent về cơ bản là một cấu trúc dữ liệu, được mô tả trong lớp android.content.Intent

Các thuộc tính của đối tượng Intent:

H ình 26: Các thuộc tính của Intent

 Các Action được định nghĩa sẵn:

Dưới đây là những hằng String đã được định nghĩa sẵn trong lớp Intent Đi kèm với

nó là các Activity hay Application được xây dựng sẵn sẽ được triệu gọi mỗi khi Intent tương ứng được gửi (tất nhiên khi được cung cấp đúng data) VD: Gọi tới một số điện thoại

Intent dialIntent = new Intent (Intent.ACTION_DIAL, Uri.parse(“tel: 123456”));

startActivity (dialIntent);

Ngày đăng: 07/11/2014, 22:09

HÌNH ẢNH LIÊN QUAN

Hình 13: Vòng đời của Activity - xây dựng ứng dụng “ẩm thực đà thành” trên nền tảng android
Hình 13 Vòng đời của Activity (Trang 16)
Hình 15: Bộ trí các widget sử dụng LinearLayout - xây dựng ứng dụng “ẩm thực đà thành” trên nền tảng android
Hình 15 Bộ trí các widget sử dụng LinearLayout (Trang 21)
Hình 16:  Bố trí các widget trong FrameLayout - xây dựng ứng dụng “ẩm thực đà thành” trên nền tảng android
Hình 16 Bố trí các widget trong FrameLayout (Trang 21)
Hình 17: Bố trí widget trong RelativeLayout - xây dựng ứng dụng “ẩm thực đà thành” trên nền tảng android
Hình 17 Bố trí widget trong RelativeLayout (Trang 22)
Hình 27: Các Action đã được định nghĩa sẵn trong Intent - xây dựng ứng dụng “ẩm thực đà thành” trên nền tảng android
Hình 27 Các Action đã được định nghĩa sẵn trong Intent (Trang 30)
Hình 36. Biểu đồ hoạt động Đăng nhập facebook - xây dựng ứng dụng “ẩm thực đà thành” trên nền tảng android
Hình 36. Biểu đồ hoạt động Đăng nhập facebook (Trang 41)
Hình 41. Biểu đồ tuần tự Đăng nhập facebook - xây dựng ứng dụng “ẩm thực đà thành” trên nền tảng android
Hình 41. Biểu đồ tuần tự Đăng nhập facebook (Trang 46)
Hình 43. Giao diện màn hình Tìm Kiếm - xây dựng ứng dụng “ẩm thực đà thành” trên nền tảng android
Hình 43. Giao diện màn hình Tìm Kiếm (Trang 49)
Hình 45. Giao diện màn hình danh sách quán ăn - xây dựng ứng dụng “ẩm thực đà thành” trên nền tảng android
Hình 45. Giao diện màn hình danh sách quán ăn (Trang 50)
Hình 47. Giao diện màn hình tìm đường đi - xây dựng ứng dụng “ẩm thực đà thành” trên nền tảng android
Hình 47. Giao diện màn hình tìm đường đi (Trang 51)
Hình 48. Giao diện màn hình chia sẻ quán ăn - xây dựng ứng dụng “ẩm thực đà thành” trên nền tảng android
Hình 48. Giao diện màn hình chia sẻ quán ăn (Trang 51)
Hình 50. Giao diện màn hình chủ dạy hướng dẫn nấu ăn - xây dựng ứng dụng “ẩm thực đà thành” trên nền tảng android
Hình 50. Giao diện màn hình chủ dạy hướng dẫn nấu ăn (Trang 52)
Hình 49. Giao diện màn hình bình luận quán ăn - xây dựng ứng dụng “ẩm thực đà thành” trên nền tảng android
Hình 49. Giao diện màn hình bình luận quán ăn (Trang 52)
Hình 51. Giao diện màn hình danh sách các món được hướng dẫn nấu - xây dựng ứng dụng “ẩm thực đà thành” trên nền tảng android
Hình 51. Giao diện màn hình danh sách các món được hướng dẫn nấu (Trang 53)
Hình 53. Giao diện màn hình bản đồ quán ăn - xây dựng ứng dụng “ẩm thực đà thành” trên nền tảng android
Hình 53. Giao diện màn hình bản đồ quán ăn (Trang 54)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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