1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng ứng dụng bán hàng trên nền tảng Android

64 598 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 64
Dung lượng 3,46 MB

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

Nội dung

MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN DANH MỤC BẢNG DANH MỤC HÌNH ẢNH MỞ ĐẦU 1 CHƯƠNG 1: TỔNG QUAN LÝ THUYẾT 2 1.1 Hệ điều hành Android 2 1.2 Kiến trúc và các thành phần 4 1.2.1 Kiến trúc tổng quát 4 1.2.2 Hệ điều hành 5 1.2.3 Các thành phần của một ứng dụng Android 9 1.2 Môi trường làm việc với Android 15 1.3.1 Công cụ lập trình Android 15 1.3.2 Cấu trúc và các thành phần của một project android 17 1.4 Giới thiệu về Web Service trong PHP và MySQL 24 1.4.1. Khái niệm 24 1.4.2 Đặc điểm 24 CHƯƠNG 2: PHÂN TÍCH HỆ THỐNG 26 2.1 Xác định yêu cầu 26 2.1.1 Chức năng của webservice 26 2.1.2 Chức năng của phía người dùng 26 2.1.3 Chức năng của quản lý 26 2.2 Sơ đồ UseCase 26 2.2.1 Sơ đồ Usecase tổng quát 26 2.2.2 Sơ đồ phân rã Usecase đăng nhập 27 2.2.3 Sơ đồ phân rã Usecase Xem trang điện tử 28 2.2.4 Sơ đồ phân rã Usecase Chi tiết sản phẩm 28 2.2.5 Sơ đồ phân rã Usecase giỏ hàng 28 2.2.6 Sơ đồ phân rã quản lý hóa đơn 29 2.2.7 Sơ đồ phân rã quản lý tài khoản 29 2.2.8 Sơ đồ phân rã quản lý sản phẩm 29 2.3 Mô tả chi tiết các Usecase 30 2.3.1 Usecase trang điện tử 30 2.3.2 Usecase xem chi tiết sản phẩm 30 2.3.3 Usecase tìm kiếm sản phẩm 31 2.2.3 Usecase đăng nhập 31 2.3.4 Usecase đăng ký 32 2.4 Sơ đồ tuần tự 33 2.4.1 Sơ đồ tuần tự đăng nhập 33 2.4.2 Sơ đồ tuần tự tìm kiếm 33 2.4.3 Sơ đồ tuần tự xem sản phẩm 33 2.4.4 Sơ đồ tuần tự thêm sản phẩm 34 2.4.5 Sơ đồ tuần tự xóa sản phẩm 34 2.4.6 Sơ đồ tuần tự sửa sản phẩm 34 2.5 Sơ đồ lớp 35 2.6 Cơ sở dữ liệu 37 2.6.1 Các thuộc tính và kiểu dữ liệu 38 2.6.2 Sở đồ quan hệ các bảng dữ liệu 41 CHƯƠNG 3. XÂY DỰNG ỨNG DỤNG 42 3.1 Phía người dùng 42 3.1.1 Danh sách các màn hình chính 42 3.1.2 Trang chính 43 3.1.3 Trang điện tử 43 3.1.4 Trang Đăng nhập 44 3.1.5 Trang đăng ký 44 3.1.6 Trang Sản phẩm 45 3.1.7 Trang chi tiết sản phẩm 45 3.18 Trang Giỏ Hàng 46 3.19 Trang thanh toán 47 3.2 Phía người quản lý 47 3.2.1 Danh sách các màn hình chính 47 3.2.2 Trang chính quản lý 48 3.2.3 Trang quản lý tài khoản 49 3.2.4 Trang quản lý sản phẩm 50 3.2.5 Trang quản lý hóa đơn 52 3.2.6 Trang quản lý bình luận 53 KẾT LUẬN VÀ KIẾN NGHỊ 54 TÀI LIỆU THAM KHẢO

Trang 1

trong đồ án tốt nghiệp đều được ghi rõ nguồn gốc.

Hà Nội, Ngày 23 tháng 6 năm 2017

Sinh Viên

Nguyễn Văn Hùng

Trang 2

tập nhất là trong quá trình thực tập, em đã nhận được rất nhiều sự quan tâm giúp đỡnhiệt tình của các thầy cô, bạn bè và gia đình.

Đầu tiên em xin gửi lời cảm ơn sâu sắc đến Th.S Phạm Văn Hiệp, đã trực tiếphướng dẫn và giúp đỡ em rất nhiều trong thời gian em làm đồ án

Em cũng xin gửi lời cảm ơn đến các thầy cô trong Khoa Công nghệ thông tin,Trường Đại học Tài nguyên và Môi trường nơi em đang học đã nhiệt tình giúp đỡtạo điều kiện cho em được làm đồ án

Vì thời gian, điều kiện còn có hạn, em đã cố gắng rất nhiều để hoàn thành đồ

án, nhưng vẫn còn nhiều hạn chế và không thể tránh khỏi những thiếu sót, mongthầy cô và các bạn có những ý kiến đóng góp để em có thể hoàn thiện và phát triển

đề tài hơn

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

Trang 3

LỜI CẢM ƠN

DANH MỤC BẢNG

DANH MỤC HÌNH ẢNH

MỞ ĐẦU 1

CHƯƠNG 1: TỔNG QUAN LÝ THUYẾT 2

1.1 Hệ điều hành Android 2

1.2 Kiến trúc và các thành phần 4

1.2.1 Kiến trúc tổng quát 4

1.2.2 Hệ điều hành 5

1.2.3 Các thành phần của một ứng dụng Android 9

1.2 Môi trường làm việc với Android 15

1.3.1 Công cụ lập trình Android 15

1.3.2 Cấu trúc và các thành phần của một project android 17

1.4 Giới thiệu về Web Service trong PHP và MySQL 24

1.4.1 Khái niệm 24

1.4.2 Đặc điểm 24

CHƯƠNG 2: PHÂN TÍCH HỆ THỐNG 26

2.1 Xác định yêu cầu 26

2.1.1 Chức năng của webservice 26

2.1.2 Chức năng của phía người dùng 26

2.1.3 Chức năng của quản lý 26

2.2 Sơ đồ UseCase 26

Trang 4

2.2.3 Sơ đồ phân rã Usecase Xem trang điện tử 28

2.2.4 Sơ đồ phân rã Usecase Chi tiết sản phẩm 28

2.2.5 Sơ đồ phân rã Usecase giỏ hàng 28

2.2.6 Sơ đồ phân rã quản lý hóa đơn 29

2.2.7 Sơ đồ phân rã quản lý tài khoản 29

2.2.8 Sơ đồ phân rã quản lý sản phẩm 29

2.3 Mô tả chi tiết các Usecase 30

2.3.1 Usecase trang điện tử 30

2.3.2 Usecase xem chi tiết sản phẩm 30

2.3.3 Usecase tìm kiếm sản phẩm 31

2.2.3 Usecase đăng nhập 31

2.3.4 Usecase đăng ký 32

2.4 Sơ đồ tuần tự 33

2.4.1 Sơ đồ tuần tự đăng nhập 33

2.4.2 Sơ đồ tuần tự tìm kiếm 33

2.4.3 Sơ đồ tuần tự xem sản phẩm 33

2.4.4 Sơ đồ tuần tự thêm sản phẩm 34

2.4.5 Sơ đồ tuần tự xóa sản phẩm 34

2.4.6 Sơ đồ tuần tự sửa sản phẩm 34

2.5 Sơ đồ lớp 35

2.6 Cơ sở dữ liệu 37

2.6.1 Các thuộc tính và kiểu dữ liệu 38

Trang 5

3.1 Phía người dùng 42

3.1.1 Danh sách các màn hình chính 42

3.1.2 Trang chính 43

3.1.3 Trang điện tử 43

3.1.4 Trang Đăng nhập 44

3.1.5 Trang đăng ký 44

3.1.6 Trang Sản phẩm 45

3.1.7 Trang chi tiết sản phẩm 45

3.18 Trang Giỏ Hàng 46

3.19 Trang thanh toán 47

3.2 Phía người quản lý 47

3.2.1 Danh sách các màn hình chính 47

3.2.2 Trang chính quản lý 48

3.2.3 Trang quản lý tài khoản 49

3.2.4 Trang quản lý sản phẩm 50

3.2.5 Trang quản lý hóa đơn 52

3.2.6 Trang quản lý bình luận 53

KẾT LUẬN VÀ KIẾN NGHỊ 54 TÀI LIỆU THAM KHẢO

Trang 6

Bảng 2.1: Danh sách các actor và ý nghĩa 26

Bảng 2.2: Danh sách use case và ý nghĩa 27

Bảng 2.3: Mô tả chi tiết trang điện tử 30

Bảng 2.4: Mô tả chi tiết xem chi tiết sản phẩm 30

Bảng 2.5: Mô tả chi tiết tìm kiếm sản phẩm 31

Bảng 2.6: Mô tả chi tiết đăng nhập 31

Bảng 2.7: Mô tả chi tiết đăng ký 32

Bảng 2.8: Thông tin lớp sản phẩm 36

Bảng 2.9: Thông tin lớp đánh giá 36

Bảng 2.10: Thông tin lớp nhân viên 37

Bảng 2.11: Bảng sản phẩm 38

Bảng 2.12: Bảng chi tiết sản phẩm 38

Bảng 2.13: Bảng nhân viên 39

Bảng 2.14: Bảng loại nhân viên 39

Bảng 2.15: Bảng hóa đơn 40

Bảng 2.16: Bảng sản hóa đơn 40

Hình 2.16: Quan hệ dữ liệu 41

Bảng 3.1: Danh sách màn hình bên người dùng 42

Bảng 3.2: Danh sách màn hình bên quản lý 47

Trang 7

Hình 1.2: Linux Kernel 5

Hình 1.3: Libraries 6

Hình 1.4: Android Runtime 8

Hình 1.5: Application Framework 9

Hình 1.6: Vòng đời của một activity 12

Hình 1.7: Sơ đồ chuyển trạng thái của service 14

Hình 1.8: Trang web tải về JDK 16

Hình 1.9: Quá trình cài đặt JDK 16

Hình 1.10: Trang web tải về Android Studio 17

Hình 1.11: Cửa sổ New Module 18

Hình 1.12: Góc nhìn Android trong android studio 20

Hình 1.13: Chi tiết các thư mục trong góc nhìn Android 21

Hình 1.14: Cấu trúc tệp tin manifest 23

Hình 2.1: Usecase tổng quát 26

Hình 2.2: Usecase phân rã đăng nhập 27

Hình 2.3: Usecase phẫn rã Xem trang điện tử 28

Hình 2.4: Usecase phẫn rã xem sản phẩm 28

Hình 2.5: Usecase phân rã Giỏ hàng 28

Hình 2.6: Usecase phân rã quản lý hóa đơn 29

Hình 2.7: Usecase phân rã quản lý tài khoản 29

Hình 2.8: Usecase phân rã quản lý sản phẩm 29

Hình 2.9: Sở đồ tuần tự đăng nhập 33

Hình 2.10: Sơ đồ tuần tự tìm kiếm sản phẩm 33

Hình 2.11: Sơ đồ tuần tự xem sản phẩm 33

Hình 2.12: Sơ đồ tuần tự thêm sản phẩm 34

Hình 2.13: Sơ đồ tuần tự xóa sản phẩm 34

Trang 8

Hình 3.1: Trang khuyễn mại 43

Hình 3.2: Trang điện tử 43

Hình 3.3: Trang đăng nhập 44

Hình 3.4: Trang đăng ký 44

Hình 3.5: Trang sản phẩm 45

Hình 3.6: Trang chi tiết sản phẩm 46

Hình 3.7: Giỏ hàng 46

Hình 3.8: Trang thanh toán 47

Hình 3.9: Trang chính quản lý 48

Hình 3.10: Trang quản lý tài khoản 49

Hình 3.11: Trang quản lý danh sách sản phẩm 50

Hình 3.12: Giao diện thêm sản phẩm 51

Hình 3.13: Giao diện sửa sản phẩm 51

Hình 3.14: Trang quản lý đơn hàng 52

Hình 3.15: Trang chi tiết đơn hàng 52

Hình 3.16: Trang quản lý bình luận 53

Trang 9

MỞ ĐẦU

Bán hàng là một hình thức kinh doanh phổ biến hiện nay Bán hàng hiện nay

có 2 hình thức: offline và hình thức phổ biến hiện nay là online Và hình thức onlinemang lại nhiều hiệu quả cho việc bán hàng hiện nay vì internet đang phổ biến và aicũng biết tới Hiện nay điện thoại SmartPhone ngày càng phổ biến và ai cũng cómột chiếc cho mình Nhận thấy được sự tiện dụng và dễ dàng có thể đọc và tìmđược hàng hóa mình mong muốn bán nhanh chóng ngay trên chiếc điện thoại mình

Em đã nghĩ đến và muốn xây dựng ứng dụng bán hàng giúp cho việc bán hàng mộtcách dễ dàng và nhanh chóng cho người bán và ngườ dùng

Mục tiêu

-Hiểu biết về lập trình trên nền tảng Android và lập trình webservice

-Hoàn thành được ứng dụng bán hàng trên mobile

Phương pháp thực hiện

-Phương pháp lý thuyết: Tìm hiểu lý thuyết, chức năng của những ứng dụng

đã có trước, phát triển các chức năng phù hợp với nhu cần người dùng

-Phương pháp phân tích: Đưa ra các nhận định riêng về các tính năng củaphần mềm, độ khả thi và những nhu cầu thực tiễn của ứng dụng

-Phương pháp thực nghiệm: Thực hiện xây dựng ứng dụng bằng những kiếnthức đã có, kết hợp quá trình debug để đạt được sản phẩm hoàn thiện

Trang 10

CHƯƠNG 1: TỔNG QUAN LÝ THUYẾT1.1 Hệ điều hành Android[10]

Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành chocác thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tínhbảng Ban đầu, Android được phát triển bởi Tổng công ty Android, với sự hỗ trợ tàichính từ Google và sau này được chính Google mua lại vào năm 2005 Android ramắt vào năm 2007 cùng với tuyên bố thành lập Liên minh thiết bị cầm tay mở: mộthiệp hội gồm các công ty phần cứng, phần mềm, và viễn thông với mục tiêu đẩymạnh các tiêu chuẩn mở cho các thiết bị di động Chiếc điện thoại đầu tiên chạyAndroid được bán vào tháng 10 năm 2008

Android có mã nguồn mở và Google phát hành mã nguồn theo Giấy phépApache Chính mã nguồn mở cùng với một giấy phép không có nhiều ràng buộc đã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 nhiệt huyếtđược điều chỉnh và phân phối Android một cách tự do Ngoài ra, Android còn cómột cộng đồng lập trình viên đông đảo chuyên viết các ứng dụng để mở rộng chứcnăng của thiết bị, bằng một loại ngôn ngữ lập trình Java có sửa đổi Vào tháng 10năm 2012, có khoảng 700.000 ứng dụng trên Android, và số lượt tải ứng dụng từGoogle Play, cửa hàng ứng dụng chính của Android, ước tính khoảng 25 tỷ lượt Những yếu tố này đã giúp Android trở thành nền tảng điện thoại thông minhphổ biến nhất thế giới, vượt qua Symbian vào quý 4 năm 2010, và được các công tycông nghệ lựa chọn khi họ cần một hệ điều hành không nặng nề, có khả năng tinhchỉnh, và giá rẻ chạy trên các thiết bị công nghệ cao thay vì tạo dựng từ đầu Bảnchất mở của Android cũng khích lệ một đội ngũ đông đảo lập trình viên và nhữngngười đam mê sử dụng mã nguồn mở để tạo ra những dự án do cộng đồng quản lý.Những dự án này bổ sung các tính năng cao cấp cho những người dùng thích tìm tòihoặc đưa Android vào các thiết bị ban đầu chạy hệ điều hành khác

Android chiếm 75% thị phần điện thoại thông minh trên toàn thế giới vào thờiđiểm quý 3 năm 2012, với tổng cộng 500 triệu thiết bị đã được kích hoạt và 1,3triệu lượt kích hoạt mỗi ngày Sự thành công của hệ điều hành cũng khiến nó trở

Trang 11

thành mục tiêu trong các vụ kiện liên quan đến bằng phát minh, góp mặt trong cáigọi là "cuộc chiến điện thoại thông minh" giữa các công ty công nghệ

Được xây dựng trên một nền tảng mở, và một bộ thư viện đa năng, mạnh mẽvới nguyên lý mở, Android đã nhanh chóng được cộng đồng lập trình viên di độnghưởng ứng mạnh mẽ Nền tảng Android tích hợp nhiều tính năng nổi bật:

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

- Bộ ứng dụng khung cho phép sử dụng lại và thay thế các thành phần riêng lẻ

- Các thư viện cho phát triển ứng dụng mã nguồn mở bao gồm SQLite,WebKit, OpenGL và trình quản lý đa phương tiện

- Hỗ trợ các chuẩn đa phương tiện phổ biến, thoại trên nền GSM, BluetoothEDGE, 3G và Wifi

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

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

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

Đặc điểm

-Tính mở

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

ưu hóa bộ nhớ và phần cứng với môi trường di động Android là một mã nguồn mở,

nó có thể được mở rộng để kết hợp tự do giữa các công nghệ nổi trội Nền tảng này

sẽ tiếp tục phát triển bởi cộng đồng phát triển để tạo ra các ứng dụng di động hoànhảo

Trang 12

-Tính ngang hàng của các ứng dụng

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

có thể đổi màn hình nền, kiểu gọi điện thoại, hay bất kể ứng dụng nào Chúng tathậm chí có thể hướng dẫn điện thoại chỉ xem những ảnh mình thích

-Dễ xây dựng ứng dụng

Android cung cấp bộ thư viện giao diện lập trình ứng dụng đồ sộ và các công

cụ để viết các ứng dụng phức tạp Ví dụ, Android có thể cho phép người phát triểnbiết được vị trí của thiết bị và cho phép các thiết bị giao tiếp với nhau để có thể tạonên mạng xã hội chia sẻ ngang hàng rộng khắp Thêm nữa, Android còn bao gồmmột bộ công cụ đầy đủ giúp cho việc phát triển trở nên dễ dàng

Trang 13

Tuy được phát triển dựa vào nhân linux nhưng thực ra nhân linux đã đượcnâ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 taynhư hạn chế về bộ vi xử lý, dung lượng bộ nhớ, kích thước màn hình, nhu cầu kếtnối mạng không dây.

a Các thành phần của nhân Linux:

Hình 1.2: Linux Kernel.

Trang 14

-Display Driver : Điều khiển việc hiển thị lên màn hình cũng như thu nhậnnhữ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ệudạ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

b Library

Hình 1.3: Libraries.

Android cung cấp một số các APIs cho phát triển ứng dụng Danh sách cácAPI 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

-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

Trang 15

-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ácthà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ácwidget 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 MapViewcũ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) baogồ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ânphố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ìnhtrạ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 dungWeb-based bao gồm một lơp WebView để tạo ra giao diện web, nhúng trong ứngdụng và một trình quản lý cookie

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

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

1.0 API

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

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

Trang 16

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

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

ứng dụng

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

truyền thông Internet

c Android Runtime

Hình 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ínhthường Thứ nhất là các thư viện lỗi chứa các lớp như JAVA IO, Collections, FileAccess Thứ hai là một máy ảo java

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ênsau khi một nhà phát triển phần mềm của Google tạo ra nó sau khi đi thăm một ngôilàng ở nơi tổ tiên oong sinh sống) do Google phát triển, máy ảo davik thực thi cáitậ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

Trang 17

d Application Framework

Hình 1.5: Application Framework.

Kiến trúc của Android khuyến khích khái niệm thành phần sử dụng lại, chophép công bố và chia sẻ các Activity, Service, dữ liệu, với các ứng dụng khác vớiquyền truy cập được quản lý bởi khai báo

Cơ chế đó cho phép người lập trình tạo ra một trình quản lý danh bạ hoặc trìnhquay số điện thoại mà có các thành phần người khác có thể tạo mới giao diện và mởrộng chức năng thay vì tạo lại chúng

Những dịch vụ sau là những dịch vụ kiến trúc cơ bản nhất của tất cả các ứngdụng, cung cấp một framework cho mọi mọi phần mềm được xây dựng:

- Actitvity Manager: Điều khiển vòng đời của các Activity bao gồm cả quản

lý các tầng Activity

- Views: Được sử dụng để tạo lập các giao diện người dùng cho các Activity.

- Notification Mamager: Cung cấp một cơ chế cố định và quy củ cho việc gửi

các thông báo đến người dùng

- Content Provider: Cho phép ứng dụng chia sẻ dữ liệu giữa các ứng dụng.

- Resource Manager: Hỗ trợ các thành phần không thuộc mã nguồn như là

chuỗi ký tự đồ họa được đặt bên ngoài

Trang 18

Các thành phần này không nhất thiết phải có mặt đầy đủ trong ứng dụng.Chúng ta có thể xem các thành phần nào được sử dụng trong ứng dụng bằng việcxem khai báo trong file AndroidManifest.xml.

- Vòng đời hoạt động (circle activities)

Các hoạt động trong hệ thống được quản lý bởi một cấu trúc dữ liệu ngăn xếp.Khi có một hoạt động được khởi tạo, nó được đẩy vào trong ngăn xếp, chuyển sangtrạng thái thực thi và hoạt trộng trước đó sẽ chuyển sang trạng thái chờ Hoạt độngnày chỉ trở lại trang thái kích hoạt khi mà hoạt động vừa khởi tạo kết thúc việc thựcthi

bị hệ thống đóng lại khi có tình trạng thiếu bộ nhớ

Khi chuyển giữa các trạng thái, ứng dụng sẽ gọi các hàm callback ứng với cácbước chuyển:

Trang 19

- void onCreate(Bundle savedInstanceState)

Trang 20

Vòng đời của một hoạt động có thể được thể hiện trong những quá trình sau:

Hình 1.6: Vòng đời của một activity.

Toàn bộ thời gian sống của một hoạt động bắt đầu từ lời gọi đầu tiên tớiphương thức onCreate(Bundle) tới lời gọi phương thức onDestroy() Trong quátrình này, một hoạt động sẽ khởi tạo lại tất cả các tài nguyên cần sử dụng trongphương thức onCreate() và giải phóng chúng khi phương thức onDestroy() đượcthực thi

Trang 21

Thời gian sống có thể nhìn thấy của một hoạt động bắt đầu từ lời gọi tớiphương thức onStart(), cho tới khi phương thức onStop() của nó được thực thi.Toàn bộ các tài nguyên đang được sử dụng bởi hoạt động vẫn tiếp tục được lưu giữ,người dùng có thể thấy giao diện nhưng không tương tác được với hoạt động dotrong qua trình này hoạt động không ở trạng thái chạy tiền cảnh.

Thời gian sống tiền cảnh của một hoạt động là quá trình bắt dầu từ khi có lờigọi tới phương thức onResume() và kết thúc bằng lời gọi tới phương thứconPause() Trong thời gian này, hoạt động chạy ở tiền cảnh và có thể tương tác vớingười dùng

b Service

Một dịch vụ (Service) là các đoạn mã được thực thi ngầm bởi hệ thống màngười sử dụng không thấy được Mỗi service đều được mở rộng từ lớp cơ sở làservice trong gói android.app Có thể kết nối tới hoặc kích hoạt một Service thôngqua interface mà Service đưa ra.Ví dụ như một chương trình chơi nhạc, sẽ có vàihoạt động cho phép người dùng duyệt danh sách các bài hát và lựa chọn bài nào đểphát Tuy nhiên, chức năng chơi nhạc không được thiết kế như một hoạt động bởichúng ta sẽ muốn chuyển qua cửa sổ khác, như khi soạn tin nhắn thì bài nhạc vẫntiếp tục được chơi Trong trường hợp này, ứng dụng chơi nhạc sẽ khởi tạo một dịch

vụ bằng cách sử dụng phương thức:

Context.startService()

Một ứng dụng có thể dễ dàng thực hiện liên kết tới một dịch vụ đang chạy(thậm chí khởi động nếu nó chưa thực thi) bằng phương thức Context.bindService().Khi đó dịch vụ này sẽ cung cấp cho ứng dụng cơ chế để giao tiếp với chúng thôngqua giao diện gọi là IBinder (đối với dịch vụ chơi nhạc có thể cho phép dừng hoặcchuyển qua bài nhạc kế tiếp)

- Vòng đời của một dịch vụ được hiểu là quá trình hoạt động từ khi nó đượctạo ra cho tới khi bị loại khỏi hệ thống Có hai cách thức để một dịch vụ có thể đượcchạy trong hệ thống

Trang 22

- Khi hệ thống có lời gọi tới phương thức Context.startService() Trong trườnghợp này, dịch vụ sẽ được thực hiện liên tục cho tới khi hệ thống gọi phương thứcContext.stopService().

- Khi các ứng dụng gọi phương thức Context.bindService() để tạo kết nối vớidịch vụ (dịch vụ sẽ được khởi tạo nếu tại thời điểm đó nó đang không hoạt động).Ứng dụng sẽ nhận được một đối tượng IBinder do dịch vụ trả lại để có thể gọi cácphương thức Callback phù hợp để truy cập tới các trạng thái của dịch vụ Nếu do lờigọi Context.bindService() mà dịch vụ được khởi tạo thì nó sẽ được thực thi cho tớikhi nào kết nối trên (tức là đối tượng IBinder) vẫn còn tồn tại

Hình 1.7: Sơ đồ chuyển trạng thái của service.

Trang 23

c Bộ phận quảng bá (Broadcast Receivers)

Bộ nhận quảng bá là một thành phần không làm gì cả nhưng nó nhận và phảnhồi lại các thông báo quảng bá Nhiều quảng bá có nguồn gốc từ mã hệ thống, ví dụthông báo thay đổi múi giờ, pin yếu, ảnh đã chụp hay thay đổi ngôn ngữ Các ứngdụng có thể khởi động quảng bá, ví dụ để các ứng dụng khác biết rằng dữ liệu đãđược tải về xong trên thiết bị và sẵn sàng sử dụng

Một ứng dụng có thể có bất kỳ số lượng bộ nhận quảng bá nào để nhận nhữngthông báo quan trọng với nó Tất cả các bộ nhận quảng bá được kế thừa từ lớpBroadcastReceiver

Bộ nhận quảng bá không có giao diện Tuy nhiên, chúng có thể khởi động mộthoạt động để đáp lại thông tin mà nó nhận được, hay chúng có thể sử dụngNotificationManager để thông báo người dùng biết Các thông báo có thể được sựchú ý của người dùng theo các cách các nhau như là sáng màn hình, rung thiết bị,bật âm thanh nào đấy… Thông thường, chúng đặt thông báo trên thanh trạng thái,nơi người dùng có thể nhận được thông báo

d Content Provider

Các ứng dụng có thể lưu trữ dữ liệu của mình trong các tập tin hoặc sử dụng

cơ sở dữ liệu SQLite sẵn có v.v… Content Provider có chức năng cung cấp một tậphợp các phương thức cho phép một ứng dụng có thể lưu trữ và lấy dữ liệu đượcquản lý bởi content provider đó

Content Provider là một đặc trưng riêng của Android, nhờ đó mà các ứng dụng

có thể chia sẻ dữ liệu với nhau một cách dễ dàng

1.2 Môi trường làm việc với Android

Trang 24

Hình 1.8: Trang web tải về JDK.

Sau khi tải được bản cài đặt JDK về máy, tiến hành cài đặt theo mặc định, chờđến khi tiến trình cài đặt báo Finish

Hình 1.9: Quá trình cài đặt JDK.

Trang 25

Tiếp theo, tải và cài đặt bộ cài Android Studio (đã bao gồm Android SDK) tạiđường dẫn : https://developer.android.com/studio/index.html

Hình 1.10: Trang web tải về Android Studio.

1.3.2 Cấu trúc và các thành phần của một project android [12]

Một project trong Android Studio chứa mọi thứ định nghĩa không gian làmviệc của bạn cho một ứng dụng, từ mã nguồn và asset, để kiểm tra mã và xây dựngcấu hình Khi bạn bắt đầu một project mới, Android Studio tạo cấu trúc cần thiếtcho tất cả các tệp và làm cho chúng hiển thị trong cửa sổ Project ở bên trái của IDE(nhấp vào View > Tool Windows > Project) Phần này cung cấp tổng quan về cácthành phần chính trong project của bạn

a Modules

Một mô đun là tập hợp các tập tin nguồn và cài đặt cho phép bạn chia dự áncủa bạn thành các đơn vị chức năng rời rạc Dự án của bạn có thể có một hoặc nhiềumô-đun và một mô-đun có thể sử dụng mô-đun khác Mỗi mô-đun có thể được xâydựng, thử nghiệm và gỡ lỗi độc lập

Trang 26

Android app module

Cung cấp vùng chứa cho mã nguồn, tệp tài nguyên và các cài đặt mức ứngdụng, chẳng hạn như tệp tin xây dựng cấp độ mô đun và Android Manifest Khi bạntạo dự án mới, tên mô đun mặc định là "app"

Hình 1.11: Cửa sổ New Module.

Trong cửa sổ Create New Module, Android Studio cung cấp các mô-đun ứngdụng sau:

 Phone & Tablet Module

 Android Wear Module

Cung cấp vùng chứa cho mã sử dụng lại của bạn, bạn có thể sử dụng trong các

mô đun ứng dụng khác hoặc import vào các dự án khác Về mặt cấu trúc, mô-đun

Trang 27

thư viện giống như mô-đun ứng dụng, nhưng khi được xây dựng, nó tạo tệp lưu trữ

mã thay vì APK, vì vậy không thể cài đặt trên thiết bị

Trong cửa sổ Create New Module, Android Studio cung cấp các mô-đun thưviện sau:

Thư viện Android: Loại thư viện này có thể chứa tất cả các loại tệp được hỗtrợ trong dự án Android, bao gồm mã nguồn, tài nguyên và các tệp kê khai Kết quảxây dựng là tệp Android Archive (AAR) mà bạn có thể thêm làm phụ thuộc vào các

mô đun ứng dụng Android của mình

Thư viện Java: Loại thư viện này chỉ có thể chứa các tệp nguồn Java Kết quảxây dựng là tệp Java Archive (JAR) mà bạn có thể thêm vào cho các mô đun ứngdụng Android của bạn hoặc các dự án Java khác

Một số người cũng xem các mô-đun như dự án con và điều đó không sao, bởi

vì Gradle cũng đề cập đến mô-đun như các dự án Ví dụ: khi bạn tạo một mô-đunthư viện và muốn thêm nó như là một phụ thuộc vào mô-đun ứng dụng Android củamình, bạn phải khai báo nó như sau:

mà thường không được sử dụng Một số thay đổi cấu trúc so với cấu trúc trên đĩabao gồm:

Hiển thị tất cả các tệp tin cấu hình liên quan đến xây dựng của dự án trongmột nhóm Gradle Script trên đầu

Trang 28

Hiển thị tất cả tệp manifest cho mỗi mô-đun trong nhóm cấp độ mô đun (khibạn có các tệp manifest khác nhau cho các đơn vị sản phẩm khác nhau và các kiểuxây dựng).

Hiển thị tất cả các tệp tài nguyên thay thế trong một nhóm, thay vì trong cácthư mục riêng biệt cho mỗi loại tài nguyên Ví dụ: tất cả các phiên bản độ phân giảicủa biểu tượng trình khởi chạy đều có thể nhìn thấy cạnh nhau

Trong mỗi mô đun ứng dụng Android, tệp được hiển thị trong các nhóm sau:

manifests : Gồm tệp tin AndroidManifest.xml

java : Gồm các tệp tin mã nguồn Java, được phân ra bởi tên gói, bao gồm cả

mã kiểm thử JUnit

res : Chứa tất cả các tài nguyên không mã, chẳng hạn như bố cục XML, chuỗigiao diện người dùng và hình ảnh bitmap, được chia thành các thư mục con tươngứng

Hình 1.12: Góc nhìn Android trong android studio.

Trang 29

Hình 1.13: Chi tiết các thư mục trong góc nhìn Android.

1 Thư mục app: Đây là thư mục chứa toàn bộ Project.

2 Thư mục res: Đây là thư mục chứa tài nguyên của Project, thư mục này

chứa các file giao diện, hình ảnh, mà ứng dụng của chúng ta cần đến khi chạy.Mình sẽ giới thiệu chi tiết các thư mục con của thư mục này:

+ Thư mục drawable: Đây là thư mục chứa các file hình ảnh của ứng dụng + Thư mục layout: Ở đây chứa các file giao diện của ứng dụng.

+ Thư mục menu: Chứa các file giao diện của menu, dùng điện thoại

Android thường thấy hầu hết các ứng dụng đều có thanh menu, thanh menu đó màusắc ra sao, hiển thị thế nào đều là do định dạng của các file giao diện chứa trong thư

mục menu này.

+ Thư mục mipmap: Nơi chứa icon của ứng dụng.

Trang 30

+ Thư mục values: Đây là nơi quản lý các giá trị, ở trong này có các file strings.xml, styles.xml và thư mục dimens.xml.

- strings.xml: file quản lý các chuỗi, file này rất hữu ích khi chúng ta phát

triển ứng dụng đa ngôn ngữ

- styles.xml: file chức các style được định nghĩa mặc định của IDE và của lập

trình viên, có thể định dạng style cho app, hoặc cho 1 activity riêng lẻ v.v

- dimens.xml: đây là folder chứa file định dạng các kích thước Ví dụ: trong

file giao diện có thuộc tính margin = "20px" thì thay vì gán trực tiếp 20px như vậy

Android Studio khuyến khích chúng ta dịnh dạng kích thước đó sẵn

trong dimens.xml và truy xuất đến giá trị đó như sau: margin =

"@dimens/tên_giá_trị_đã_định_dạng_trong_dimens.xml"

3 Gradle Script: gồm các tập tin cấu hình của tất cả các mô-đun, cần kiểm

soát sự thay đổi của gradle với toàn bộ project

Nó xác định những tiến trình nào sẽ lưu trữ các thành phần ứng dụng

Nó khai báo các quyền mà ứng dụng phải có để truy cập các phần được bảo

vệ của API và tương tác với các ứng dụng khác

Trang 31

Nó cũng khai báo các quyền mà ứng dụng khác phải có để tương tác với cácthành phần của ứng dụng.

Nó liệt kê các lớp Instrumentation cung cấp tính năng tạo hồ sơ và các thôngtin khác khi ứng dụng đang chạy Những khai báo này chỉ xuất hiện trong bản kêkhai khi ứng dụng đang được phát triển và thử nghiệm; chúng bị loại bỏ trước khiứng dụng được công bố

Nó khai báo mức tối thiểu của API Android mà ứng dụng yêu cầu

Nó liệt kê các thư viện mà ứng dụng phải được liên kết với

Hình 1.14 minh họa cấu trúc chung của tệp manifest và mọi phần tử mà nó cóthể chứa Từng phần tử, cùng với tất cả thuộc tính của mình, sẽ được lập tài liệutheo dõi đầy đủ vào một tệp riêng Để xem thông tin chi tiết về mọi phần tử, hãynhấp vào tên phần tử trong sơ đồ, trong danh sách các phần tử theo thứ tự chữ cái,hoặc trên bất kỳ nội dung nào khác đề cập tới tên phần tử

Hình 1.14: Cấu trúc tệp tin manifest

Trang 32

1.4 Giới thiệu về Web Service trong PHP và MySQL[11]

1.4.1 Khái niệm

Theo định nghĩa của W3C, web service là một hệ thống phần mềm được thiết

kế để hỗ trợ khả năng tương tác giữa các ứng dụng trên các máy tính khác nhauthông qua mạng Internet Giao diện chung và sự gắn kết của nó được mô tả bằngXML Web service là tài nguyên phần mềm có thể xác định bằng địa chỉ URL, thựchiện các chức năng và đưa ra các thông tin người dùng yêu cầu Một Web serviceđược tạo nên bằng cách lấy các chức năng và đóng gói chúng sao cho các ứng dụngkhác dễ dàng nhìn thấy và có thể truy cập đến những dịch vụ mà nó thực hiện, đồngthời có thể yêu cầu thông tin từ Web service khác Nó bao gồm các mô đun độc lậpcho hoạt động của khách hàng và doanh nghiệp và bản thân nó được thực thi trênserver

1.4.2 Đặc điểm

Web service cho phép client và server tương tác được với nhau ngay cả trongnhững môi trường khác nhau Ví dụ, đặt Web server cho ứng dụng trên một máychủ chạy hệ điều hành Linux trong khi người dùng sử dụng máy tính chạy hệ điềuhành Windows, ứng dụng vẫn có thể chạy và xử lý bình thường mà không cần thêmyêu cầu đặc biệt để tương thích giữa hai hệ điều hành này

-Phần lớn kĩ thuật của Web service được xây dựng dựa trên mã nguồn mở vàđược phát triển từ các chuẩn đã được công nhận, ví dụ như XML

-Một Web service bao gồm có nhiều mô-đun và có thể công bố lên mạngInternet

-Là sự kết hợp của việc phát triển theo hướng từng thành phần với những lĩnhvực cụ thể và cơ sở hạ tầng Web, đưa ra những lợi ích cho cả doanh nghiệp, kháchhàng, những nhà cung cấp khác và cả những cá nhân thông qua mạng Internet.-Một ứng dụng khi được triển khai sẽ hoạt động theo mô hình client-server

Nó có thể được triển khai bởi một phần mềm ứng dụng phía server ví dụ như PHP,Oracle Application server hay Microsoft.Net…

Ngày đăng: 06/07/2017, 08:26

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w