Tải bản đầy đủ (.docx) (60 trang)

BAO CAO LUAN VAN TOT NGHIEP

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 (3.05 MB, 60 trang )

Xây dựng ứng dụng quản lý bán hàng điện tử trên android

MỤC LỤC

LỜI CẢM ƠN
Đầu tiên cho phép chúng em được gửi lời cảm ơn chân thành và sâu sắc nhất đến
quý thầy cô giáo khoa Công Nghệ Thông Tin, đặc biệt là quý thầy cô chuyên ngành
Công nghệ phần mêm đã tận tình chỉ dạy và quan tâm trong suốt quá trình học tập và
rèn luyện tại trường.
Con gửi tất cả lòng biết ơn chân thành và sự kính trọng của con đến cha mẹ và
gia đình, những người đã sinh thành, dưỡng dục chúng con tự tin đi trên bước chân của
chính mình cho đến ngày hôm nay, cha mẹ luôn bên cạnh và là chỗ dựa vững chắc cho
con vượt qua mỗi khi chúng con gặp khó khăn trong cuộc đời.

Nguoi lam do an

Trang 1


Xây dựng ứng dụng quản lý bán hàng điện tử trên android
Em trân trọng biết ơn thầy …. đã tận tình hướng dẫn, chỉ bảo, góp ý kiến về mặt
chuyên môn định hướng và giúp đỡ em trước những khó khăn trở ngạitrong đồ án
trong suốt quá trình thực hiện đề tài tốt nghiệpnhờ đó mà em mới có thể hoàn thành tốt
đồ án trong thời gian cho phép. Những buổi gặp trao đổi những kiến thức cũng như
những bài học cuộc sống hàng tuần sẽ là những ký ức không bao giờ quên trong mỗi
bước đi về phía trước của em.
Xin chân thành cảm ơn đến những người bạn, những người mà luôn bên cạnh
động viên, chia sẻ vui buồn và khó khăn với tôi suốt thời gian qua.
Trong quá trình thực hiện đồ án có gì sai sót, kính mong nhận được sự góp ý,
chia sẽ và tận tình chỉ bảo của quý thầy cô. Một lần nữa em xin được gửi lời cảm ơn
đến tất cả mọi người.



LỜI CAM ĐOAN
Tôi xin cam đoan :
1 Những nội dung trong luận văn này là do tôi thực hiện dưới sự
hướng dẫn trực tiếp của thầy ….
2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng
tên tác giả, tên công trình, thời gian, địa điểm công bố.

Nguoi lam do an

Trang 2


Xây dựng ứng dụng quản lý bán hàng điện tử trên android
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá,

tôi xin chịu hoàn toàn trách nhiệm.
Sinh viên
…..

NHẬN XÉT CỦA HỘI ĐỒNG PHẢN BIỆN
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................

Nguoi lam do an

Trang 3



Xây dựng ứng dụng quản lý bán hàng điện tử trên android
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................

..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................

DANH SÁCH HÌNH VẼ

Nguoi lam do an

Trang 4


Xây dựng ứng dụng quản lý bán hàng điện tử trên android

DANH SÁCH BẢNG BIỂU

DANH SÁCH TỪ VIẾT TẮT
Từ viết tắt
CSDL
HĐH
PTTKHT
MTB
HTTH
Nguoi lam do an

Ý nghĩa
Cơ sở dữ liệu
Hệ điều hành
Phân tích thiết kế hệ thống

Máy tính bảng
Hình thức thanh toán
Trang 5


Xây dựng ứng dụng quản lý bán hàng điện tử trên android

MỞ ĐẦU
1. LÝ DO CHỌN ĐỀ TÀI

Hiện nay, bán hàng trực tuyến được coi dịch vụ không thể thiếu trong các kênh
bán hàng tự động của các doanh nghiệp ở Việt Nam và trên thế giới. Hàng triệu người
sử dụng kênh bán hàng trực tuyến để giao dịch mỗi ngày. Ở Việt Nam, bán hàng trực
tuyến cũng đã chiếm được vị trí quan trọng kể từ khi công nghệ thông tin phát triển
mạnh mẽ trong nước tạo điều kiện để các doanh nghiệp đưa sản phẩm của mình gần
hơn với khách hàng và khách hàng sử dụng mua bán trực tuyến có thể đáp ứng nhu
Nguoi lam do an

Trang 6


Xây dựng ứng dụng quản lý bán hàng điện tử trên android
cầunhanh tiện lợi dễ dàng giao dịch. Việc giới thiệu và bán sản phẩm trên các website
gần như phổ biến với tất cả mọi người cùng với sự việc kinh doanh trực tuyến trên
website thì cùng sự phát triển của công nghệ di động đã bùng nổ trong vài năm qua tạo
điều kiện để việc kinh doanh trực tuyến trên di động phát triển mạnh mẽ theo. Các
thiết bị cầm tay đã trở nên mạnh mẽ và rất phổ biến. Trong vài năm trở lại đây, hệ điều
hành Android ra đời và trở thành nền tảng điện thoại thông minh phổ biến nhất thế
giớ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. Những ưu điểm dễ thấy nhất của Android

chính là khả năng tùy biến nhanh chóng, dễ làm quen, ứng dụng hỗ trợ phong phú,
tương thích với đa cấu hình phần cứng của các nhà sản xuất. Dù đã hay chưa từng sử
dụng smartphone Android thì bạn cũng không cần quá lo lắng về việc thay đổi. Hầu
như tất cả những smartphone sử dụng hệ điều hành Android đều rất dễ sử dụng, đơn
giản trong tùy biến theo sở thích cá nhân, cũng như có rất nhiều ứng dụng để thỏa mãn
nhu cầu của từng người dùng. Đồng thời Android có mã nguồn mở đã cho phép các
nhà phát triển thiết bị, mạng di động và các lập trình viên được điều chỉnh và phân
phối Android một cách tự do.
Bởi vậy trước nhu cầu và lợi thế đó, em quyết định nghiên cứu và xây dựng ứng
dụng: Xâydựng ứng dụng bán hàng điện tử trên thiết bị di động chạy nền tảng
Android.

2. MỤC TIÊU ĐỀ TÀI
Xây dựng ứng dụng bán hàng trực tuyến như điện thoại, máy tính bảng và phụ
kiện chạy bằng hệ điều hành android
Hệ thống dữ liệu đảm bảo việc cập nhật dữ liệu, quản lý, tra cứu, khai thác được
nhanh chóng, thuận tiện.
Ứng dụng có giao diện hài hòa, dễ nhìn, linh hoạt, năng động hơn đáp ứng được
yêu cầu bán hàng trực tuyến qua điện thoại của các doanh nghiệp đồng thời đáp ứng
nhu cầu của khách hàng.
Quảng bá được hình ảnh, thông tin các mặt hàng đến khách hàng và khách hàng
có thể giao dịch mua hàng nhanh chóng, phản hồi ý kiến với quản trị

3. ĐỐI TƯỢNG NGUYÊN CỨU
Toàn bộ công tác quản lý bán hàng, giải pháp công nghệ bao gồm: dịch vụ cơ sở
dữ liệu parse đám mây dành cho android, phân tích thiết kế hệ thống, ngôn ngữ lập
trình java và công nghệ, nền tảng ngôn ngữ lập trình của hệ điều hành android.

4. TIẾN ĐỘ THỰC HIỆN ĐỀ TÀI
Từ 09/2/2015 đến


Nguoi lam do an

Gặp cán bộ hướng dẫn tốt nghiệp, nêu đề cương chi tiết và nhận đề

Trang 7


Xây dựng ứng dụng quản lý bán hàng điện tử trên android
02/03/2015
Từ 03/03/2015 đến
09/3/2015
Từ 10/03/2015 đến
15/03/2015
Từ 15/3/2015 đến
25/03/2015
Từ 26/03/2015 đến
6/4/2015
Từ 6/04/2015 đến
16/4/2015
Từ 17/04/2015 đến
27/04/2015
Từ 28/04/2015 đến
05/05/2015
Từ 06/05/2015 đến
20/05/2015
Từ 21/05/2015 đến
24/05/2015

tài được duyệt.

Phân tích hệ thống phần mềm, thiết kế cơ sở dữ liệu.
Thiết kế giao diện ban đầu cho phần mềm.
Xây dựng các giao diện và xử lý chức năng giao diện chính cho ứng
dụng
Hoàn thành xây dựng giao diện tương tác user và xây dựng quản lý
admin của ứng dụng
Xử lý các chức năng bán hàng trực tuyến và giao tiếp giữa user và
admin
Hoàn thiện các chức năng quản lý cửa hàng của quản trị
Hoàn thiện và kiểm tra các chức năng của ứng dụng
Hoàn thành báo cáo và slide luận văn tốt nghiệp
Hoàn thành các yêu cầu còn lại để duyệt đồ án

Bảng 1- Tiến độ thực hiện đề tài tốt nghiệp

CHƯƠNG 1.

CƠ SỞ LÝ THUYẾT

Cơ sở lý thuyết sẽ trình bài về lý thuyết của hệ điều hành android và giới thiệu cơ
sở dữ liệu parse.
Lý thuyết các kỹ thuật cơ bản của android:
- Kiến trúc và thiết kế của hệ điều hành android
- Thành phần cơ bản của ứng dụng android
- Thành phần giao diện cơ bản của ứng dụng android
1.1. TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID
1.1.1. Kiến trúc và thiết kế của HĐH Android
Nguoi lam do an

Trang 8



Xây dựng ứng dụng quản lý bán hàng điện tử trên android
Mô hình sau thể hiện một cách tổng quát các thành phần của hệ điều hành
android

Hình 1-Thành phần của hệ điều hành android
1.1.1.1. Tầng ứng dụng

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

Bằng cách cung cấp một nền tảng phát triển mở, Android cung cấp cho các nhà
phát triển khả năng xây dựng các ứng dụng cực kỳ phong phú và sáng tạo. Nhà phát
triển được tự do tận dụng các thiết bị phần cứng, thông tin địa điểm truy cập, các dịch
vụ chạy nền, thiết lập hệ thống báo động, thêm các thông báo để các thanh trạng thái,
và nhiều, nhiều hơn nữa.
Nhà phát triển có thể truy cập vào các API cùng một khuôn khổ được sử dụng
bởi các ứng dụng lõi. Các kiến trúc ứng dụng được thiết kế để đơn giản hóa việc sử
dụng lại các thành phần; bất kỳ ứng dụng có thể xuất bản khả năng của mình và ứng
dụng nào khác sau đó có thể sử dụng những khả năng (có thể hạn chế bảo mật được
thực thi bởi khuôn khổ). Cơ chế này cho phép các thành phần tương tự sẽ được thay
thế bởi người sử dụng.
Cơ bản tất cả các ứng dụng là một bộ các dịch vụ và các hệ thống, bao gồm:
Nguoi lam do an

Trang 9



Xây dựng ứng dụng quản lý bán hàng điện tử trên android
- 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,…
- Một “Content Provider” cho phép các ứng dụng có thể truy xuất dữ liệu từ các ứng
dụng khác (chẳng hạn nhu Contacts) hoặc là chia sẻ dữ liệu giữa các ứng dụng đó.
- Một “Resource Manager” cung cấp truy xuất tới các tài nguyên không phải là mã
nguồn, chẳng hạn như: localized strings, graphics, and layout files.
- Một “Notifycation Manager” cho phép tất cả các ứng dụng hiển thị các custom
alerts trong status bar.
Activity Manager duợc dùng dể quản lý chu trình sống của ứng dụng và điều huớng
các activity.
1.1.1.3. Library

Android bao gồm một tập hợp các thư viện C/C++ được sử dụng bởi nhiều
thànhphần khác nhau trong hệ thống Android. Ðiều này được thể hiện thông qua nền
tảng ứng dụng Android. Một số các thư viện cơ bản được liệt kê dưới đây:
System C library:a BSD-derived implementation of the standard C system library
(libc), tuned for embedded Linux-based devices. (Thư viện C chuẩn,được tối ưu cho
các thiết bị Linux-based)
Media Libraries:based on PacketVideo's OpenCORE; the libraries support playback
and recording of many popular audio and video formats, as well as static image files,
including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
Surface Manager:Quản lý việc truy xuất vào hệ thống hiển thị
LibWebCore: a modern web browser engine which powers both the Androidbrowser
and an embeddable web view.
SGL: the underlying 2D graphics engine.
3D libraries: an implementation based on OpenGL ES 1.0 APIs; the librariesuse
either hardware 3D acceleration (where available) or the included, highly optimized

3D software rasterizer.
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.
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.
Android cung cấp một số các APIs cho phát triển ứng dụng. Danh sách các API
cơ bản sau được cung cấp bởi tất cả các thiết bị trên nền Android:
android.util: Gói tiện ích cơ bản bao gồm nhiều lớp mức thấp như là các lớp quản lý
(List, Stack…) lớp xử lý chuỗi, lớp xử lý XML.

Nguoi lam do an

Trang 10


Xây dựng ứng dụng quản lý bán hàng điện tử trên android
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.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 trê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 trong ứng dụng.
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.
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 Webbased 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.
Ngoài các thư viện chuẩn của Android, để đáp ứng tiêu chí phù hợp với nhiều
thiết bị khác nhau, Android còn có thể có các API phụ thuộc thiết bị như
android.location,
android.media,
android.opengl,
android.hardware,
android.bluetooth, android.net.wifi, và android.telephony.
1.1.1.4. 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 Enviroment) 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
Nguoi lam do an


Trang 11


Xây dựng ứng dụng quản lý bán hàng điện tử trên android
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, các VM Dalvik dựa vào nhân Linux cho các chức năng cơ
bản như luồng và quản lý bộ nhớ thấp.
1.1.1.5. Linux kernel

Android dựa trên Linux phiên bản 2.6 cho hệ thống dịch vụ cốt lõi như security,
memory management, process management, network stack, and driver model. Kernel
Linux hoạt động như một lớp trừu tuợng hóa giữa phần cứng và phần còn lại của
phần mềm stack.
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
đ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
về.
- Bluetooth Driver : Điều khiển thiết bị phát và thu sóng Bluetooth.
- USB 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í 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 Management : 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.
1.1.2. Máy ảo Dalvik và Android SDK
1.1.2.1. Máy ảo Dalvik

Dalvik là máy ảo để thực hiện các ứng dụng phần lớn viết bằng java trên
android dưới dịnh dạng là tập tin (.dex) . Về cơ bản có thể nhận thấy máy ảo Dalvik
có phần giống với máy ảo java trên desktop , tuy nhiên có phần khác là khi ta viết các
ứng dụng trên java thì mã nguồn sẽ được chuyển thành mã bytecode . Tại đây , một
công cũ có sẵn trên android là dx sẽ chuyển dạng mã bytecode này thành dạng tập tin
.dex ( viết tắt là Dalvik excutable ) và được thực thi trên máy ảo Dalvik để chạy các
ứng dụng android.

Nguoi lam do an

Trang 12


Xây dựng ứng dụng quản lý bán hàng điện tử trên android

Hình 2 -Cơ chế hoạt động của máy ảo Dalvik và java
Các ứng dụng Android và các thành phần cơ bản hầu hết được viết bằng Java.
Thay vì sử dụng máy ảo Java, Android sử dụng máy ảo riêng. Máy ảo của Android
được thiết kế và tối ưu cho các hệ thống nhỏ, không tương thích với máy ảo Java của
Java ME. Những hệ thống nhỏ này có dung lượng RAM nhỏ, CPU chậm và hầu hết
không có chỗ để tráo đổi dữ liệu bù đắp cho dung lượng bộ nhớ nhỏ.Đây là điểm
khác biệt giữa Android với các hệ điều hành cho di động khác như Symbian, iOS của
Apple, webOS của Palm. Ngôn ngữ lập trình được sử dụng chính là C, C++ và
objective C, trong khi với webOS sử dụng chủ yếu ngôn ngữ web như Javascript hay
HTML.
Trình biên dịch byte code là máy ảo Dalvik. Thay vì sử dụng dạng byte code

thông thường, Dalvik có định dạng riêng để phù hợp với yêu cầu đối với thiết bị cho
Android. Mã của Android nhỏ hơn so với mã của Java và file dex được tạo ra cũng
nhỏ.
1.1.2.2. Android SDK

Android SDK là bộ công cụ phát triển phần mềm cho phép lập trình viên tạo ra
các ứng dụng cho các thiết bị sử dụng nền tảng Android. Android SDK bao gồm nền
tảng Android, các công cụ, chương trình mẫu và các tài liệu hỗ trợ. Nó cũng là thành
phần bổ sung trong bộ phát triển Java và có thể tích hợp vào Eclipse.
Android chứa các gói hỗ trợ các chức năng tính toán cơ bản như quản lí xâu, quản lí
vào ra, tính toán từ các gói cơ bản trong Java:
- Java.lang – lớp ngôn ngữ cơ bản của java.
- Java.io – quản lí vào ra.
- Java.net – quản lí kết nối mạng.
- Java.text – tiện ích xử lí văn bản.
- Java.math – hỗ trợ tính toán.
- Java.sercurity – quản lí các thành phần bảo mật.
- Java.xml – các lớp về XML.
Nguoi lam do an

Trang 13


Xây dựng ứng dụng quản lý bán hàng điện tử trên android
- org.apache – các lớp liên quan HTTP.

Ngoài ra Android có các lớp riêng như:
- android.app – truy cập mô hình ứng dụng Android.
- android. bluetooth – chức năng bluetooth của Android.
- android.content - quản lí dữ liệu trong Android.

- android.net – chứa các lớp Uri dùng để truy cập dữ liệu.
- android.graphics – các thành phần đồ hoạ.
- android .location – các dịch vụ liên quan đến vị trí (ví dụ như GPS).
- android.opengl – các lớp OpenGL.
- android.view – chứa các thành phần giao diện.
- android.webkit – chức năng của trình duyệt web.
- android.widget – các thành phần giao diện khác.
Ở đây chúng ta xem xét lập trình Android với Eclipse vì Eclipse cung cấp phong phú
các thành phần hỗ trợ biên soạn java và môi trường debug mà còn có thể quản lí và
điều khiển các yếu tố khác của ứng dụng Android trực tiếp từ Eclipse IDE.

Hình 3- Môi trường phát triển ứng dụng Android trong Eclipse
1.1.2.3. Android Emulator

Android SDK cung cấp một bộ giả lập thiết bị di động ảo. Máy ảo này cho phép
chúng ta phát triển và kiểm tra các ứng dụng mà không cần một thiết bị Android thật.
Máy ảo Android có đầy đủ các thành phần từ phần cứng đến phần mềm giống như
một thiết bị thật ngoại trừ nó không thể thực hiện được một cuộc gọi. Máy ảo
Android cho phép sử dụng chuột để định hướng hay bàn phím để tạo các sự kiện.
Người dùng có thể cài đặt để kiểm thử phần mềm trên máy ảo với từng phiên bản
khác nhau của Android. Khi ứng dụng được cài đặt nó có thể sử dụng các ứng dụng
đã được cung cấp trong Android như nghe nhạc, xem video hay vào mạng. Máy ảo
cũng có khả năng debug, truy cập vào đầu ra của nhân, giả lập các ngắt như khi nhân

Nguoi lam do an

Trang 14


Xây dựng ứng dụng quản lý bán hàng điện tử trên android

cuộc gọi hay tin nhắn thậm chí là các ảnh hượng độ trễ của mạng và ngắt trên kênh
truyền dữ liệu.

Hình 4- Android Emulator
THÀNH PHẦN CỦA ỨNG DỤNG ANDROID
Ứng dụng Android bao gồm nhiều thành phần liên kết với nhau được giới hạn
trong kiến trúc ứng dụng. Kiến trúc ứng dụng mô tả chi tiết mỗi thành phần và sự
tương tác giữa các thành phần này cũng như siêu dữ liệu về yêu cầu phần cứng.
Các thành phần sau đây tạo nên một ứng dụng Android:
1.2.1.
Activity
Là lớp thể hiện ứng dụng. Mỗi màn hình trong ứng dụng là một mở rộng của lớp
Activity. Các Activity sử dụng các View tạo thành giao diện đồ họa tương tác người
dùng để thể hiện thông tin và phản hồi hành động của người dùng.
Một ứng dụng không nhất thiết phải gồm tất cả các thành phần trên nhưng để có
một giao diện với người dùng thì ít nhất ứng dụng đó phải có một Activity. Mã đã
được biên dịch của các thành phần của ứng dụng, tài nguyên liên quan như thư viện,
hình ảnh và các dữ liệu cần thiết khác được đóng gói trong một file apk duy nhất chính
là dạng file thực thi của ứng dụng Android.Activity là thành phần quan trọng nhất và
đóng vai trò chính trong việc xây dựng ứng dụng Android. Hệ điều hành Android quản
lí ứng dụng dưới dạng stack : khi một Activity mới được khởi tạo, nó được xếp lên đầu
stack và trở thành running activity, các Actitivy trước đó sẽ bị tạm dừng vả chỉ hoạt
động trở lại khi Activity mới được giải phóng.
 Activity có 4 trạng thái:
- Active (running): Activity đang hiển thị trên màn hình (foreground).
- Pause: Activity vẫn hiển thị (visible) nhưng không thể tương tác. VD: một
activity mới xuất hiện hiển thị giao diện đè lên trên activity cũ, nhưng giao diện
này vẫn nhỏ hơn giao diện activity cũ. Do đó ta vẫn thấy được một phần giao
diện của activity cũ nhưng không tương tác được với nó.
- Stop: Activity bị thay thế hoàn toàn bởi Activity mới sẽ tiến đến trạng thái stop.

1.2.

Nguoi lam do an

Trang 15


Xây dựng ứng dụng quản lý bán hàng điện tử trên android
- Killed: Khi hệ thống thiếu bộ nhớ, nó sẽ giải phóng các tiến trình theo nguyên tắc

ưu tiên ở trên. Các Activity ở trạng thái stop hoặc paused cũng có thể bị giải
phóng và khi nó được hiển thị lại thì các Activity này phải khởi động lại hoàn
toàn và phục hồi trạng thái trước đó.
Tuỳ từng sự kiện mà các phương thức được gọi để đảm bảo trạng thái các
Activity được hoạt động đúng. Chi tiết từng phương thức và sự kiện thay đổi trạng thái
tương ứng:
 Vòng đời của một Activity

Hình 5 - Mô hình hoạt động của Activity
- onCreate(): Phương thức này khởi tạo Activity. Nó có thể bỏ qua trạng thái cũ để
-

-

trở lại hoạt động. Phương thức tiếp theo luôn là onStart().
onRestart(): Được gọi sau khi một Activity dừng và muốn bắt đầu lại.
onStart(): Được gọi khi ứng dụng chuyển sang visible nhưng chưa tương tác
được với người dùng.
onResume(): Activity có tương tác với người sử dụng và có thể nhận thông tin
đầu vào. Kiểu tiến trình của ứng dụng được chuyển sang dạng hiển thị

(foreground).
onPause(): Nếu ứng dụng không còn tương tác hay thiết bị không hoạt động,
phương thức này được gọi và kiểu tiến trình ứng dụng sẽ được chuyển sang dạng

Nguoi lam do an

Trang 16


Xây dựng ứng dụng quản lý bán hàng điện tử trên android
visible. Sau khi thực hiện phương thức này, hệ thống cho phép giải phóng ứng
dụng bất cứ lúc nào. Các thao tác sử dụng CPU và dữ liệu đều được lưu lại.
Activity sẽ có thể được hoạt động trở lại hoặc dừng lại.
- onStop(): Khi Activity không còn tương tác nữa thì kiểu tiến trình được chuyển
sang chạy nền (background) và ứng dụng có thể bị giải phóng bất cứ lúc nào bởi
hệ thống để lấy lại bộ nhớ. Activity sẽ bị giải phóng hoặc khởi động lại.
- onDestroy(): Phương thức cuối cùng này được hệ thống gọi trước khi giải phóng
ứng dụng hay ứng dụng loại bỏ Activity. Tiến trình của ứng dụng có thể chuyển
sang kiểu rỗng nếu hệ thống muốn giữ lại ứng dụng để tiếp tục lại ứng dụng cho
lần sau.
1.2.2.
Service
Là thành phần chạy ẩn, cập nhật nguồn dữ liệu và thể hiện các Activity, kích hoạt
các Notification, làm những công việc không cần tới giao diện như chơi nhạc,
download, xử lí tính toán… . Các Service thường thực hiện các xử lí thông thường như
tiếp tục Activity sau khi các Activity này không hoạt động hoặc hiển thị.Service là 1
trong 4 thành phần chính trong 1 ứng dụng Android (Activity, Service,
BroadcastReceiver, ContentProvider).
1.2.3.
Content Provider

Là thành phần lưu trữ dữ liệu chia sẻ. Content Provider quản lí và chia sẻ cơ sở
dữ liệu của ứng dụng. Chúng được coi như là phương tiện chia sẻ dữ liệu giữa các ứng
dụng.
1.2.4.
Intent
Là cấu trúc truyền thông điệp giữa các ứng dụng. Chúng ta có thể sử dụng Intent
để truyền một thông tin tới toàn hệ thống hay tới Activity hay Service định trước để
thực thi một hoạt động. Hệ thống sau đó sẽ xác định đối tượng nào sẽ thực hiện các
hoạt động phù hợp.
Là cầu nối giữa các Activity: ứng dụng Android thường bao gồm nhiều Activity, mỗi
Activity hoạt động độc lập với nhau và thực hiện những công việc khác nhau. Intent
chính là người đưa thư, giúp các Activity có thể triệu gọi cũng như truyền các dữ liệu
cần thiết tới một Activity khác.

Hình 6 - Truyền dữ liệu giữa 2 Activity
Dữ liệu của Intent:
Nguoi lam do an

Trang 17


Xây dựng ứng dụng quản lý bán hàng điện tử trên android
Intent về cơ bản là một cấu trúc dữ liệu, được mô tả trong lớp android.content.Intent
Các thuộc tính của một đối tượng Intent:
Các Action được định nghĩa sẵn:
Dưới dây là những hằng String đã được định nghĩa sẵn trong lớp Intent. Ði kèm với nó
là các Activity hay Application được xây dựng sẵn sẽ được triệu gọi mỗi khi Intent
tuong ứng được gửi (tất nhiên khi duợc cung cấp dúng data). VD: Gọi tới một số diện
thoại:
Intent dialIntent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:123456"));

startActivity(dialIntent);
Broadcast Receiver
Là nơi nhận các Intent. Chúng ta có thể tự tạo một Broadcast Receiver để ứng
dụng có thể nhận được các Intent phù hợp với bộ lọc đặt trước. Broadcast Receiver tự
động bắt đầu khi ứng dụng phản hồi với Intent nhận được và biến ứng dụng trở thành
hướng sự kiện một cách hoàn hảo
1.2.6.
Widget
Thành phần trực quan của ứng dụng có thể thêm vào màn hình chính. Là một
dạng Broadcast Receiver, Widget cho phép người dùng tạo ra các ứng dụng động,
tương tác được nhúng ngay trên màn hình chính.
1.2.7.
Notification
Là thành phần thông báo cho người dùng. Hộp thoại thông báo cho người dùng
mà không gián đoạn các Activity hiện thời. Đây là kĩ thuật thông báo cho người dùng
năm trong một Service hay một Broadcast Receiver. Ví dụ như khi nhận được một tin
nhắn hay cuộc gọi đến có thể thông báo cho người dùng bằng nhấp nháy đèn hay bằng
âm thanh…
1.3. MỘT SỐ THÀNH PHẦN GIAO DIỆN TRONG ANDORID
1.3.1.
View
Trong một ứng dụng Android, giao diện nguời dùng được xây dựng từ các đối
tượng View và ViewGroup. Có nhiều kiểu View và ViewGroup. Mỗi một kiểu là một
hậu duệ của 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 screen luôn được bố trí theo một
kiểu cấu trúc phân cấp như hình dưới. Một screen là một tập hợp các Layout và các
widget được bố trí có thứ tự. Ðể thể hiện một screen thì trong hàm onCreate của mỗi
Activity cần phải được gọi một hàm là setContentView(R.layout.main); hàm này sẽ

load giao diện từ file XML lên để phân tích thành mã bytecode.
1.2.5.

Nguoi lam do an

Trang 18


Xây dựng ứng dụng quản lý bán hàng điện tử trên android

Hình 7- Cấu trúc một giao diện ứng dụng Android
ViewGroup
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 tuợng khác trong một screen. Có một số
loại ViewGroup như sau:
 LinearLayout
LinearLayout được dùng để bố trí các thành phần giao diện theo chiều ngang
hoặc chiều dọc nhưng trên một line duy nhất mà không có xuống dòng.
LinearLayout làm cho các thành phần trong nó không bị phụ thuộc vào kích thuớc
của màn hình. Các thành phần trong LinearLayout duợc dàn theo những tỷ lệ cân
xứng dựa vào các ràng buộc giữa các thành phần.

1.3.2.

Hình 8- Bố trí các widget sử dụng LinearLayout
 FrameLayout

FrameLayout được dùng để bố trí các đối tuợng theo kiểu giống như là các
Layer trong Photoshop. Những đối tượng nào thuộc Layer bên dưới thì sẽ bị che
khuất bởi các đối tượng thuộc Layer nằm trên. FrameLayer thường được sử dụng

khi muốn tạo ra các đối tuợng có khung hình bên ngoài chẳng hạn như contact
image button.

Nguoi lam do an

Trang 19


Xây dựng ứng dụng quản lý bán hàng điện tử trên android

Hình 9- Bố trí các widget trong FrameLayout
 AbsoluteLayout

Layout này được sử dụng để bố trí các widget vào một vị trí bất kì trong
layout dựa vào 2 thuộc tính toạ dộ x, y. Tuy nhiên, kiểu layout này rất ít khi duợc
dùng bởi vì toạ dộ của các dối tuợng luôn cố định và sẽ không tự diều chỉnh được tỷ
lệ khoảng cách giữa các đối tượng. Khi chuyển ứng dụng sang một màn hình có
kích thước với màn hình thiết kế ban đầu thì vị trí của các đối tượng sẽ không còn
được chính xác như ban dầu.
 RetaliveLayout

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

Hình 10- Bố trí widget trong RetaliveLayout

 TableLayout

Nguoi lam do an

Trang 20


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

ListView
Ðược sử dụng để thể hiện một danh sách các thông tin theo từng cell. Mỗi cell
thông thường được load lên từ một file XML dã được cố định trên đó số lượng thông
tin và loại thông tin cần được thể hiện. Ðể thể hiện được một list thông tin lên một
screen thì cần phải có 3 yếu tố chính:
Data Source: Data Source có thể là một ArrayList, HashMap hoặc bất kỳ một
cấu trúc dữ liệu kiểu danh sách nào.
Adapter: Adapter là một class trung gian giúp ánh xạ dữ liệu trong Data Source
vào dúng vị trí hiển thị trong ListView. Chẳng hạn, trong Data Source có một truờng
name và trong ListView cung có một TextView dể thể hiện truờng name này. Tuy
nhiên, ListView sẽ không thể hiển thị dữ liệu trong Data Source lên duợc nếu nhu
Adapter không gán dữ liệu vào cho dối tuợng hiển thị.
ListView là dối tuợng dể hiển thị các thông tin trong Data Source ra một cách trực
quan và nguời dùng có thể thao tác trực tiếp trên dó.

1.3.3.

DỊCH VỤ ĐÁM MÂY CỦA PARSE DÀNH CHO ANDROID

Bộ công cụ cho nhà phát triển phần mềm di động của Parse (Parse mobile SDK)
cung cấp các API và các dịch vụ đám mây dành cho các ứng dụng iOS, Android và
Windows®. Parse SDK còn cung cấp một JavaScript và các API REST. Khi sử dụng
Parse API, bạn có thể chạy các ứng dụng di động của mình trên đám mây một cách
nhanh chóng và hao tốn ít hiệu năng. Một ứng dụng di động được tích hợp với Parse
API có thể dễ dàng lưu trữ các đối tượng và các tệp dữ liệu trên Parse cloud, gửi và
lắng nghe các tin nhắn push (ND.: tin nhắn push (push notification) cho phép một ứng
dụng thông báo cho bạn các tin nhắn hoặc sự kiện mới mà không cần phải mở ứng
1.5.

Nguoi lam do an

Trang 21


Xây dựng ứng dụng quản lý bán hàng điện tử trên android
dụng ra), quản lý người dùng, xử lý dữ liệu vị trí địa lý và sử dụng các nền tảng truyền
thông xã hội như Twitter và Facebook. Đối với các ứng dụng di động cần mở rộng quy
mô, Parse SDK cung cấp tất cả tính co giãn của một nền tảng đám mây.
ParseObjectbiểu diễn một đối tượng dữ liệu trên đám mây Parse. Nó cung cấp
các phương thức để thêm các cặp tên-giá trị, kiểm tra xem một khóa cụ thể đã có mặt
chưa và xóa hoặc tìm nạp một ParseObject cụ thể của máy chủ. ParseObjectcũng cho
phép bạn sử dụng các phương thức get…()và put…() khác nhau để xử lý dữ liệu
ParseObject, sáp nhập các ParseObject, lưu một ParseObjecttrong máy chủ và nhiều
hơn nữa.
Bảng điều khiển Parse
Bảng điều khiển Parse hỗ trợ các nhà phát triển trong việc quản lý các ứng dụng.
Bảng điều khiển cung cấp các số liệu thống kê về cách sử dụng chung và cách sử dụng
ứng dụng-đặc trưng cho các API, các tệp và các tin nhắn push. Các khóa và các giá trị
thiết lập ứng dụng được quản lý thông qua bảng điều khiển. Bảng điều khiển này cũng

cung cấp một trình duyệt dữ liệu để cho phép các nhà phát triển duyệt và thậm chí
chỉnh sửa các đối tượng Parse đã lưu. Trình duyệt dữ liệu rất có ích cho việc gỡ lỗi.
Các ứng dụng được xác thực thông qua một Application ID (mã định danh ứng dụng)
và một Client ID (mã định danh khách hàng). Để có được các ID ứng dụng và ID
khách hàng của mình, bạn phải đăng ký ứng dụng của mình qua bảng điều khiển Parse.
Bạn sẽ sử dụng các khóa này khi khởi tạo thư viện Parse trên ứng dụng của mình.
Parse API là rất toàn diện và bao gồm các lớp để truy cập dịch vụ di động chẳng
hạn như tin nhắn push, sử dụng dữ liệu địa lý, kết hợp với các nền tảng truyền thông
xã hội và nhiều hơn nữa. Trong bài này, tôi đã xem xét sơ bộ về những gì bạn có thể
làm với Parse bằng cách giới thiệu các Parse API để lưu trữ trên đám mây dữ liệu và
tệp. Việc biết cách lưu trữ và xử lý những người dùng, các đối tượng dữ liệu, các tệp
và các ACL của Parse trong đám mây Parse là nền tảng tốt để tiếp tục khám phá nền
tảng đám mây này cho việc phát triển di động.
1.6.

TỔNG KẾT CHƯƠNG 1

Cơ sở lý thuyết android ta đã trình bày các phần lý thuyết chính android dựa vào
nội dung của các thành phần như kiến trúc hệ điều hành android ta có thể hiểu được
hoạt động của android như thế nào. Thông qua thành phần ứng dụng android và sơ
lược những giao diện chính của android giúp ta tạo một cơ sở nền tảng để có thể xây
dựng nên một ứng dụng hoàn thiện.

Nguoi lam do an

Trang 22


Xây dựng ứng dụng quản lý bán hàng điện tử trên android


CHƯƠNG 2.

PHÂN TÍCH THIẾT KẾ HỆ THỐNG

Phân tích thiết kế hệ thống sẽ trình bày về các thành phần, chức năngvà quy trình
hoạt động của ứng dụng:
- Xác định các tác nhân, đặc tả hệ thống, mô tả hoạt động
- Mô tả các mô hình hệ thống thông qua các biểu đồ: ca sử dụng, tuần tự, hoạt
động, biểu đồ lớp và mô hình cơ sở dữ liệu hệ thống
ĐẶC TẢ CHỨC NĂNG
 Người sử dụng hệ thống
- Quản trị viên ứng dụng
- Khách hàng
1.1.

Nguoi lam do an

Trang 23


Xây dựng ứng dụng quản lý bán hàng điện tử trên android
 Hệ thống chức năng :Yêu cầu chức năng của hệ thống
- Quản lý mua hàng trực tuyến
- Quản lý phản hồi từ khách hàng
- Quản lý các sản phẩm trên cửa hàng
- Quản lý thông tin giao hàng
- Quản lý thông tin khách hàng
- Quản lý doanh thu thống kê định kỳ hàng tháng và năm
1.1.1. Mua hàng trực tuyến


Chức năng mua hàng trực tuyến cho phép khách hàng mua hàng trực tuyến các
sản phẩm có trên cửa hàng CellphoneS nhanh chóng tiện lợi thông qua dịch vụ thanh
toán VTCPay, để có thể thanh toán qua VTCPay khách hàng có 3 hình thức thanh toán
là ví điện tử VTCPay, tài khoản ngân hàng BIDV và OCEANBANK.
1.1.2. Phản hồi ý kiến
Chức năng phản hồi ý kiến cho phép khách hàng có thể gởi các phản hồi với
quản trị và nhận trả lời từ quản trị dễ dàng.
Chức năng phản hồi ý kiến không được thiết kế để trò chuyện trực tuyến như mô
hình client-server mà chỉ có thể gởi và nhận tin nhắn giống hình thức nhắn tin trên
điện thoại.
1.1.3. Quản lý sản phẩm
Chức năng này giúp quản trị quản lý hiệu quả các sản phẩm trên cửa hàng
CellphoneS để sử dụng chức năng này thì quản trị phải đăng nhập vào hệ thống quản
trị để đảm bảo khách hàng không thể truy n
ập vào hệ thống quản lý cửa hàng để thay đổi cơ sở dữ liệu cửa hàng
Quản lý sản phẩm cho phép quản trị có thể thay đổi thông tin các sản phẩm trên
cửa hàng, sản phẩm có thể cập nhật hoặc xóa hoăc quản trị có thể đưa ra các sản
phẩm khuyến mãi giả giá…Giúp quản trị có thể giám sát số lượng sản phẩm đã được
bán và số còn lại trong cửa hàng
1.1.4. Quản lý giao hàng
Chức năng quản lý giao hàng hỗ trợ quản trị theo dõi việc mua hàng của khách
hàng trên cửa hàng và cung cấp thông tin sản phẩm khách hàng mua và thông tin
khách hàng mua để tiện lợi cho việc giao hàng cho khách hàng.
1.1.5. Quản lý thông tin khách hàng
Việc quản lý thông tin khách hàng rất quan trọng dựa vào thông tin này mà
quản trị có thể giám sát thông tin khách hàng để có thể biết các địa chỉ khách hàng để
giao hàng và trao đổi thông tin với khách hàng.
Khách hàng cũng có thể quản lý thông tin cá nhân của mình, việc cập nhật
thông tin của các nhân khách hàng phải đăng nhập tài khoản vào mục trò chuyện để
thay đổi thông tin cá nhân.

1.1.6. Quản lý doanh thu

Nguoi lam do an

Trang 24


Xây dựng ứng dụng quản lý bán hàng điện tử trên android
Quản lý doanh thu thống kê doanh thu cửa hàng CellphoneS, khi khách hàng
giao dịch mua hàng thành công thì thông tin sản phẩm được mua và giá cả sản phẩm
sẽ được thêm vào quản lý doanh thu giúp cho quản trị biết được doanh thu của cửa
hàng chính xác. Việc thống kê doanh thu được quản lý theo năm và tháng.
1.2. ĐẶC TẢ HỆ THỐNG
1.2.1. Biểu đồ ca sử dụng
1.2.1.1. Xác định tác nhân: đóng vai trò một người sử dụng hoặc một thực thể bên

-

ngoài tương tác với hệ thống
- Người mua hàng (khách hàng)
- Quản trị hệ thống
- Hệ thống thanh toán VTCPay
1.2.1.2. Xác định ca sử dụng
Một ca sử dụng là một tương tác giữa hệ thống và môi trường, mỗi ca sử dụng sẽ
đáp ứng mục tiêu của người sử dụng bởi hệ thống qua đó ta xác định hệ thống quản
lý bàn hàng có những ca sử dụng chính sau:
Mua hàng
Đăng nhập tài khoản user
Xem sản phẩm cellphoneS
Phản hồi ý kiến

Quản lý khách hàng
Quản lý sản phẩm
Quản lý doanh thu
Quản lý giao hàng
Phản hồi ý kiến khách hàng
Đăng nhập hệ thống quản trị
Gởi xác nhận giao dịch
1.2.1.3. Đặc tả ca sử dụng
 Ca sử dụng mua hàng:
- Tác nhân: khách hàng, người bán(quản trị), hệ thống VTCPay
- Điều kiện trước: Khách hàng đã đăng nhập thành công tài khoản và nhập đủ
thông tin quy định để giao dịch mua hàng
- Điều kiện sau: Các mặt hàng đã được xác nhận thanh toán thành công qua
VTCPay.
- Mô tả: Một khách hàng sau khi đã xác định mặt hàng cần mua thì click mua
hàng để thanh toán qua VTCPay, hệ thống VTCPay có nhiệm vụ xác nhận thanh
toán thành công không và gởi kết quả về cho phiên giao dịch nếu thành công thì
người bán sẽ giao hàng cho người mua theo địa chỉ ghi nhận. Sau khi VTCPay
xác nhận người bán đã giao hàng thì sẽ chuyển tiền cho người bán
 Ca sử dụng đăng nhập tài khoản user
- Tác nhân: khách hàng
- Điều kiện trước: đã đăng kí tài khoản và nhập đúng tài khoản mật khẩu khi
đăng nhập

Nguoi lam do an

Trang 25



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×