Xây dựng được hệ thống quản lý bán hàng với đầy đủ các chức năng như: Quản trị hệ thống đăng nhập, đăng xuất, đổi mật khẩu; quản lý nhân viên quản lý thông tin nhân viên; quản lý mỹ phẩm
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
ĐỒ ÁN TỐT NGHIỆP
TÊN ĐỀ TÀI: PHÁT TRIỂN ỨNG DỤNG QUẢN LÝ BÁN MỸ
PHẨM ONLINE TRÊN NỀN TẢNG ANDROID
Sinh viên thực hiên : Chu Thị Thảo
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
CHU THỊ THẢO
TÊN ĐỀ TÀI: PHÁT TRIỂN ỨNG DỤNG QUẢN LÝ BÁN MỸ
PHẨM ONLINE TRÊN NỀN TẢNG ANDROID
Giáo viên hướng dẫn: ThS Đỗ Thị Huyền
Trang 3LỜI CẢM ƠN
Trước hết em xin bày tỏ lời cảm ơn sâu sắc nhất tới cô giáo hướng dẫn
Ths.Đỗ Thị Huyền đã tận tình giúp đỡ,hướng dẫn em rất nhiều trong suốt quá
trình tìm hiểu,nghiên cứu và hoàn thành báo cáo tốt nghiệp
Em xin chân thành cảm ơn các thầy cô trong khoa công nghệ thông tin
trường Đại Học Công Nghệ Đông Á cũng như các thầy cô trong trường đã trang
bị cho em những kiến thức cơ bản cần thiết để em có thể hoàn thiện báo cáo
Xin gửi lời cảm ơn đến bạn bè những người luôn luôn bên cạnh em đã động viên và tạo điều kiện thuận lợi cho em,tận tình giúp đỡ chỉ bảo em những gì em còn thiếu sót trong quá trình làm báo cáo tốt nghiệp
Cuối cùng em xin bày tỏ lòng biết ơn sâu sắc tới những người thân trong gia đình đã dành cho em sự quan tâm đặc biệt và luôn động viên em
Vì thời gian có hạn,trình độ hiểu biết của bản thân còn nhiều hạn chế.Cho nên trong đồ án không tránh khỏi những thiếu sót, em rất mong nhận được sự đóg góp ý kiến của tất cả các thầy cô giáo cũng như các bạn bè để đồ án của em được hoàn thiện hơn
Em xin chân thành cảm ơn!
Bắc Ninh-năm 2022
Sinh viên thực hiện
Chu Thị Thảo
Trang 4LỜI CAM ĐOAN
Em xin cam đoan đây là công trình nghiên cứu của riêng em, được thực hiện
trên cơ sở nghiên cứu lý thuyết, nghiên cứu tình hình thực tế với đề tài Phát triển ứng dụng quản lý bán mỹ phẩm Online trên nền tảng Android và dưới sự hướng
dẫn của Giáo viên hướng dẫn ThS Đỗ Thị Huyền
Nếu có bất kỳ gian lận nào em xin hoàn toàn chịu trách nhiệm trước nhà
trường, Khoa chủ quản và hội động chấm Đồ án tốt nghiệp
Bắc Ninh-năm 2022
Sinh viên
Chu Thị Thảo
Trang 5MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 1
MỤC LỤC 2
DANH MỤC CÁC HÌNH ẢNH 5
LỜI MỞ ĐẦU 6
1 Lý do chọn đề tài 6
2 Kết cấu đề tài 7
CHƯƠNG I: ĐẶT VẤN ĐỀ 8
1.1 Giới thiệu về đề tài 8
1.2 Phân tích yêu cầu đề tài 8
1.2.1 Tóm tắt yêu cầu của hệ thống mà dự án sẽ thực hiện 8
1.2.2 Phạm vi dự án được ứng dụng 9
1.3 Chức năng của hệ thống 9
1.4 Giao diện của phần mềm 12
1.4.1 Giao diện người dùng 12
1.4.2 Giao diện người quản trị: 12
Phân tích các chức năng của hệ thống 12
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 14
2.1 Android và lịch sử phát triến 14
2.2 Kiến trúc Android 15
2.2.1 Linux Kernel 15
2.2.2 Library và Android Runtime 16
2.2.3 Framework 18
2.2.4 Application 19
2.3 Các thành phần của Android 20
2.3.1 Thành phần của 1 chương trình Android 20
Activity: 20
Trang 62.3.2 Intent: 22
2.4 Các thành phần giao diện Widget 25
2.4.1 Bắt sự kiện trong Android 25
2.4.2 Menu 26
CHƯƠNG 3: PHÂN TÍCH, THIẾT KẾ HỆ THỐNG VÀ CÀI ĐẶT CHƯƠNG TRÌNH 27
3.1 Phân tích thiết kế với UML 27
3.2.Biểu đồ usecase mức tổng quát 28
3.2.1 Biểu đồ usecase tổng quát 28
3.2.2 Biểu đồ usecase người dùng 29
3.2.3 Biểu đồ usecase Admin 29
3.3 Biểu đồ usecase Phân rã chức năng(mức 2) 30
3.3.1 Phân rã usecase Quản lý thông tin 30
3.3.2 Phân rã usecase Tìm kiếm 30
3.3.3 Phân rã usecase Thống kê 31
3.4 Biểu đồ usecase phân rã chức năng(mức 3) 31
3.4.1 Phân rã usecase Quản lý người dùng 31
3.4.2 Phân rã usecase Quản lý sản phẩm 32
3.4.3 Phân rã usecase Quản lý nhà cung cấp 32
3.4.4 Phân rã usecase Đặt mua 32
3.5 Đặc tả usecase 33
3.5.1 Đặc tả Usecase đăng nhập (Người dùng) 33
3.5.2 Đặc tả Usecase đăng kí tài khoản 34
3.5.3 Đặc tả Usecase Xem thông tin sản phẩm 35
Trang 73.5.6 Đặc tả Use Case Tìm kiếm sản phẩm 39
3.5.7 Đăng nhập (Admin) 40
3.5.8 Đặc tả Usecase Quản lý thông tin 42
3.5.9 Đặc tả Usecase Tìm kiếm thông tin 43
3.5.10 Đặc tả Usecase Thống kê 44
3.6 Biểu đồ tuần tự 46
3.6.1 Chức năng đăng kí 46
3.6.2 Chức năng đăng nhập 46
3.6.3 Chức năng đặt mua 47
3.6.4 Chức năng thanh toán 47
3.6.5 Chức năng thêm sản phẩm 48
3.6.6 Chức năng cập nhật(sửa)sản phẩm 48
3.6.7 Chức năng xóa sản phẩm 49
3.6.8 Chức năng tìm kiếm 49
3.6.9 Chức năng thống kê 50
3.7 Thiết kế cơ sở dữ liệu 50
3.8 Thiết kế giao diện và cài đặt chương trình 53
KẾT LUẬN 60
TÀI LIỆU THAM KHẢO 61
Trang 8DANH MỤC CÁC HÌNH ẢNH
Hình 3.1 Biểu đồ usecase tổng quát 28
Hình 3.2 Biểu đồ usecase người dùng 29
Hình 3.3 Biểu đồ usecase Admin 29
Hình 3.4 Biểu đồ usecase phân rã chức năng Quản lý thông tin 30
Hình 3.5 Biểu đồ usecase phân rã chức năng Tìm kiếm 30
Hình 3.6 Biểu đồ usecase phân rã chức năng Thống kê 31
Hình 3.7 Biểu đồ usecase phân rã chức năng Quản lý người dùng 31
Hình 3.8 Biểu đồ usecase phân rã chức năng Quản lý sản phẩm 32
Hình 3.9 Biểu đồ usecase phân rã chức năng Quản lý nhà cung cấp 32
Hình 3.10 Biểu đồ usecase phân rã chức năng Đặt mua 32
Hình 3.11 Biểu đồ tuần tự chức năng đăng kí 46
Hình 3.12 Biểu đồ tuần tự chức năng đăng nhập 46
Hình 3.13 Biểu đồ tuần tự chức năng đặt mua 47
Hình 3.14 Biểu đồ tuần tự chức năng thanh toán 47
Hình 3.15 Biểu đồ tuần tự chức năng thêm sản phẩm 48
Hình 3.16 Biểu đồ tuần tự chức năng cập nhật(sửa) thông tin sản phẩm 48
Hình 3.17 Biểu đồ tuần tự chức năng xóa sản phẩm 49
Hình 3.18 Biểu đồ tuần tự chức năng tìm kiếm 49
Hình 3.19 Biểu đồ tuần tự chức năng thống kê 50
Hình 3.20 Giao diện trang chủ 53
Hình 3.21 Giao diện đăng nhập phần mềm 54
Hình 3.22 Giao diện lấy lại mật khẩu 55
Hình 3.23 Giao diện quản lý Admin 56
Hình 3.24 Giao diện quản lý nhân viên 57
Hình 3.25.Giao diện thêm sản phẩm 58
Hình 3.26 Giao diện đặt hàng 59
Trang 9LỜI MỞ ĐẦU
1 Lý do chọn đề tài
Ngày nay, cùng với sự phát triển của đất nước ngành Công nghệ thông tin
đã có những bước phát triển mạnh mẽ không ngừng và tin học đã trở thành chiếc chìa khóa dẫn đến thành công cho nhiều cá nhân trong nhiều lĩnh vực, hoạt động Với những ứng dụng của mình, ngành Công nghệ thông tin đã góp phần mang lại nhiều lợi ích mà không ai có thể phủ nhận được Đặc biệt là trong lĩnh vực quản
lý kinh tế, tin học đã góp phần tạo ra sự thay đổi nhanh chóng cho bộ mặt xã hội Nhất là khi việc tin học hóa vào công tác quản lý, bán hàng là một trong những yêu cầu cần thiết đối với các doanh nghiệp hiện nay
Từ những phần mềm quản lý giúp cho công việc bán hàng của cửa hàng trở nên nhanh chóng và dễ dàng, ngày nay công nghệ thông tin đã phát triển mạnh
mẽ hơn nữa, phần mềm ra đời không chỉ đáp ứng cho các khách hàng đến trực tiếp cửa hàng mua sản phẩm mà nó còn phục vụ cho những khách hàng ở xa Không những thế, việc giới thiệu, quảng bá hình ảnh về cửa hàng, công ty được
mở rộng trên quy mô lớn giúp cho việc kinh doanh, buôn bán, trao đổi tin tức thuận lợi hơn rất nhiều, mang lại hiệu quả kinh tế cao hơn và tạo uy tín trong lòng khách hàng
Chính vì lợi ích mà phần mềm mang lại mà các cửa hàng, công ty đã áp dụng nó để phát triển công việc kinh doanh và giới thiệu cửa hàng của mình Trong số đó, mỹ phẩm cũng là một ngành sử dụng nhiều đến phần mềm bán hàng
Do vậy, em lựa chọn đề tài thiết kế phần mềm bán mỹ phẩm nhằm đưa đến cho khách hàng một địa điểm lý tưởng trong việc mua sắm hàng hóa trên cả nước mà không cần phải đi đến tận nơi để mua, cho tất cả mọi người trong cuộc sống bận rộn ngày nay
Mọi người muốn mua sắm các hàng hóa nhưng không phải ai cũng có thời gian công sức tiền bạc để có thể đến tận nơi để có thể mua sắm những sản phẩm mình mong muốn Phần mềm mua bán hàng hóa ra đời với mục đích giúp mọi người có thể mua sắm dễ dàng các hàng hóa trên cả nước chỉ với việc đặt hàng
Trang 10online tại nhà và sản phẩm sẽ được đưa đến tận tay cho người mua hàng Vậy việc thiết kế phần mềm là rất cần thiết
2 Kết cấu đề tài
Đồ án tốt nghiệp gồm 3 chương
Chương 1: Tổng quan về đề tài
Chương 2: Cơ sở lý thuyết
Chương 3: Phân tích, thiết kế hệ thống và cài đặt chương trình
Trang 11CHƯƠNG I: ĐẶT VẤN ĐỀ 1.1 Giới thiệu về đề tài
Việc sử dụng máy tính vào công tác quản lý bán hàng mỹ phẩm online là một yêu cầu cần thiết nhằm xóa bỏ những phương pháp quản lý lạc hậu, lỗi thời gây tốn kém về nhiều mặt Vì vậy, em đã xây dựng đề tài “Ứng dụng quản lý bán hàng mỹ phẩm online” với mong muốn giúp cho việc quản lý được dễ dàng, thuận
tiện và tránh sai sót
Xây dựng phần mềm tin học hóa hoạt động bán hàng Phần mềm sẽ giúp các hoạt động trong việc bán hàng hiệu quả hơn và giảm thiểu thời gian Phần
mềm có thể được áp dụng cho các shop bán hàng online
Xây dựng được hệ thống quản lý bán hàng với đầy đủ các chức năng như: Quản trị hệ thống (đăng nhập, đăng xuất, đổi mật khẩu); quản lý nhân viên (quản
lý thông tin nhân viên); quản lý mỹ phẩm; order mỹ phẩm; cập nhật mỹ phẩm; lập hóa đơn thanh toán; quản lý hóa đơn; báo cáo doanh thu trong ngày/trong tuần/trong tháng/trong năm; báo cáo thống kê đơn trong ngày/trong tuần/trong
tháng/trong năm…
1.2 Phân tích yêu cầu đề tài
1.2.1 Tóm tắt yêu cầu của hệ thống mà dự án sẽ thực hiện
Trang 12- Khách hàng cũng có thể bỏ đi những sản phẩm không vừa ý đã có trong giỏ hàng
- Người dùng có thể chọn các hình thức vận chuyển và thanh toán hàng do
hệ thống đã định
- Cung cấp cho người dùng giữa việc mua và người bán, tạo ra một ứng dụng trực tuyến có thể đưa nhanh thông tin cũng như việc trao đổi mua bán các dòng sản phẩm mỹ phẩm cao cấp phù hợp, sang trọng.a
- Sản phẩm được sắp xếp có hệ thống nên người dùng dễ tìm kiếm sản phẩm
mỹ phẩm, tối ưu hóa việc mua hàng online tại ứng dụng
1.2.2 Phạm vi dự án được ứng dụng
- Dành cho mọi đối tượng có nhu cầu mua sắm trên mạng
- Do nghiệp vụ của cửa hàng kết hợp với công nghệ mới và được xử lý trên
hệ thống máy tính nên công việc liên lạc nơi khách hàng cũng như việc xử
lý hoá đơn thực hiện một cách nhanh chóng và chính xác Rút ngắn được thời gian làm việc, cũng như đưa thông tin về các sản phẩm mới nhanh chóng đến cho khách hàng
✓ Xoá sản phẩm: Khi sản phẩm không còn liên quan đến công việc kinh doanh hoặc đã hết hạn sử dụng, người quản lý sử dụng chức năng này
✓ Liệt kê sản phẩm: Duyệt hết tất cả các sản phẩm hiện đang có trong cơ sở
Trang 13Cung cấp chức năng quản lý tin tức: Luôn cập nhật những thông tin mới nhất liên quan đến công ty, những chính sách khuyến mãi, những thông tin xoay quanh thị trường máy tính, các bản tin công nghệ trên thế giới
✓ Thêm mới tin tức: Khi thêm tin, tin tức thuộc thể loại nào thì sẽ được thêm vào danh mục tin đó
✓ Cập nhật tin tức: Trong quá trình view, nếu tin cần thiết lập lại 1 số chi tiết cho chính xác, người quản lý sẽ sử dụng chức năng này
✓ Xoá tin: Người quản lý có thể xoá tin đã nhập khi tin đã quá lâu ngày hoặc nội dung không phù hợp với nội dung
✓ Liệt kê tin: Có thể theo dõi danh sách các tin hiện có và từ đây, người quản
lý có thể xem chi tiết của tin đó
✓ Cho phép upload ảnh lên server
Chức năng quản lý hoá đơn:
Chức năng này có thể giúp cho người quản lý theo dõi chi tiết các hoá đơn
và trạng thái đồng thời có thể dựa vào đó để thống kê các sản phẩm được bán ra
✓ Liệt kê danh sách các hóa đơn có thể dựa trên các tiêu chí sau: Tất cả các hóa đơn hoặc những hóa đơn chưa thanh toán hoặc những hóa đơn đã được thanh toán
✓ Tìm kiếm hóa đơn: Người quản lý dùng chức năng trên để có thể tìm ra hóa đơn cần tìm để biết thêm thông tin liên quan
✓ Tìm kiếm dựa trên các tiêu chí: Theo tên khách hàng hoặc mã hóa đơn hoặc ngày lập hóa đơn
✓ Hiển thị chi tiết hóa đơn: Chức năng giúp ta có thể theo dõi được các chi tiết thông tin chính xác thuộc hóa đơn này ví dụ như:
Thông tin người đặt hàng
Thông tin người nhận hàng
Phương thức thanh toán mà khách hàng đã lựa chọn vv…
Trang 14Chức năng quản lý logo, banner, quảng cáo:
Chức năng này giúp cho doanh nghiệp quản lý được logo quảng cáo của các đối tác cũng như những doanh nghiệp muốn quảng bá sản phẩm của mình trên ứng dụng của phần mềm
✓ Liệt kê danh sách các logo: Thông qua chức năng này người quản lý có thể biết được có bao nhiêu công ty đang có đặt logo quảng cáo trên hệ thống site của mình
✓ Thêm mới: Giúp cho ta có thể đưa thêm vào danh sách các đối tác hoặc các doanh nghiệp có liên quan tới công ty cần quảng cáo sản phẩm
✓ Cập nhật : Khi cần chỉnh sửa thông tin của banner quảng cáo ví dụ như hình ảnh, đường link, người quản lý sử dụng chức năng này
✓ Xóa logo: Nếu như các doanh nghiệp không còn nhu cầu quảng bá trên site của công ty nữa, người quản lý có thể gỡ bỏ tấm banner đó xuống 1 cách thuận tiện và nhanh chóng
Ngoài các chức năng chính kể trên, hệ thống còn cung cấp thêm một số các chức năng hỗ trợ khác như:
✓ Quản lý danh mục: quản lý thông tin về các chính sách bảo hành, khuyến mãi và các thông tin phản hồi
✓ Quản lý người dùng: quản lý tài khoản và thông tin người dùng
✓ Thống kê
Chức năng quản lý danh mục:
+ Liệt kê các danh mục sản phẩm hiện có
+ Lưu và quản lý các thông tin phản hồi từ phía khách hàng
+ Quản lý danh mục sản phẩm:
✓ Thêm mới danh mục sản phẩm
✓ Cập nhật danh mục
✓ Xóa danh mục sản phẩm
Trang 15✓ Nhập thông tin phản hồi: sau khi giao hàng, người giao hàng sẽ đưa cho khách hàng phiếu phản hồi để xin ý kiến phản hồi từ phía khách hàng, sau đó nhà quản lý sẽ nhập các thông tin từ phiếu vào cơ sở dữ liệu để tham khảo
✓ Liệt kê thông tin phản hồi
Chức năng quản lý khách hàng
✓ Nhập thông tin khách hàng khi khách hàng đăng ký
✓ Liệt kê danh sách khách hàng
✓ Tìm kiếm khách hàng dựa theo tên, email
Thống kê
✓ Thống kê đơn hàng (bao gồm đã thanh toán và chưa thanh toán)
✓ Những đơn hàng có giá trị tổng tiền lớn nhất
✓ Thống kê khách hàng mua hàng nhiều nhất của công ty
✓ Thống kê sản phẩm bán chạy nhất
1.4 Giao diện của phần mềm
1.4.1 Giao diện người dùng
Phải có một giao diện thân thiện dễ sử dụng:
✓ Màu sắc hài hoà làm nổi bật hình ảnh của sản phẩm, font chữ thống nhất, tiện lợi khi sử dụng
✓ Giới thiệu những thông tin về cửa hàng: Địa chỉ liên hệ của cửa hàng hoặc các đại lý trực thuộc, các số điện thoại liên hệ, email liên hệ
✓ Sản phẩm của cửa hàng: sản phẩm đang có, sản phẩm bán chạy, sản phẩm mới nhất, sản phẩm sắp ra mắt…
1.4.2 Giao diện người quản trị:
- Giao diện đơn giản, dễ quản lý dữ liệu
- Phải được bảo vệ bằng User & Password riêng của Admin
Phân tích các chức năng của hệ thống
➢ Administrator: là thành viên quản trị của hệ thống, có các quyền và chức năng như: tạo các tài khoản, quản lý sản phẩm, quản trị người dùng, quản
lý hoá đơn…
Trang 16➢ Member: là hệ thống thành viên có chức năng: Đăng kí, đăng nhập, tìm kiếm, xem, sửa thông tin cá nhân, xem giỏ hàng, đặt hàng, xem thông tin
về các hóa đơn đã lập
➢ Customer: Là khách vãng lai có chức năng: Đăng kí, tìm kiếm, xem thông tin sản phẩm, xem giỏ hàng, đặt hàng
Trang 17CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Android và lịch sử phát triến
Android là 1 nền tảng phần mềm dựa trên mã nguồn mở Linux 08 (Kernel 2.6) cho máy di động, máy tính bảng và những phần mềm trung gian (middleware) Nó không đơn thuần là 1 hệ điều hành, 1 công cụ lập trình hay 1 phần mềm trung gian mà nó gồm tất cả
Ban đầu, Android là hệ điều hành cho các thiết bị cầm tay dựa trên lõi Linux
do công ty Android Inc (California, Mỳ) thiết kế Công ty này sau đó được Google mua lại vào năm 2005 và bắt đầu xây dựng Android Platform
Và sau tiếp, vào cuối năm 2007, thuộc về Liên minh thiết bị cầm tay mã nguồn mở (Open Handset Alliance) Mục tiêu của liên minh này là nhanh chóng đổi mới đế đáp ứng tốt hơn cho nhu cầu người tiêu dùng và kết quả đầu tiên của
nó chính là nền tảng Android Android được thiết kế để phục vụ nhu cầu của các nhà sản xuất thiết, các nhà khai thác và các lập trình viên thiết bị cầm tay
Phiên bản SDK lần đầu tiên phát hành vào tháng 11 năm 2007, hãng Mobile cũng công bố chiếc điện thoại Android đầu tiên đó là chiếc T-Mobile Gl, chiếc smartphone đầu tiên dựa trên nền tảng Android Một vài ngày sau đó, Google lại tiếp tục công bổ sự ra mắt phiên bản Android SDK release Candidate l.O.Trong tháng 10 năm 2008, Google được cấp giấy phép mã nguồn mở cho Android Platform
T-Khi Android được phát hành thì một trong sổ các mục tiêu trong kiến trúc của nó là cho phép các ứng dụng có the tương tác được với nhau và có the sử dụng lại các thành phần từ những ứng dụng khác Việc tái sử dụng không chi được áp dụng cho cho các dịch vụ mà nó còn được áp dụng cho cả các thành phần dữ liệu
và giao diện người dùng
Vào cuối năm 2008, Google cho phát hành một thiết bị cầm tay được gọi
là Android Dev Phone 1 có thể chạy được các ứng dụng mà không bị ràng buộc vào các nhà cung cấp mạng điện thoại di động Mục tiêu của thiết bị này là cho phép các nhà phát triển thực hiện các cuộc thí nghiệm trên một thiết bị thực có the chạy hệ điều hành Android mà không phải ký một bản hợp đồng nào Vào khoảng
Trang 18cùng thời gian đó thì Google cũng cho phát hành một phiên vàn vá lồi 1.1 của hệ điều hành này.ớ cả hai phiên bản 1.0 và 1.1 Android chưa hỗ trợ soft-keyboard
mà đòi hỏi các thiết bị phải sử dụng bàn phím vật lý Android cố định vấn đề này bằng cách phát hành SDK 1.5 vào tháng Tư năm 2009, cùng với một số tính năng khác Chẳng hạn như nâng cao khả năng ghi âm truyền thông, vật dụng, và các live folder
Trang 19Tuy đượ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 đ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 : Chiu 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
2.2.2 Library và Android Runtime
Phần này có 2 thành phần là phần Library và Android Runtime
Trang 202.2.2.1 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
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
2.2.2.2 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
Trang 21Machine)
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 1 nhà phát triển phần mềm của google tạo ra nó sau khi đi thăm 1 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
2.2.3 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 đe 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 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
ctivity 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ụ đe thực hiện việc liên lạc như gọi
Trang 22- 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 đó
2.2.4 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 (camera) Các ứng dụng được cài thêm như các phần mềm chứng khoán (Stock), các trò chơi (Game), từ điển, các widget các ứng dụng của bên thứ 3
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ó Nó có thế là một Active Program: Chương trình có giao diện với người sử dụng hoặc là một background: chương trình chạy nền hay là dịch vụ
- Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng một thời điếm, có the có nhiều chương trình cùng chạy một lúc, tuy nhiên, với mồi
Trang 23động tốt hơn Các ứng dụng được phân quyền và tự hệ thống sẽ kill nếu mức ưu tiên thấp
- Các ứng dụng được gán so ID của người sử dụng nhằn phân định quyền hạn khi sử dụng tài nguyên, cấu hình phần cứng và hệ thống
- Android là một hệ điều hành có tính mở, khác với nhiều hệ điều hành di động khác, android cho phép một úng dụng của bên thứ ba được phép chạy nền Các ứng dụng đó chỉ có một hạn chế nhỏ đó là nó không được phép sử dung quá 5~10% công suất CPU, điều đó nhằn để tránh độc quyền trong việc sử dụng CPU
2.3 Các thành phần của Android
2.3.1 Thành phần của 1 chương trình Android
2.3.1.1 Activity và Intent
Activity:
Một activity thế hiện một giao diện đồ họa người dùng Ví dụ một activity
có thể biếu diễn một danh sách các menu item đế người dùng có thế chọn và có thế hiến thị ảnh cùng với tiêu đề Một ứng dụng gửi tin nhắn văn bản có thế có một hoạt động là hiến thị một danh sách các liên hệ đổ gửi tin nhắn tới, hoạt động thứ hai là viết tin nhắn tới liên hệ được chọn, các hoạt động khác nữa là xem lại tin nhắn cũ hay thay đoi cài đặt Mặc dù chúng làm việc cùng nhau đế tạo thành một giao diện người dùng, mỗi activity độc lập với những cái khác Mồi activity
là một lóp con của lóp cơ sở Activity
Một ứng dụng có thế gồm chỉ một activity hay nhiều activity Thông thường, một trong số các activity được đánh dấu như là activity đầu tiên phải được trình diễn tới người dùng khi ứng dụng được khởi động Chuyến từ một activity sang activity khác được hoàn thành bằng cách cho activity hiện thời khởi động activity kế tiếp
Mồi activity được đưa ra một cửa sổ mặc định để vẽ vào Thông thường, cửa sổ sẽ lấp đầy màn hình, nhưng nó có thế nhỏ hơn màn hình và nằm trên các cửa số khác Một activity có thể sử dụng cửa sổ bổ sung - ví dụ như một pop-up dialog gọi cho một đáp ứng người dùng ở giữa của activity, hay một cửa sổ biếu
Trang 24diễn những cho người dùng với thông tin quan trọng khi họ chọn một item cụ thể trên màn hình
Nội dung trực quan của cửa số được cung cấp bởi một cây phân cấp các đối tượng view dẫn xuất từ lớp View Mỗi view điều khiển một khoảng hình chữ nhật
cụ thể bên trong cửa sổ View cha chứa và tổ chức bổ cục các view con Các view
lá vẽ trong hình chừ nhật mà chúng điều khiển và đáp ứng lại các hành động người dùng trực tiếp ở khoảng trống này Do đó, các view là nơi mà các tương tác của activity với người dùng diễn ra Ví dụ một view có thể hiển thị một hình ảnh nhỏ
và khởi tạo một hoạt động khi người dùng nhấn vào hình ảnh đó Android có một
số view đã xây dựng sẵn mà bạn có thể sử dụng - gồm có các buttons, text fields, scroll bars, menu items, check boxes
Một cây phân cấp view được đặt trong một cửa sổ của activity bằng phương thức Activity.setContentView() Content view là đối tượng View ở gốc của cây phân cấp
Class cơ sở Activity định nghĩa một loạt các sự kiện mà điều chỉnh vòng đời của một hoạt động Class Activity định nghĩa các sự kiện sau đây:
- onCreate():Được gọi khi hoạt động được tạo ra lần đau tiên
- onStartQ: Được gọi khi hoạt động trở nên hữu hình so với người dùng
- onResume(): Được gọi khi hoạt động bắt đầu tương tác với người sử dụng
- onPauseQ: Được gọi đê dùng các hoạt động hiện tại và nôi lại các hoạt động trước đó
- onStop(): Được gọi khi hoạt động không còn hiến thị với người dùng
- onDestroyQ: Được gọi trước khi hoạt động bị phá hủy bởi hệ thống (bằng tay hoặc bằng hệ thống để bảo tồn bộ nhớ)
- onRestartQ: Được gọi khi hệ thống đã được dừng lại và khởi động lại một lần nữa
Trang 252.3.2 Intent:
Là một cấu trúc dữ liệu mô tả cách thức, đối tượng thực hiện của một Activity Là cầu nối giữa các Activity: ứng dụng 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 Điều này cũng giống như việc di chuyển qua lại giữa các Forms trong lập trình Windows Form
2.3.1.2 Service
Một service không có giao diện trực quan, nó chạy trên nền trong một khoảng thời gian không xác định Ví dụ một service có thể chơi nhạc nền, hay nó nạp dữ liệu trên mạng hay tính toán cái gì đó và cung cấp kết quà cho activity cần đến nó Mỗi service mở rộng từ lớp cơ sở Service
Một ví dụ cổ điển là media player chơi các bài hát từ một danh sách, ứng dụng player có thể có một hay hai activity cho phép người dùng chọn bài hát và bắt đầu chơi Tuy nhiên, music playback không tự nó được xử lý bởi một activity
Trang 26bởi vì người dùng sẽ mong muốn chơi tiếp nhạc khi họ rời khỏi player và làm cái
gì đó khác Để tiếp tục chơi nhạc, media player activity có thể khởi động một service chạy trên nền Hệ thống sẽ giữ cho music playback service chạy thậm chí khi activity khởi động nó rời khỏi màn hình
Trong khi kết nối, bạn có thế giao tiếp với dịch vụ thông qua giao diện mà service đó trưng ra Ví dụ như trong music service, giao diện này có thể cho phép người dùng pause, rewind, stop và restart lại playback
Giống như các activity và các thành phần khác khác, service chạy trong thread chính của tiến trình ứng dụng Vì thế chúng không thê chặn nhũng thành phần khác hay giao diện người dùng, chúng thường tạo ra các thead khác cho các nhiệm vụ hao tốn thời gian
2.3.1.3 Broadcast Reveive
Một Broadcast Rreceiver là một thành phần không làm gì ngoài việc nhận
và đáp lại các thông báo broadcast Nhiều broadcast khởi đầu trong mã hệ thống
- ví dụ như thông báo múi giờ thay đổi, pin yếu, ảnh đã được chụp, hay người dùng đã thay đối ngôn ngũ' Các ứng dụng có thế tạo ra các broadcast, chẳng hạn đe ứng dụng khác biết được một số dữ liệu đã được tải về thiết bị và sẵn sàng cho việc sử dụng chúng
Một ứng dụng có thể có một số Broadcast Receiver để đáp lại bất cứ thông báo nào mà nó cho là quan trọng Tất cả các receiver mở rộng từ lớp cơ sở
Trang 27có thể sử dụng NotificationManager để cảnh báo người dùng Notifications có thể lấy sự chú ý của người dùng bằng nhiều cách, lóe sáng đèn sau, rung, tạo ra âm thah, vân vân Chúng thường lấy một biểu tượng bền vững trong thanh trạng thái, cái mà người dùng có thể mở để lấy thông điệp
2.3.1.4 Content Provider
Một content provider tạo ra một tập cụ thể các dữ liệu của ứng dụng khả dụng cho các ứng dụng khác Dữ liệu có thế được lưu trữ trong hệ thống file, trong một cơ sở dữ liệu SQLite, hay trong một cách khác nào đó Content provider mở rộng lớp cơ sở Contentprovider để cài đặt một tập các chuẩn các phương thức cho phép các ứng dụng khác đạt được và lưu trừ dữ liệu của kiểu mà nó điều khiến Tuy nhiên, các ứng dụng không gọi trực tiếp các phương thức này, chúng sử dụng một đối tượng ContentResolver và gọi các phương thức của nó Một ContentResolver có the nói chuyện với bất cứ content provider nào, chúng cộng tác với provider để quản lý giao tiếp liên tiến trình
2.3.1.5 Manifest File
Trước khi Android có thế khởi động một thành phần ứng dụng, nó phải biết rằng thành phần đó tồn tại Vì vậy, ứng dụng khai báo những thành phần của mình trong một manifest file được gắn vào Android package, file apk này cũng giữ chứa mã của ứng dụng và các tài nguyên
Manifest file là một file XML có cấu trúc và thường được đặt tên là AndroidManifest.xml cho mọi ứng dụng Nó thực hiện một sổ bổ sung để khai báo các thành phần của ứng dụng, như là nêu tên các thư viện ứng dụng cần đến,
và xác định các quyền hạn của ứng dụng muốn được cấp
Ví dụ như nó khai báo các Activity trong chương trình của chúng ta, khi khởi động chương trình thì Activity nào sẽ được thực hiện đầu tiên, các quyền truy cập Internet, SDCard, hay các vấn đề về gửi nhận tin nhắn, cuộc gọi
2.3.1.6 Giao diện người dùng trong Android
Trong một ứng dụng Android, giao diện người dùng được xây dựng bằng cách sử dụng View và ViewGroup đối tượng Có nhiều loại quan điểm và các nhóm view, mỗi một trong số đó là hậu duệ của lớp View View objects là các
Trang 28đơn vị cơ bản của biểu hiện giao diện người dùng trên nền tảng Android Các class xem như là cơ sở phục vụ cho class con được gọi là "widget", trong đó cung cấp đầy đủ các đối tượng thực hiện giao diện, giống như các lĩnh vực văn bản và nút Class ViewGroup phục vụ như là cơ sở cho lớp con được gọi là " layouts", cung cấp các loại khác nhau của kiến trúc bố trí, như linear, tabular và relative
2.4 Các thành phần giao diện Widget
Có rất nhiều cách bố trí giao diện Sử dụng nhiều hơn và các loại khác nhau của các view group, bạn có thể cấu trúc views con và view groups trong vô số cách Xác định các nhóm xem được cung cấp bởi Android (gọi là layouts) bao gồm LinearLayout, RelativeLayout, TableLayout, GridLayout và khác Mỗi cung cấp một bộ duy nhất của các thông số bố trí được sử dụng đế xác định vị trí của views con và cơ cấu layout Đe tìm hiểu về một so các loại khác nhau của các view group được sử dụng cho một layout, đọc Giao diện đối tượng thường gặp
Widget là một object View phục vụ như một giao diện để tương tác với người dùng Android cung cấp một tập các widgets thực hiện đầy đủ, giống như các button, Checkbox, và text-entry , do đó bạn có thể nhanh chóng xây dựng giao diện người dùng của bạn Một số widgets được cung cấp bởi Android phức tạp hơn, giống như một date picker, clock, và zoom controls Nhưng nó không giới hạn trong các loại widgets được cung cấp bởi các nền tảng Android
2.4.1 Bắt sự kiện trong Android
Khi đã thêm một so Views/widgets đến giao diện Đe được thông báo về
UI events người dùng, cần phải làm một trong hai điều: Xác định một sự kiện nghe và đăng ký nó với các View Đây là cách lắng nghe sự kiện Các class View
có một phương pháp gọi là On<something>()
Ví dụ: View.OnClickListener (để xử lý "nhấp chuột" trên một View), View.OnTouchListener ( để xử lý các sự kiện màn hình cảm ứng trong một View),
và View.OnKeyListener (để xử lý thiết bị ép quan trọng trong một View) Vì vậy nếu muon View được thông báo khi nó là " clicked" (chẳng hạn như khi một nút
Trang 29setOnClickListener()
Ghi đè một callback method hiện cho View Đây là những gì nên làm gì khi đã thực hiện lớp View của riêng bạn và muốn lắng nghe cho các sự kiện cụ thể xảy ra trong nó Ví dụ về các sự kiện có thế xử lý bao gồm màn hình là touched onTouchEventQ khi trackball là di chuyển onTrack ball Events) hoặc khi một phím trên thiết bị được nhấn onKeyDown() Điều này cho phép xác định các hành
vi mặc định cho từng sự kiện bên trong tuỳ chỉnh View và xác định xem sự kiện này cần được thông qua ngày de View con khác Một lần nữa, đây là những callbacks View class, do đó, cơ hội duy nhất của bạn để xác định đó là khi bạn xây dựng một phần tùy chỉnh
2.4.2 Menu
Menu đơn có một phần quan trọng của giao diện người dùng trong một ứng dụng Menus cung cấp một giao diện đáng tin cậy cho thấy rằng các chức năng ứng dụng và cài đặt Trong trình đơn ứng dụng phổ biến nhất là tiết lộ bàng cách bấm phím MENU trên thiết bị Tuy nhiên, cũng có thể thêm Context Menus, có thể hiến thị khi người sử dụng máy nhấn và nắm giữ phím trên một mục Thực đơn cũng được hệ thống phân cấp cấu trúc bằng cách sử dụng một xem, nhưng bạn không xác định cấu trúc này cho mình
Thay vào đó, xác định onCreateOptionsMenu() or onCreateContext Menus) gọi method cho hoạt động của mình và tuyên bổ các mục mà mình muốn bao gồm trong menu của mình Trong một thời gian thích hợp, Android sẽ tự động tạo ra hệ thống View phân cấp cần thiết cho menu, và rút ra mỗi trong mỗi menu items đó
Trang 30CHƯƠNG 3: PHÂN TÍCH, THIẾT KẾ HỆ THỐNG VÀ CÀI ĐẶT
CHƯƠNG TRÌNH 3.1 Phân tích thiết kế với UML
➢ Danh sách các Usecase
1 Đăng nhập UC này mô tả chức năng đăng nhập vào hệ thống
của người dùng hoặc Admin
2 Đăng kí UC này mô tả chức năng đăng kí tài khoản làm
thành viên của người dùng và Admin
3 Đặt mua UC này mô tả chức năng đặt mua sản phẩm tại
website của người dùng
4 Thanh toán UC này mô tả chức năng thanh toán tiền của
người dùng
4 Xem thông tin
sản phẩm
UC này mô tả chức năng xem thông tin sản phẩm
có trên website của người dùng
5 Tìm kiếm sản UC này mô tả chức năng tìm kiếm các sản phẩm
Trang 31TT Tên Usecase Ý nghĩa
6 Quản lý thông tin
UC này mô tả chức năng quản lý các thông tin như quản lý người dùng, sản phẩm, nhà cung cấp của Admin
7 Bán hàng UC này mô tả chức năng bán hàng trực tuyến của
9 Thống kê UC này mô tả chức năng thống kê theo các tiêu
chí khác nhau của Admin
3.2.Biểu đồ usecase mức tổng quát
3.2.1 Biểu đồ usecase tổng quát
Hình 3.1 Biểu đồ usecase tổng quát
Trang 323.2.2 Biểu đồ usecase người dùng
Hình 3.2 Biểu đồ usecase người dùng
3.2.3 Biểu đồ usecase Admin
Hình 3.3 Biểu đồ usecase Admin