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

Báo cáo đề tài thực tập tốt nghiệp: Xây dựng ứng dụng chợ phòng trọ bằng Android + Firebase

53 7 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 53
Dung lượng 1,01 MB

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

Cấu trúc

  • CHƯƠNG 1: ĐẶT VẤN ĐỀ (10)
    • 1.1 THỰC TRẠNG PHÒNG TRỌ HIỆN NAY (10)
    • 1.2 CÁC TIÊU CHÍ PHÒNG TRỌ (10)
    • 1.3 MỤC TIÊU ĐỀ TÀI (11)
    • 1.4 PHẠM VI ÁP DỤNG (11)
    • 1.5 CÔNG CỤ SỬ DỤNG (11)
      • 1.5.1 Phần mềm lập trình: Android Studio và Android SDK Tools (11)
      • 1.5.2 Ngôn ngữ lập trình Java (11)
      • 1.5.3 Firebase Realtime Database (12)
      • 1.5.4 Các thư viện hỗ trợ (12)
  • CHƯƠNG 2: TỔNG QUAN VỀ LẬP TRÌNH TRÊN ANDROID (13)
    • 2.1 LỊCH SỬ RA ĐỜI (13)
    • 2.2 QÚA TRÌNH PHÁT TRIỂN (13)
    • 2.3 KIẾN TRÚC CỦA ANDROID (14)
    • 2.4 CÁC THÀNH PHẦN CƠ BẢN CỦA ỨNG DỤNG ANDROID (19)
      • 2.4.1 Activity (19)
      • 2.4.2 Intent (21)
      • 2.4.3 Service (21)
      • 2.4.4 Broadcast Receiver (22)
      • 2.4.5 Content Provider (22)
  • CHƯƠNG 3: TỔNG QUAN VỀ XÂY DỰNG WEB SERVICE BẰNG PHP (24)
    • 3.1 TỔNG QUAN VỀ WEB SERVICE (24)
      • 3.1.1 Khái niệm (24)
      • 3.1.2 Đặc điểm của Web Service (24)
      • 3.1.3 Ưu và nhược điểm của Web Service (25)
    • 3.2 KIẾN TRÚC CỦA WEB SERVICE (25)
    • 3.3 CÁC THÀNH PHẦN CỦA WEB SERVICE (27)
      • 3.3.1 XML (27)
      • 3.3.2 WSDL - Web Service Description Language (27)
      • 3.3.3 Universal Description, Discovery, and Integration (UDDI) (28)
      • 3.3.4 SOAP - Simple Object Access Protocol (28)
      • 4.1.1 Yêu cầu chức năng (30)
      • 4.1.2 Yêu cầu phi chức năng (30)
    • 4.2 MÔ HÌNH CHỨC NĂNG NGHIỆP VỤ (BFD) (30)
    • 4.3 MÔ HÌNH USECASE (32)
    • 4.4 BIỂU ĐỒ DÒNG DỮ LIỆU (DATA FLOW DATAGRAM - DFD) (33)
      • 4.4.1 Mô hình DFD mức 1 – Quản lý phòng trọ (33)
      • 4.4.2 Mô hình DFD mức 1 – Quản lý người dùng (34)
    • 4.5 MÔ HÌNH THỰC THỂ KẾT HỢP ERD (35)
    • 4.6 MÔ HÌNH DIAGRAM (36)
    • 4.7 CHI TIẾT CÁC BẢNG DỮ LIỆU (36)
  • CHƯƠNG 5: MỘT SỐ GIAO DIỆN CHÍNH (41)
    • 5.1 GIAO DIỆN MÀN HÌNH ĐĂNG NHẬP (41)
    • 5.2 GIAO DIỆN MÀN HÌNH ĐĂNG KÝ (42)
    • 5.3 GIAO DIỆN MÀN HÌNH QUÊN MẬT KHẨU (43)
    • 5.4 GIAO DIỆN CHÍNH CỦA ỨNG DỤNG (44)
    • 5.5 GIAO DIỆN MÀN HÌNH DANH SÁCH YÊU THÍCH (45)
    • 5.6 GIAO DIỆN MÀN HÌNH PROFILE (46)
    • 5.7 GIAO DIỆN MÀN HÌNH CHI TIẾT PHÒNG (47)
    • 5.8 GIAO DIỆN MÀN HÌNH TÌM KIẾM (48)
    • 5.9 GIAO DIỆN MÀN HÌNH KẾT QUẢ TÌM KIẾM (49)
    • 5.10 GIAO DIỆN MÀN HÌNH ĐĂNG PHÒNG (50)
    • 5.11 GIAO DIỆN MÀN HÌNH SỬA PHÒNG (51)
    • 1. KẾT QUẢ ĐẠT ĐƯỢC (52)
      • 1.1 Chương trình đã đạt được (52)
      • 1.2 Khả năng ứng dụng (52)
      • 1.3 Kiến thức đạt được (52)
    • 2. HẠN CHẾ, KHÓ KHĂN (52)

Nội dung

ĐỀ TÀI TTTN ĐẠI HỌC Báo cáo TTTN Đại học BỘ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT NAM HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Xây dựng ứng dụng Tìm kiếm phòng trọ trên Android kết hợp Google FIrebase

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

-BÁO CÁO THỰC TẬP TỐT

NGHIỆP ĐẠI HỌC Đề tài: “Xây dựng ứng dụng chợ phòng trọ”

Người hướng dẫn : ThS LÊ MINH HÓA

Sinh viên thực hiện : NGUYỄN HỮU ĐỨC

Mã số sinh viên : N14DCCN212

Lớp : D14CQCP01-N

Khóa : 2014

Hệ : ĐẠI HỌC CHÍNH QUY

TP.HCM, tháng 07 năm 2018

Trang 2

Lời đầu tiên em xin được gửi lời cảm ơn chân thành và sâu sắc đến quý thầy cô của Học Viện Công Nghệ Bưu Chính Viễn Thông – những người đã trực tiếp giảng dạy, tận tình truyền đạt những kiến thức bổ ích cho em trong suốt những năm học vừa qua Đó chính là những nền tảng cơ bản, những hành trang vô cùng quý giá giúp em bước vào sự nghiệp sau này trong tương lai.

Đặc biệt, em xin gửi lời cảm ơn thầy ThS Lê Minh Hóa Cảm ơn Thầy đã tận tình quan tâm, giúp đỡ, hướng dẫn chỉ bảo tận tình trong thời gian vừa qua Thầy đã giải đáp mọi thắc mắc của em trong quá trình hướng dẫn thực tập tốt nghiệp Nhờ đó em mới có thể hoàn thành tốt đề tài thực tập này

Em xin bày tỏ lòng chân thành cảm ơn đến các Anh Chị trong công ty TNHH Sáng tạoKIS Việt Nam đã hỗ trợ em rất nhiều trong quá trình thực hiện đề tài

Trong quá trình làm đề tài thực tập, khó tránh khỏi những sai sót, rất mong quý thầy

cô bỏ qua Đồng thời do trình độ cũng như kinh nghiệm thực tiễn còn hạn chế nên đề tài không thể tránh khỏi những thiếu sót, em rất mong nhận được ý kiến đóng góp của quý thầy cô để đề tài của em được hoàn thiện hơn và rất mong sản phẩm của em sẽ trở thành một sản phẩm mang tính xã hội và phục vụ được trong điều kiện phát triển của ngành Công nghệ thông tin Việt Nam

Kính chúc quý thầy cô luôn vui vẻ, hạnh phúc, dồi dào sức khỏe và thành công trong công việc

Em xin chân thành cảm ơn!

TP.HCM, ngày 01 tháng 08 năm 2018 Sinh viên thực hiện

Nguyễn Hữu Đức

Trang 4

Độc lập – Tự do – Hạnh Phúc

TP Hồ Chí Minh, ngày tháng năm 2018

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN THỰC TẬP TỐT NGHIỆP

ĐAI HỌC

Tên đề tài: Xây dựng ứng dụng chợ phòng trọ

Giáo viên hướng dẫn: ThS Lê Minh Hóa

Nơi công tác: Khoa Công nghệ thông tin 2

NỘI DUNG NHẬN XÉT

Đánh giá chung:

Điểm hướng dẫn:

GIẢNG VIÊN HƯỚNG DẪN

(Ký, ghi rõ họ tên)

Trang 5

LỜI MỞ ĐẦU 1

CHƯƠNG 1: ĐẶT VẤN ĐỀ 2

1.1 THỰC TRẠNG PHÒNG TRỌ HIỆN NAY 2

1.2 CÁC TIÊU CHÍ PHÒNG TRỌ 2

1.3 MỤC TIÊU ĐỀ TÀI 3

1.4 PHẠM VI ÁP DỤNG 3

1.5 CÔNG CỤ SỬ DỤNG 3

1.5.1 Phần mềm lập trình: Android Studio và Android SDK Tools 3

1.5.2 Ngôn ngữ lập trình Java 3

1.5.3 Firebase Realtime Database 4

1.5.4 Các thư viện hỗ trợ 4

CHƯƠNG 2: TỔNG QUAN VỀ LẬP TRÌNH TRÊN ANDROID 5

2.1 LỊCH SỬ RA ĐỜI 5

2.2 QÚA TRÌNH PHÁT TRIỂN 5

2.3 KIẾN TRÚC CỦA ANDROID 6

2.4 CÁC THÀNH PHẦN CƠ BẢN CỦA ỨNG DỤNG ANDROID 10

2.4.1 Activity 10

2.4.2 Intent 12

2.4.3 Service 12

2.4.4 Broadcast Receiver 13

2.4.5 Content Provider 13

CHƯƠNG 3: TỔNG QUAN VỀ XÂY DỰNG WEB SERVICE BẰNG PHP 15

3.1 TỔNG QUAN VỀ WEB SERVICE 15

3.1.1 Khái niệm 15

3.1.2 Đặc điểm của Web Service 15

3.1.3 Ưu và nhược điểm của Web Service 16

3.2 KIẾN TRÚC CỦA WEB SERVICE 16

3.3 CÁC THÀNH PHẦN CỦA WEB SERVICE 18

3.3.1 XML 18

3.3.2 WSDL - Web Service Description Language 18

3.3.3 Universal Description, Discovery, and Integration (UDDI) 19

3.3.4 SOAP - Simple Object Access Protocol 19

Trang 6

4.1.1 Yêu cầu chức năng 21

4.1.2 Yêu cầu phi chức năng 21

4.2 MÔ HÌNH CHỨC NĂNG NGHIỆP VỤ (BFD) 21

4.3 MÔ HÌNH USECASE 23

4.4 BIỂU ĐỒ DÒNG DỮ LIỆU (DATA FLOW DATAGRAM - DFD) 24

4.4.1 Mô hình DFD mức 1 – Quản lý phòng trọ 24

4.4.2 Mô hình DFD mức 1 – Quản lý người dùng 25

4.5 MÔ HÌNH THỰC THỂ KẾT HỢP ERD 26

4.6 MÔ HÌNH DIAGRAM 27

4.7 CHI TIẾT CÁC BẢNG DỮ LIỆU 27

CHƯƠNG 5: MỘT SỐ GIAO DIỆN CHÍNH 31

5.1 GIAO DIỆN MÀN HÌNH ĐĂNG NHẬP 31

5.2 GIAO DIỆN MÀN HÌNH ĐĂNG KÝ 32

5.3 GIAO DIỆN MÀN HÌNH QUÊN MẬT KHẨU 33

5.4 GIAO DIỆN CHÍNH CỦA ỨNG DỤNG 34

5.5 GIAO DIỆN MÀN HÌNH DANH SÁCH YÊU THÍCH 35

5.6 GIAO DIỆN MÀN HÌNH PROFILE 36

5.7 GIAO DIỆN MÀN HÌNH CHI TIẾT PHÒNG 37

5.8 GIAO DIỆN MÀN HÌNH TÌM KIẾM 38

5.9 GIAO DIỆN MÀN HÌNH KẾT QUẢ TÌM KIẾM 39

5.10 GIAO DIỆN MÀN HÌNH ĐĂNG PHÒNG 40

5.11 GIAO DIỆN MÀN HÌNH SỬA PHÒNG 41

KẾT LUẬN 42

1 KẾT QUẢ ĐẠT ĐƯỢC 42

1.1 Chương trình đã đạt được 42

1.2 Khả năng ứng dụng 42

1.3 Kiến thức đạt được 42

2 HẠN CHẾ, KHÓ KHĂN 42

TÀI LIỆU THAM KHẢO 43

Trang 7

Bảng 4.1: Bảng User

Bảng 4.2: Bảng Room

Bảng 4.3: Bảng Comment

Bảng 4.4: Bảng Rating

Bảng 4.5: Bảng Ward

Bảng 4.6: Bảng District

Bảng 4.7: Bảng Image

Trang 8

Hình 2.1: Kiến trúc của Android

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

Hình 2.3: Intent trong Android

Hình 2.4: Service trong Android

Hình 3.1: Web Service

Hình 3.2: Kiến trúc của Web Service

Hình 4.1: BFD

Hình 4.2: Sơ đồ tổng quát

Hình 4.3: Mô hình Usecase

Hình 4.4: Mức 1 – Quản lý phòng trọ

Hình 4.5: Mức 1 – Quản lý người dùng

Hình 4.6: Mô hình ERD

Hình 4.7: UML

Hình 5.1: Giao diện đăng nhập

Hình 5.2: Giao diện đăng ký

Hình 5.3: Giao diện quên mật khẩu

Hình 5.4: Màn hình chính

Hình 5.5: Màn hình phòng yêu thích

Hình 5.6: Màn hình Profile

Hình 5.7: Màn hình Chi tiết phòng

Hình 5.8: Màn hình Tìm kiếm phòng

Hình 5.9: Màn hình Kết quả tìm kiếm

Hình 5.10: Màn hình Đăng phòng

Hình 5.11: Màn hình Sửa phòng

Trang 9

LỜI MỞ ĐẦU

Hiện nay trên địa bàn Thành phố Hồ Chí Minh (Tp HCM) nay có khoảng 130Trường đại học, cao đẳng, trung cấp chuyên nghiệp với số lượng sinh viên khổng lồ,trong đó có khoảng 80% sinh viên là người ngoài tỉnh Bên cạnh đó chưa kể lượng laođộng từ các Tỉnh, Thành khác đổ về Tp HCM Trong khi đó số lượng phòng ký túc xá,các khu tập thể không thể đáp ứng được được toàn bộ nhu cầu cho sinh viên và nhữngngười lao động, do đó việc tìm kiếm phòng trọ tại Tp HCM là việc mà hầu hết sinh viênvà người lao động phải đối mặt

Việc tìm kiếm được một phòng trọ phù hợp về giá cả, tiện nghi, an ninh là rất khó khăn và mất thời gian đối với những người mới chân ướt chân ráo tới Tp

.

HCM Vì vậy việc xây dựng một ứng dụng Chợ phòng trọ là rất hữu ích và cần thiết để mọi người có thể sử dụng

Đề tài của em không thiên về nghiên cứu tìm hiểu các công nghệ mới nhưng lại mangtính thực tế, tính hiện thực cao, xây dựng ứng dụng dựa trên nhu cầu phòng trọ tại

Tp HCM hiện nay Với mục đích giúp cho các sinh viên, người lao động tiết kiệm được thời gian, công sức trong việc lựa chọn được một phòng trọ thích hợp

Trang 10

CHƯƠNG 1: ĐẶT VẤN ĐỀ

1.1 THỰC TRẠNG PHÒNG TRỌ HIỆN NAY

Mỗi năm đầu tháng 9, có thêm hàng triệu tân sinh viên trúng cử vào các trường đại học, cao đẳng, trung cấp, hơn 200.000 người ngoại tỉnh đến thành phố để sống và lập nghiệp Thế nhưng tốc độ “nở rộng” của phòng trọ, nhà ở thì không tương xứng, dẫn tới với tìm kiếm một phòng trọ phù hợp, ưng ý khó khăn Không những thế, lợi dụng sự khó khăn này, giới cò mồi và chủ phòng trọ còn đưa ra những chiêu trò nâng giá khá cao, đặc biệt là các phòng trọ gần trường, gần các khu công nghiệp, thế nhưng cơ

sở vật chất thì lại không đáp ứng đủ Một lựa chọn khác nữa thường được các bạn tân sinh viên hay người lao động ngoại tỉnh là kí túc xá của trường hay khu tập thể của công nhân Những lựa chọn như thế này sẽ đảm bảo cho cho sinh viên và người lao động học tập, làm việc tốt hơn, thế nhưng vì là một lựa chọn “tốt”, nên rất nhiều người đăng ký, và số lượng người ở chung ở mỗi phòng là khá lớn

.

Về lâu về dài mọi người sẽ cảm thấy không có không gian riêng và an ninh không được đảm bảo Vì thế sinh viên và người lao động trở nên có xu hướng tìm phòng trọ, nhưng tìm ở đâu, tìm như thế nào, giá cả ra sao, phải tìm được chỗ thuận tiện cho việc học tập, làm việc, sinh hoạt… rất nhiều vấn đề mà người có nhu cầu thuê trọ phải đối mặt

1.2 CÁC TIÊU CHÍ PHÒNG TRỌ

Qua một số thông tin thu thập được, có một số tiêu chí chung mà các sinh viên và người lao động thường đề cấp khi chọn một phòng trọ:

- Địa điểm: càng gần trường và chỗ làm việc càng tốt, gần chợ, nơi buôn bán

- Giá cả: hợp lý, tiền điện, nước phù hợp với quy định của nhà nước, sử dụng

tự do, dùng bao nhiêu trả bấy nhiêu, có đồng hồ đo điện, nước riêng

- An ninh trật tự: không có tệ nạn, gần các chốt dân phòng, đồn công an,

tránh các hẻm quá tối tăm, vắng người mướn

- Thuê nguyên phòng hay ở ghép: điều này cũng làm người thuê phòng băn

khoăn bởi giá thuê nguyên phòng thì khá cao, tuy nhiên có không gian riêng tư, còn ở ghép thì giá cả các thứ sẽ được chia ra, tuy nhiên phải sống hòa đồng với nhau Có một trường hợp nữa là ở chung với chủ, tuy khá ít nhưng hình thức này được nhiều sinh viên quan tâm bởi lý do an ninh

- Cơ sở vật chất: sạch sẽ, có phòng vệ sinh riêng, có thể thêm gác lưng, đủ

không gian sinh hoạt, làm việc

- Dịch vụ: có nơi để rác, người hốt rác, nơi gửi xe, có wifi, internet, tiền chi

trả rõ ràng, minh bạch

- Bạn bè: việc ở chung với bạn bè hay người làm chung sẽ dễ dàng hơn cho

việc hòa nhập với nơi ở mới, đồng thời giúp ích khá nhiều cho việc học tập,làm việc cũng như giờ giấc sinh hoạt

Trang 11

1.3 MỤC TIÊU ĐỀ TÀI

Phân tích, thiết kế và xây dựng ứng dụng chợ phòng trọ giúp tìm kiếm phòng trọ

1.4 PHẠM VI ÁP DỤNG

Sinh viên, người lao động, người có nhu cầu thuê phòng trọ tại Tp Hồ Chí Minh

1.5 CÔNG CỤ SỬ DỤNG

1.5.1 Phần mềm lập trình: Android Studio và Android SDK Tools

Android Studio là một môi trường phát triển tích hợp (IDE) tuyệt vời, dựa trên một tên tuổi nổi tiếng IntellIJ IDE Như tên gọi, Android Studio là một môi trường để thiết kế và phát triển ứng dụng cho nền tảng di động Android Môi trường này dễ dàng cài đặt, thiết lập và tạo một dự án mẫu chỉ sau vài giây

Khi Android ra mắt, việc phát triển ứng dụng cho nền tảng này với Eclipse và plugin Android Developer Tools đã sẵn sàng Tuy nhiên, với Android Studio thì có nhiều ưu điểm hơn nhờ các yếu tố sau:

• Giao diện lập trình WYSIWYG hỗ trợ Live-layout có thể dựng ứng dụng vàxem trước theo thời gian thực

• Có tuỳ chọn để xem trước giao diện với nhiều thiết lập trên nhiều kích cỡ màn hình khi viết ứng dụng

• Cho phép tạo ra file cài đặt APK hàng loạt

• Hỗ trợ công cụ Lint để kiểm tra tính tương thích, hiệu năng ứng dụng và khả năng hoạt động trên nhiều phiên bản Android khác nhau

• Hỗ trợ phát triển ứng dụng cha Android wear, Android TV cũng như Android auto

• Có thể tích hợp với nền tảng đám mây Google Cloud Platform

1.5.2 Ngôn ngữ lập trình Java

• Ưu điểm: Java là một ngôn ngữ lập trình phổ biến và được xếp vào loại mạnh mẽ bậc nhất hiện nay, phạm vi áp dụng của ngôn ngữ này trải rộng từ mọi thiết bị cho đến mọi Hệ điều hành nhờ sử dụng máy ảo JVM6 Do đó, biết được ngôn ngữ lập trình Java hiện tại có thể giúp bạn mở cánh cửa để bước vào thế giới của những cơ hội phát triển các ứngdụng để đời Trong khi đó, các lập trình viên cho nền tảng iOS phải biết các ngôn ngữ ObjectiveC hoặc Swift Hai ngôn ngữ này hiện nay chỉ có thể áp dụng cho việc phát triển ứng dụng cho các hệ điều hành của Apple là iOS hoặc OSX, hoàn toàn không thể dùng phát triển cho các nền tảng khác

Trang 12

• Nhược điểm: Vì Java sử dụng máy ảo JVM để để thông dịch ra file thực thi nên Java luôn bị đánh giá chậm hơn các ngôn ngữ thuần biên dịch như C/C++, tuy nhiên với công nghệ just-in-time compilers, cơ chế này giúp thông dịch từng đoạn lệnh, thay vì từng mã

lệnh như cơ chế hoạt động của các trình thông dịch bình thường

- Dữ liệu trong cơ sở dữ liệu Firebase của bạn được lưu trữ dưới dạng JSON và đồng bộ realtime đến mọi kết nối client Khi bạn xây dựng những ứng dụng đa nền tảng như Android, IOS và JavaScrip SDKs, tất cả các client của bạn sẽ chia sẻ trên một cơ sở dữ liệu Firebase và tự động cập nhật với dữ liệu mới nhất

- Tự động tính toán quy mô ứng dụng của bạn

- Khi ứng dụng của bạn muốn phát triển, bạn không cần lo lắng về việc nâng cấp máy chủ Firebase sẽ xử lý việc tự động cho bạn Các máy chủ của Firebase quản lý hàngtriệu kết nối đồng thời và hàng tỉ lượt truy vấn mỗi tháng

- Các tính năng bảo mật lớp đầu: Tất cả dữ liệu được truyền qua một kết nối an toànSSL với một chứng nhận 2048-bit Cở sở dữ liệu truy vấn và việc xác nhận được điều khiển tại một cấp độ chi tiết sử dụng theo một số các quy tắc mềm dẻo Tất cả các logic bảo mật dữ liệu của bạn được tập trung ở một chỗ để dễ dàng cho việc cập nhật và kiểm thử

- Làm việc offline: Ứng dụng Firebase của bạn sẽ duy trì tương tác bất chấp một số các vấn đề về internet xảy ra Trước khi bất kỳ dữ liệu được ghi đến server thì tất cả dữ liệu lập tức sẽ được viết vào một cơ sử dữ liệu Firebase ở local Ngay khi có thể kết nối lại, client đó sẽ nhận bất kỳ thay đổi mà nó thiếu và đồng bộ hoá nó với trạng thái hiện tạiserver

1.5.4 Các thư viện hỗ trợ

- Butterknife : Giúp view binding, binding strings, dimens, drawables, click events

- Glide : Hỗ trợ load ảnh

- SweetAlert: Hỗ trợ các hiển thị Dialog, thông báo

- RatingBar: Hỗ trợ việc hiển thị thanh Rating

- Retrofit: Hỗ trợ đọc dữ liệu từ Server dưới dạng JSON

Trang 13

CHƯƠNG 2: TỔNG QUAN VỀ LẬP TRÌNH TRÊN ANDROID

2.1 LỊCH SỬ RA ĐỜI

Tháng 10/2003, Công ty Android ( Android, Inc ) được thành lập tại California bởinhững người có tiếng tăm như Andy Rubin, Rich Miner, Nick Sears và Chris White Ngay sau khi thành lập, Android, Inc đã bắt tay vào xây dựng nền tảng Android Đếntháng 8/2005 Google mua lại tổng công ty Android, biến nó thành một bộ phận trựcthuộc Google và cách thành viên sáng lập ra Android vẫn tiếp tục ở lại công ty làm choGoogle

Tháng 11/2007 đã chứng kiến sự xuất hiện của một hiệp hội được gọi tên là OpenHandset Alliance ( OHA ), đây là một hiệp hội bao gồm 34 công ty lớn (tính đến hiện tạilà 84) về phần mềm, phần cứng và viễn thông trên thế giới như Texas Instruments, HTC,Google, Qualcomm, Samsung… mà đứng đầu là Google Đây là hiệp hội thành lập vớimục đích phát triển các tiêu chuẩn mở cho thiết bị di động Cùng thời điểm đó nền tảngAndroid cũng đã được ra mắt như là một sản phẩm đầu tiên của hiệp hội.Có thể thấy nềntảng Android ra đời với một sự hậu thuẫn vô cùng lớn và vì vậy Android đã được kì vọngrất nhiều ngay từ khi nó được ra đời

Tháng 10/2008 đánh dấu một sự kiện quan trọng với Android đó là việc chiếc điệnthoại Android đầu tiên được bán ra đó là T-Mobile G1 Không phụ sự kì vọng và hậuthuẫn to lớn, chỉ sau một thời gian ngắn Android đã dần dần vươn lên trở thành nền tảng

di động phổ biến nhất thế giới

2.2 QÚA TRÌNH PHÁT TRIỂN

Thành công với Android không chỉ được xây dựng bởi sự hậu thuẫn to lớn khi mới rađời mà sự thành công đó còn bởi sự nỗ lực không biết mệt mỏi của Google và hiệp hộiOHA trong việc sáng tạo những điều mới, cải thiện chất lượng để đưa Android ngày mộthoàn thiện hơn.Từ lúc ra đời tới nay (1/2018), Google đã tung ra rất nhiều bản cập nhậpcho Android như :

 Android 1.0 (API level 1), tháng 9/2008

 Android 1.1 (API level 2), tháng 2/2009

 Android 1.5 Cupcake (API level 3), tháng 4/2009

 Android 1.6 Donut (API level 4), tháng 9/2009

 Android 2.0 – 2.1 Eclair (API level 5, 6, 7), tháng 10/2009

 Android 2.2 – 2.2.3 Froyo (API level 8), tháng 5/2010

 Android 2.3 – 2.3.7 GingerBread (API level 9, 10), tháng 12/2010

 Android 3.0- 3.2 Honeycomb (API level 11, 12, 13), tháng 2/2011

 Android 4.0 – 4.0.4 Ice Cream Sandwich (API level 14, 15), tháng 10/2011

 Android 4.1 – 4.3 Jelly Bean (API level 16, 17, 18), tháng 7/2012

 Android 4.4 Kitkat (API level 19), tháng 10/2013

 Android 4.4 Kitkat with Wearable extensions (API level 20)

 Android 5.0 – 5.1 Lollipop (API level 21, 22), tháng 12/2014

Trang 14

 Android 6.0 Marshmallow (API level 3), tháng 10/2015

 Android 7.0 - 7.1.2 Nougat (API level 24, 25), tháng 8/2016

 Android 8.0 - 8.1 Oreo (API level 26, 27), tháng 8/2017

Song song với việc cập nhập các phiên bản để hoàn thiện Android, Google còn tung

ra rất nhiều phiên bản cập nhập của Software Development Kit (SDK ) để giúp các lậptrình viên có thể tạo ra các ứng dụng tốt nhất

Với bản chất mở đã giúp cho Android không chỉ phát triển mạnh trên các thiết bị diđộng phổ biến như smartphone, tablet mà tính đến thời điểm hiện tại đã có rất nhiều cácthiết bị điện tử khác sử dụng Android như SmartTV, Laptop, netbook, Máy ảnh … Cóthể thấy với việc được sử dụng rộng rãi ở nhiều loại thiết bị và với sự chăm sóc tỉ mỉ củaGoogle, chắc chắn tương lai của Android sẽ càng ngày càng phát triển mạnh mẽ và tạo rađược nhiều điều kì diệu mới

2.3 KIẾN TRÚC CỦA ANDROID

Android là một nền tảng dựa trên tập hợp các chương trình khác như một nhânLinux, các thư viện, API được viết bằng C và các ứng dụng gốc Hình dưới đây sẽ chochúng ta thấy rõ được kiến trúc của Android :

Hình 2.1 Kiến trúc của Android

 Linux Kernel : Đây là 1 phần cực kì quan trọng trong kiến trúc của Android, nógiúp cho các ứng dụng của Android có thể tương tác với các thiết bị phần cứng Ví

Dụ : khi bạn muốn gửi 1 gói tin nào đó thông qua wifi, Linux kernel sẽ nhận được góitin thông tin từ ứng dụng của bạn, sau đó nó sẽ phân biệt và xác định phần cứng nào lànơi sẽ thực hiện việc này, cuối cùng nó sẽ đẩy gói tin đó tới driver của wifi Nhưng

Trang 15

hãy nhớ rằng, Android chỉ sử dụng Linux Kernel chứ không phải Linux như thôngthường.(Linux kernel chỉ là 1 phần của Linux )

Tầng này có các thành phần chủ yếu :

 Display Driver : Điều khiển việc hiển thị lên màn hình cũng như thu nhận những điều khiển của người dùng lên màn hình (di chuyển, cảm ứng )

 Camera Driver : Điều kiển hoạt động của camera, nhận luồng dữ liệu từ

camera trả về

 Bluetooth Driver : Điều khiển thiết bị phát và thu sóng Bluetooth

 USB driver : Quản lý hoạt động của các cổng giao tiếp USB

 Keypad driver : Điều khiển bàn phím

 Wifi Driver : Chịu trách nhiệm về việc thu phát sóng wifi

 Audio Driver : điều khiển các bộ thu phát âm thanh, giải mã các tính hiệu dạng audio thành tín hiệu số và ngược lại

 Binder IPC Driver : Chịu trách nhiệm về việc kết nối và liên lạc vớimạng vô tuyến như CDMA, GSM, 3G, 4G, E để đảm bảo những chứcnăng truyền thông được thực hiện

 M-System Driver : Quản lý việc đọc ghi lên các thiết bị nhớ như thẻ SD, flash

 Power Madagement : Giám sát việc tiêu thụ điện năng

 Libraries : Phần này có nhiều thư viện được viết bằng C/C++ để các phần mềm có thể sử dụng, các thư viện đó được tập hợp thành một số nhóm như :

 Thư viện hệ thống (System C library) : thư viện dựa trên chuẩn C, được sử dụng chỉ bởi hệ điều hành

 Thư viện Media (Media Libraries) : Có nhiều codec để hỗ trợ việc phátvà ghi các loại định dạng âm thanh, hình ảnh, video thông dụng

 Thư viện web (LibWebCore) : Đây là thành phần để xem nội dung trênweb, được sử dụng để xây dựng phần mềm duyệt web (Android Browse)cũng như để các ứng dụng khác có thể nhúng vào Nó cực kỳ mạnh, hỗ

Trang 16

trợ được nhiều công nghệ mạnh mẽ như HTML5, JavaScript, CSS, DOM,AJAX

 Thư viện SQLite : Hệ cơ sở dữ liệu để các ứng dụng có thể sử dụng

 Android Runtime : Phần này chứa các thư viện mà một chương trình viết bằngngôn ngữ Java có thể hoạt động Phần này có 2 bộ phận tương tự như mô hìnhchạy Java trên máy tính thường Thứ nhất là các thư viện lõi (Core Library) ,chứa các lớp như JAVA IO, Collections, File Access Thứ hai là một máy ảojava (Dalvik Virtual Machine)

Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java của hệ điềuhành android không được chạy bằng JRE của Sun (nay là Oracle) (JVM) mà là chạybằng máy ảo Dalvik do Google phát triển

 Application Framework : Tầng này xây dựng bộ công cụ - các phần tử ởmức cao để các lập trình viên có thể nhanh chóng xây dựng ứng dụng Nó được viếtbằng Java, có khả năng sử dụng chung để tiết kiệm tài nguyên

Đây là một nền tảng mở, điều đó có 2 điều lợi:

 Với các hãng sản xuất điện thoại : Có thể tùy biến để phù hợp với cấu hìnhđiện thoại mà họ sản xuất cũng như để có nhiều mẫu mã, style hợp thị hiếungười dùng Vì thế nên tuy cùng chung nền tảng android mà điện thoại củaGoogle có thể khác hẳn với Motorola, HTC, T-Mobile, Samsung

 Với lập trình viên : Cho phép lập trình viên có thể sử dụng các API ở tầngtrên mà không cần phải hiểu rõ cấu trúc bên dưới, tạo điều kiện cho lậptrình viên tự do sáng tạo bởi vì chỉ cần quan tâm đến nội dung mà ứngdụng họ làm việc Một tập hợp API rất hữu ích được xây dựng sẵn nhưhệ thống định vị, các dịch vụ chạy nền, liên lạc giữa các ứng dụng, cácthành phần giao diện cấp cao

Giới thiệu một số thành phần của phần này :

 Activity Manager : Quản lý các chu kỳ sống của một ứng dụng cũng nhưcung cấp công cụ điều khiển các Activity

 Telephony Manager : Cung cấp công cụ để thực hiện việc liên lạc như gọi điện thoại

 XMPP Service : Cung cấp công cụ để liên lạc trong thời gian thực

 Location Manager : Cho phép xác định vị trí của điện thoại thoại dựa

Trang 17

vào hệ thống định vị toàn cầu GPS và Google Maps.

 Window Manager : Quản lý việc xây dựng và hiển thị các giao diện người dùng cũng như tổ chức quản lý các giao diện giữa các ứng dụng

 Notication Manager : Quản lý việc hiển thị các thông báo (như báo có

tin nhắn, có e-mail mới )

 Resource Manager : Quản lý tài nguyên tĩnh của các ứng dụng bao gồm cácfile hình ảnh, âm thanh, layout, string (Những thành phần không được viếtbởi ngôn ngữ lập trình)

 Application Layer : Đây là lớp ứng dụng giao tiếp với người dùng, bao gồmcác ứng dụng như :

Các ứng dụng cơ bản, được cài đặt đi liền với hệ điều hành là gọiđiện(phone), quản lý danh bạ(Contacts), duyệt web (Browser), nhắn tin (SMS),lịch làm việc (Calendar), đọc e-mail (Email-Client), bản đồ (Map), quay phimchụp ảnh (camera)

Các ứng dụng được cài thêm như các phần mềm chứng khoán (Stock), cáctrò chơi (Game), từ điển

Các chương trình có các đặc điểm là :

 Viết bằng Java, phần mở rộng là apk

 Khi mỗi ứng dụng được chạy, nó có một phiên bản Virtual Machine đượcdựng lên để phục vụ cho nó Nó có thể là một Active Program : Chươngtrình có giao diện với người sử dụng hoặc là một background : chươngtrình chạy nền hay là dịch vụ

 Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một thờiđiểm, có thể có nhiều chương trình cùng chạy một lúc, tuy nhiên, với mỗiứng dụng thì có duy nhất một thực thể (instance) được phép chạy mà thôi.Điều đó có tác dụng hạn chế sự lạm dụng tài nguyên, giúp hệ thống hoạtđộng tốt hơn

 Các ứng dụng được gán số ID của người sử dụng nhằn phân định quyềnhạn khi sử dụng tài nguyên, cấu hình phần cứng và hệ thống

 Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành diđộng khác, android cho phép một ứng dụng của bên thứ ba được phép

Trang 18

chạy nền Các ứng dụng đó chỉ có một hạn chế nhỏ đó là nó không đượcphép sử dung quá 5~10% công suất CPU, điều đó nhằn để tránh độc quyềntrong việc sử dụng CPU.

 Ứng dụng không có điểm vào cố định, không có phương thức main để bắtđầu

Trang 19

Với kiến trúc trên, chúng ta có thể thấy Android có một kiến trúc hoạt động khá linh độngvà mạnh mẽ Với việc sử dụng cơ chế máy ảo Dalvik VM sẽ giúp cho các ứng dụng của Android có thể chạy và hoạt động trên các thiết bị khác nhau có cùng nền tảng.Trong

tương lai gần, Dalvik VM sẽ được Google thay thế bởi một cơ chế mới đó là Android Runtime (ART ), việc này sẽ giúp cho việc thực thi các ứng dụng trên Android diễn ra nhanh và mượt mà hơn rất nhiều

2.4 CÁC THÀNH PHẦN CƠ BẢN CỦA ỨNG DỤNG ANDROID

Các thành phần (component) cơ bản tạo nên một ứng dụng Android được chia

thành 5 loại Nắm bắt được các thành phần này rất cần thiết cho việc lập trình

- Một ứng dụng có thể gồm chỉ một activity hay nhiều activity Thông thường, một trong số các activity được đánh dấu như là activity đầu tiên phải được trình diễntới người dùng khi ứng dụng được khởi động Chuyển từ một activity sang activity khác được hoàn thành bằng cách cho activity hiện thời khởi động activity kế tiếp

- Mỗi activity được đưa ra một cửa sổ mặc định để vẽ vào Thông thường, cửa sổ

sẽ lấp đầy màn hình, nhưng nó có thể nhỏ hơn màn hình và nằm trên các cửa sổ

khác Một activity có thể sử dụng cửa sổ bổ sung - ví dụ như một pop-up dialog gọi cho một đáp ứng người dùng ở giữa của activity, hay một cửa sổ biểu diễn những cho người dùng với thông tin quan trọng khi họ chọn một item cụ thể trên màn hình

- Nội dung trực quan của cửa sổ được cung cấp bởi một cây phân cấp các đối

tượng view dẫn xuất từ lớp View Mỗi view điều khiển một khoảng hình chữ nhật

cụ thể bên trong cửa sổ View cha chứa và tổ chức bố cục các view con Các view lá

vẽ trong hình chữ nhật mà chúng điều khiển và đáp ứng lại các hành động người

dùng trực tiếp ở khoảng trống này Do đó, các view là nơi mà các tương tác của

activity với người dùng diễn ra Ví dụ một view có thể hiển thị một hình ảnh nhỏ và khởi tạo một hoạt động khi người dùng nhấn vào hình ảnh đó Android có một số view đã xây dựng sẵn mà bạn có thể sử dụng – gồm có các buttons, text fields, scrollbars, menu items, check boxes…

Trang 20

- Một cây phân cấp view được đặt trong một cửa sổ của activity bằng phương

thức Activity.setContentView() Content view là đối tượng View ở gốc của cây

phân cấp

- Class cơ sở Activity định nghĩa một loạt các sự kiện mà điều chỉnh vòng đời

của một hoạt động Class Activity định nghĩa các sự kiện sau đây:

+ onCreate() : Được gọi khi hoạt động được tạo ra lần đầu tiên

+ onStart() : Được gọi khi hoạt động trở nên hữu hình so với người dùng

+ onResume() : Được gọi khi hoạt động bắt đầu tương tác với người sử dụng + onPause() : Được gọi để dừng các hoạt động hiện tại và nối lại các hoạt động trước đó

+ onStop() : Được gọi khi hoạt động không còn hiển thị với người dùng

+ onDestroy() : Được gọi trước khi hoạt động bị phá hủy bởi hệ thống (bằng tay hoặc bằng hệ thống để bảo tồn bộ nhớ)

+ onRestart() : Được gọi khi hệ thống đã được dừng lại và khởi động lại một lần nữa

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

Trang 21

2.4.2 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ácdữ 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 qualại giữa các Forms trong lập trình Windows Form

Hình 2.3 Intent trong Android

service chạy thậm chí khi activity khởi động nó rời khỏi màn hình Trong khi kết nối, bạn có thể giao tiếp với dịch vụ thông qua giao diện mà service đó trưng ra Ví

dụ như trong music service, giao diện này có thể cho phép người dùng pause,

rewind, stop và restart lại playback Giống như các activity và các thành phần khác khác, service chạy trong thread chính của tiến trình ứng dụng Vì thế chúng không thể chặn những thành phần khác hay giao diện người dùng, chúng thường tạo ra các thead khác cho các nhiệm vụ hao tốn thời gian

Trang 22

Hình 2.4 Service trong Android

Một Broadcast Rreceiver là một thành phần không làm gì ngoài việc nhận và đáplại các thông báo broadcast Nhiều broadcast khởi đầu trong mã hệ thống - ví dụ nhưthông báo múi giờ thay đổi, pin yếu, ảnh đã được chụp, hay người dùng đã thay đổi ngôn ngữ … Các ứng dụng có thể tạo ra các broadcast, chẳng hạn để ứng dụng khác biết được một số dữ liệu đã được tải về thiết bị và sẵn sàng cho việc sử dụng chúng Một ứng dụng có thể có một số Broadcast Receiver để đáp lại bất cứ thông báo nào mà nó cho là quan trọng Tất cả các receiver mở rộng từ lớp cơ sở

BroadcastReceiver Broadcast Receiver không hiển thị một giao diện người dùng Tuy nhiên chúng có thể bắt đầu một activity để đáp lại thông tin mà chúng nhận,

hay chúng có thể sử dụng NotificationManager để cảnh báo người dùng

Notifications có thể lấy sự chú ý của người dùng bằng nhiều cách, lóe sáng đèn sau, rung, tạo ra âm thah, vân vân Chúng thường lấy một biểu tượng bền vững trong

thanh trạng thái, cái mà người dùng có thể mở để lấy thông điệp

Một content provider tạo ra một tập cụ thể các dữ liệu của ứng dụng khả dụng cho các ứng dụng khác Dữ liệu có thể được lưu trữ trong hệ thống file, trong một cơ

sở dữ liệu SQLite, hay trong một cách khác nào đó Content provider mở rộng lớp

cơ sở ContentProvider để cài đặt một tập các chuẩn các phương thức cho phép các ứng dụng khác đạt được và lưu trữ dữ liệu của kiểu mà nó điều khiển Tuy nhiên,

Trang 23

các ứng dụng không gọi trực tiếp các phương thức này, chúng sử dụng một đối

tượng ContentResolver và gọi các phương thức của nó Một ContentResolver có thể nói chuyện với bất cứ content provider nào, chúng cộng tác với provider để quản lý giao tiếp liên tiến trình

Trang 24

CHƯƠNG 3: TỔNG QUAN VỀ XÂY DỰNG WEB SERVICE BẰNG PHP

3.1 TỔNG QUAN VỀ WEB SERVICE

3.1.1 Khái niệm

Nói một cách đơn giản, web service là một ứng dụng, một tiện ích mà các nhà phát triển muốn cung cấp rộng rãi cho nhiểu người, nhiều tổ chức có thể sử dụng Tương tự như khi chúng ta xây dựng một trang web là để cả thế giới có thể vào xem Web service là những ứng dụng chạy trên nền web, điều khác biệt so với các ứng dụng web bình thường khác là khách hàng hay client của các web service không chỉ là trình duyệt web (web browser) mà còn có thể là những ứng dụng chạy trên máy tính cá nhân (desktop) hay trên các thiết bị di động (mobile device)

Hình 3.1 Web Service

3.1.2 Đặc điểm của Web Service

- Theo đặc tả của W3C (World Wide Web Consortium), dịch vụ Web có khả năng tương tác với các hệ thống khác thông qua một giao diện chung được mô tả bằng XML

- Dịch vụ Web cho phép client và server tương tác được với nhau ngay cả trong những môi trường khác nhau Ví dụ, đặt Web server cho ứng dụng trên một máy chủ chạy hệ điều hành Linux trong khi người dùng sử dụng máy tính chạy hệ điều hành Windows, ứng dụng vẫn có thể chạy và xử lý bình thường mà không cần thêm yêu cầu đặc biệt để tương thích giữa hai hệ điều hành này

- Một Dịch vụ Web có bao gồm có nhiều mô-đun và công bố lên mạng Internet

- Một ứng dụng khi được triển khai sẽ hoạt động theo mô hình client-server Nó có thể được triển khai bởi một phần mềm ứng dụng phía server ví dụ như PHP, Java, Oracle Application server hay Microsoft.NET…

Trang 25

3.1.3 Ưu và nhược điểm của Web Service

 Ưu điểm:

- Dịch vụ Web cung cấp khả năng hoạt động rộng lớn và linh hoạt với các ứng dụngphần mềm khác nhau chạy trên những nền tảng khác nhau

- Nền tảng của web service là công nghệ XML Hầu hết các hệ thống đều thể đọc và

“hiểu” được tập tin XML

- Thúc đẩy phát triển các hệ thống phần mềm đã tồn tại bằng cách cho phép các tiếntrình/chức năng nghiệp vụ đóng gói trong giao diện dịch vụ Web và công bố rộng rãi trên mạng Internet

- Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán

- Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành dịch vụ, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh

- An toàn và bảo mật thông tin là một vấn đề nan giải của web service

- Có nhiều vấn đề về các tác vụ đòi hỏi transaction (ví dụ như chuyển tiền qua lại giữa các ngân hàng) chưa được giải quyết hoàn chỉnh

- Tốc độ thực thi (performance) của web service phụ thuộc rất nhiều vào tốc độ đường truyền Internet và nhìn chung các web service thực thi chậm hơn các ứng dụng bình thường khác

- Vấn đề Quality of Service (QoS) còn chưa được đảm bảo, nhất lả khi web service

bị rơi vào tình trạng quá tải (peak load) và có thể gây những thiệt hại lớn cho phía máy khách

3.2 KIẾN TRÚC CỦA WEB SERVICE

Trang 26

Hình 3.2 Kiến trúc của Web Service

Dịch vụ Web gồm có ba chuẩn chính: SOAP (Simple Object Access Protocol), WSDL (Web Service Description Language) và UDDI (Universal Description, Discovery, and Integration) Hình 1 mô tả chồng giao thức của dịch vụ Web, trong đó UDDI được sử dụng để đăng ký và khám phá dịch vụ Web đã được miêu tả cụ thể trong WSDL Giao tácUDDI sử dụng SOAP để nói chuyện với UDDI server, sau đó các ứng dụng SOAP yêu cầu một dịch vụ Web Các thông điệp SOAP được gửi đi chính xác bởi giao thức HTTP và TCP/IP

Chồng giao thức dịch vụ Web là tập hợp các giao thức mạng máy tính được sử dụng đểđịnh nghĩa, xác định vị trí, thi hành và tạo nên dịch vụ Web tương tác với những ứng dụng hay dịch vụ khác Chồng giao thức này có 4 thành phần chính:

- Dịch vụ vận chuyển (Service Transport): có nhiệm vụ truyền thông điệp giữa các ứng dụng mạng, bao gồm những giao thức như HTTP, SMTP, FTP, JSM và gần đây nhất là giao thức thay đổi khổi mở rộng (Blocks Extensible Exchange

Protocol- BEEP)

- Thông điệp XML: có nhiệm vụ giải mã các thông điệp theo định dạng XML để có thể hiểu được ở mức ứng dụng tương tác với người dùng Hiện tại, những giao thức thực hiện nhiệm vụ này là XML-RPC, SOAP và REST

- Mô tả dịch vụ: được sử dụng để miêu tả các giao diện chung cho một dịch vụ Web

cụ thể WSDL thường được sử dụng cho mục đích này, nó là một ngôn ngữ mô tả giao tiếp và thực thi dựa trên XML Dịch vụ Web sẽ sử dụng ngôn ngữ này để

Ngày đăng: 13/08/2022, 00:12

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w