Tải bản đầy đủ (.pdf) (89 trang)

Xây dựng hệ thống tổng hợp tin tức trên android

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.07 MB, 89 trang )

 LỜI CẢM ƠN
Trong thời gian làm đồ án tốt nghiệp thì em xin chân thành cảm ơn Khoa
Công Nghệ Thông Tin, Trường Đại Học Công Nghệ Thông Tin Và Truyền Thông
đã tạo điều kiện tốt cho em thực hiện đề tài tốt nghiệp này. Và em cũng xin chân
thành cảm ơn cô giáo: Đoàn Thị Bích Ngọc, người đã tận tình hướng dẫn, chỉ bảo,
cung cấp các tài liệu cần thiết, giúp đỡ và động viên để em có thể hoàn thành đề tài
này.
Em xin chân thành cảm ơn các quý thầy cô trong bộ môn Khoa Học Máy
Tính, cùng toàn thể các thầy cô giáo trong Khoa Công nghệ Thông Tin nói riêng
và thầy cô trong Trường Đại Học Công Nghệ Thông Tin Và Truyền Thông nói
chung, đã tận tình giảng dạy, giúp đỡ và truyền đạt những kiến thức quý báu cho
em trong suốt thời gian em học tập và rèn luyện tại trường.
Và em xin gửi lời cảm ơn chân thành đến gia đình, người thân và tất cả
các bạn bè, đặc biệt là các bạn sinh viên trong lớp CNTT K10B, những người
đã hỗ trợ, chia sẻ, động viên tinh thần cho em trong suốt quá trình học tập và
thực hiện đồ án này.
Mặc dù đã cố gắng hoàn thành đồ án với tất cả lỗ lực của bản thân, nhưng
đồ án chắc chắn không tránh khỏi những thiếu sót, kính mong các thầy cô tận tình
chỉ bảo.
Một lần nữa em xin chân thành cảm ơn và luôn mong nhận được sự đóng
góp quý báu của tất cả mọi người.
Em xin chân thành cảm ơn!
Thái Nguyên, ngày tháng 06 năm 2016
Sinh viên thực hiện

1


Nguyễn Thế Hanh

 LỜI CAM ĐOAN


Đồ án tốt nghiệp là sản phẩm tổng hợp toàn bộ kiến thức mà em đã học
và nghiên cứu trong suốt thời gian học tập tại trường đại học. Ý thức được
điều đó, với tinh thần làm việc nghiêm túc, tự giác cùng sự lao động miệt
mài của bản thân và sự hướng dẫn nhiệt tình chu đáo của cô giáo: Đoàn
Thị Bích Ngọc, em đã hoàn thành đồ án tốt nghiệp của mình.
Em xin cam đoan về nội dung của đồ án: “ Xây dựng hệ thống tổng
hợp tin tức trên Android ” là do em tự tìm hiểu, nghiên cứu dưới sự
hướng dẫn của cô giáo: Đoàn Thị Bích Ngọc. Mọi trích dẫn và tài liệu mà em
tham khảo đều được ghi rõ nguồn gốc.
Nếu mọi thông tin sai lệch em xin chịu mọi hình thức kỷ luật của trường
Đại học Công nghệ thông tin và Truyền thông.
Thái Nguyên, ngày … tháng … năm 2016
Sinh viên

Nguyễn Thế Hanh

 MỤC LỤC
LỜI CẢM ƠN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
LỜI CAM ĐOAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
MỤC LỤC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
DANH MỤC HÌNH ẢNH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2


DANH MỤC BẢNG BIỂU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
LỜI MỞ ĐẦU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
CHƯƠNG 1. TỔNG QUAN VỀ CƠ SỞ LÍ THUYẾT . . . . . . . . . . . . . . . . . . . . . . 8
1.1. Giới thiệu chung về Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1.1. Kiến trúc Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1.2. Các khái niệm trong lập trình Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.1.3. Các thành phần trong một project ứng dụng Android . . . . . . . . . . . . . . . 12
1.2. Tổng quan về XML, JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2.1. Ngôn ngữ XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2.2. Sơ lược về JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.3. Tổng quan về Web Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.3.1. Đặc điểm của Web service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.2. Ưu và nhược điểm của Web service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.3.3. RESTful Webservice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.4. Ngôn ngữ Java. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.4.1. Java là gì? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.4.2. Ưu và nhược điểm của ngôn ngữ Java. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.4.3. Đặc điểm của ngôn ngữ Java. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.4.4. Java được sử dụng để làm gì? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.5. Giới thiệu về Wordpress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.5.1. Wordpress là gì?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.5.2. Những đặc điểm nổi bật của WordPress. . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.5.3. Cài đặt và cấu hình Wordpress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
CHƯƠNG 2. PHÂN TÍCH THIẾT KẾ HỆ THỐNG . . . . . . . . . . . . . . . . . . . . . 25
2.1. Khảo sát và phân tích yêu cầu bài toán . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.1.1. Đặt vấnđề . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.1.2. Tóm tắt hoạt động của ứng dụng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.1.3. Yêu cầu chức năng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.1.4. Yêu cầu người dùng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2. Phân tích, thiết kế các chức năng của hệ thống . . . . . . . . . . . . . . . . . . . . 27
2.2.1. Tác nhân hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3


2.2.2. Các chức năng của hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3. Phân tích UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.3.1. Tổng quan về UML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.2. Phân tích UML bài toán . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.4. Phân tích cơ sở dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
CHƯƠNG 3. XÂY DỰNG ỨNG DỤNG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.1. Môi trường phát triển. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.2. Một số giao diện . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
KẾT LUẬN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
TÀI LIỆU THAM KHẢO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

4


 DANH MỤC HÌNH ẢNH
Hình 1.1: Các thành phần của hệ điều hành android . . . . . . . . . . . . . . . . . . . . 8
Hình 1.2: Các thành phần của library và android runtime . . . . . . . . . . . . . . . . 9
Hình 1.3: Mô hình thành phần framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Hình 1.4: Cấu trúc của một tài liệu xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Hình 1.5: Create a configuration file. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Hình 1.6: Nhập các thông tin cơ sở dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Hình 2.1: Tác nhân hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Hình 2.2: Biểu đồ use case hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Hình 2.3: Biểu đồ trình tự xem danh sách danh mục tin . . . . . . . . . . . . . . . 31
Hình 2.4: Biểu đồ trình tự xem danh sách tin tức . . . . . . . . . . . . . . . . . . . . . . 31
Hình 2.5: Biểu đồ trình tự xem chi tiết tin tức . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Hình 2.6: Biểu đồ trình tự đăng nhập trang quản trị . . . . . . . . . . . . . . . . . . . . 33
Hình 2.7: Biểu đồ trình tựadmin xem danh sách danh mục tin tức . . . . . 33
Hình 2.8: Biểu đồ trình tựadmin thêm danh mục tin tức. . . . . . . . . . . . . . . . 34
Hình 2.9: Biểu đồ trình tựadmin sửa danh mục tin tức. . . . . . . . . . . . . . . . . 35
Hình 2.10: Biểu đồ trình tựadmin xóa danh mục tin tức. . . . . . . . . . . . . . . . 36
Hình 2.11: Biểu đồ trình tựadmin xem danh sách tin tức. . . . . . . . . . . . . . . 36

Hình 2.12: Biểu đồ trình tựadmin thêm tin tức . . . . . . . . . . . . . . . . . . . . . . . . . 37
Hình 2.13: Biểu đồ trình tựadmin sửa tin tức . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Hình 2.14: Biểu đồ trình tựadmin xóa tin tức . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Hình 2.15: Biểu đồ trình tựadmin xem danh sách user . . . . . . . . . . . . . . . . 39
Hình 2.16: Biểu đồ trình tựadmin thêm user. . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Hình 2.17: Biểu đồ trình tựadmin sửa user . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Hình 2.18: Biểu đồ trình tựadmin xóa user . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Hình 2.19: Biểu đồ trình tựxem thông tin tài khoản . . . . . . . . . . . . . . . . . . . . 42
Hình 2.20: Biểu đồ trình tựđăng xuất . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Hình 2.21: Biểu đồhoạt động của người dùng . . . . . . . . . . . . . . . . . . . . . . . . . 43
Hình 2.21: Biểu đồhoạt động của người dùng . . . . . . . . . . . . . . . . . . . . . . . . . 44
Hình 2.22: Biểu đồlớp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Hình 2.23. Mối quan hệ cơ sở dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Hình 3.1: Giao diện màn hình home người dùng . . . . . . . . . . . . . . . . . . . . . . 53
Hình 3.2: Giao diện danh sách tin tức. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Hình 3.3: Giao diện xem chi tiết tin tức. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Hình 3.4: Giao diện đăng nhập trang quản trị . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Hình 3.5: Giao diện trang quản trị. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

5


6


 DANH MỤC BẢNG BIỂU
Bảng 2.1: Chức năng với người dùng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bảng 2.2: Chức năng với quản trị viên . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bảng 2.3: Mô tả bảng dữ liệu wp_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bảng 2.4: Mô tả bảng dữ liệu wp_posts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Bảng 2.5: Mô tả bảng dữ liệu wp_postmeta . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bảng 2.6: Mô tả bảng dữ liệu wp_comments . . . . . . . . . . . . . . . . . . . . . . . . . .
Bảng 2.7: Mô tả bảng dữ liệu wp_commentmeta . . . . . . . . . . . . . . . . . . . . . .
Bảng 2.8: Mô tả bảng dữ liệu wp_terms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bảng 2.9: Mô tả bảng dữ liệu wp_ term_taxonomy . . . . . . . . . . . . . . . . . . . .
Bảng 2.10: Mô tả bảng dữ liệu wp_ term_taxonomy . . . . . . . . . . . . . . . . . . .
Bảng 2.11: Mô tả bảng dữ liệu wp_ users . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bảng 2.12: Mô tả bảng dữ liệu wp_ usermeta . . . . . . . . . . . . . . . . . . . . . . . . .
Bảng 2.13: Mô tả bảng dữ liệu wp_ links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27
28
45
46
47
47
48
48
48
49
49
50
50

 LỜI MỞ ĐẦU
Công nghệ trên thế giới đang phát triển từng ngày với tốc độ vũ bão. Xu
hướng hiện nay của ngành công nghệ thông tin không chỉ gói gọn trong việc
làm với các ứng dụng trên máy tính mà đang chuyển dịch dần thành công
nghệ thông tin và truyền thông. Những chiếc máy tính để bàn trở thành
những chiếc laptop cơ động. Chưa dừng lại ở đó, con người lại kết hợp máy

tính với chiếc điện thoại di động để cho ra những thiết bị di động thế hệ mới,
có sức mạnh của chiếc máy tính nhỏ gọn, cơ động.
Đi kèm với sự phát triển của phần cứng như vậy, phần mềm cũng đang
phát triển nhanh chóng để phù hợp với các thiết bị thế hệ mới. Quan trọng
nhất đó chính là các hệ điều hành cho các thiết bị di động. Nổi bật nhất gần
đây là hệ điều hành Android của Google. Nó được đánh giá là một hệ điều
hành tốt, nhiều tiềm năng phát triển và sẽ có những bước nhảy vọt trong
7


tương lai.
Bởi vậy, em đã chọn đề tài : “Xây dựng hệ thống tổng hợp tin tức
trên android”.
 Mục tiêu nghiên cứu
 Tìm hiểu ngôn ngữ lập trình Java, XML, JSON, PHP…
 Ứng dụng “Xây dựng hệ thống tổng hợp tin tức trên android”
 Công cụ hỗ trợ
 Ngôn ngữ Java, AndroidSDK, PHP, MySQL, XML, JSON…
 Bố cục bài báo cáo
 Lời mở đầu.
 Chương 1. Tổng quan về cơ sở lí thuyết.
 Chương 2. Phân tích thiết kế hệ thống.
 Chương 3. Xây dựng ứng dụng.
 Kết luận.
 Tài liệu tham khảo.


 TỔNG QUAN VỀ CƠ SỞ LÍ THUYẾT
 Giới thiệu chung về Android
Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành

cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và
máy tính bảng. Android là mã nguồn mở và miễn phí, bất cứ ai muốn sử
8


dụng Android có thể sử dụng bằng cách tải về mã nguồn android đầy đủ.
Ưu điểm chính của việc áp dụng Android là nó cung cấp một cách tiếp cận
thống nhất để phát triển ứng dụng. Các nhà phát triển chỉ cần phát triển cho
Android và các ứng dụng của họ có thể chạy trên nhiều thiết bị khác nhau, miễn là
các thiết bị được hỗ trợ bằng cách sử dụng Android.
 Kiến trúc Android
Mô hình tổng quát các thành phần của hệ điều hành Android:

9


Hình 1.1: Các thành phần của hệ điều hành Android

 Linux Kernel
Hệ điều hành Android được phát trển dựa trê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).


Tuy được phát triển dựa vào nhân linux nhưng thực ra nhân Linux đã được
nâng cấp và sửa đổi rất nhiều để phù hợp với tính chất của những thiết bị cầm tay
như hạn chế về bộ vi xử lý, dung lượng bộ nhớ, kích thước màn hình, nhu cần kết
nối mạng không dây...
 Các thành phần của nhân Linux:
 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
10


đ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 khiể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.
 Power Madagement : Giám sát việc tiêu thụ điện năng.
 M-System Driver: Quản lý việc đọc ghi... lên các thiết bị nhớ như thẻ SD, flash.
 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.
 Library và Android Runtime
Phần này có 2 thành phần là phần Library và Android Runtime

11



Hình 1.2: Các thành phần của Library và Android Runtime

 Library:
Thành 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)(Libc): 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...
 Surface Manage: quản lý hiển thị 2D và 3D.
 SGL công nghệ 2D
 SQLite: quản lý database của ứng dụng.
 Free Type: dùng cho hiển thị ảnh, font.
12


 SSL(Secure Socket Layer): Tầng thiết lập giao dịch an toàn trên 2 ứng dụng
trên 1 cổng (socket).
 Open GL/EL: hỗ trợ thư viện tùy chọn 3D tĩnh và động.

 Android runtime:
Phần này chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java có
thể hoạt động. Phần này có 2 bộ phận tương tự như mô hình chạ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 ảo java (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ều
hành Android không được chạy bằng JRE(Java Runtime Environment) của Sun
(nay là Oracle) (JVM) mà là chạy bằng máy ảo Dalvik (máy ảo dalvik đc đặt tên
sau khi một nhà phát triển phần mềm của google tạo ra nó sau khi đi thăm một
ngôi làng ở nơi tổ tiên ông sinh sống) do Google phát triển. Máy ảo davik thực thi
cái tập tin davik (dex), khác với java là chuyển sang dạng bytecode. Định dạng này
được tối ưu hóa cho bộ nhớ tối thiểu.
 Framework

13


Hình 1.3: Mô hình thành phần Framework
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:
 View Manage:Một tập hợp rất nhiều các View có khả năng kế thừa lẫn
nhau dùng để thiết kế phần giao diện ứng dụng như: gridview, tableview,
linearlayout…
 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.
 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
14


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).
 Content Provider: Cho phép các ứng dụng có thể truy xuất dữ liệu từ các
ứng dụng khác (chẳng hạn như Contacts) hoặc là chia sẻ dữ liệu giữa các ứng dụng
đó.
 Application
Đâ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…
 Các ứng dụng viết sẽ có những đặc tính sau:
 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
được dựng lên để phục vụ cho nó.



 Các khái niệm trong lập trình Android
 Activity
Là thành phần tối quan trọng của bất kỳ một ứng dụng Android nào.
15


Thuật ngữ activity chỉ một việc mà người dùng có thể thực hiện trong một
ứng dụng Android. Do gần như mọi activity đều tương tác với người dùng,
lớp activity đảm nhận việc tạo ra một cửa sổ (window) để người lập trình đặt
lên đó một giao diện UI với set Content View (View).

 Service
Service là một thành phần dùng để thực thi một công việc dưới dưới nền
hệ điều hành (công việc được thực thi ẩn với người dùng). Thành phần này
được dùng cho các công việc cần nhiều thời gian để thực thi hoặc dùng để
điều khiển thực thi các công việc từ xa bởi một tiến trình khác.
 Content provider
Một content provider dùng để quản lý việc chia sẻ một tập dữ liệu ứng
dụng nào đó. Bạn có thể lưu trữ dữ liệu trên file, trên SQLite database, trên
web hoặc trên bất kì nơi lưu trữ nào mà ứng dụng có thể truy xuất. Thông
qua việc sử dụng content provider một ứng dụng khác có thể truy vấn,
chỉnh sửa tập dữ liệu đó.
 Broadcast Receiver
Broadcast Receiver là một thành phần hồi đáp những tín hiệu được phát
ra trên toàn hệ thống. Có rất nhiều Broadcast Receiver được xây dựng sẵn
trên hệ điều hành Android.
 View
Mỗi item trong một giao diện người dùng là một lớp con của lớp View

16


(android.view.View). Android SDK cung cấp một tập các view được xây
dựng sẵn có thể sử dụng để xây dựng một giao diện người dùng.

 Intent
Một đối tượng Intent là một gói thông tin. Nó chứa thông tin có ích cho
các component tiếp nhận intent (chẳng hạn như các hành động được thực
hiện và các dữ liệu với hoạt động trên) cộng với các thông tin liên quan đến
hệ thống Android (như các chủng loại thành phần nên xử lý các intent và
hướng dẫn làm thế nào với khởi động một activity mục tiêu).

 Các thành phần trong một project ứng dụng Android
 AndroidManifest.xml
Trước khi hệ điều hành Android có thể khởi động một thành phần
(Activity, Services, Broadcast Receiver) thì hệ thống phải biết thành phần
này có tồn tại hay không bằng cách đọc file AndroidManifest.xml của ứng
dụng. Mỗi ứng dụng phải khai báo mọi thành phần (Activity, Services,
Broadcast Receiver) trong file này và phải đặt ở thư mục gốc của ứng dụng.
 Mỗi file manifest có những khai báo chứa thông tin về ứng dụng Android:
 Permission: Định danh xác định các quyền của người sử dụng như truy
xuất internet, truy xuất danh sáchcontact…
 Version: Xác định phiên bản API tối thiểu mà ứng dụng có thể thực thi.
Phiên bản API này tương ứng với các phiên bản của hệ điều hành Android.
 Application: Các tính năng phần cứng cần thiết cho ứng dụng như GPS,
camera, Bluetooth… Các bộ API liên kết sử dụng trong ứng dụng.
17


Một file AndroidManifest.xml (do Eclipse tự tạo, khi lập trình tùy theo
tình huống ta thêm vào các tính năng) có cấu trúc như sau:

<?xml version="1.0" encoding="utf-8"?>
xmlns:android=" />package="com.firstproject"
android:versionCode="1" android:versionName="1.0" >
<uses-sdk android:minSdkVersion="7" />
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
android:name=".MynewprojectActivity"

android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>

18


</application>
</manifest>

 <activity>: Khai báo mộtActivity.
 <service>: Khai báo mộtService.
 <receiver>:Khai báo một BroadcastReciever.
 : Khai báo một ContentProvider.
 <supports-screens>: Khai báo loại màn hình mà ứng dụng hỗtrợ.
 <uses-configuration>: Khai báo phần cứng nhập liệu cho ứng dụng .
 <uses-feature>: Các tính năng phần cứng cần thiết cho ứngdụng.
 <uses-sdk>: Phiên bản API tốithiểu.
 FileR.java
File R.java là một file tự động sinh ra ngay khi tạo ứng dụng, file này
được sử dụng để quản lý các thuộc tính được khai báo trong file XML của
ứng dụng và các tài nguyên hình ảnh.
Mã nguồn của file R.java được tự động sinh khi có bất kì một sự kiện
nào xảy ra làm thay đổi các thuộc tính trong ứng dụng. Chẳng hạn như, bạn
kéo và thả một file hình ảnh từ bên ngoài vào project thì ngay lập tức thuộc
tính đường dẫn đến file đó cũng sẽ được hình thành trong file R.java hoặc
xoá một file hình ảnh thì đường dẫn tương ứng đến hình ảnh đó cũng tự

động bị xoá.
Dưới đây là nội dung của một file R.java:
package com.hongngoan.newsfeed;

19


public final class R {
public static final class anim {
public static final int anim_zone=0x7f040000;
public static final int slide_in_from_bottom=0x7f040001;
public static final int slide_in_from_left=0x7f040002; public
static final int slide_in_from_right=0x7f040003; public static
final int slide_in_from_top=0x7f040004; public static final
int slide_out_to_bottom=0x7f040005; public static final int
slide_out_to_left=0x7f040006; public static final int
slide_out_to_right=0x7f040007; public static final int
slide_out_to_top=0x7f040008;}
public static final class attr {
public static final int actionBarDivider=0x7f01002f; public
static final int actionBarSize=0x7f01002e; public static final
int SlidingMenu_viewBehind = 2;
};}



 Thư mục res
Ở đây ta có thể lưu trữ các file tài nguyên như hình ảnh, các file XML để
định nghĩa các layout và hơn nữa. Trong thư mục này có các thư mục khác
như Drawable, Layout và Values.


20


 Drawable: Ở đây lưu trữ các file đồ họa khác nhau. Ta có thể nhìn thấy ba
loại thư mục drawable. Bởi vì có rất nhiều thiết bị Android với độ phân giải
màn hình khác nhau.
 Layout: Đây là nơi chứa các file XML layout. Các file layout là các file
XML trong đó định nghĩa các đối tượng Android khác nhau (chẳng hạn như
TextBox, Buttons, …) được tổ chức như thế nào trên màn hình.
 Values: Các file XML lưu trữ các giá trị chuỗi khác nhau (các title, label,…)
 Tổng quan về XML, JSON
 Ngôn ngữ XML
XML là ngôn ngữ đánh dấu chuẩn do W3C đề nghị, để tạo ra các ngôn
ngữ đánh dấu khác. Đây là một tập con đơn giản của SGML, có khả năng
mô tả nhiều loại dữ liệu khác nhau. Mục đích chính của XML là đơn giản hóa
việc chia sẻ dữ liệu giữa các hệ thống khác nhau, đặc biệt là các hệ thống
được kết nối với Internet.
Công nghệ XML ra đời là kết quả của các nghiên cứu về dạng biểu diễn
thông tin khi cần trao đổi giữa các hệ thống tin học.
Dạng biểu diễn cần thỏa mãn các yêu cầu sau:
 Cho phép trao đổi trên phạm vi rộng (Internet).
 Dễ dàng trong việc kết xuất và tiếp nhận khi trao đổi.
 Tuân theo một định chuẩn chung được chấp nhận và hỗ trợ của nhiều môi
trường phát triển phần mềm.

21


 Cấu trúc của file XML và tài liệu XML

Một file XML gồm có 2 phần:

Hình 1.4: Cấu trúc của một tài liệu XML
 Document Prolog: Lưu trữ metadata của XML gồm 2 phần: khai báo XML
và khai báo kiểu dữ liệu trong XML.
 Root element hay còn gọi là Document Element: chứa tất cả các phần tử và
nội dung của nó. Một phần tử của XML phải có thẻ mở và thẻ đóng.
 Đặc điểm của XML
 Là tài liệu thuần văn bản (plaintext).
 Dễ soạnthảo.
22


 Dễ xửlý.
 Độc lập nền tảng (Windows,Unix,…).
 Có tính xác định dữ liệu (Data identification).
 Liên kết tài liệu với nhau: XLink andXpointer.
 Có khả năng tạo định dạng mới (Stylability)
 XSL - Extensible StylesheetLanguage.
 Các định dạng XSL khác nhau có thể được dùng để biểu diễn dữ liệu
theo nhiều cách khác nhau.
 Tái sử dụng (Inline Reusability).
 Phân cấp (Hierarchical).
 Sơ lược về JSON
JSON (JavaScript Object Notation)là một chuẩn mở dạng text được thiết
kế để trao đổi dữ liệu “con người đọc được” (human-readable). Định dạng
JSON được định nghĩa bởi Douglas Crockford, và được mô tả chi tiết theo
RFC 4627.
JSON được phát triển từ ngôn ngữ Javascript để biểu diễn các kiểu dữ
liệu đơn giản và mảng, chủ yếu được dùng để vận chuyển thông tin giữa

các thành phần của một chương trình.
 Các kiểu dữ liệu
Có 5 kiểu dữ liệu chính:
 Number: Kiểu số bao gồm số nguyên và số thực.
 String: Kiểu chuỗi, nội dung bao bởi cặp dấu nháy kép “”, những ký tự đặc
biệt được escape bởi dấu \.

23


 Boolean: Kiểu luận lý bao gồm true và false.
 Array: Kiểu mảng, gồm các phần tử phân cách nhau bởi dấu phẩy, mảng
được bao bởi cặp dấu [].
 Object: Kiểu đối tượng, gồm những cặp giá trị đi cùng nhau, mỗi cặp phân
cách bởi dấu phẩy, đối tượng được bao bởi cặp dấu { }, cặp giá trị bao gồm
tên và giá trị được phân cách bởi dấu hai chấm“:”.
 Tổng quan về Web Service
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 để 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à người dùng (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).
 Đặc điểm của Web service
 Web service 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.
 Web service 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.

 Một Web service bao gồm nhiều module và được công bố trên mạng Internet
để người dùng có thể sử dụng.
 Một ứng dụng khi được triển khai sẽ hoạt động theo mô hình client-server.
 Ưu và nhược điểm của Web service

24


 Ưu điểm
 Web service cung cấp khả năng hoạt động rộng lớn và linhhoạt với các ứng
dụng phầ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.
 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ến trình/chức năng nghiệp vụ đóng gói trong giao diện Web service 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 nghiệp khác.
 Ở góc độ doanh nghiệp, Web service là một công nghệ phục vụ rất tốt trong
việc quảng bá dịch vụ của mình cho đa dạng khách hàng.
 Nhược điểm
 Có quá nhiều chuẩn cho Web service khiến cho người dùng khó nắm bắt
cũng như gây khó khăn cho các nhà phát triển.
 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.
 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ấn đề chất lượng dịch vụ (Quality of Service - QoS) còn chưa được đảm

bảo.
 RESTful Webservice

25


×