1. Trang chủ
  2. » Luận Văn - Báo Cáo

xây dựng ứng dụng quản lý hàng hóa trên thiết bị di động android

75 907 1

Đ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 75
Dung lượng 2,95 MB

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

Nội dung

- Hiểu về nguyên lý hoạt động của Android, các thành phần của hệ thống cũng như của một ứng dụng thực thi trên nền Android.. Đồng thời, tìm hiểu về hệ điều hành Android thông qua sách, t

Trang 1

Sinh viên thực hiện:

NGUYỄN THANH HOÀNG

MSSV: 1101878

Cán bộ hướng dẫn: ThS HỒ VĂN TÚ

Trang 2

Cần Thơ, 2014

Sinh viên thực hiện:

NGUYỄN THANH HOÀNG

MSSV: 1101878

Cán bộ hướng dẫn: ThS HỒ VĂN TÚ

Cán bộ phản biện Luận văn được bảo vệ tại: Hội đồng chấm luận văn tốt nghiệp Bộ môn Tin học Ứng dụng Khoa Khoa học Tự nhiên, Trường Đại học Cần Thơ vào ngày 12 tháng 12 năm 2014

Mã số đề tài:

Có thể tìm hiểu luận văn tại:

- Trung tâm Học liệu, Trường Đại học Cần Thơ

- Website: http://www.lrc.ctu.edu.vn/

TRƯỜNG ĐẠI HỌC CẦN THƠ

KHOA KHOA HỌC TỰ NHIÊN

BỘ MÔN TIN HỌC ỨNG DỤNG

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

XÂY DỰNG ỨNG DỤNG QUẢN LÝ HÀNG HÓA TRÊN THIẾT BỊ DI ĐỘNG ANDROID

Trang 3

LỜI CẢM ƠN

  

Trong suốt quá trình học tập, rèn luyện đặc biệt là giai đoạn thực hiện luận văn

“Xây dựng ứng dụng quản lý hàng hóa trên thiết bị di động Android”, tôi đã gặp rất nhiều khó khăn và trở ngại Tuy nhiên nhờ có sự hướng dẫn từ Thầy, Cô và sự giúp đỡ

từ bạn bè cộng với sự cố gắng và nỗ lực của bản thân, tôi đã hoàn thành luận văn này Tôi xin gởi lời cảm ơn chân thành nhất đến:

Quý Thầy, Cô trong bộ môn Tin học Ứng Dụng – Khoa Khoa học Tự Nhiên – Trường Đại học Cần Thơ đã tận tình truyền đạt kiến thức trong 4 năm học tập Với vốn kiến thức tiếp thu trong quá trình học đã tạo nền tảng giúp tôi thực hiện luận văn này Xin gởi lời tri ân đến giáo viên hướng dẫn ThS Hồ Văn Tú đã tận tình hướng dẫn

và góp ý cho tôi rất nhiều trong quá trình làm luận văn

Bạn bè trong lớp Tin học Ứng dụng K36 đã kịp thời chia sẻ và đưa ra những góp ý cho đề tài

Mặc dù đã cố gắng hoàn thành luận văn này, nhưng với lượng kiến thức có hạn

về một lĩnh vực mới sẽ khó tránh khỏi những thiếu sót và hạn chế Do đó, tôi rất mong nhận được sự nhận xét và góp ý từ quí Thầy, Cô, bạn bè để có thể rút kinh nghiệm và hoàn thiện hơn

Tôi xin chân thành cảm ơn!

Cần Thơ, ngày 1 tháng 12 năm 2014

Sinh viên thực hiện

Nguyễn Thanh Hoàng

Trang 4

NHẬN XÉT CỦA CÁN BỘ HƯỚNG DẪN

  

Trang 5

NHẬN XÉT CỦA CÁN BỘ PHẢN BIỆN

  

Trang 6

MỤC LỤC

MỤC LỤC iv

DANH MỤC TỪ VIẾT TẮT vii

DANH MỤC HÌNH VẼ viii

DANH MỤC BẢNG x

TÓM TẮT xi

ABSTRACT xii

CHƯƠNG 1: CHƯƠNG MỞ ĐẦU 1

1.1 LÝ DO CHỌN ĐỀ TÀI 1

1.2 MỤC TIÊU VÀ NHIỆM VỤ 2

1.3 ĐỐI TƯỢNG NGHIÊN CỨU VÀ PHẠM VI HỆ THỐNG 2

1.3.1 Đối tượng nghiên cứu 2

1.3.2 Phạm vi chức năng 2

1.3.3 Phạm vi yêu cầu kỹ thuật 2

1.4 PHƯƠNG PHÁP NGHIÊN CỨU 3

1.4.1 Về phương pháp thu thập thông tin 3

1.4.2 Về lý thuyết 3

1.4.3 Về công nghệ 3

1.5 Ý NGHĨA THỰC TIỄN CỦA ỨNG DỤNG 3

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4

2.1 SƠ LƯỢC QUÁ TRÌNH PHÁT TRIỂN CỦA ANDROID [3] 4

2.1.1 Giới thiệu về Android 4

2.1.2 Lịch sử phát triển 4

2.2 DELVING VỚI MÁY ẢO DALVIK [3] 9

2.3 KIẾN TRÚC CỦA ANDROID [3] 9

2.3.1 Linux kernel 10

2.3.2 Library và Android Runtime 11

2.3.2.1 Library 11

2.3.2.2 Android runtime 12

2.3.3 Framework 12

2.3.4 Aplication 13

Trang 7

2.4 CÁC THÀNH PHẦN CỦA ANDROID [3] 14

2.4.1 Thành phần của một chương trình Android 14

2.4.1.1 Activity 14

2.4.1.2 Intent 16

2.4.1.3 Service 16

2.4.1.4 Broadcast Receiver 17

2.4.1.5 Content Provider 18

2.4.1.6 View 18

2.4.1.7 Lưu trữ dữ liệu 20

2.4.1.8 SQLite 20

2.4.1.9 Manifest File 21

2.4.1.10 Giao diện người dùng trong Android 21

2.4.2 Bắt sự kiên trong Android 22

2.4.3 Menu 22

2.5 CÁC THÀNH PHẦN TRONG MỘT ANDROID PROJECT [3] 23

CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ ỨNG DỤNG 27

3.1 ĐẶC TẢ HỆ THỐNG 27

3.1.1 Giới thiệu 27

3.1.2 Mô tả bài toán 27

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

3.2.1 Xây dựng các thực thể 27

3.2.2 Mô hình thực thể mối kết hợp 30

3.2.3 Mô hình dữ liệu vật lý (Physical Data Model - PDM) 32

3.2.4 Lược đồ cơ sở dữ liệu quan hệ 33

3.2.5 Sơ đồ Use Case 35

3.2.5.1 Use Case quản lý nhà cung cấp 35

3.2.5.2 Use Case quản lý nhập hàng hóa 36

3.2.5.3 Use Case quản lý khách hàng 36

3.2.5.4 Use Case quản lý hóa đơn bán 37

3.2.6 Sơ đồ tuần tự 37

3.2.6.1 Thêm nhà cung cấp 37

Trang 8

3.2.6.2 Thêm hàng hóa 38

3.2.6.3 Thêm khách hàng 38

3.2.6.4 Thêm hóa đơn bán 39

3.3 KẾT QUẢ ĐẠT ĐƯỢC 40

3.3.1 Về lý thuyết 40

3.3.2 Về chương trình 40

3.4 ỨNG DỤNG QUẢN LÝ HÀNG HÓA TRÊN THIẾT BỊ DI ĐỘNG ANDROID 41

3.4.1 Danh sách các màn hình 41

3.4.2 Mô tả chi tiết mỗi màn hình 42

3.4.2.1 Màn hình chính của chương trình 42

3.4.2.2 Màn hình thêm nhà cung cấp 43

3.4.2.3 Màn hình danh sách nhà cung cấp 44

3.4.2.4 Màn hình chỉnh sửa nhà cung cấp 45

3.4.2.5 Màn hình thêm hàng hóa 46

3.4.2.6 Màn hình danh sách hàng hóa 47

3.4.2.7 Màn hình chỉnh sửa hàng hóa 48

3.4.2.8 Thông tin chi tiết hàng hóa 49

3.4.2.9 Màn hình thêm khách hàng 50

3.4.2.10 Màn hình danh sách khách hàng 51

3.4.2.11 Màn hình chỉnh sửa khách hàng 52

3.4.2.12 Màn hình thêm hóa đơn bán 53

3.4.2.13 Màn hình danh sách hóa đơn bán 54

3.4.2.14 Màn hình chỉnh sửa hóa đơn bán 55

3.4.2.15 Màn hình báo cáo 56

3.4.2.16 Màn hình sao lưu và phục hồi cơ sở dữ liệu 57

3.4.2.17 Màn hình tìm kiếm hàng hóa 58

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 59

DANH MỤC TÀI LIỆU THAM KHẢO 61

Trang 9

DANH MỤC TỪ VIẾT TẮT

API: Application Programming Interface (Giao diện lập trình ứng dụng)

CPU: Central Processing Unit (Đơn vị xử lý trung tâm)

CSDL: Cơ sở dữ liệu

DTD: Document Type Definition (Định nghĩa kiểu văn bản)

GPS: Global Positioning System (Hệ thống định vị toàn cầu)

HD: High-Definition (Độ nét cao)

HTML: HyperText Markup Language (Ngôn ngữ đánh dấu siêu văn bản)

JSON: JavaScript Object Notation (Định dạng trao đổi dữ liệu cực nhẹ)

OOP: Object-Oriented Programming (Lập trình hướng đối tượng)

OHA: Open Handset Alliance (Liên minh thiết bị cầm tay mở rộng)

SDK: Software Development Kit (Bộ công cụ phát triển phần mềm)

XML: eXtensible Markup Language (Ngôn ngữ đánh dấu mở rộng)

SQLITE: Hệ quản trị cơ sở dữ liệu

HĐH: Hệ điều hành

Trang 10

DANH MỤC HÌNH VẼ

Hình 1.1 Các thành viên của liên minh di động mở 5

Hình 2.1: Cấu trúc hệ thống Android 9

Hình 2.2: Cấu trúc Linux kernel 10

Hình 2.3: Cấu trúc Library và Android runtime 11

Hình 2.4: Cấu trúc Framework 12

Hình 2.5 Chu kỳ sống của activity 15

Hình 2.6: Cấu trúc truyền tải dữ liệu giữa các Activity 16

Hình 2.7: Cấu trúc của một service 17

Hình 2.8: Các thành phần trong một Android project 23

Hình 3.1: Mối kết hợp hàng hóa với nhà cung cấp 30

Hình 3.2: Mối kết hợp hàng hóa với khách hàng 31

Hình 3.3: Mô hình dữ liệu quan niệm 32

Hình 3.4: Mô hình dữ liệu vật lý 32

Hình 3.5: Lược đồ cơ sở dữ liệu quan hệ 33

Hình 3.6: Sơ đồ Use Case quản lý nhà cung cấp 35

Hình 3.7: Use Case quản lý nhập hàng hóa 36

Hình 3.8: Use Case quản lý khách hàng 36

Hình 3.9: Use Case quản lý hóa đơn bán 37

Hình 3.10: Sơ đồ tuần tự thêm nhà cung cấp 37

Hình 3.11: Sơ đồ tuần tự thêm hàng hóa 38

Hình 3.12: Sơ đồ tuần tự thêm khách hàng 38

Hình 3.13: Sơ đồ tuần tự thêm hóa đơn bán 39

Hình 3.14: Màn hình chính của chương trình 42

Hình 3.15: Màn hình thêm nhà cung cấp 43

Hình 3.16: Màn hình danh sách nhà cung cấp 44

Hình 3.17: Màn hình chỉnh sửa nhà cung cấp 45

Hình 3.18: Màn hình thêm hàng hóa 46

Hình 3.19: Màn hình danh sách hàng hóa 47

Hình 3.20: Màn hình chỉnh sửa hàng hóa 48

Hình 3.21: Màn hình thông tin chi tiết hàng hóa 49

Trang 11

Hình 3.22: Màn hình thêm khách hàng 50

Hình 3.23: Màn hình danh sách khách hàng 51

Hình 3.24: Màn hình chỉnh sửa khách hàng 52

Hình 3.25: Màn hình thêm hóa đơn bán 53

Hình 3.26: Màn hình danh sách hóa đơn bán 54

Hình 3.27: Màn hình chỉnh sửa hóa đơn bán 55

Hình 3.28: Màn hình báo cáo 56

Hình 3.29: Màn hình backup và restore cơ sở dữ liệu 57

Trang 12

DANH MỤC BẢNG

Bảng 3.1 Thuộc tính của thực thể nhà cung cấp 28

Bảng 3.2 Thuộc tính của thực thể khách hàng 28

Bảng 3.3 Thuộc tính của thực thể hàng hóa 28

Bảng 3.4 Thuộc tính của thực thể hóa đơn nhập 29

Bảng 3.5 Thuộc tính của thực thể hóa đơn bán 29

Bảng 3.6 Thuộc tính của thực thể nhân viên 29

Trang 13

TÓM TẮT

Hiện nay, việc kinh doanh của các cửa hàng bách hóa ngày càng phát triển

Điều đó làm cho việc phát triển đội ngũ nhân viên bán hàng hoặc tiếp thị tại các cửa

hàng nhằm mục giới thiệu hàng hóa, sản phẩm cũng không ngừng phát triển theo Bên

cạnh đó là sự phát triển của những chiếc điện thoại thông minh Do đó, việc phát triển

các ứng dụng quản lý các hàng hóa trên điện thoại thông minh là một điều cần thiết

Ứng dụng này giúp cho việc quản lý hàng hóa, sản phẩm của các nhân viên bán hàng

hoặc tiếp thị trở nên tiện lợi hơn và tiết kiệm thời gian hơn

Mục tiêu của luận văn là tìm hiểu công nghệ lập trình ứng dụng Android để hoàn

thành ứng dụng quản lý hàng hóa Luận văn gồm năm phần chính Phần một giới thiệu

lý do chọn đề tài, mục tiêu, nhiệm vụ, đối tượng và phương pháp nghiên cứu, ý nghĩa

thực tiễn của ứng dụng Phần hai khái quát về cơ sở lý thuyết cần cho thiết kế ứng

dụng Phần ba phân tích và thiết kế hệ thống, sơ đồ ứng dụng, xây dựng ứng dụng thực

tiễn Cuối cùng là kết luận và hướng phát triển cho ứng dụng

Ứng dụng quản lý hàng hóa được viết bằng ngôn ngữ Java trên nền tảng Android

và sử dụng hệ quản trị cơ sở dữ liệu SQLite

Sau khi hoàn thành, ứng dụng có thể xử lý được các yêu cầu cơ bản như lưu trữ,

cập nhật thông tin hàng hóa, tìm kiếm, báo cáo thông tin theo yêu cầu Đồng thời cũng

cho phép nhập và xuất thông tin hàng hóa

Về mặt ý nghĩa, ứng dụng này sẽ nâng cao hiệu quả quản lý hàng hóa cho các

nhân viên bán hàng trở nên nhanh chóng và chính xác hơn

Từ khóa: hàng hóa, hệ điều hành, Android, cơ sở dữ liệu, quản lý

Trang 14

ABSTRACT

Nowadays, the business of the grocery stores more and more develop That

makes the development of the sale staff or market staff at the stores in order to

introduce goods, products, which also develop Besides that, this is the development of

smartphones Therefore, it is necessary to develop the management application of

goods in smartphones This application is going to help the management of goods,

products of the sale staff or market staff, which becomes more and more convenient

and time-saving

The purpose of the dissertation is finding out the technology programming of

Android application to complete the grocery store’s management application The

dissertation has 5 main parts Part 1 the introduction of reasons for selecting the topic,

aims, mission, objects and research methods, practical significance of the application

Part 2 the overview of the theoretical bases needed for designing of application Part 3

analysis and designing of system, application diagrams, construction for practical

applications Finally is that, the conclusion and the tendency for development of

application

This application written in Java and management system use SQLite database

on the Android

After conplete the construction, this aplication can handle the basic re

quirements, such as storage, update information goods, search and statistical

information as required In addition, it also allow import and export goods

In terms of significance, this application will enhance effective management of

goods for the salesperson becomes more quickly and accurately

Key words: goods, management system, Android, database, management

Trang 15

CHƯƠNG 1: CHƯƠNG MỞ ĐẦU

vụ tốt hơn cho những nhu cầu thiết yếu cho con người Lập trình ứng dụng, lập trình quản lý trên di động cũng là tiềm năng trong sự phát triển của công nghệ di động

Và từ đó các ứng dụng quản lý trên di động xuất hiện ngày càng nhiều, trên các

hệ điều hành khác nhau như Android, iOS, RIM Blackberry OS, Symbian… Và Android là hệ điều hành do Google mua về và cho ra đời vào năm 2007, đây là hệ điều hành tương đối mới và đang rất được ưa chuộng trên thị trường từ khi nó ra đời, nên

tôi đã chọn đề tài “Xây dựng ứng dụng quản lý hàng hóa trên thiết bị di động Android”

Trang 16

1.2 MỤC TIÊU VÀ NHIỆM VỤ

Mục tiêu: Tìm hiểu được các công nghệ lập trình cần thiết trên nền Android để hoàn

thành ứng dụng quản lý một cách hiệu quả

- Hiểu về nguyên lý hoạt động của Android, các thành phần của hệ thống cũng như của một ứng dụng thực thi trên nền Android

- Tìm hiểu và áp dụng được các công nghệ lập trình trên nền Android như ngôn ngữ JAVA, cơ sở dữ liệu SQLite

Nhiệm vụ: Nghiên cứu về Android và bộ thư viện lập trình trên nền Android Tìm

hiểu các dịch vụ liên quan và xây dựng ứng dụng quản lý hàng hóa

1.3 ĐỐI TƢỢNG NGHIÊN CỨU VÀ PHẠM VI HỆ THỐNG

1.3.1 Đối tƣợng nghiên cứu

- Ngôn ngữ JAVA, PHP, JSON, XML

- Cơ sở dữ liệu SQLite

- Công cụ Android SDK & Eclipse

- Hệ điều hành và tài nguyên hệ thống Android

1.3.3 Phạm vi yêu cầu kỹ thuật

Trong quá trình sử dụng, ứng dụng phải đảm bảo các yêu cầu như:

 Giao diện trực quan, thân thiện, giúp người dùng thao tác dễ dàng, nhanh chóng

 Tốc độ truy xuất nhanh, linh hoạt

 An toàn và bảo mật thông tin của dữ liệu

Trang 17

1.4 PHƯƠNG PHÁP NGHIÊN CỨU

1.4.1 Về phương pháp thu thập thông tin

Tìm hiểu quy trình quản lý thông tin hàng hóa thông qua quan sát thực tế và từ

giáo viên hướng dẫn Dựa trên những thông tin đó, tiến hành phân tích, thiết kế và xây

dựng ứng dụng cho đầy đủ, phù hợp với quy trình hoạt động trong thực tế

1.4.2 Về lý thuyết

Vận dụng những kiến thức từ những học phần đã học, đặc biệt là môn học phân

tích và thiết kế hệ thống thông tin, Lập trình hướng đối tượng với ngôn ngữ Java để

xây dựng mô hình cơ sở dữ liệu và lập trình

Đồng thời, tìm hiểu về hệ điều hành Android thông qua sách, tài liệu, thông qua

 Hệ quản trị cơ sở dữ liệu: SQLite

1.5 Ý NGHĨA THỰC TIỄN CỦA ỨNG DỤNG

Chương trình có thể áp dụng vào công việc hàng ngày khi người bán hàng có

nhu cầu sử dụng đến, ứng dụng rất dễ sử dụng và thân thiện với người dùng

Trang 18

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1 SƠ LƯỢC QUÁ TRÌNH PHÁT TRIỂN CỦA ANDROID [3]

2.1.1 Giới thiệu về Android

Thiết bị chuẩn của Android bao gồm bốn phím chính (cứng hoặc mềm) là home, back, search và menu (iPhone chỉ có duy nhất phím Home)

- Phím Home sẽ quay trở về màn hình home

- Phím back quay lại màn hình trước đó

- Phím search và menu sẽ tùy từng ứng dụng mà chúng sẽ có action tương ứng

Android được xây dựng trên nhân Linux và được phân phối miễn phí Không giống như Windows mobile và Apple iPhone, tuy cả hai đều cung cấp môi trường phát triển ứng dụng phong phú và đơn giản dễ tiếp cận nhưng luôn có sự ưu tiên cho các ứng dụng mặc định có sẵn của hệ điều hành (native applications) Với Android mọi ứng dụng đều được viết trên cùng một tập API, thế nên không có sự phân biệt giữa các ứng dụng mặc định và các ứng dụng của bên thứ ba Người dùng hoàn toàn có thể thay thế mọi ứng dụng mặc định bằng các ứng dụng yêu thích của mình, thậm chí ngay cả màn hình thực hiện cuộc gọi và màn hình chính (home scream)

Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm và viễn thông nhằm mục đính tạo nên một chuẩn mở cho điện thoại di động trong tương lai Google công bố hầu hết các mã nguồn Android theo bản cấp phép Apache

Trang 19

Hình 1.1 Các thành viên của liên minh di động mở

Các ứng dụng có sẵn trên Android

Một điện thoại Android thông thường sẽ đi kèm với một vài ứng dụng có sẵn, bao gồm:

 Một trình email tương thích với Gmail

 Chương trình quản lý tin nhắn SMS

 Chương trình quản lý thông tin cá nhân, bao gồm cả lịch làm việc, danh bạ

và được đồng bộ hóa với dịch vụ Google

 Phiên bản thu gọn của Google Map cho điện thoại, bao gồm StreetView, tìm kiếm địa chỉ, chỉ đường, tình trạng giao thông…

 Trình duyệt Web dựa trên nhân Webkit

 Chương trình tán gẫu (Chat)

 Trình đa phương tiện ( chơi nhạc, xem phim…)

 Android MarketPlace cho phép người dùng tải về và cài đặt các ứng dụng mới

Trang 20

Tất cả các ứng dụng có sẵn đều được viết bằng ngôn ngữ Java và sử dụng Android SDK

Các dữ liệu về thông tin người dùng được các ứng dụng có sẵn sử dụng như thông tin về danh bạ vẫn hoàn toàn có thể được sử dụng bởi các ứng dụng của bên thứ

ba Tương tự vậy, ứng dụng của bạn hoàn toàn có thể xử lý các sự kiện như các cuộc gọi đến, nhận một tin nhắn mới… thay cho các ứng dụng có sẵn

 Truy cập phần cứng

Android bao gồm các thư viện API giúp đơn giản hóa tối đa việc sử dụng phần cứng của thiết bị Điều đó đảm bảo rằng bạn không cần phải bận tâm nhiều đến việc ứng dụng của mình có thể chạy như mong đợi trên nhiều thiết bị khác nhau hay không, miễn là thiết bị đó có hỗ trợ Android

Android SDK bao gồm các API cho phần cứng :GPS, Camera, kết nối mạng, WIFI, Bluetooth, con quay gia tốc, màn hình cảm ứng, quản lý năng lượng…

 Hệ thống thông báo

Thông báo là cách thức tiêu chuẩn mà ở đó thiết bị báo cho người dùng đã có một sự kiện nào đó đã xảy ra Chẳng hạn như có cuộc gọi tới, máy sắp hết pin… Sử dụng các API bạn có thể cho ứng dụng của mình thông báo tới người dùng bằng âm thanh, rung, hoặc thậm chí cả đèn LED của thiết bị

Trang 21

 Tối ưu hóa bộ nhớ và quản lý tiến trình

Việc quản lý bộ nhớ và tiến trình trong Android cũng có một chút khác biệt giống như công nghệ Java và NET, Android sử dụng một bộ Run-time của riêng mình với công nghệ ảo hóa để quản lý bộ nhớ của các ứng dụng đang chạy Không giống như những nền tảng khác, Android Run-time cũng đồng thời quản lý luôn cả thời gian sống của ứng dụng Android đảm bảo các ứng dụng đều được đáp ứng bằng cách dừng

và hủy các tiến trình không cần thiết để giải phóng các tài nguyên cho các tiến trình có

độ ưu tiên cao hơn

Trong bối cảnh đó, độ ưu tiên được xác định tùy thuộc vào ứng dụng mà người dùng đang tương tác Android đảm bảo rằng các ứng dụng được hủy một cách nhanh chóng, đồng thời cũng khởi động là nhanh cũng không kém nếu cần Điều này thật sự quan trọng trong một môi trường mà ở đó bản thân ứng dụng không thể tự kiểm soát được thời gian sống cho mình

Android software development kit (SDK)

Bộ SDK của Android bao gồm mọi thứ cần thiết giúp bạn có thể lập trình, debug, test ứng dụng Android

Android API: Cốt lõi của bộ SDK là thư viện các hàm API và Google cũng chỉ sử

dụng bộ API này để xây dựng các ứng dụng có sẵn cho Android

Development tool: SDK bao gồm rất nhiều công cụ để giúp biên dịch, sửa lỗi và hỗ

trợ trong việc lập trình ứng dụng

Android Emulator: Trình giả lập thiết bị chạy Android thực sự với nhiều Skin thay

thế, cực kì tiện lợi cho việc test ứng dụng Android ngay trên máy tính mà không cần phải thông qua một thiết bị chạy Android thực

Tài liệu: SDK bao gồm một bộ tài liệu rất chi tiết, giải thích cặn kẽ chính xác những gì

bao gồm trong mỗi page, class cùng với cách sử dụng chúng Ngoài tài liệu về “code”, còn có những tài liệu dùng để “getting started” và giải thích các nguyên tắc và cơ chế hoạt động của ứng dụng trong Android

Code mẫu: SDK bao gồm các ứng dụng mẫu đơn giản minh họa cho các tính năng nổi

bật trên Android, cũng như các ứng dụng demo cách sử dụng các tính năng của bộ API

Kiến trúc ứng dụng

Ý tưởng của Android là việc khuyến khích tái sử dụng lại các thành phần đã có, cho phép ứng dụng của bạn có thể chia sẻ Activity, Service, Dữ liệu với các ứng dụng khác nhau trong giới hạn bạn đặt ra

Sau đây là kiến trúc của mọi ứng dụng Android:

Trang 22

- Activity Manager : Kiểm soát vòng đời của Activity

- View : Xây dựng giao diện người dùng cho Activity

- Notification Manager: Cung cấp một cơ chế thống nhất và an toàn để ứng

dụng có thể đưa ra các thông báo cho người dùng

- Content Provider: Giúp trao đổi và chia sẽ dữ liệu giữa các ứng dụng với

nhau

- Resource Manager: Hỗ trợ quản lý các tài nguyên không là code như các

chuỗi, hình ảnh, và âm thanh…

Các thư viện của Android

Android cung cấp các gói API để phát triển ứng dụng Sau đây là các API mà tất cả các thiết bị Android đều tối thiểu phải hỗ trợ để giúp cho chúng ta một cái nhìn tổng quát về thư viện này

 Android.util : Gói API lõi, chứa các class cấp thấp như container, string formatter, XML parsing

 Android.os : Truy cập tới chức năng của hệ điều hành như : gởi nhận tin nhắn, giao tiếp nội bộ giữa các ứng dụng, thời gian…

 Android.graphics: Cung cấp các lớp liên quan tới xử lý đồ họa ở mức thấp

Hỗ trợ các hàm cơ bản như vẽ điểm, vẽ miền, tô màu trên khung canvas

 Android.text: Cung cấp các hàm phân tích và xử lý chuỗi

 Android.database: Cung cấp các lớp cấp thấp cần thiết để làm việc với database

 Android.content: Dùng để quản lý các tài nguyên, các nội dung và các gói

 Android.view: Views là lớp cha của mọi lớp giao diện người dùng

 Android.widget: Được thừa kế từ lớp View, bao gồm các lớp cơ bản để xây dựng giao diện widget như: list, button, layout

 Android.map: Gói API cấp cao, dùng để truy cập tới các chức năng của GoogleMap

 Android.app: Gói API cấp cao, bao gồm các Activity và Service – hai lớp cơ

sở cho mọi ứng dụng Android

 Android.telephony: Cung cấp cho bạn khả năng tương tác trực tiếp với các chức năng cơ bản của một điện thoại như nghe, gọi, tin nhắn

Trang 23

 Android.webkit: cung cấp một webView control trên nền webkit để có thể nhúng ứng dụng, cùng với các API điều khiển cơ bản như stop, refresh, cookieManager…

2.2 ANDROID RUNTIME [3]

Dalvik là máy ảo giúp các ứng dụng java chạy được trên các thiết bị di động Android

Nó chạy các ứng dụng đã được chuyển đổi thành một file thực thi Dalvik (dex) Định dạng phù hợp cho các hệ thống mà thường bị hạn chế về bộ nhớ và tốc độ xử lý

Dalvik trông giống như máy ảo Java (Java Virtual Machine) nhưng thực tế thì hoàn toàn khác dưới gốc nhìn của nhà phát triển Khi nhà phát triển viết một ứng dụng dành cho Android, anh ta thực hiện các đoạn mã trong môi trường Java Sau đó, nó sẽ được biên dịch sang các bytecode của Java, tuy nhiên để thực thi được ứng dụng này trên Android thì nhà phát triển phải thực thi một công cụ có tên là dex Đây là công cụ dùng để chuyển đổi bytecode sang một dạng gọi là dex bytecode "Dex" là từ viết tắt của "Dalvik executable" đóng vai trò như cơ chế ảo thực thi các ứng dụng Android

2.3 KIẾN TRÚC CỦA ANDROID [3]

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 Mỗi một phần sẽ được đặc tả một cách chi tiết dưới đây

Hình 2.1: Cấu trúc hệ thống Android

Trang 24

2.3.1 Linux kernel

Hệ điều hành Android được phát triển dựa trên hạt nhân Linux Lớp này chứa tất cả các thiết bị mức thấp điều khiển các thành phần phần cứng khác nhau của một thiết bị Android bao gồm quản lý bộ nhớ (memory managerment), giao diện với phần cứng (driver medel), thực hiện bảo mật (security), quản lý tiến trình (process)

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

về

- Bluetooth Driver: Điều khiển thiết bị phát và thu sóng Bluetooth

- USB Driver: Quản lý hoạt động của các cổng giao tiếp USB

- Keypad Driver: Điều khiển bàn phím

- Wifi Driver: Chịu trách nhiệm về việc thu sóng wifi

- Audio Driver: Điều khiển các bộ thu phát âm thanh, giải mã tín 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ư SD, flash

Trang 25

- 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 để đảm bào những chức năng truyền thông được thực hiện

2.3.2 Library và Android Runtime

Phần này có 2 thành phần là Library và Android runtime

Hình 2.3: Cấu trúc Library và Android runtime

- Suface 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

Trang 26

2.3.2.2 Android runtime

Phần này chứa các thư viện mà một chương trình có thể hoạt động Phần này có hai 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, Collection, File Access Thứ hai

là một máy ảo java (Dalvik Virtual Machine) Mặc dù cũng được viết bằng 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 một nhà phát triểm 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 dalvik thực thi tập tin dalvik (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.3.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 để các thanh trạng thái

và nhiều hơn nữa

Hình 2.4: Cấu trúc Framework 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ế giao diện ứng dụng như: gridview, tableview, linearlayout,…

Trang 27

- Activity Manager: Quản lý các chu kỳ sống của một ứng dụng cũng như cung cấp công cụ điều khiển các Activity

- Telephony Manager: Cung cấp công cụ để thực hiện việc liên lạc như gọi điện thoại

- Location Manager: Cho phép xác định vị trí của điện thoại dựa vào hệ thống định vị toàn cầu GPS và Google Maps

- Window Manager: Quản lý việc xây dựng và hiển thị các giao diện người dùng cũng như tổ chức quản lý các giao diện giữa các ứng dụng

- Notication Manager: Quản lý tài nguyên tĩnh của các ứng dụng bao gồm các file hình ảnh, âm thanh Layout String (Những thành phần không được viết bởi ngôn ngữ lập trình)

- Content Provider: Cho phép các ứng dụng có thể truy xuất dự liệu từ các ứng dụng khác (chẳng hạn như Contacts) hoặc là chia sẻ dữ liệu giữa các ứng dụng đó

2.3.4 Aplication

Đâ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ứ ba,…

Các ứng dụng viết sẽ có những đặc tính sau:

- Viết bằng ngôn ngữ Java, C# hoặc một ngôn ngữ khác, 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ó thể có nhiều chương trình cùng chạy một lúc, tuy nhiên, với mỗi ứng dụng thì có duy nhất một thực thể được phép chạy mà thôi Điều đó có tác dụng hạn chế sự lạm dụng tài nguyên, giúp cho hệ thống sẽ kill nếu mức ưu tiên thấp

- Các ứng dụng được gán số ID của người sử dụng nhằm 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

Trang 28

- 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ử dụng quá 5~10% công suất CPU, điều đó nhằm để tránh độc quyền trong việc sử dụng CPU

là hiển thị một danh sách các liên hệ để giử 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 đổi 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 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 diễn 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 back, menu items, check boxes,…

Trang 29

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 đầu tiên

- onStart(): Đượ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

- onPause(): Được gọi để dừng các hoạt động hiện tại và nố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

- onDestroy(): Được gọi 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ớ)

- onRestart(): Được gọi khi hệ thống đã được dừng lại và khởi động lại một lần nữa

Hình 2.5 Chu kỳ sống của activity

Trang 30

2.4.1.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 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 Đ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

Hình 2.6: Cấu trúc truyền tải dữ liệu giữa các Activity

2.4.1.3 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 bởi vì người dùng mong muốn sẽ 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

Trang 31

Giống như các activity và các thành phần 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ặng 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

Hình 2.7: Cấu trúc của một service

2.4.1.4 Broadcast Receiver

Một Broadcast Receiver 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 để ứng dụng khác biết được một số dữ liệu đã 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ở Broadcast Receiver

Trang 32

Broadcast Receiver không hiển thị một giao diện người dùng Tuy nhiên chúng

có thể bắt đầu một activity để đáp lại thông tin mà chúng nhận, hay chúng có thể sử dụng NotificationManager để cảnh báo người dùng Notification có thể lấy sự chú ý của người dùng bằng nhiều cách, léo sáng đèn sau, rung, tạo ra âm thanh, … 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.4.1.5 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ó thể 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.4.1.6 View

View là thành phần cơ bản để xây dựng giao diện người dùng cho một ứng dụng Android View là một lớp căn bản của widgets (widgets được dùng để tạo các nút nhấn, text fields,…)

Lớp con ViewGroup là lớp căn bản của layouts, có thể coi như một cái hộp vô hình chứa nhiều Views hay ViewGroups khác và xác định các thuộc tính layout

Sử dụng Views:

Trong 1 cửa sổ màn hình, mọi views đều được sắp xếp theo thứ tự trên một cây trong một hay nhiều file XML nằm trong res/layout

Trang 33

Khi tạo 1 cây chứa các views, người lập trình cần xác định những giá trị sau:

Các thuộc tính – Chẳng hạn định xem một TextView sẽ hiển thị chữ gì Mỗi view có những thuộc tính và phương thức khác

Mức độ tập trung (Focus) - Thay đổi sự tập trung tuỳ theo input của người dùng với requestFocus()

Listeners - Định các listeners để có hành động khi một sự kiện gì đó xảy ra với setOnFocusChangeListener(View.OnFocusChangeListener)

Một số Views thường dùng:

- TextView: Hiển thị một khung text và cho phép người dùng thay đổi

- ImageView: Hiển thị một hình ảnh xác định từ file tài nguyên hay qua một content

provider

- Button: Hiển thị một nút nhấn

- Checkbox: Hiển thị một nút nhấn với hai trạng thái khác nhau

- KeyboardView: Hiển thị bàn phím ảo để nhập liệu

- WebView: Hiển thị các trang web bằng Webkit

Một số ViewGroups thường dùng:

- LinearLayout: Các view được xếp theo một hàng hay một cột duy nhất

- AbsoluteLayout: Cho phép xác định chính xác vị trí của từng view

- TableLayout: Sắp xếp các view theo các cột và hàng Mỗi hàng có thể có nhiều

view, mà mỗi view sẽ tạo nên một ô

- RelativeLayout: Cho phép xác định vị trí các view theo mối quan hệ giữa chúng

(VD; canh trái, phải, )

- FrameLayout: Là một placeholder cho phép đặt lên đó một view duy nhất View

đặt lên FrameLayout luôn được canh lề trái phía trên

- ScrollView: Là một FrameLayout đặc biệt cho phép trượt (scroll) một danh sách dài hơn kích thước màn hình

Trang 34

2.4.1.7 Lưu trữ dữ liệu

Android có nhiều cách để lưu trữ dữ liệu Một cách đơn giản nhất là sử dụng hệ thống preferences Android cho phép các activity và ứng dụng lưu giữ preferences theo dạng cặp từ khóa và giá trị, nằm giữa các lần gọi một activity Mục đích chính là để lưu trữ thông tin cấu hình chi tiết mà người dùng hiệu chỉnh, chẳng hạn trang web người dùng xem gần đây nhất Bạn có thể lưu trữ bất kì thông tin nào trong preferences bằng từ khóa có kiểu String và kiểu dữ liệu nguyên thủy (boolean, String…)

Preferences có thể dùng cho activity độc lập hay được chia sẻ giữa các activity của một ứng dụng Và tương lai, Preference có thể được chia sẻ giữa các ứng dụng với nhau

Bên cạnh việc sử dụng Preferences để lưu trữ dữ liệu thì cũng còn một cách đơn giản khác để thực hiện công việc lưu trữ dữ liệu là sử dụng tập tin Android cung cấp hai mô hình để truy cập tập tin:

- Một cho các tập tin được đóng gói sẵn cho ứng dụng

- Một dành cho tập tin được tạo trên thiết bị thực thi ứng dụng đó

- Đối với dữ liệu tĩnh, chẳng hạn danh sách các từ dùng để kiểm tra chính tả Cách đơn giản nhất để thực hiện điều đó là lưu vào một tập tin, và tập tin này phải được đặt trong thư mục res/raw của project Nhờ vậy, tập tin sẽ được đặt trong tập tin APK của ứng dụng như một nguồn tài nguên cơ bản

- Ngoài hai phương pháp trên, Android còn hỗ trợ hệ quản trị cơ sở dữ liệu quan hệ SQLite để quản lý dữ liệu lớn và có quan hệ phức tạp Nhờ vậy, người lập trình có thể thực hiện quản lý dữ liệu một cách dễ dàng, linh hoạt hơn

2.4.1.8 SQLite

Khi lập trình trên di động hay các thiết bị có dung lượng bộ nhớ hạn chế, người

ta thường dùng SQLite SQLite là một hệ quản trị cơ sở dữ liệu nhúng được hiện thực

từ chuẩn SQL-92 Giống với cái tên của nó, SQLite chiếm dung lượng nhỏ (khoảng 275KB) nên việc truy xuất dữ liệu được nhanh chóng, không chiếm dụng quá nhiều tài nguyên hệ thống Do SQLIte là phần mềm mã nguồn mở nên nó không bị giới hạn tác quyền Vì lý do đó mà SQLite được nhiều hãng sử dụng (Adobe, Apple, Google, Sun, Symbian) và các dự án mã nguồn mở (Mozila, PHP, Python)

Trang 35

Đặc biệt, đối với Android, SQLite rất thích hợp để tạo cơ sở dữ liệu cho các ứng dụng trên nền Android Từ khi SQLite có giao diện SQL thì nó càng được sử dụng

dễ dàng và thông dụng hơn

SQLite tuy nhẹ hơn so với các hệ cơ sở dữ liệu khác nhưng cũng không khác biệt nhiều SQLite cũng sử dụng ngôn ngữ truy vấn SQL (SELECT, INSERT, DELETE…), thích hợp cho các ứng dụng trên điện thoại, đặc biệt là ứng dụng trên hệ điều hành Android vì Android Runtime có thể chứa cả SQLite mà không cần phải chia nhỏ ra

SQLite có một hệ thống câu lệnh SQL đầy đủ với các triggers, transactions Các câu truy vấn cũng như các hệ cơ sở dữ liệu khác SQLite như bản thu nhỏ của so với các hệ CSDL khác, vì vậy nó không thể có đầy đủ các chức năng trên chiếc điện thoại di động của bạn

SQLite là một lựa chọn thích hợp dành cho ứng dụng trên hệ điều hành Android Ngoài dung lượng lưu trữ nhỏ gọn, SQLite còn cho phép sử dụng Unicode, kiểu dữ liệu không được cài đặt trong một số phiên bản Android

2.4.1.9 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 mainfest file được gắn vào Android package, file apk này cũng chứa mã của ứng dụng và tài nguyên

Mainfest file là một file XML có cấu trúc được đặt tên là AndroidMainfest.xml cho mọi ứng dụng Nó thực hiên một số bổ sung để khai thác 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.4.1.10 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 object là các đơn vị cơ bản 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ơ

Trang 36

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.2 Bắt sự kiện trong Android

Khi đã thêm một số View/widgets đến giao diện Để đượ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ị quan trọng trong một View) Vì vậy nếu muốn View được thông báo khi nó là “clicked” (chẳng hạn như khi một nút được chọn), thực hiện và xác định OnClickListener của nó gọi method onClick() (nơi thực hiện các hành động sau khi nhấp chuột), và đăng ký nó vào xen với setOnClickListener()

Ghi đè một callback method hiện cho View Đây là những gì nên làm khi đã thực hiện lớp View của riêng mỗi người 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 onTouchEvent() khi tracball là di chuyển onTrack ballEvent() 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 tùy chỉnh View và xác định xem sự kiện này cần được thông qua ngay

để View con khác Một lần nữa, đây là những callback View class, do đó, cơ hội duy nhất để xác định đó là khi xây dựng một phần tùy chỉnh

2.4.3 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à 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 không xác định cấu trúc này

Thay vào đó, xác định onCreateOptionsMenu() hoặc onCreateContext Menu() gọi method cho hoạt động của mình và tuyên bố các mục 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 trong mỗi menu đó

Trang 37

2.5 CÁC THÀNH PHẦN TRONG MỘT ANDROID PROJECT [3]

Android project là một hệ thống thư mục file chứa toàn bộ source code, tài nguyên… mà mục đích cuối cùng là để đóng gói thành một file apk duy nhất

Trong một thư mục project, có một số thành phần (file, thư mục con) được tạo

ra mặc định, còn lại phần lớn sẽ được tạo ra sau nếu cần trong phát triển ứng dụng

Hình 2.8: Các thành phần trong một Android project

Ngày đăng: 08/12/2015, 15:09

HÌNH ẢNH LIÊN QUAN

Hình 2.5 Chu kỳ sống của activity - xây dựng ứng dụng quản lý hàng hóa trên thiết bị di động android
Hình 2.5 Chu kỳ sống của activity (Trang 29)
Hình 2.7: Cấu trúc của một service - xây dựng ứng dụng quản lý hàng hóa trên thiết bị di động android
Hình 2.7 Cấu trúc của một service (Trang 31)
Hình 3.3: Mô hình dữ liệu quan niệm - xây dựng ứng dụng quản lý hàng hóa trên thiết bị di động android
Hình 3.3 Mô hình dữ liệu quan niệm (Trang 46)
Hình 3.4: Mô hình dữ liệu vật lý - xây dựng ứng dụng quản lý hàng hóa trên thiết bị di động android
Hình 3.4 Mô hình dữ liệu vật lý (Trang 46)
Hình 3.11: Sơ đồ tuần tự thêm hàng hóa - xây dựng ứng dụng quản lý hàng hóa trên thiết bị di động android
Hình 3.11 Sơ đồ tuần tự thêm hàng hóa (Trang 52)
Hình 3.13: Sơ đồ tuần tự thêm hóa đơn bán - xây dựng ứng dụng quản lý hàng hóa trên thiết bị di động android
Hình 3.13 Sơ đồ tuần tự thêm hóa đơn bán (Trang 53)
Hình 3.16: Màn hình danh sách nhà cung cấp - xây dựng ứng dụng quản lý hàng hóa trên thiết bị di động android
Hình 3.16 Màn hình danh sách nhà cung cấp (Trang 58)
Hình 3.19: Màn hình danh sách hàng hóa - xây dựng ứng dụng quản lý hàng hóa trên thiết bị di động android
Hình 3.19 Màn hình danh sách hàng hóa (Trang 61)
Hình 3.20: Màn hình chỉnh sửa hàng hóa - xây dựng ứng dụng quản lý hàng hóa trên thiết bị di động android
Hình 3.20 Màn hình chỉnh sửa hàng hóa (Trang 62)
Hình 3.25: Màn hình thêm hóa đơn bán - xây dựng ứng dụng quản lý hàng hóa trên thiết bị di động android
Hình 3.25 Màn hình thêm hóa đơn bán (Trang 67)
Hình 3.27: Màn hình chỉnh sửa hóa đơn bán - xây dựng ứng dụng quản lý hàng hóa trên thiết bị di động android
Hình 3.27 Màn hình chỉnh sửa hóa đơn bán (Trang 69)
Hình 3.28: Màn hình báo cáo - xây dựng ứng dụng quản lý hàng hóa trên thiết bị di động android
Hình 3.28 Màn hình báo cáo (Trang 70)
Hình 3.29: Màn hình backup và restore cơ sở dữ liệu - xây dựng ứng dụng quản lý hàng hóa trên thiết bị di động android
Hình 3.29 Màn hình backup và restore cơ sở dữ liệu (Trang 71)
Hình 3.30: Màn hình tìm kiếm hàng hóa - xây dựng ứng dụng quản lý hàng hóa trên thiết bị di động android
Hình 3.30 Màn hình tìm kiếm hàng hóa (Trang 72)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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

w