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

Đề tài: Thiết kế ứng dụng quản lí vận chuyển hàng hóa cho Công Ty TNHH Phần Mềm BSM trên Mobile

70 344 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 70
Dung lượng 5,19 MB

Nội dung

Mục đích của đề tài nhằm giúp các bạn hỗ trợ người sử dụng tra cứu thông tin tuyến xe một cách hiệu quả. Nhanh chóng và thuận tiện đặc biệc trên S.mast phone, tìm đường đi bằng google maps một cách tối ưu. Góp phần hỗ trợ người sử dụng trong thành phố và ngoại thành. Khuyến khích mọi người sử dụng và vận chuyển hàng hóa bằng ứng dụng.

Trang 1

Mục lục

Chương 1 GIỚI THIỆU CÔNG TY 7

1.1 Lịch sử hình thành và phát triển của công ty: 7

1.1 Sơ lược về công ty: 7

1.2 Quá trình hình thành và phát triển 7

1.3 Tầm nhìn và sứ mạng của công ty 8

1.4 Hoạt động đoàn thể và các phong trào khác 10

Chương 2 KIẾN THỨC CƠ SỞ 17

I TỔNG QUAN VỀ ANDROID 17

A Android và lịch sử phát triển 17

2.1 Kiến trúc Android 18

2.2 Linux Kernel 18

2.3 Library và Android Runtime 19

B.Các thành phần của Android 23

1.Thành phần của 1 chương trình Android 23

2 Activity và Intent 23

4 Broadcast Reveive 27

5 Content Provider 27

6 Manifest File 27

7 Giao diện người dùng trong Android 28

8 Các thành phần giao diện Widget 28

9 Bắt sự kiện trong Android 29

10 Menu 29

II PHÂN TÍCH XML TRONG ANDROID 30

A.Tổng quan về XML 30

1.Khái niệm 30

2.Đặc điểm của XML 30

3.Cấu trúc của XML 31

4 RSS 32

5 Các lớp, giao diện phân tích XML trong Android 32

6 Phân tích nội dung XML trong Android sử dụng SAX 34

III SQL SERVER 35

1 Khái niệm, định nghĩa SQL server? 35

2 Lịch sử phát triển 36

3 Đặc điểm của SQL Server và đối tượng làm việc 36

Trang 2

IV CLOUD SERVER 37

Cloud server là gì? 37

Tính năng Cloud Server 37

Chương 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 39

I Danh mục các chức năng chính 39

II.Mô tả sơ lược chức năng TMS cho di động 40

III.Biểu đồ luồng dử liệu 40

3.1 Biểu đồ luồng dữ liệu mức khung cảnh 40

3.2 Biểu đồ luồng dữ liệu mức đỉnh 41

3.3 Biểu đồ luồng dữ liệu mức 1 của chức năng chuyển tải 42

3.4 Biểu đồ luồng dữ liệu mức 1 của chức năng Tìm kiếm 42

3.5 Biểu đồ luồng dữ liệu mức 1 của chức năng quản trị 43

3.6 Mô hình ERD: 44

3.7 Chuyển từ ERD sang lược đồ qan hệ 45

IV.Thiết kế CSDL cho hệ thống APP TMS 46

1 Order: 46

2.TMS_Driver: 46

3 TMS_Location 46

4 TMS_Order_Status 47

5 TMS_Route 47

6 TMS_Shipping_Order 47

7 TMS_Shipping_Order_Status 47

8.Mô hình cài đặt SQL Server 48

CHƯƠNG 4 XÂY DỰNG APP TMS 49

I.Quản lý tài khoản 49

1.1 Đăng nhập/Đăng xuất 49

1.2 Thay đổi mật khẩu đăng nhập hệ thống 50

II Quản lý danh sách lệnh điều động (hiện tại) 51

2.1 Xem thông tin chung của lệnh điều động 51

2.2 Xem danh sách lịch sử lệnh đã chạy 52

2.3 Xem chi tiết lệnh 53

2.4 Cập nhật trạng thái lệnh(Vận Chuyển,Về Bến,Sự Cố) 54

2.5 Xem danh sách đơn hàng 55

2.6 Xem chi tiết đơn hàng 56

2.7 Cập nhật trạng đơn hàng(thành công, thất bại) 57

2.8 Xem vị trí hiện tại, Điểm giao hàng của Lệnh (bản đồ) 58

Trang 3

2.9 Thông tin COD và Cập nhật COD 59

2.10 Thông tin Hàng Hóa 60

III Quản lý lệnh (hiện tại) 61

3.1 Xem danh sách các đơn hàng trên lệnh 61

3.2 Xem danh sách đơn hàng 62

3.3 Xem thông tin chuyển tải các đơn hàng 63

V Barcode 65

KẾT LUẬN 67

1.Kết luận 67

2 Hướng phát triển của đề tài: 68

3 Ưu điểm: 68

4 Khuyết điểm: 68

TÀI LIỆU THAM KHẢO 69

Website 69

Tiếng Anh 69

Về google map api v3: 69

Ebook tham khảo: 69

Trang 4

LỜI CẢM ƠN

Ngày nay, với thời kỳ công nghiệp hóa – hiện đại hóa đất nước thì công nghệthông tin thật sự trở thành một lĩnh vực rất quan trọng trong đời sống con người.Sau một tháng tìm hiểu đề tài “Tìm hiểu Android và xây dựng ứng dụng trênmobile”, em đã hoàn thành tiến độ dự kiến Để đạt được kết quả này, em đã nỗ lựcthực hiện và đồng thời cũng nhận được rất nhiều sự giúp đỡ, quan tâm, ủng hộ củacác thầy cô bạn bè và gia đình

Để hoàn thành đề tài này trước hết tôi chân thành cảm ơn Thầy Lê QuốcTuấn trong khoa công nghệ thông tin trường cao đẳng Bách Việt cùng cơ quan thựctập đã tạo điều kiện giúp đỡ tôi hoàn thành tốt đợt thực tập tốt nghiệp này

Tuy bản thân đã rất cố gắng tìm hiểu tài liệu từ nhiều nguồn thông tin khácnhau như là giáo trình, sách ,báo,google, Cũng như vốn hiểu biết của mình vềđềtàinhững nội dung đề tài không sao tránh khỏi thiếu sót

Kính mong được sựđóng góp ý kiến của quý Thầy Cô để tôi có thể hoànthiện hơn về báo cáo và là cơ sở vững chắc để sau này ra trường làm việc

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

TP.HCM , ngày 24 tháng 06 năm 2017

Trang 5

LỜI MỞ ĐẦU

Hiện nay, sự phát triển của Công nghệ Thông tin ở nước ta đang bước vàothời kì mới với việc triển khai rộng rãi các ứng dụng tin học cho các tổchức và xãhội Không ai còn nghi ngờ gì về vai trò của Công nghệ Thông tin trong đời sống,trong khoa học kỹ thuật, kinh doanh, cũng như trong mọi mặt của xã hội, ngaycảđối với một cá nhân

Công nghệ Thông tin đang từng bước đi vào cuộc sống của chúng ta như một ngườibạn đồng hành, nó có vai trò rất lớn trong sự phát triển của đất nước và trong đờisống của con người

Và sau đây tôi xin giới thiệu với các bạn một ứng dụng nhỏ của công nghệthông tin vào trong cuộc sống:

Để giảm thời gian, chi phí và lưu trữ trên giấy tờ trong việc quản lý nhânviên tại Công Ty và để giúp các bạn hiểu hơn về nền tảng ngôn ngữ Android OS kếtnối với cơ sở dữ liệu web nên tôi đã chọn đề tài : “Thiết kế ứng dụng quản lí vậnchuyển hàng hóa cho Công Ty TNHH Phần Mềm BSM trên Mobile” dựa trên nềncông cụ lập rìnhAndroid Studio

Android Studio là một phiên bản của bộ công cụ lập trình, cho phép ngườidùng tiếp cận nhanh cách thức lập trình trên môi trường Android Những ai đã từngquen thuộc với AndroidOS thì tìm thấy những tính năng trợ giúp mới và các công

cụ lập trình hiệu quả Người dùng mới làm quen với Android Studio cũng có thểlàm chủđược một cách dễ dàng

Nhằm giảm thời gian và nhằm làm giảm nhẹ sức lao động thủ công, giúpchúng ta thực hiện một cách nhanh chóng, hiệu quả và chính xác hơn, làm giảm bớtđược việc lưu trữ thông tin giấy tờ, tra cứu và tìm kiếm quản lí thông tin nhân viêntrong doanh nghiệp

● Mục đích của đề tài:

Hỗ trợ người sử dụng tra cứu thông tin tuyến xe một cách hiệu quả.Nhanhchóng và thuận tiện đặc biệc trên S.mast phone Tìm đường đi bằng google mapsmột cách tối ưu Góp phần hỗ trợ người sử dụng trong thành phố và ngoại thành.Khuyến khích mọi người sử dụng và vận chuyển hàng hóa bằng ứng dụng

● Tính cấp thiết của đề tài:

Trang 6

Hiện trạng ngày nay có rất nhiều người sử dụng xe giao hàng,việc tìm kiếmthông tin về các tuyến và đường đi còn nhiều hạn chế (phải xem thông tin ngay tạitrạm hay bản đồ xe Thành Phố và Ngoại Thành khó sử dụng).

● Hướng giải quyết:

Viết ra một trang ứng dụng hỗ trợ người sử dụng nhận được lệnh từ Web vềđịa chỉ,đơn hàng,điểm xuất phát và điểm đến một cách hiệu quả, nhanh chóng,đơngiản và dễ sử dụng

● Phương pháp nghiên cứu:

Ứng dụng hướng đến sự đơn giản và thuận tiện nhất cho người dùng đồngthời thể hiện đầy đủ thông tin về kết quả người dùng muốn Ứng dụng được viếttrên nền AndroidOS và SQL SEVER SQL LITE Để giải quyết vấn đề về việc hạnchế tối đa việc làm mới lại ứng dụng vì trang web được nhúng thêm google vớilượng hình ảnh khá lớn mỗi lần tải lại tốn khá nhiều thời gian

● Thuận lợi:

Được phát triển trong thời đại có nhiều công nghệ mạnh mẽ và nhanh chónggiúp giải quyết được các tình huống trong đề tài nhanh chóng, cộng đồng mạngmạnh mẽ giúp giải quyết được vấn đề khó khăn

Google map api v3 bản đồ số hóa mạnh mẽ của google với nhiều công cụ hỗ trợ xâydựng cũng như phát triển bản đồ hàng đầu

● Khó khăn:

Không có nguồn cơ sở dữ liệu phải vay mượn từ trang web khác nhưng theocách thủ công và lượng dữ liệu quá lớn dẫn đến phần cứng không thể đáp ứng được.Không thể can thiệt vào đường tuyến đường của “Google map api v3” dẫn đếnnhiều khó khăn trong việc tìm ra thuật toán

Việc làm đề tài sẽ rèn luyện cho sinh viên tự nghiên cứu, nâng cao trình độ và làmviệc theo nhóm, tạo tiền đề cho sinh viên sau này khi đi làm

Mặc dù rất cố gắng nhưng do hạn chế về mặc thời gian và trình độ nên đềtài khôngtránh khỏi những thiếu soát mong Thầy và các bạn thông cảm

Mong được sựđóng góp ý kiến của Thầy và các bạn

TP.HCM ,ngày 24 tháng 06 năm 2017

Trang 7

Chương 1 GIỚI THIỆU CÔNG TY

1.CÔNG TY TNHH PHẦN MỀM BSM

1.1 Lịch sử hình thành và phát triển của công ty:

1.1 Sơ lược về công ty:

Tên đầy đủ: CÔNG TY TNHH PHẦN MỀM BSM

Công ty TNHH Phần Mềm BSM được thành lập năm 2006

Năm 2006, Công ty TNHH Phần Mềm BSM cho ra sản phẩm đầu tiên

(SaigonTel) được thành lập vào ngày 14 tháng 05 năm 2002, là thành viên của Tập đoàn Đầu tư Sài Gòn (SGI) – một trong những tập đoàn tư nhân hàng đầu tại Việt Nam, chủ sở hữu của 38 Khu Công Nghiệp trải dài trên toàn quốc, hiện đang cung cấp các dịch vụ hạ tầng, dịch vụ viễn thông cho các Khu Công Nghiệp trong Tập đoàn SGI SaigonTel tập trung vào xây dựng, phát triển và đưa các ứng dụng công nghệ thông tin phục vụ cho công

Trang 8

việc quản lý, kinh doanh Ngoài nhóm khách hàng FDI (Foreign Direct Investment) trong các Khu Công Nghiệp, SaigonTel và các đơn vị thành viênhiện đang là đối tác hợp tác/ nhà cung cấp các sản phẩm/ dịch vụ viễn thông

và công nghệ thông tin cho các nhà mạng/ hãng sản xuất hàng đầu tại Việt Nam và Thế Giới Công ty TNHH Phần Mềm BSM cung cấp những giải pháp phần mềm hiệu quả và chất lượng trong các lĩnh vực:

Hệ thống quản lý Kho bãi WMS

Hệ thống Quản lý Tài sản AMS

Hệ thốngquản lý vận chuyển TMS

Hệ thống quản lý sản xuất MMSQuản lý quan hệ khách hàng CRMLập kế hoạch nguồn lực sản xuất

Tự động hoá và tối ưu hóaQuản lý chuỗi cung ứngGiải pháp hậu cầnQuản lý Giải pháp Bệnh viện

1.3 Tầm nhìn và sứ mạng của công ty

● Tầm nhìn

Sáng tạo và nỗ lực không ngừng, chuyên môn vững vàng, liên tục cập nhậtthông tin mới nhất áp dụng vào thực tiễn công việc, nâng cao chất lượng sản phẩm,dịch vụ và đào tạo, đáp ứng mọi nhu cầu kết nối trong tương lai Kim chỉ nam hoạtđộng: “Luôn giữ niềm tin nơi khách hàng”

Trang 9

● Tốc độ tăng trưởng

Là đơn vị trẻ, năng động với nhiều ý tưởng sáng tạo trong kinh doanh và vớitôn chỉ luôn đặt uy tín của Công ty lên hàng đầu, cộng thêm đội ngũ lãnh đạo, nhânviên năng động, chuyên nghiệp, BSM đã và đang tạo dựng được thương hiệu mạnhcủa mình tại khu vực TP.HCM,Hà Nội và trong lĩnh vực Công Nghệ Thông Tin

● Việc đảm bảo thu nhập và chế độ chính sách cho người lao động

Đây là một vấn đề xuyên suốt, luôn được lãnh đạo công ty đặt lên hàng đầu.Đời sống của nhân viên đang làm việc tại BSM Software Corpkhông ngừng đượccải thiện, nâng cao.Được tham gia các chế độ bảo hiểm: BHXH, BHYT, BHTN,được hưởng các chế độ phúc lợi xã hội, các quyền lợi khác theo đúng quy định củaNhà nước Hàng năm Công ty đều có điều chỉnh tăng lương và các khoản phụ cấpkèm theo cho người lao động không những thế trong những ngày lễ Công Ty sẽ tổchức du lịch tham quan

Công ty luôn trân trọng sự cống hiến đóng góp của người lao động, coi đó là mộttrong nhứng yếu tố cơ bản tạo dựng thành công của Công ty

Trang 10

1.4 Hoạt động đoàn thể và các phong trào khác

Hình 1.1 Phát quà cho những người có hoàn cảnh khó khăn

Hình 1.2 Quà Tặng cho người nghèo

Trang 11

Hinh 1.3 Giúp đỡ bệnh nhân hoàng cảnh khó khăn

Hình 1.4 Các trò chơi di công ty tổ chức

Trang 12

Hình 1.5 Hoạt động văn nghệ

Hình 1.6 Hội thao tổ chức cho các nhân viên

Trang 13

Hình 1.7 Tổ chức sinh nhật cho các nhân viên hàng tháng

Trang 14

HỘI ĐỒNG QUẢN TRỊ

GIÁM ĐỐC ĐIỀU HÀNH HÀNH

toán-Phòng thanh tra phát chế

Ban công tác chính trị-Xã

hội

Ban quản lý điều hành

Xưởng sửa chữa BAN KIỂM SÁT

Hình 1.8 Sơ đồ tổ chức công ty

Đại hội đồng Cổ đông:

Đại hội đồng Cổ đông là cơ quan quyết định cao nhất của Công ty, quyết định phương hướng, nhiệm vụ phát triển của Công ty và lập kế hoạch kinh doanh hàng năm, thảo luận và thông qua bảng tổng kết năm tài chính, bầu, bãi nhiễm thành viên hội đồng quản trị và kiểm soát viên Quyết định số lợi nhuận trích lập các quỹ, xem xét quyết định giải pháp khắc phục các biến động lớn về tài chính, xem xột các sai phạm của Hội đồng quản trị gây hại cho Công ty

Ban Kiểm soát:

Kiểm tra sổ sách kế toán, tài sản, các bảng tổng kết năm tài chính của công ty và triệu tập Đại hội đồng khi xét thấy cần thiết Trình Đại hội đồng báo cáo thẩm tra các bảng tổng kết năm tài chính của Công ty, báo cáo về sự kiện tài chính bất thường xảy ra, báo cáo về những ưu khuyết điểm trong quản lý tài chính của Hội đồng quản trị

Trang 15

Hội đồng quản trị:

Hội đồng quản trị là cơ quan quản lý cao nhất ở Công ty, có toàn quyền nhân danh Công ty để quyết định mọi vấn đề liên qua đến mục đích, quyền lợi của Công ty, chịu trách nhiệm trước Đại hội đồng cổ đông về những sai phạm điều lệ, vi phạm pháp luật gây thiệt hại cho Công ty Thành viên Hội đồng quản trị được hưởng lương hoặc thù lao theo quyết định của Đại hội đồng

Giám đốc điều hành:

Giám đốc Công ty là người chịu trách nhiệm trước Hội đồng quản trị về toàn

bộ công tác tài chính của Công ty theo quyết định của pháp luật, có nhiệm vụ và quyền hạn sau:

Là chủ tài khoản của Công ty mở tại ngân hàng và chịu trách nhiệm quản lý, sử dụng tài khoản theo đúng quy định của pháp luật

Lập và ký các kế hoạch kinh doanh hàng năm của Công ty trình Hội đồng quản trị phê duyệt

Tổ chức thực hiện kế hoạch sản xuất kinh doanh và kế hoạch đầu tư của Công ty

Trong các báo cáo quyết toán tháng, quý, năm lên Hội đồng quản trị.Định kỳ hoặc đột xuất bỏo cáo tình hình tài chính của Công ty theo yêu cầu của Hội đồng quảntrị hoặc khi Công ty gặp khó khăn về tài chính ảnh hưởng đến việc thanh toán các khoản nợ và nghĩa vụ tài sản khác

Quyết định kết toán và sử dụng các khoản chờ phân bổ, dự phòng của Công ty

Phê duyệt kế hoạch thu – chi quỹ phúc lợi và khen thưởng của Công

ty.Duyệt chi toàn bộ các khoản chi của Công ty

Thực hiện các quyền và nghĩa vụ khác được quy định tại điều lệ của Công

sẽ thực hiện một số công việc mang tính chất hành chính như phụ trách vấn

đề liên quan đến công đoàn, đến người lao động

Trang 16

Bộ phận đào tạo:

Có nhiệm vụ đào tạo kĩ thuật Tổ chức các khóa học ngắn hạn và dài hạn khác (ví dụ: Lớp học văn hóa doanh nghiệp, Quản trị chất lượng, Đào tạo bồi dưỡng kỹ năng quản lý cho cán bộ)

Phòng Kinh doanh Tiếp thị:

Bộ phận kinh doanh tiếp thị:

Có nhiệm vụ chớnh là mở rộng thị trường nghiên cứu, phân tích thị

trường hiện tại, từ đó có dự báo cho xu hướng tương lai của thị trường để tham mưu cho giám đốc có những điều chỉnh về chớnh sách kinh doanh cho phù hợp Ngài ra, bộ phận cũn cú nhiệm vụ rất quan trọng là chăm sóc khách hàng

Phòng Kế toán – Tài chính:

Có nhiệm vụ hạch toán kế toán, theo chế độ kế toán – thống kê của Nhà nước, quản lý giám sát mọi hoạt động tài chính của Công ty, giúp Giám đốc trong việc lập kế hoạch tài chính hàng năm, tham mưu giúp giám đốc một số vấn

đề lớn trong lĩnh vực tài chính

Trang 17

Chương 2 KIẾN THỨC CƠ SỞ

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 Googlemua 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 đổimớ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 G1,chiếc smartphone đầu tiên dựa trên nền tảng Android Một vài ngày sau đó, Googlelại tiếp tục công bố sự ra mắt phiên bản Android SDK release Candidate 1.0.Trongtháng 10 năm 2008, Google được cấp giấy phép mã nguồn mở cho AndroidPlatform

T-Khi Android được phát hành thì một trong số các mục tiêu trong kiến trúccủa nó là cho phép các ứng dụng có thể tương tác được với nhau và có thể sử dụnglại các thành phần từ những ứng dụng khác Việc tái sử dụng không chỉ được ápdụ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 Android mà không bị ràngbuộ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óthể chạy hệ điều hành Android mà không phải ký một bản hợp đồng nào Vàokhoảng cùng thời gian đó thì Google cũng cho phát hành một phiên vản vá lỗi 1.1

Trang 18

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

soft-đề 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ínhnă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áclive folder

ở lớp này bao gồm quản lý bộ nhớ (memory management), giao tiếp với phần cứng(driver model), thực hiện bảo mật (security), quản lý tiến trình (process)

Trang 19

Hinh 2.2 Mô hình Linux kernelTuy đượ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ần kếtnố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 : Chịu trách nhiệm về việc thu phát sóng wifi

Audio Driver : điều khiển các bộ thu phát âm thanh, giải mã các tính hiệu dạngaudio 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ếnnhư CDMA, GSM, 3G, 4G, E để đảm bảo những chức năng truyền thông được thựchiện

2.3 Library và Android Runtime

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

Trang 20

Hình 2.3 Mô hình Library và Android Runtime

2.3.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 ứngdụ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 1cổng (socket)

Open GL/EL: hỗ trợ thư viện tùy chọn 3D tĩnh và động

2.3.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 máy tínhthường Thứ nhất là các thư viện lõi (Core Library) , chứa các lớp như JAVA IO,Collections, File Access Thứ hai là một máy ảo java (Dalvik Virtual Machine)

Trang 21

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 saukhi 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 tindavik(dex), khác với java là chuyển sang dạng bytecode Định dạng này được tối ưuhóa cho bộ nhớ tối thiểu.

2.3.3 Framework

Hinh 2.4 Mô hình FrameworkBằ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áttriển khả năng xây dựng các ứng dụng cực kỳ phong phú và sáng tạo Nhà phát triểnđược tự do tận dụng các thiết bị phần cứng, thông tin địa điểm truy cập, các dịch vụchạy nền, thiết lập hệ thống báo động, thêm các thông báo để các thanh trạng thái,

và nhiều, nhiều hơn 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ế để đơngiả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ácdị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 nhaudùng để thiết kế phần giao diện ứng dụng như: gridview, tableview, linearlayout…

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

Trang 22

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

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

Notication Manager : Quản lý việc hiển thị các thông báo (như báo có tinnhắn, có e-mail mới)

Resource Manager : Quản lý tài nguyên tĩnh của các ứng dụng bao gồm cácfile hình ảnh, âm thanh, layout, string (Những thành phần không được viết bởingô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 ứngdụng khác (chẳng hạn như Contacts) hoặc là chia sẻ dữ liệu giữa các ứng dụng đó

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ớingườ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ể (instance) được phép chạy mà thôi Điều đó có tác dụng hạnchế sự lạm dụng tài nguyên, giúp hệ thống hoạt động tốt hơn Các ứng dụng đượcphâ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 số 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

Trang 23

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ấtCPU, điều đó nhằn để tránh độc quyền trong việc sử dụng CPU

B.Các thành phần của Android

1.Thành phần của 1 chương trình Android

2 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 đổi cài đặt Mặc dù chúng làm việc cùng nhau để tạo thành một giao diệnngườ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 concủ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ìnhdiễn tới người dùng khi ứng dụng được khởi động Chuyển từ một activity sangactivity 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ọicho một đáp ứng người dùng ở giữa của activity, hay một cửa sổ biểu diễn nhữngcho 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 đốitượ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ườidù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ủaactivity 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à

Trang 24

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ứcActivity.setContentView() Content view là đối tượng View ở gốc của cây phâncấ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ủamộ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 lại các hoạt độngtrướ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 trước khi hoạt động bị phá hủy bởi hệ thống (bằng tayhoặ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ộtlần nữa

Trang 25

Hình 2.1 Mô hình Activity

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ộtActivity Là cầu nối giữa các Activity: ứng dụng Android thường bao gồm nhiềuActivity, mỗi Activity hoạt động độc lập với nhau và thực hiện những công việckhác nhau Intent chính là người đưa thư, giúp các Activity có thể triệu gọi cũngnhư 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.2 Mô hình Intent

Trang 26

3 Service

Một service không có giao diện trực quan, nó chạy trên nền trong mộtkhoả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 Ứngdụ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 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 servicechạy trên nền Hệ thống sẽ giữ cho music playback service chạy thậm chí khiactivity 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épngườ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 trongthread chính của tiến trình ứng dụng Vì thế chúng không thể chặn những thànhphầ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ácnhiệm vụ hao tốn thời gian

Hình 3 Mô hình Service

Trang 27

4 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 để ứng dụngkhá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ụngchúng

Một ứng dụng có thể có một số Broadcast Receiver để đáp lại bất cứ thôngbáo nào mà nó cho là quan trọng Tất cả các receiver mở rộng từ lớp cơ sởBroadcastReceiver

Broadcast Receiver không hiển thị một giao diện người dùng Tuy nhiênchú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 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

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, trongmộ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 chophé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 Tuynhiê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

6 Manifest File

Trước khi Android có thể khởi động một thành phần ứng dụng, nó phải biếtrằ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ìnhtrong 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

Trang 28

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áocá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ậpInternet, SDCard, hay các vấn đề về gửi nhận tin nhắn, cuộc gọi

7 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ằngcách sử dụng View và ViewGroup đối tượng Có nhiều loại quan điểm và các nhómview, mỗi một trong số đó là hậu duệ của lớp View View objects là các đơ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 ClassViewGroup phục vụ như là cơ sở cho lớp con được gọi là " layouts", cung cấp cácloại khác nhau của kiến trúc bố trí, như linear, tabular và relative

8 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 nhaucủ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ồmLinearLayout, RelativeLayout, TableLayout, GridLayout và khác Mỗi cung cấpmộ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 viewscon và cơ cấu layout Để tìm hiểu về một số 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ớingười dùng Android cung cấp một tập các widgets thực hiện đầy đủ, giống như cácbutton, Checkbox, và text-entry , do đó bạn có thể nhanh chóng xây dựng giao diệnngườ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 trongcác loại widgets được cung cấp bởi các nền tảng Android

Trang 29

9 Bắt sự kiện trong Android

Khi đã thêm một số Views/widgets đến giao diện Để được thông báo về UIevents 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ộtphương pháp gọi là On()

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ậynế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 Xem vớisetOnClickListener()

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à touchedonTouchEvent() khi trackball là di chuyển onTrack ballEvent() hoặc khi một phímtrê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 để View con khác Một lần nữa, đây là những callbacks Viewclass, 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ầntùy chỉnh

10 Menu

Menu đơn có một phần quan trọng của giao diện người dùng trong một ứngdụ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 ứngdụ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ấmphím MENU trên thiết bị Tuy nhiên, cũng có thể thêm Context Menus, có thể hiểnthị 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 Menu()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

Trang 30

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 đó.

II PHÂN TÍCH XML TRONG ANDROID

2.Đặc điểm của XML

XML cung cấp một phương tiện dùng văn bản (text) để mô tả thông tin và ápdụng một cấu trúc kiểu cây cho thông tin đó Tại mức căn bản, mọi thông tin đềuthể hiện dưới dạng text, chen giữa là các thẻ đánh dấu (markup) với nhiệm vụ kýhiệu sự phân chia thông tin thành một cấu trúc có thứ bậc của các dữ liệu ký tự, cácphần tử dùng để chứa dữ liệu, và các thuộc tính của các phần tử đó Về mặt đó,XML tương tự với các biểu thức S (S-expression) của ngôn ngữ lập trình LISP ởchỗ chúng đều mô tả các cấu trúc cây mà trong đó mỗi nút có thể có một danh sáchtính chất của riêng mình

Đơn vị cơ sở của XML là các ký tự theo định nghĩa của Universal CharacterSet (Bộ ký tự toàn cầu) Các ký tự được kết hợp theo các tổ hợp chuỗi hợp lệ để tạothành một tài liệu XML Tài liệu này gồm một hoặc nhiều thực thể, mỗi thực thểthường là một phần nào đó của các ký tự thuộc tài liệu, được mã hóa dưới dạng mộtchuỗi các bit và lưu trữ trong một tệp văn bản (text file)

Sự phổ biến của các phần mềm soạn thảo văn bản (word processor) đã hỗ trợviệc soạn thảo và bảo trì tài liệu XML một cách nhanh chóng Trước XML, có rất ítngôn ngữ mô tả dữ liệu với các đặc điểm đa năng, thân thiện với giao thức Internet,

dễ học và dễ tạo Thực tế, đa số các định dạng trao đổi dữ liệu thời đó đều chuyện

Trang 31

dụng, có tính độc quyền, và có định dạng nhị phân (chuỗi bit thay vì chuỗi ký tự)khó dùng chung giữa các ứng dụng phần mềm khác nhau hay giữa các hệ nền(platform) khác nhau Việc tạo và bảo trì trên các trình soạn thảo thông dụng lạicàng khó khăn.

Bằng cách cho phép các tên dữ liệu, cấu trúc thứ bậc được phép, và ý nghĩacủa các phần tử và thuộc tính có tính chất mở và có thể được định nghĩa bởi mộtgiản đồ tùy biến được, XML cung cấp một cơ sở cú pháp cho việc tạo lập các ngônngữ đánh dấu dựa XML theo yêu cầu Cú pháp chung của các ngôn ngữ đó là cốđịnh – các tài liệu phải tuân theo các quy tắc chung của XML, bảo đảm rằng tất cảcác phần mềm hiểu XML ít ra cũng phải có khả năng đọc (phân tích cú pháp –parse) và hiểu bố cục tương đối của thông tin trong các tài liệu đó Giản đồ chỉ bổsung một tập các ràng buộc cho các quy tắc cú pháp Các giản đồ thường hạn chếtên của phần tử và thuộc tính và các cấu trúc thứ bậc được phép, ví dụ, chỉ cho phépmột phần tử tên ‘ngày sinh’ chứa một phần tử tên ‘ngày’ và một phần tử có tên

‘tháng’, mỗi phần tử phải chứa đúng một ký tự Đây là điểm khác biệt giữa XML vàHTML HTML có một bộ các phần tử và thuộc tính không mềm dẻo, chỉ có một tácdụng và nói chung là không thể dùng cho mục đích khác

XML không hạn chế về việc nó được sử dụng như thế nào Mặc dù XML về cơ bản

là dạng text, các phần mềm với chức năng trừu tượng hóa nó thành các định dạngkhác giàu thông tin hơn đã nhanh chóng xuất hiện, quá trình trừu tượng hóa nàyđược thực hiện chủ yếu qua việc sử dụng các giản đồ định hướng kiểu dữ liệu(datatype-oriented schema) và khuôn mẫu lập trình hướng đối tượng (mà trong đó,mỗi tài liệu XML được thao tác như là một đối tượng) Những phần mềm như vậy

có thể coi XML như là dạng text đã được tuần tự hóa chỉ khi nó cần truyền dữ liệuqua mạng

Trang 32

5 Các lớp, giao diện phân tích XML trong Android

Java API for XML Processing, hay JAXP, là một trong các API cho lập trìnhJava XML Nó cung cấp khả năng kiểm chứng và phân tích các tài liệu XML Hailoại giao diện (interface) để phân tích cơ bản là:

Giao diện phân tích dạng Mô hình đối tượng tài liệu (Document ObjectModel), viết tắt là DOM

Giao diện phân tích API đơn giản dành cho XML (Simple API for XML) viết tắt là SAX

-StAX, API dẫn luồng cho XML (the Streaming API for XML)

Cùng với các giao diện phân tích, API này còn cung cấp một giao diện XSLT

để cung cấp việc chuyển đổi dữ liệu và cấu trúc từ một tài liệu XML sang một dạngkhác

5.1.Giao diện DOM

Giao diện DOM có lẽ là một giao diện dễ hiểu nhất Nó phân tích toàn bộ tàiliệu XML và kiến thiết một cấu trúc hoàn chỉnh đại diện cho bản tài liệu, trong bộ

Trang 33

nhớ, bằng cách dùng các lớp để mô hình hóa các khái niệm đã ghi trong Tài liệu chitiết đặc tả kĩ thuật của Document Object Model(DOM) Cấp độ 2.

Bộ phân tích DOM được gọi là DocumentBuilder, vì nó tạo nên một hìnhthức đại diện cho Document trong bộ nhớ javax.xml.parsers.DocumentBuilderđược tạo nên bởijavax.xml.parsers.DocumentBuilderFactory DocumentBuilder tạo

ra một trường hợp của org.w3c.dom.Document, tức một cấu trúc cây chứa các nốttrong Tài liệu XML Mỗi nốt cây trong cấu trúc thực hiện một giao diệnorg.w3c.dom.Node Có nhiều loại nốt cây đại diện cho loại dữ liệu tìm thấy trongbản tài liệu XML Loại nốt quan trọng nhất là:

Nốt phần tử Loại này có thể có các thuộc tính nằm ở bên trong

Nốt văn bản Loại này đại diện cho phần văn bản nằm giữa thẻ mở và thẻđóng của một phần tử tài liệu

5.2.Giao diện SAX

Bộ phân tích SAX được gọi là SAXParser và được tạo bằngjavax.xml.parsers.SAXParserFactory Khác với bộ phân tích DOM, bộ SAXParserkhông tạo ra một hình thức đại diện của tài liệu XML trong bộ nhớ và vì thế nó hoạtđộng nhanh hơn, ít tốn bộ nhớ hơn Thay vào đó, bộ phân tích SAXParser thông báocho các trình khách cấu trúc của tài liệu XML bằng cách gọi các hàm callbacks,nghĩa là, bằng cách gọi các phương pháp của trường hợp bản mẫu: Javadoc:SE đãđược cung cấp cho bộ phân tích

Lớp DefaultHandler nằm trong gói org.xml.sax.helpers Lớp này thực hiệncác giao diện ContentHandler, ErrorHandler, DTDHandler, và EntityResolver Đại

bộ phận các trình khách chỉ quan tâm đến những phương pháp được định nghĩatrong giao diện ContentHandler mà thôi

Các phương pháp của giao diện ContentHandler, được DefaultHandler thựchiện, được gọi đến khi bộ phân tích SAX bắt gặp những phần tử tương ứng trongbản tài liệu XML Những phương pháp chủ yếu trong giao diện này bao gồm:

Phương thức startDocument(): được gọi khi bắt đầu tài liệu

Phương thức endtDocument(): được gọi kết thúc tài liệu

Phương thức startElement(): được gọi khi bắt đầu một thẻ

Phương thức endElement(): được gọi khi kết thúc một thẻ

Trang 34

Phương thức characters(): được gọi sau khi gọi phương thức startElement(),

để phân tích nội dung bên trong thẻ đó

Các trình khách cung cấp một phân lớp của DefaultHandler Phân lớp này được sửdụng để lấn quyền những phương pháp trên và xử lý dữ liệu Quá trình này có thểbao gồm việc lưu trữ dữ liệu vào trong cơ sở dữ liệu, hoặc viết chúng ra một luồng(dữ liệu)

5.3.Giao diện XSLT

Ngôn ngữ tập tin định dạng XML dành cho việc chuyển đổi - (The XML StylesheetLanguage for Transformations, hay XSLT) cho phép biến đổi một bản tài liệu XMLsang các dạng thức dữ liệu khác

6 Phân tích nội dung XML trong Android sử dụng SAX

6.1.Sơ lược về SAX

SAX (Simple API for XML), gồm có 2 interface chính: XMLReader làinterface dùng để đọc XML và ContentHandler dùng để nhận và xử lý dữ liệu từXML Hai interface này giải quyết 90% nhu cầu của người dùng với SAX

SAX (Simple API for XML) được phát minh vào cuối năm 1998 khi Peter,Murray-Rust và một số tác giả phân tích cú pháp XML được viết bằng Java nhận rarằng sẽ không hợp lý khi dùng quá nhiều các bộ APIkhác nhau cho chung 1 mụcđích là đọc XML Murray-Rust là người đầu tiên đề xuất những gì ông gọi là

"YAXPAPI" Lý do Murray-Rust muốn đặt tên là Yet Another XML Parser API đã

vì ông đã hoàn toàn bị mệt mỏi vì phải dùng nhiều hàm API phân tích cú phápXML cho ứng dụng JUMBO Thay vào đó, ông muốn có một API chuẩn tất cả mọingười có thể đồng ý Sau một thời gian ngắn beta SAX 1.0 được phát hành vàongày 11 tháng năm 1998

6.2 Ưu điểm của SAX

Trang 35

-Không thể tác động lên dữ liệu XML

-Chế độ lưu trữ trạng thái phức tạp

-Khó khăn khi phân tích cấu trúc XML lớn

6.3 Các khái niệm dùng trong SAX

Parsing: là quá trình đọc file XML và lấy dữ liệu của XML đưa vào chươngtrình đồng thời check lỗi cú pháp của XML

Callback Interface: SAX sử dụng các đối tượng Observer để đọc dữ liệutrong file XML Lập trình viên JAVA đã quen thuộc với kiến trúc lập trình theo sựkiện của AWT và Swing Ví dụ như khi chúng ta viết 1 class thực thi từinterfaceMouseListener, class này sẽ mặc nhiên có các sự kiện của interface này.Sau đó chúng ta đăng ký class này vào cho 1 object ví dụ như là button, button này

có thể nhận các sự kiện liên quan đến thao tác của con trỏ SAX cũng hoạt độngtheo cấu trúc đó Tuy nhiên điểm khác biệt lớn nhất giữa Swing và SAX là SAX

không cho phép gắn nhiều hơn 1 sự kiện cho cùng 1 object

III SQL SERVER

1 Khái niệm, định nghĩa SQL server?

SQL Server là viết tắt của Structure Query Language, nó là một công cụquản lý dữ liệu được sử dụng phổ biến ở nhiều lĩnh vực Hầu hết các ngôn ngữ bậccao đều có trình hỗ trợ SQL như Visual BASic,Oracle,Visual C…

Các chương trình ứng dụng và các công cụ quản trị CSDL cho phép người sửdụng truy nhập tới CSDL mà không cần sử dụng trực tiếp SQL Nhưng những ứngdụng đó khi chạy phải sử dụng SQL

Ngày đăng: 06/03/2018, 20:14

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

TÀI LIỆU LIÊN QUAN

w