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

Khoá luận tốt nghiệp xây dựng ứng dụng chat trên android sử dụng google cloud message

60 1,1K 4

Đ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 60
Dung lượng 863,59 KB

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

Nội dung

Phần mềm ứng dụng cho điện thoại hiện nay rất đa dạng và phổ biến: Android, IOS, J2MF...Trong vài năm gàn đây, hệ điều hành Android ra đời với sự kế thừa những ưu việt của các hệ điều hà

Trang 1

TRƯỜNG ĐẠI HỌC s ư PHẠM HÀ NỘI 2• • • •

KHOA CÔNG NGHỆ THÔNG TIN

ĐINH THỊ HÀ

XÂY DựNG ỨNG DỤNG CHAT TRÊN ANDROID SỬ DỤNG GOOGLE CLOUD

MESSAGE

Chuyên ngành: Công nghệ thông tin

Ngưòi hướng dẫn khoa học

PGS.TS Trinh Đình Thắng

Trang 2

LỜI CẢM ƠN

Để có thể hoàn thành được khóa luận này, trước hết em xin gửi lời cảm

ơn tới trường Đại học Sư phạm Hà Nội 2, nhà trường đã tạo điều kiện cho em trong thời gian học tập và hoàn thành khóa luận

Em cũng xin gửi lời cảm ơn tới quý Thầy, Cô ừong khoa Công nghệ thông tin, Trường Đại học Sư phạm Hà Nội 2 đã tận tình truyền đạt kiến thức trong những năm em học tập Với vốn kiến thức được tiếp thu ừong quá trình học không chỉ là nền tảng cho quá trình nghiên cứu mà còn là hành ừang qúy báu để em bước vào đời một cách vững chắc hơn

Đặc biệt em xin cảm ơn PGS.TS Trịnh Đình Thắng đã tận tình hướng dẫn chỉ bảo cho em ừong toàn bộ quá trình học tập, nghiên cứu đề tài và giúp

em hoàn thành bài khóa luận này

Cuối cùng, xin gửi lời cảm ơn tới tập thể lóp K38 - CNTT đã nhiệt tình giúp đỡ mình trong thời gian học tập cũng như trong quá trình làm khóa luận.Với điều kiện thời gian nghiên cứu, kiến thức của em còn hạn chế và còn nhiều bỡ ngỡ Do vậy, sẽ không tránh khỏi những thiếu sót, em rất mong nhận được những ý kiến đóng góp quý báu của quý Thầy Cô và các bạn để kiến thức của em trong lĩnh vực này được hoàn thiện hơn

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

Hà Nội, ngày 18 tháng 5 năm 2016

Sinh viên thực hiện

Đinh Thị Hà

Trang 3

LỜI CAM ĐOAN

Em xin cam đoan nội dung đề tài "Xây dựng ứng dụng Chat trên Android

sử dụng Google Cloud Message" là công trình nghiên cứu của em dưới sự hướng dẫn khoa học của PGS.TS Trịnh Đình Thắng

Các số liệu, kết quả nêu ừong luận văn là trung thực và không trùng với bất cứ một kết quả nào của tác giả khác

Nếu sai em xin chịu hoàn toàn ừách nhiệm

Sinh viênĐinh Thị Hà

Trang 4

MỤC LỤC

LỜI CẢM ƠN

LỜI CAM ĐOAN

MỤC LỤC

BẢNG KÝ HIỆU, CHỮ VIẾT TẮT

DANH SÁCH BẢNG

DANH SÁCH HÌNH VẼ

MỞ ĐẦU 1

1 Lý do chọn đề tà i 1

2 Mục đích nghiên cứu 2

3 Nhiệm vụ nghiên cứu 2

4 Đối tượng và phạm vi nghiên cứu 2

5 Ý nghĩa khoa học và thực tiễn của đề tài 2

6 Phương pháp nghiên cứu 3

7 Cấu trúc khóa luận 3

CHƯƠNG 1: Cơ SỞ LÝ THUYẾT 4

1.1 Tổng quan về hệ điều hành Android 4

1.1.1 Giới thiệu 4

1.1.2 Đặc điểm 4

1.1.3 Kiến trúc nền tảng của Android 6

1.2 Tìm hiểu về Android studio 11

1.2.1 Giới thiệu 11

1.2.2 Các control trong Android 12

1.3 Tổng quan về Java 14

1.3.1 Giới thiệu 14

1.3.2 Những đặc điểm cơ bản của Java 15

1.4 Giới thiệu PHP 16

1.4.1 Khái niệm 16

Trang 5

1.5 Giới thiệu về MySQL 17

1.5.1 Các ưu điểm của MySQL 18

1.5.2 Các nhược điểm của MySQL 18

1.5.3 Các câu lệnh căn bản trong SQL 18

1.6 Cấu trúc chuỗi JSON 20

1.7 Tìm hiểu về Google Cloud Mesaging 21

CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 24

2.1 Khảo sát hệ thống 24

2.1.1 Đặc điểm của dịch yụ SMS truyền thống 24

2.1.2 Một số ứng dụng chat trên điện thoại android hiện nay 24

2.1.3 Yêu cầu đặt ra cho bài toán 26

2.2 Phân tích hệ thống 27

2.2.1 Biểu đồ phân cấp chức năng 27

2.2.2 Biều đồ luồng dữ liệu 28

2.3 Thiết kế cơ sở dữ liệu 33

2.3.1 Chuẩn hóa dữ liệu 33

2.3.2 Các bảng dữ liệu vật lý 33

CHƯƠNG 3: CÀI ĐẶT VÀ THỬ NGHIỆM 35

3.1 Phát biểu bài toán 35

3.2 Cấu hình yêu cầu 35

3.3 Thử nghiệm chương trình 36

3.3.1 Form giao diện trang chủ 36

3.3.2 Form giao diện đăng ký ừên thiết b ị 37

3.3.3 Form giao diện khi đăng ký sai cú pháp 38

3.3.4 Form giao diện đăng nhập 39

3.3.5 Form giao diện đăng nhập khi không có dịch vụ mạng 40

3.3.6 Form giao diện danh sách người dùng 41

3.3.7 Form giao diện thêm người dùng vào danh bạ 42

3.3.8 Form giao diện danh bạ 43

3.3.9 Form giao diện xóa khỏi danh bạ 44

Trang 6

3.3.10 Form giao diện nhắn tin 45

3.3.11 Form giao diện thông báo tin nhắn đến 46

3.3.12 Form giao diện xóa tin nhắn đã gửi hoặc tin nhắn đến 47

3.3.13 Form giao diện trợ giúp 48

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 49

TÀI LIỆU THAM KHẢO 51 PHỤ LỤC

Trang 7

BẢNG KÝ HIỆU, CHỮ VIẾT TẤT

HTML Hyper Text Markup LanguagePHP Hypertext Preprocessor

JAVA Just Another Vague Acronym

PDA Personal digital asisstant

SQL Structure Query Language

ANSI American Nation Standards Institute

Trang 8

DANH SÁCH BẢNG

Bảng 2.1: Table Users 33Bảng 2.2: Table AddFriend 34Bảng 2.3: Table Message 34

Trang 9

DANH SÁCH HÌNH VẼ

Hình 1.1: Quy trình sơ lược cách thức vận hành của GCM 22

Hình 2.1: Biểu đồ phân cấp chức năng 27

Hình 2.2: Biểu đồ luồng dữ liệu mức ngữ cảnh 28

Hình 2.3: Biều đồ luồng dữ liệu mức đỉnh 29

Hình 2.4: Biều đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý người dùng 30

Hình 2.5: Biều đồ luồng dữ liệu mức dưới đinh chức năng quản lý danh bạ 31

Hình 2.6: Biều đồ luồng dữ liệu mức dưới đỉnh chức năng Chat 32

Hình 2.7 Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng trợ giúp 33

Hình 3.1: Form giao diện trang chủ 36

Hình 3.2: Form giao diện đăng ký trên thiết bị 37

Hình 3.3 Form giao diện đăng ký khi sai cú pháp 38

Hình 3.4: Form giao diện đăng nhập 39

Hình 3.5 Form giao diện đăng nhập khi không có dịch vụ mạng 40

Hình 3.6 Form giao diện danh sách người dùng 41

Hình 3.7 Form giao diện thêm người dùng vào danh b ạ 42

Hình 3.8 Form giao diện danh bạ 43

Hình 3.9: Form giao diện xóa bạn khỏi danh bạ 44

Hình 3.10: Form giao diện nhắn tin 45

Hình 3.11: Form giao diện thông báo tin nhắn đến 46

Hình 3.12: Form giao diện xóa tin nhắn 47

Hình 3.13: Form giao diện trợ giúp 48

Trang 10

MỞ ĐÀU

1 Lý do chọn đề tài

Trong thời đại công nghệ thông tin phát triển như hiện nay, điện thoại di động là một thiết bị không thể thiếu đối với con người Nhu cầu trao đổi thông tin ngày càng tăng và nhu càu sử dụng sản phẩm công nghệ cao nhiều tính năng, cấu hình cao, chất lượng tốt, kiểu dáng mẫu mã đẹp, phong phú nên nhà cung cấp phải luôn cải thiện, nâng cao những sản phẩm của mình Do đó việc xây dựng các ứng dụng cho điện thoại di động đang là một ngành công nghiệp mới đầy tiềm năng và hứa hẹn nhiều sự phát triển vượt bậc của ngành công nghiệp khoa học kỹ thuật

Cùng với sự phát triển của thị trường điện thoại di động là sự phát triển mạnh mẽ của xu hướng lập trình phần mềm ứng dụng cho các thiết bị di động Phần mềm ứng dụng cho điện thoại hiện nay rất đa dạng và phổ biến: Android, IOS, J2MF Trong vài năm gàn đây, hệ điều hành Android ra đời với sự kế thừa những ưu việt của các hệ điều hành ra đời trước và sự kết hợp của nhiều công nghệ tiên tiến nhất, đã đượ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 được nhiều người ưa chuộng nhất

Ngày nay, với sự phát triển nhanh chóng của xã hội, đa số mọi người đã

sử dụng Smart Phone, mạng internet phủ sóng khắp nơi, wifi thì có ở mọi nơi mọi ngõ ngách nên bạn đi đâu cũng có thể truy cập internet, nhu cầu ừao đổi thông tin, liên lạc mọi lúc mọi nơi là rất cần thiết, vì vậy em đã chọn đề tài "Xây dựng ứng dụng chat trên Android sử dụng Google Cloud Messaging (GCM) " làm đề tài khoá luận tốt nghiệp của mình, ứng dụng sẽ giúp bạn bè nhắn tin trò chuyện hay nhắn tin ừao đổi bài tập với nhau; nhà trường gửi thông báo cho tất

cả học sinh, sinh viên; lớp trưởng gửi thông báo cho các học viên trong lớp;

Trang 11

công ty gửi thông báo cho tất cả nhân viên; nhóm bạn bè gửi thông báo cho nhau, mà không mất phí gửi.

2 Mục đích nghiên cứu

Xây dựng chương trình Chat trên điện thoại Android thỏa mãn:

+ Đơn giản, dễ sử dụng: Giao diện trực quan, dễ thao tác

+ Phù hợp với các ứng dụng triển khai trên diện rộng, việc mở rộng ít tốnkém

+ Hệ thống dễ dàng bảo trì và phát triển

3 Nhiệm vụ nghiên cứu

- Làm sáng tỏ cơ sở lý luận của đề tài

- Tìm hiểu dịch vụ Google Cloud Message

- Áp dụng các kiến thức về Android, cở sở dữ liệu và phân tích thiết kế hệ thống thông tin để xây dựng chương trình Chat trên android

4 Đổi tượng và phạm vi nghiên cứu

- Đối tượng nghiên cứu:

+ Hệ điều hành Android

+ Dịch vụ GCM và môi trường lập trình Android Studio

+ ứng dụng Chat trên Android

Trang 12

báo cho tất cả học sinh, sinh viên; lóp trưởng gửi thông báo cho các học viên ừong lớp; công ty gửi thông báo cho tất cả nhân viên, mà không mất phí gửi.

6 Phương pháp nghiên cứu

- Phương pháp tổng họp

Nghiên cứu qua việc đọc sách, báo và các tài liệu liên quan nhằm xây dựng

cơ sở lý thuyết của đề tài và các biện pháp càn thiết để giải quyết các vấn đề của

đề tài

- Phương pháp chuyên gia

+ Tham khảo ý kiến chuyên gia để có thể thiết kế chương trình phù họp với yêu càu thực tiễn, nội dung xử lý nhanh đáp ứng được yêu cầu của người sử dụng

+ Lấy ý kiến người trực tiếp hướng dẫn để hoàn thiện về mặt nội dung và hình thức của khóa luận

- Phương pháp thực nghiệm

7 Cấu trúc khóa luân

Ngoài phần mở đầu, kết luận và hướng phát triển, tài liệu tham khảo, phụ lục khóa luận gồm các chương nội dung, cụ thể như sau:

- Chương 1: Cơ sở lý thuyết

- Chương 2: Phân tích và thiết kế hệ thống

- Chương 3: Cài đặt và thử nghiệm

Trang 13

❖ Android là một hệ điều hành nhân Linux, đảm bảo sự tương tác với các phàn cứng, quản lý bộ nhớ, điều khiển các tiến trình tối ưu cho các thiết

❖ Hỗ trợ Camera, GPS, la bàn, máy đo gia tốc

❖ Bộ phát triển ứng dụng SDK đầy đủ gồm thiết bị giả lập, công cụ sửa lỗi, tích hợp vói Eclipse SDK

Android cung cấp một tập hợp đầy đủ các phần mềm cho thiết bị di động bao gồm: hệ điều hành, các khung ứng dụng và các ứng dụng cơ bản

1.1.2 Đặc điểm

a Tính mở

Trang 14

Android được xây dựng từ dưới đi lên cho phép người phát triển tạo các ứng dụng di động hấp dẫn với đầy đủ các điểm mạnh của các thiết bị cầm tay hiện có Android hoàn toàn mở, một ứng dụng có thể gọi tới bất kể một chức năng lõi của điện thoại như tạo cuộc gọi, gửi tin nhắn hay sử dụng máy ảnh, cho phép người phát triển tạo phong phú hơn, liên kết hơn các tính năng cho người dùng Android được xây dựng trên nhân Linux mở Thêm nữa, nó sử dụng một máy ảo mà đã được tối ưu hóa bộ nhớ và phần cứng với môi trường di động Android mà một mã nguồn mở, nó có thể được mở rộng để kết họp tự do giữa các công nghệ nổi ừội Nền tảng này sẽ tiếp tục phát triển bởi cộng đồng phát triển để tạo ra các ứng dụng di động hoàn hảo.

b Tính ngang bằng của các ứng dụng

Với Android, không có sự khác nhau giữa các ứng dụng điện thoại cơ bản vói ứng dụng của bên thứ ba Chúng được xây dựng để truy cập như nhau tới một loạt các ứng dụng và dịch vụ của điện thoại Với các thiết bị được xây dựng trên nền tảng Android, người dùng có thể đáp ứng đầy đủ các nhu cầu mà họ thích Chúng ta có thể đổi màn hình nền, kiểu gọi điện thoại, hay bất kể ứng dụng nào Chúng ta thậm chí có thể hướng dẫn điện thoại chỉ xem những ảnh mình thích

c Phá vỡ rào cản phát triển ứng dụng

Android phá võ rào cản để tạo ứng dụng mói và cải tiến Một người phát triển có thể kết hợp thông tin từ trang web với dữ liệu trên điện thoại cá nhân - chẳng hạn như danh bạ, lịch hay yị trí trên bản đồ - để cung cấp chính xác hơn cho người khác Với Android, người phát triển có thể xây dựng một ứng dụng

mà cho phép người dùng xem vị trí của những ngưòi bạn và thông báo khi họ đang ở vị trí lân cận Tất cả được lập trình dễ dàng thông qua sự hỗ trợ của MapView và dịch vụ định vị toàn cầu GPS

Trang 15

d Dễ dàng và nhanh chóng xây dựng ứng dụng

Android cung cấp bộ thư viện giao diện lập trình ứng dụng đồ sộ và các công cụ để viết các ứng dụng phức tạp Ví dụ, Android có thể cho phép người phát triển biết được vị trí của thiết bị và cho phép các thiết bị giao tiếp với nhau

để cố thể tạo nên mạng xã hội chia sẻ ngang hàng rộng khắp Thêm nữa, Android còn bao gồm một bộ công cụ đầy đủ giúp cho việc phát triển trở nên dễ dàng.

1.1.3 Kiến trúc nền tảng của Android

Hệ đỉều hành android cố 4 tầng từ dưới lên trên là tầng hạt nhân Linux (Phiên bản 2.6), tầng Tầng Libraries & Android runtime, Tầng Application Framework và trên cùng là tầng Applications.

A p p l i c a t io n s

A P P L I C A T I O N F R A M E W O R K Activity Manager W indowManager Providers Contenc SystemView

Package Manager TelephonyManager Resou rte Manager Location Manager Notifieabon Manager

Surface Manager Media

SGL SSL (ibc i - 1

L I N U X K e r n e l

Dispỉay

Driver Camera Driver Fiash Memory Driver Binder fl PC) Driver

Hình 1.1: Kiến trúc nền tảng Android

Trang 16

a Tầng hạt nhân Linux Kernel

Hệ điều hành android được phát trển dựa ừên hạt nhân linux, cụ thể là hạt nhân linux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này Tất cả mọi hoạt động của điện thoại muốn thi hành được thì đều được thực hiện ở mức cấp thấp ở lớp này bao gồm quản lý bộ nhớ (memory management), giao tiếp với phàn cứng (driver model), thực hiện bảo mật (security), quản lý tiến trình (process)

+ 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 ừách nhiệm về việc thu phát sóng wifi

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

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

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

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

b Libraries và Android runtime

❖ Android runtime

Trang 17

Android có một tập các thư viện nòng cốt để cung cấp hầu hết các chức năng sẵn có ừong thư viện cốt lõi của ngôn ngữ lập trình Java Android Runtime: Bao gồm máy ảo Dalvik và các thư viện Android.

Các thư viện cơ bản: Các ứng dụng Android được phát triển trên môi trường Java, nhưng Dalvik lại không phải là một Java VM Các thư viện cơ bản của Android cung cấp hàu hết các chức năng có trong thư viện cơ bản của Java cũng như là thư viện riêng của Android

Máy ảo Dalvik: Dalvik là máy ảo để chạy các ứng dụng trên Android, đã được tối ưu để đảm bảo rằng một thiết bị có thể chạy được nhiều Instance một cách hiệu quả Nó dựa vào nhân Linux để thực hiện đa luồng và quản lý bộ nhớ cấp thấp

• 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 с 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át và ghi các loại định dạng âm thanh, hình ảnh, video thông dụng

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

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

Trang 18

• android.os: Gói hệ điều hành cung cấp truy cập đến các dịch vụ cơ bản như là chuyển tin nhắn, thông tin chéo, đồng hồ và gỡ lỗi.

• android.graphics: Cung cấp các lớp đồ họa mức thấp thực hiện các chức năng đồ họa, màu, vẽ cơ bản

• android.text: Công cụ hiển thị và xử lý văn bản

• android.database: Cung cấp các lớp mức thấp bắt buộc cho việc điều khiển cursor khi làm việc với các cơ sở dữ liệu

• android.content: Các giao tiếp lập trình nội dung được dùng để quản lý truy cập dữ liệu và xuất bản bằng cách cung cấp các dịch vụ thao tác với tài nguyên, Content Provider, và các gói

• android.view: View là lớp giao diện người dùng cơ bản nhất Tất cả giao diện người dùng được tạo ra đều phải sử dụng một tập các View

để cung cấp cho các thành phần tương tác người dùng

• android.widget: Xây dựng dựa ữên gói View Những lớp widget những thành phần giao diện được tạo sẵn được sử dụng để tạo nên giao diện người dùng Các widget bao gồm danh sách, nút bấm, hộp nhập, các kiểu trình bày (layout)

• com.google.android.maps: Bộ API mức cao cung cấp truy cập đến điều khiển bản đồ sẵn trong Android từ ứng dụng được xây dựng Bao gồm

cả lớp MapView cũng như Overlay và MapController để tương tác vói bản đồ bên ưong ứng dụng

• android.app: Một gói thư viện bậc cao, cung cấp truy cập đến dữ liệu của ứng dụng Gói ứng dụng cũng bao gồm lớp Activity và Service là thành phần cơ bản của mọi ứng dụng Android

• android.provider: Để tạo thuận lợi cho người phát triển truy cập đến các Content Provider tiêu chuẩn (như là dữ liệu danh bạ), gói cung cấp (Provider) bao gồm các lớp cho phép truy cập đến cơ sở dữ liệu chuẩn trong tất cả các bản phân phối Android

Trang 19

• android.telephony: Các API điện đàm cung cấp khả năng tương tác trực tiếp vói tầng điện thoại trong các thiết bị, cho phép tạo, nhận, theo dõi các cuộc gọi, tình trạng các cuộc gọi và tin nhắn SMS.

• android.webkit: Gói WebKit cung cấp các API để làm việc với các nội dung Web-based bao gồm một lơp WebView để tạo ra giao diện web, nhúng trong ứng dụng và một trình quản lý cookie

- Cùng vói các API của Android, còn có một tập các thư viện C/C++ như:

• OpenGL: Thư viện dùng để tạo ra các đồ họa 3D dựa vào chuẩn OpenGLES 1.0 API

• FreeType: Hỗ trợ xử lý bitmap và font vector

• GGL: Thư viện cơ bản, dùng để cung cấp các engine đồ họa 2D

• Libc: Thư viện с chuẩn, được tối ưu cho các thiết bị Linux-based

• SQLite Engine: Cơ sở dữ liệu quan hệ gọn nhẹ, dùng để lưu trữ dữ liệu của ứng dụng

• SSL: Hỗ trợ sử dụng giao thức mã hóa Secure Sockets Layer trong bảo mật truyền thông Internet

c Tầng Application Framework

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

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

+ Với các hãng sản xuất điện thoại: Có thể tùy biến để phù hợp với cấu hình điện thoại mà họ sản xuất cũng như để có nhiều mẫu mã, style hợp thị hiếu người dùng Vì thế nên tuy cùng chung nền tảng android mà điện thoại của Google có thể khác hẳn với Motorola, HTC, Т-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ầng trên

mà không cần phải hiểu rõ cấu trúc bên dưới, tạo điều kiện cho lập trình viên tự

do sáng tạo bởi vì chỉ cần quan tâm đến nội dung mà ứng dụng họ làm việc Một

Trang 20

tập hợp API rất hữu ích được xây dựng sẵn như hệ thống định vị, các dịch vụ chạy nền, liên lạc giữa các ứng dụng, các thành phần giao diện cấp cao

- 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 Manage: 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 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ác file hình ảnh, âm thanh, layout, string (Những thành phần không được viết bởi ngôn ngữ lập trình),

d Tầng Applications

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

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

1.2 Tìm hiểu về Android studio

1.2.1 Giói thiêu

Trang 21

Android Studio là một môi trường phát triển tích hợp (IDE - Integrated

Development Envừonment) tuyệt vời, được dựa ữê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 Android Môi trường phát triển này rất dễ cài đặt, thiết lập và có thể tạo ra một dự án (project) mới chỉ sau vài giây.

❖ Android Studio có nhiều ưu điểm hơn nhờ các yếu tố sau:

- Giao diện chỉnh sửa WYSIWYG Editor hỗ trợ Live-layout có thể dựng ứng dụng và xem trước theo thời gian thực.

- Có tùy chọn để xem trước gỉao diện vói nhiều thiết lập trên nhiều màn hình khi

viết ứng dụng.

- Cho phép tạo ra file cài đặt APK (file cài đặt ứng dụng Android) 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

- Hỗ trợ phát triển ứng dụng cho Android Wear, Android TV và Android Auto.

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

Google Cloud Messaging)

1.2.2 Các control trong Android

a Textview

TextView là conưol cho phép người dùng hiển thị một đoạn văn bản lên màn hình mà không cho phép người dùng sửa nổ Mỗi một TextView có các thuộc tính cơ bản của nổ, dưới đây là một ví dụ:

android r tex tC o l or= " # f f 0 Ũ11

android: rontFam ilỵ=,rtahoiaalr

android : t e x t s ty le = ,rb o ld "

and ro iil :g ra v i ty =" cen t e r "

android : tejct='rd eyp ro edu., vn" />

TextView có các thuộc tính:

Trang 22

+ id: là thuộc tính để định danh cho nó, để khi nào cần thao tác với nổ thì có thể

+ textColor: Set màu cho chữ

+ fontFamily: set font cho chữ.

+ textStyle: set style cho chữ (ngạch chân, in đậm, in nghiêng ).

+ gravity: set vị trí của đoạn văn bản bên trong

+ text: chính là nội dung của đoạn văn bản mà bạn muốn hiển thị- Ở ví dụ ưên,

textview sẽ hiển thị nội dung là devpro.edu.vn

Và còn nhiều thuộc tính nữa mà tùy vào chức năng và layout mà có thêm các thuộc tính khác,

androiđ: id = " @+id / e d tĩĩ ame "■

android: layout_width=" fill_ p a r e -n t'r

android: 1 ou t_tieicfh t = " 5 Odp"

android: inputType="t&xfcÂufcoCaniplete| textEm ailAddress"

Trang 23

+ inputType: Kiểu văn bản khi nhập vào, nó sẽ tự định dạng theo kiểu mà ta

chọn Ví dụ như kiểu in hoa, Kiểu ngày tháng, kiểu email

+ hint: đoạn văn bản gợi ý cho người dùng biết về chức năng hay ràng buộc gì đó

Ta cũng có thể set nhiều thuộc tính nữa cho EditText tùy vào yêu cầu và chức năng của ứng dụng như margin, màu chữ, màu hint

c Button

Button là một control có kế thừa textview, dùng để thiết lập các sự kiện khi người dùng thao tác với nó Tương tự TextView thì button cũng có các thuộc tính tương tự Để button có sự kiện thì ta phải set sự kiện cho nó

❖ Java được sử dụng để làm gì?

Viết ứng dụng web (J2EE): Java thường được sử dụng để xây dựng các hệ thống web lớn đòi hỏi độ bảo mật cao, số lượng ngưòi dùng lớn như ngân hàng, phần mềm quản lý bệnh viện, CRM, HRM Đối vói các website nhỏ thông thường rất ít viết bằng Java

Viết ứng dụng mobile (J2ME): Trước đây nền tảng J2ME thường được sử dụng để viết game và app cho di động feature phone (file jar) và giờ đây khi smartphone Android lên ngôi Java lại tiếp tục được sử dụng để viết app và game cho nền tảng Android (file apk)

Trang 24

Viết ứng dụng desktop (J2SE): Các ứng dụng desktop viết bằng Java thật

sự không nhiều có thể kể đến một số phần mềm như JMeterhoặc Designer Vista Lợi thế lớn nhất của ứng dụng Java là bạn chỉ viết một lần

và sau đó có thể đem chương trình lên Windows, Linux hay Mac để chạy

mà không cần phải viết lại Tuy nhiên do chạy trên JVM nên performance của ứng dụng thấp hơn một chút so với các ngôn ngữ như C/C++, c#

❖ Sử dụng gì để lập trình Java?

Để lập trình Java ta cần đến:

JDK (Java Development KIT): bao gồm JRE (Java Runtime Enviroment)

và thư viện để phát triển

IDE (Integrated Development Environment): là ứng dụng giúp lập trìnhviên phát triển dễ dàng và nhanh chóng hơn Bạn có thể sử dụngNetbeans, Eclipse để phát triển

1.3.2 Những đặc điểm cơ bản của Java

- Java là ngôn ngữ lập trình hướng đối tượng nên nó cũng có 4 đặc điểm chung của các ngôn ngữ hướng đối tượng:

Tính trừu tượng (Abstraction): là tiến trình xác định và nhóm các thuộc

tính, các hành động liên quan đến một thực thể đặc thù, xét trong mốitương quan với ứng dụng đang phát triển

Tính đa hình (Polymorphism): cho phép một phương thức có các tác

động khác nhau trên nhiều loại đối tượng khác nhau Với tính đa hình, nếu cùng một phương thức ứng dụng cho các đối tượng thuộc các lớp khác nhau thì nó đưa đến những kết quả khác nhau Bản chất của sự việc chính

là phương thức này bao gồm cùng một số lượng các tham số

Tính kế thừa (Inheritance): Điều này cho phép các đối tượng chia sẻ

hay mở rộng các đặc tính sẵn có mà không phải tiến hành định nghĩa lại

Tính đóng gói (Encapsulation): là tiến trình che giấu việc thực thi

những chi tiết của một đối tượng đối với người sử dụng đối tượng ấy

Trang 25

- Bên cạnh đó Java còn có một số đặc tính khác:

Độc lập nền (Write Once, Run Anywhere): Không giống như nhiều

ngôn ngữ lập trình khác như c và c ++, khi Java được biên dịch, nó không được biên dịch sang mã máy cụ thể, mà thay vào đó là mã byte code chạy trên máy ảo Java (JVM) Điều này đồng nghĩa vói việc bất cứ thiết bị nào có cài đặt JVM sẽ có thể thực thi được các chương trình Java Đơn giản: học Java thật sự dễ hơn nhiều so với C/C++, nếu bạn đã quen vói các ngôn ngữ lập trình hướng đối tượng thì việc học Java sẽ dễ dàng hơn Java trở nên đơn giản hơn so với C/C++ do đã loại bỏ tính đa kế thừa

và phép toán con trỏ từ C/C++

Bảo mât: Java hỗ trơ bảo mât rất tốt bởi các thuât toán mã hóa như mã» • a •hóa một chiều (one way hashing) hoặc mã hóa công cộng (public key)

• Đa ỉuồng: Với tính năng đa luồng Java có thể viết chương trình có thể

thực thi nhiều task cùng một lúc Tính năng này thường được xử dụng rất nhiều trong lập trình game

Hiệu suất cao nhờ vào trình thu gom rác (garbage collection), giải phóng

bộ nhớ đối với các đối tượng không được dùng đến

Linh hoạt: Java được xem là linh hoạt hơn c /c ++ vì nó được thiết kế để

thích ứng vói nhiều môi trường phát triển.

1.4 Giửi thiệu PHP

1.4.1 Khái niêm

PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống c và Java, dễ học và thòi gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng ừở thành một ngôn ngữ lập trình web phổ biến

Trang 26

và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên Internet Vì MySQL miễn phí hoàn toàn cho nên bạn có thể tải MySQL từ trang chủ.

MySQL có nhiều phiên bản cho các hệ điều hành khác nhau: Phiên bản Win32 cho các hệ điều hành dòng Window, Linux, MacOS X, Unix, FreeBSD, NetBSD, Novell, NetWare, SGI, Irix

Trang 27

MySQL là một trong những ví dụ rất cơ bản về hệ quản trị cơ sở dữ liệu quan hệ sử dụng ngôn ngữ truy vấn có cấu trúc (SQL).

MySQL được sử dụng hỗ cho việc bổ trợ PHP, Perl và nhiều ngôn ngữ khác, nó làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl

1.5.1 Các ưu điểm của My SQL

- MySQL là một hệ quản trị nhanh nhỏ gọn, bảo mật và dễ sử dụng, thường được sử dụng cho các ứng dụng nhỏ và trung bình Các script files có thể chạy ừên một số hệ quản trị khác như MySQL server, Oracle Nó được sử dụng cho các ứng dụng client/server với máy chủ mạnh như UNIX, window NT, windows Server và đặc biệt trên máy chủ UNIX

- MySQL hỗ ừợ các điểm vào là ANSI SQL92 và ODBC mức 0-2 MySQL hỗ trợ nhiều ngôn ngữ cho việc thông báo lỗi như Czec, Dutc, English, Estonia, French, German, Hungarian, Italian, Norwegian Nynorsk Ngôn ngữ mặc định cho dữ liệu là ISO-8859-1 (Latin 1) muốn thay đổi phải sửa trong mã nguồn

- Các bảng (table) ừong cơ sở dữ liệu MySQL có kích thước rất lớn Kích thước lớn nhất trong một bảng tối thiểu là 4Gb và nó còn phụ thuộc vào kích thước lớn nhất của một file do hệ điều hành quy định

- Cơ sở dữ liệu MySQL rất dễ quản lý và có tốc độ xử lý cao hơn ba bốn lần so với các hệ quản trị cơ sở dữ liệu khác

- MySQL là một hệ quản trị cơ sở dữ liệu mô hình quan hệ, có mã nguồn mở

Nó cung câp miễn phí trên các máy chủ UNIX, o s/2 và cả trên windows

1.5.2 Các nhược điểm của My SQL

- Không có môi trường đồ họa

- MySQL không cho phép thực hiện các câu lệnh SQL select truy vấn con

- Không hỗ trợ Stored Procedures, Trigger, ừansactions, Foreignkeys và View như các hệ quản trị cơ sở dữ liệu khác

1.5.3 Các câu lệnh căn bản trong SQL

Trang 28

I SELECT * FRC'ti {ta ble} WHERE { c c n i i c t i c n s }

2 UPDATE

Phát biểu SQL dạng UPDATE dùng cập nhật lại dữ liệu đã tồn tại trong bảng Khi UPDATE dùng cập nhật dữ liệu cho một mẩu tin chỉ định nào đó thường lệnh này sử dụng chung với mệnh đề WHERE Nếu cập nhật tất cả cácmẩu tin ừong bảng bạn có thể bỏ mệnh đề WHERE, cấu trúc như sau:

UPDA1E -ítable name;- SEI <cũlưmn>=<value>l [-ÍCũlumn>=-Ívalue>] IMRE « restrictive ccndicticnaí-]

Nếu cập nhật giá trị là kết quả ừả về từ phát biểu SELECT ừên 1 hay nhiều bảng khác Cấu trúc như sau:

I UFDAIE -ítable naiie> SEI <cũlunn>-=<select E ra; ta b le name MERE,, ,>[MRE « r e s tr ic tiv e ccn.dicticna>]

3 INSERT

Khi cần thêm mẩu tin vào bảng (table) trong CSDL MySQL, bạn có nhiều cách để thực hiện công việc này, nhưng để sử dụng các phát biểu SQL mang

Trang 29

tính chuyên nghiệp bạn cần sử dụng phát biểu INSERT Khi thêm dữ liệu, cần chú ý kiểu dữ liệu giống hoặc tương ứng với kiểu dữ liệu đã khai báo của cột ( column ), nếu không phù hợp thì lỗi sẽ phát sinh Muốn INSERT vào CSDL thì

ta có cấu trúc như sau:

INSERT IHTQ <ta b le M]IW> [< cữ lum name l i s t > ]

1.6 Cấu trúc chuỗi JSON

JSON: là chữ viết tắt của Javascript Object Notation, đây là một dạng dữ liệu tuân theo một quy luật nhất định mà hầu hết các ngôn ngữ lập trình hiện nay đều có thể đọc được, bạn có thể sử dụng lưu nó vào một file, một record trong CSDL rất dễ dàng JSON có định dạng đơn giản, dễ dàng sử dụng và truy vấn hơn XML rất nhiều nên tính ứng dụng của nó hiện nay rất là phổ biến

Ví dụ dưới đây định nghĩa một chuỗi JSON lưu trữ thông tin cá nhân nhưsau:

Chuỗi JSON được bao lại bởi dấu ngoặc nhọn {}

Các key, value của JSON bắt buộc phải đặt trong dấu nháy kép {"}, nếu bạn đặt nó trong dấu nháy đơn thì đây không phải là một chuỗi JSON đúng chuẩn

Nếu có nhiều dữ liệu (nhiều cặp key => value) thì ta dùng dấu phẩy (,)

để ngăn cách

Trang 30

Các key của JSON nên đặt chữ cái không dấu hoặc số, dấu _ và không

có khoảng trắng, ký tự đầu tiên không nên đặt là số

1.7 Tìm hiểu về Google Cloud Mesagỉng

Google Cloud Messaging (GCM) là dịch vụ miễn phí giúp nhà phát triển gửi tin nhắn trên nhiều nền tảng: Android, ios và Chrome Cho phép gửi dữ liệu

từ máy chủ của bạn đến các thiết bị Android của người dùng, và ngược lại GCM là hoàn toàn miễn phí và không giới hạn băng thông

Dịch vụ hoạt động trên các gói dữ liệu có dung lượng nhỏ hơn 4kb và tin nhắn tới thiết bị Android là tức thời

Ví dụ: Máy chủ có thể gửi tin nhắn trực tiếp tới thiết bị, nhóm thiết bị hoặc các thiết bị đã đăng ký chủ đề Ngoài ra, ứng dụng trên thiết bị có thể gửi tin nhắn trực tiếp tới máy chủ và tới thiết bị thuộc về cùng một nhóm

Google Cloud Messaging là một dịch vụ GCM là phù hợp cho việc xây dựng các ứng dụng nhắn tin tức thời hoặc tương tác giữa người dùng và nhà phát

triển ứng dụng Ví dụ:

• Thông báo tói thiết bị Android của người khi có một Email mới.

GCM gửi thông báo tới người quản lý khi có một đơn đặt hàng trên trang Web của họ

Gửi tín nhắn tói cả một cồng đồng như: cộng đồng nhân viên thuộc cùng một công ty, học sinh hoặc phụ huynh của một trường học vói chi phí thấp nhất và hiệu quả nhất

Ngày đăng: 25/08/2016, 10:37

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Kiến trúc nền tảng Android - Khoá luận tốt nghiệp xây dựng ứng dụng chat trên android sử dụng google cloud message
Hình 1.1 Kiến trúc nền tảng Android (Trang 15)
Hình 1.1: Quy trình sơ lược cách thức vận hành của GCM - Khoá luận tốt nghiệp xây dựng ứng dụng chat trên android sử dụng google cloud message
Hình 1.1 Quy trình sơ lược cách thức vận hành của GCM (Trang 31)
Hình 2.1: Biểu đồ phân cấp chức năng - Khoá luận tốt nghiệp xây dựng ứng dụng chat trên android sử dụng google cloud message
Hình 2.1 Biểu đồ phân cấp chức năng (Trang 36)
Hình 2.4: Biều đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý người dùng. - Khoá luận tốt nghiệp xây dựng ứng dụng chat trên android sử dụng google cloud message
Hình 2.4 Biều đồ luồng dữ liệu mức dưới đỉnh chức năng quản lý người dùng (Trang 39)
Hình 2.6: Biều đồ luồng dữ liệu mức dưới đỉnh chức năng Chat. - Khoá luận tốt nghiệp xây dựng ứng dụng chat trên android sử dụng google cloud message
Hình 2.6 Biều đồ luồng dữ liệu mức dưới đỉnh chức năng Chat (Trang 41)
Hình 3.1: Form giao dỉện trang chủ - Khoá luận tốt nghiệp xây dựng ứng dụng chat trên android sử dụng google cloud message
Hình 3.1 Form giao dỉện trang chủ (Trang 45)
Hình 3.3. Form giao diện đăng ký khỉ sai cú pháp - Khoá luận tốt nghiệp xây dựng ứng dụng chat trên android sử dụng google cloud message
Hình 3.3. Form giao diện đăng ký khỉ sai cú pháp (Trang 47)
Hình 3.4: Form giao diện đăng nhập - Khoá luận tốt nghiệp xây dựng ứng dụng chat trên android sử dụng google cloud message
Hình 3.4 Form giao diện đăng nhập (Trang 48)
Hình 3.5. Form giao diện đăng nhập khi không có dịch vụ mạng - Khoá luận tốt nghiệp xây dựng ứng dụng chat trên android sử dụng google cloud message
Hình 3.5. Form giao diện đăng nhập khi không có dịch vụ mạng (Trang 49)
Hình 3.6. Form giao dỉện danh sách người dùng - Khoá luận tốt nghiệp xây dựng ứng dụng chat trên android sử dụng google cloud message
Hình 3.6. Form giao dỉện danh sách người dùng (Trang 50)
Hình 3.7. Form giao dỉện thêm ngườỉ dùng vào danh bạ - Khoá luận tốt nghiệp xây dựng ứng dụng chat trên android sử dụng google cloud message
Hình 3.7. Form giao dỉện thêm ngườỉ dùng vào danh bạ (Trang 51)
Hình 3.8. Form giao dỉện  danh bạ - Khoá luận tốt nghiệp xây dựng ứng dụng chat trên android sử dụng google cloud message
Hình 3.8. Form giao dỉện danh bạ (Trang 52)
Hình 3.10: Form giao dỉện nhắn tín - Khoá luận tốt nghiệp xây dựng ứng dụng chat trên android sử dụng google cloud message
Hình 3.10 Form giao dỉện nhắn tín (Trang 54)
Hình 3.11: Form giao dỉện thông báo tín nhắn đến - Khoá luận tốt nghiệp xây dựng ứng dụng chat trên android sử dụng google cloud message
Hình 3.11 Form giao dỉện thông báo tín nhắn đến (Trang 55)
Hình 3.12: Form giao dỉện xóa tin nhắn - Khoá luận tốt nghiệp xây dựng ứng dụng chat trên android sử dụng google cloud message
Hình 3.12 Form giao dỉện xóa tin nhắn (Trang 56)

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