BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG
-------------------------------
ISO 9001:2015
ĐỒ ÁN TỐT NGHIỆP
NGÀNH: CÔNG NGHỆ THÔNG TIN
Sinh viên : Nguyễn Ngọc Hải
Giảng viên hướng dẫn: ThS. Phùng Anh Tuấn
HẢI PHÒNG - 2018
1
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG
-----------------------------------
TIM HIỂU DỊCH VỤ WEB CHO THIẾT BỊ DI DỘNG VA
ỨNG DỤNG
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
NGÀNH: CÔNG NGHỆ THÔNG TIN
Sinh viên : Nguyễn Ngọc Hải
Giảng viên hướng dẫn : ThS. Phùng Anh Tuấn
HẢI PHÒNG - 2018
ngành khoa học kĩ thuật.
Cùng với sự phát triển của thị trường điện thoại di động là sự phát triể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 di động hiện nay rất đa dạng và phong phú trên các hệ điều hành
di động cũng phát triển mạnh mẽ và đang thay đổi từ ngày. Các hệ điều hành J2ME,
Android, IOS, Hybrid, Web based Mobile Application đã có rất phát triển trên thị
trường truyền thông di động.
Trong vài năm trở lại đâ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
hiện nay, đã được nhà phát triển công nghệ rất nổi tiếng hiện nay là Google. Android
đã nhanh chóng là đối thủ cạnh tranh mạnh mẽ với các hệ điều hành trước đó và đang
là hệ điều hành di động của tương lai và được nhiều người ưa chuộng nhất.
Ngày nay, với sự phát triển nhanh chóng của xã hội, nhu cầu mua bán các loại
sản phẩm thông qua mạng Internet ngày càng phổ biến, vì vậy em đã chọn đề tài “Tìm
hiểu dịch vụ Web cho thiết bị di động và ứng dụng ” với mục đích nghiên cứu, tìm
hiểu về dịch vụ web trong hệ điều hành Android và xây dựng ứng dụng mua bán các
loại thiết bị điện tử để có thể đáp ứng được nhu cầu thiết yếu đó, giúp cho mọi người
có thể tiết kiệm chi phí, thời gian đi lại và còn có thể cập nhật một cách nhanh chóng
về thông tin sản phẩm thông qua ứng dụng một cách dễ dàng và tiện lợi.
4
LỜI CẢM ƠN
Em xin gửi lời cảm ơn chân thành nhất đến quý thầy cô Trường Đại Học Dân
Lập Hải Phòng, những người đã dìu dắt em tận tình, đã truyền đạt cho em những kiến
thức và bài học quý báu trong suốt thời gian em theo học tại trường.
Em xin trân trọng gửi lời cảm ơn đến tất cả các thầy cô trong khoa Công Nghệ
Thông Tin, đặc biệt là thầy giáo ThS. Phùng Anh Tuấn, thầy đã tận tình hướng dẫn và
giúp đỡ em trong suốt quá trình làm tốt nghiệp. Với sự chỉ bảo của thầy, em đã có
2.1. Môi trường phát triển..........................................................................................20
2.1.1. Phần mềm Android Studio ...........................................................................20
2.1.2. Bộ công cụ phát triển Java SE Development Kit (JDK) .............................20
2.1.3. Máy ảo Android Virtual Device (AVD) .......................................................21
2.2. Các thành phần trong một dự án Android ..........................................................21
2.2.1. Tệp cấu hình dự án AndroidManifest.xml ...................................................21
a. Thành phần ứng dụng ....................................................................................21
b. Quyền truy xuất và sử dụng tài nguyên .........................................................22
c. Phiên bản SDK ..............................................................................................22
2.2.2. Tệp R.java ....................................................................................................22
2.3. Vòng đời ứng dụng Android ..............................................................................22
2.3.1. Chu kỳ sống của các thành phần .................................................................22
2.3.2. Activity Stack ...............................................................................................23
2.3.3. Các trạng thái của chu kỳ sống ...................................................................23
2.3.4. Thời gian sống của Activity .........................................................................24
2.3.5. Các phương thức của chu kỳ sống...............................................................24
2.4. Các thành phần giao diện trong Android ............................................................25
2.4.1. View và ViewGroup .....................................................................................25
a. TextView .......................................................................................................26
b. EditText .........................................................................................................26
c. Button.............................................................................................................27
d. ImageView ....................................................................................................28
6
e. ListView.........................................................................................................28
2.4.2 Layout ...........................................................................................................29
a. RelativeLayout ...............................................................................................29
b. TableLayout ...................................................................................................30
c. FrameLayout ..................................................................................................30
4.1. Phát biểu bài toán ...............................................................................................50
4.2. Thiết kế chức chức năng hệ thống ......................................................................50
7
4.2.1. Chức năng xem sản phẩm theo loại sản phẩm ............................................50
4.2.2. Chức năng quản lí giỏ hàng ........................................................................51
4.2.3. Chức năng thanh toán sản phẩm .................................................................51
4.3. Thiết kế dữ liệu ...................................................................................................52
4.3.1. Bảng thông tin sản phẩm .............................................................................52
4.3.2. Bảng thông tin sản phẩm mới nhất..............................................................52
4.3.3. Bảng chi tiết đơn hàng ................................................................................52
4.3.4. Bảng thông tin loại sản phẩm ......................................................................53
4.3.5. Bảng thông tin đơn hàng .............................................................................53
4.4. Một số giao diện chương trình ...........................................................................53
4.4.1 Giao diện màn hình chính và thanh menu của ứng dụng .............................53
4.4.2. Giao diện dánh sách các sản phẩm của Điện thoại và Laptop ...................54
4.4.3. Giao diện thông tin chi tiết của các sản phẩm ............................................54
4.4.4. Giao diện các sản phẩm trong giỏ hàng .....................................................55
4.4.5. Giao diện thanh toán sản phẩm và thông tin liên hệ ..................................55
KẾT LUẬN ...................................................................................................................56
TÀI LIỆU THAM KHẢO .............................................................................................57
8
CHƯƠNG 1: HỆ ĐIỀU HÀNH ANDROID
1.1. Giới thiệu chung về Hệ điều hành Android
Android là một hệ điều hành cho thiết bị di động dựa trên nền tảng linux phiên
bản 2.6 dành cho các dòng điện thoại SmartPhone. Đầu tiên được ra đời bởi công ty
Với Google, vì android hoàn toàn miễn phí, Google không thu tiền từ những
hãng sản xuất điện thoại, tuy không trực tiếp hưởng lợi từ android nhưng bù lại,
những dịch vụ của hãng như Google Search, Google Maps,... nhờ có android mà có thể
dễ dàng xâm nhập nhanh vào thị trường di động vì mỗi chiếc điện thoại được sản xuất
ra đều được tích hợp hàng loạt dịch vụ của Google. Từ đó hãng có thể kiếm bội, chủ
yếu là từ các nguồn quảng cáo trên các dịch vụ đó [1].
Với các nhà phát triển ứng dụng (developers), việc hệ điều hành android được
sử dụng phổ biến đồng nghĩa với việc họ có thể thoải mái phát triển ứng dụng trên nền
android với sự tin tưởng là ứng dụng đó sẻ có thể chạy được ngay trên nhiều dòng điện
thoại của các hãng khác nhau. Họ ít phải quan tâm là đang phát triển cho điện thoại
nào, phiên bản bao nhiêu vì nền tảng android là chung cho nhiều dòng máy, máy ảo
Java đã chịu trách nhiệm thực thi những ứng dụng phù hợp với mỗi dòng điện thoại
mà nó đang chạy. Tất cả các chương trình ứng dụng được viết bằng ngôn ngữ Java kết
hợp với XML nên có khả năng khả chuyển cao.
- Một số hãng sản xuất điện thoại có sử dụng hệ điều hành android tiêu biểu :
HTC với các dòng Desire HD, Evo 4G, DROID ERIS, Desire Z, Hero,
Desire, Tattoo, Wildfire, Droid Incredible, Legend, Magic, Google Nexus
One, Dream, Aria, Paradise .
LG với các dòng GT540 Optimus, Optimus Chic E720, Optimus One P500,
GW620, Optimus Z, Optimus Q, KH5200 Andro-1, GW880, C710Aloha .
10
MOTOROLA với các dòng MILESTONE 2, BACKFLIP, Droid XTreme,
MT710 ZHILING, MILESTONE, XT720 MOTOROI, A1680, XT800
ZHISHANG, DEFY, CHARM, XT806...
SAMSUNG với các dòng máy I9000 Galaxy S, Galaxy Tab, Epic 4G,
i5510, I5500 Galaxy 5, I7500 Galaxy, I5800 Galaxy 3, M110S Galaxy S,
I6500U Galaxy, Galaxy Q, I5700 Galaxy Spica, I8520 Galaxy Beam, I909
không dây...
- 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ớ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.
1.2.2. Tầng thư viện và thực thi Android2
Phần này có 2 thành phần là phần Library và Android Runtime :
a. Phần thư viện
- 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.
2
Library và android runtime
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 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 :
3
Application Framework
13
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 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
tệp 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)
.....
1.2.4. Tầng ứng dụng4
Đâ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),
1.3. Mô tả hệ điều hành Android
1.3.1. Giao diện
Giao diện người dùng của Android dựa trên nguyên tắc tác động trực tiếp, sử
dụng cảm ứng chạm tương tự như những động tác ngoài đời thực như vuốt, chạm, kéo
giãn và thu lại để xử lý các đối tượng trên màn hình. Sự phản ứng với tác động của
người dùng diễn ra gần như ngay lập tức, nhằm tạo ra giao diện cảm ứng mượt mà,
thường dùng tính năng rung của thiết bị để tạo phản hồi rung cho người dùng [1].
Những thiết bị phần cứng bên trong như gia tốc kế, con quay hồi chuyển và cảm biến
khoảng cách được một số ứng dụng sử dụng để phản hồi một số hành động khác của
người dùng, ví dụ như điều chỉnh màn hình từ chế độ hiển thị dọc sang chế độ hiển thị
ngang tùy theo vị trí của thiết bị, hoặc cho phép người dùng lái xe đua bằng xoay thiết
bị, giống như đang điều khiển vô-lăng.
Hình 1.4. Giao diện Android 6.0.1 Marshmallow trên điện thoại LG Nexus 5X
15
Các thiết bị Android sau khi khởi động sẽ hiển thị màn hình chính, điểm khởi đầu
với các thông tin chính trên thiết bị, tương tự như khái niệm desktop (bàn làm việc)
trên máy tính để bàn. Màn hính chính Android thường gồm nhiều biểu tượng (icon) và
tiện ích (widget); biểu tượng ứng dụng sẽ mở ứng dụng tương ứng, còn tiện ích hiển
thị những nội dung sống động, cập nhật tự động như dự báo thời tiết, hộp thư của
người dùng, hoặc những mẩu tin thời sự ngay trên màn hình chính. Màn hình chính có
thể gồm nhiều trang xem được bằng cách vuốt ra trước hoặc sau, mặc dù giao diện
màn hình chính của Android có thể tùy chỉnh ở mức cao, cho phép người dùng tự do
sắp đặt hình dáng cũng như hành vi của thiết bị theo sở thích. Những ứng dụng do các
hãng thứ ba có trên Google Play và các kho ứng dụng khác còn cho phép người dùng
thay đổi "chủ đề" của màn hình chính, thậm chí bắt chước hình dáng của hệ điều hành
những quốc gia cố định vì lý do kinh doanh. Nếu người dùng mua một ứng dụng mà
họ cảm thấy không thích, họ được hoàn trả tiền sau 15 phút kể từ lúc tải về, và một vài
nhà mạng còn có khả năng mua giúp các ứng dụng trên Google Play, sau đó tính tiền
vào trong hóa đơn sử dụng hàng tháng của người dùng. Đến tháng 9 năm 2012, có hơn
675.000 ứng dụng dành cho Android, và số lượng ứng dụng tải về từ Cửa hàng Play
ước tính đạt 25 tỷ [1].
Các ứng dụng cho Android được phát triển bằng ngôn ngữ Java sử dụng Bộ phát
triển phần mềm Android (SDK). SDK bao gồm một bộ đầy đủ các công cụ dùng để
phát triển, gồm có công cụ gỡ lỗi, thư viện phần mềm, bộ giả lập điện thoại dựa trên
QEMU, tài liệu hướng dẫn, mã nguồn mẫu, và hướng dẫn từng bước. Môi trường phát
triển tích hợp (IDE) được hỗ trợ chính thức là Eclipse sử dụng phần bổ sung Android
Development Tools (ADT). Các công cụ phát triển khác cũng có sẵn, gồm có Bộ phát
triển gốc dành cho các ứng dụng hoặc phần mở rộng viết bằng C hoặc C++, Google
App Inventor, một môi trường đồ họa cho những nhà lập trình mới bắt đầu, và nhiều
nền tảng ứng dụng web di động đa nền tảng phong phú.
Để vượt qua những hạn chế khi tiếp cận các dịch vụ của Google do sự Kiểm
duyệt Internet tại Cộng hòa Nhân dân Trung Hoa, các thiết bị Android bán tại Trung
Quốc lục địa thường được điều chỉnh chỉ được sử dụng dịch vụ đã được duyệt.
17
1.4. Sự đón nhận của người dùng đối với hệ điều hành Android
Android được đón nhận bằng một thái độ thờ ơ khi nó ra mắt vào năm 2007. Mặc
dù những nhà phân tích rất ấn tượng với việc các công ty công nghệ có tiếng tăm hợp
tác cùng Google để tạo ra Liên minh thiết bị di động mở, người ta vẫn không rõ liệu
các nhà sản xuất có sẵn sàng thay thế hệ điều hành mà họ đang dùng bằng Android hay
không. Ý tưởng về một nền tảng phát triển mã nguồn mở dựa trên Linux đã thu hút sự
quan tâm, nhưng cũng dấy lên những lo ngại rằng Android sẽ phải đối mặt với sự cạnh
tranh mạnh mẽ từ những tay chơi có hạng trong thị trường điện thoại thông minh, như
Nokia và Microsoft, và các hệ điều hành di động đối thủ cũng sử dụng Linux đang
2010 con số này tăng lên 33% thị phần, trở thành nền tảng điện thoại thông minh bán
chạy hàng đầu. Đến quý 3 năm 2011 Gartner ước tính rằng hơn một nửa (52,5%) thị
trường điện thoại thông minh thuộc về Android. Đến quý 3 năm 2012 Android đã có
75% thị phần điện thoại thông minh toàn cầu theo nghiên cứu của hãng IDC [1].
Vào tháng 7 năm 2011, Google nói rằng có 550.000 thiết bị Android mới được
kích hoạt mỗi ngày, đỉnh điểm là 400.000 máy một ngày vào tháng 5, và có hơn 100
triệu thiết bị đã được kích hoạt với mức tăng 4,4% mỗi tuần. Vào tháng 9 năm 2012,
500 triệu thiết bị đã được kích hoạt với 1,3 triệu lượt kích hoạt mỗi ngày.
Thị phần của Android có khác nhau theo khu vực. Vào tháng 7 năm 2012, thị
phần Android tại Mỹ là 52%, nhưng lên tới 90% tại Trung Quốc.
*Tỷ lệ sử dụng các phiên bản Android
Tỷ lệ sử dụng các phiên bản khác nhau tính đến tháng 4 năm 2014. Phần lớn các
thiết bị Android cho tới nay vẫn chạy hệ điều hành phiên bản 4.1.x Jelly Bean được
phát hành ngày 9 tháng 7 năm 2012 nhờ tính ổn định và hỗ trợ tốt các máy có cấu hình
thấp [1].
Hình 1.7. Tỷ lệ sử dụng các phiên bản Android
19
CHƯƠNG 2: MÔI TRƯỜNG PHÁT TRIỂN ỨNG DỤNG
ANDROID
2.1. Môi trường phát triển
2.1.1. Phần mềm Android Studio
Android Studio là môi trường phát triển tích hợp (IDE) chính thức dành cho phát
triển các ứng dụng chạy trên nền tảng Android[1].
Nó được ra mắt vào ngày 16 tháng 5 năm 2013 tại hội nghị Google I/O. Android
Studio được phát hành miễn phí theo giấy phép Apache Licence 2.0.
2.1.3. Máy ảo Android Virtual Device (AVD)
Máy ảo Android là một phần không thể thiếu khi chúng ta lập trình ứng dụng cho
hệ điều hành Android, nó giúp chúng ta chạy thử ứng dụng ngay trên máy tính. Trong
Android Studio có cung cấp cho chúng ta một máy ảo Android mặc định là Android
Virtual Device viết tắt là AVD.
AVD là một máy ảo Android được hỗ trợ chính thức từ Google. Vì là bản “chính
chủ” nên máy ảo này sẽ có tính ổn định cao. Chẳng hạn như nó sẽ tiêu tốn bộ nhớ của
máy tính ít hơn các máy ảo khác, nó còn hỗ trợ giả lập tất cả các loại thiết bị, từ điện
thoại, máy tính bảng, thiết bị đeo được, và kể cả Android TV. Nhược điểm của máy ảo
này là khá ít, khi mà mới đây AVD có hỗ trợ ứng dụng Google Play, giúp ta có thể cài
đặt các ứng dụng có trên store về để sử dụng[4].
2.2. Các thành phần trong một dự án Android
2.2.1. Tệp cấu hình dự án AndroidManifest.xml
Khi một dự án Android được tạo ra đều có một tệp AndroidManifest.xml, tệp này
được dùng để định nghĩa các màn hình (screen) sử dụng, các quyền (permission) cũng
như các chủ đề (theme) cho ứng dụng. Đồng thời nó cũng chứa thông tin về phiên bản
SDK cũng như main activity sẽ chạy đầu tiên, tệp tin này được tự động sinh ra khi tạo
một dự án Android. Trong tệp manifest bao giờ cũng có 3 thành phần chính đó là:
thành phần ứng dụng (application), các quyền (permission) và các phiên bản
(version)[1][5].
a. Thành phần ứng dụng
Thẻ<application>, bên trong thẻ này chứa các thuộc tính được định nghĩa cho
ứng dụng Android như:
- android:icon = “drawable resource” → Ở đây đặt đường dẫn đến tệp icon của
ứng dụng khi cài đặt. VD: android:icon = “@drawable/icon”.
21
2.3.1. Chu kỳ sống của các thành phần
Các thành phần ứng dụng có một chu kỳ sống, tức là mỗi thành phần từ khi bắt
đầu được tạo ra cho đến khi kết thúc, sẽ có những trạng thái như đang hoạt động(đang
hiển thị hoặc đang ẩn) hoặc không hoạt động.
22
2.3.2. Activity Stack
Bên trong hệ thống các activity được quản lý như một activity stack. Khi một
Activity mới được tạo, nó được đặt ở đỉnh của stack và trở thành activity đang chạy,
các activity trước sẽ tạm dừng và ở bên dưới activity mới và sẽ không thấy trong suốt
quá trình activity mới tồn tại.
Nếu người dùng nhấn nút Back thì activity kế tiếp của stack sẽ di duyển lên và
trở thành active.
Hình 2.2. Activity Stack
2.3.3. Các trạng thái của chu kỳ sống
Hình 2.3. Chu kỳ sống của Activity
23
Một Activity chủ yếu có 4 chu kỳ chính sau:
active (running): Activity đang hiển thị trên màn hình, những thao tác của
người dùng sẽ được tập trung vào Activity này.
paused: Activity được tạm dừng, tuy vẫn hiển thị (visible) nhưng không thể
tương tác (lost focus). Có nghĩa là một activity mới ở trên nó, nhưng không
bao phủ đầy màn hình. Một activity tạm dừng là còn sống, nhưng có thể bị
onDestroy(): được gọi khi chúng ta nhấn back từ activity, hoặc call method
finish() của activity.
2.4. Các thành phần giao diện trong Android
2.4.1. View và ViewGroup
Những gì chúng ta nhìn thấy trên màn hình thiết bị android được gọi là View
(trong window thường được gọi là control). View được vẽ trên thiết bị android với một
hình chữ nhật[5].
Trong một ứng dụng Android, giao diện người dùng được xây dựng từ các đối
tượng View và ViewGroup. Có nhiều kiểu View và ViewGroup, mỗi một kiểu được
kế thừa từ class View và tất cả các kiểu đó được gọi là các Widget.
Tất cả mọi widget đều có chung các thuộc tính cơ bản như là cách trình bày vị trí,
background, kích thước, lề,… Tất cả những thuộc tính chung này được thể hiện hết ở
trong đối tượng View.
Trong Android Platform, các màn hình luôn được bố trí theo một kiểu cấu trúc
phân cấp như hình dưới. Một màn hình là một tập hợp các Layout và các widget được
bố trí có thứ tự. Để thể hiện một màn hình thì trong hàm onCreate của mỗi activity cần
phải được gọi một hàm setContentView(R.layout.main); hàm này sẽ load giao diện từ
tệp XML lên để phân tích thành mã bytecode.
ViewGroup thực ra chính là View hay nói đúng hơn thì ViewGroup chính là các
widget Layout được dùng để bố trí các đối tượng khác trong một màn hình.
Hình 2.4. Cấu trúc một giao diện ứng dụng android
25