Tải bản đầy đủ (.pdf) (89 trang)

Xây dựng phần mềm tra cứu tuyến xe tại thái nguyên trên hệ điều hành android

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.37 MB, 89 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

ĐỒ ÁN

TỐT NGHIỆP ĐẠI HỌC
Chuyên ngành Công nghệ thông tin

Đề tài:

XÂY DỰNG PHẦN MỀM TRA CỨU TUYẾN XE TẠI
THÁI NGUYÊN TRÊN HỆ ĐIỀU HÀNH ANDROID

Sinh viên thực hiện:

TRIỆU ĐỨC THÁI

Lớp :

KTPM-K10B

Giáo viên hướng dẫn: TS. NGUYỄN VĂN NÚI

1


Thái Nguyên, năm 2016

2



DANH MỤC BẢNG
Bảng 1.1. So sánh XML và HTML

18

Bảng 1.2. Các ký tự được sử dụng trong chuỗi URL

25

DANH MỤC HÌNH ẢNH
Hình 1.1. Kiến trúc các thành phần của hệ điều hành Android 9
Hình 1.2. Sơ đồ các sự kiện trong vòng đời của một Activity 12
Hình 1.3. Sơ đồ các sự kiện trong vòng đời của một service

13

Hình 1.4. Cấu trúc phân cấp View 15
Hình 1.5. Hoạt động của Intent

15

Hình 1.6. Sơ đồ cấu trúc của tài liệu XML
Hình 1.7. Mô hình Webservice
Hình 1.8. Google Map

22

Hình 1.9. Google Earth

22


17

20

Hình 2.1. Biểu đồ UserCase tổng quát

42

Hình 2.2. Biểu đồ UseCase chức năng tìm xe khách

43

Hình 2.3. Biểu đồ UseCase chức năng xem thông tin xe khách43
Hình 2.4. Biểu đồ UseCase chức năng xem thông tin xe buýt 44
Hình 2.5. Biểu đồ UseCase chức năng xem thông tin Taxi
Hình 2.6. Biểu đồ UseCase chức năng xem đánh dấu

44

45

Hình 2.7. Các lớp chính trong phần mềm 45
Hình 2.8. Biểu đồ lớp cho chức năng tìm xe khách

46

Hình 2.9. Biểu đồ lớp cho chức năng xem danh sách xe khách 46
Hình 2.10. Biểu đồ lớp cho chức năng xem thông tin xe khách47
Hình 2.11. Biểu đồ lớp cho chức năng tìm xe buýt


47

Hình 2.12. Biểu đồ lớp cho chức năng tìm taxi 48
Hình 2.13. Biểu đồ lớp cho chức năng xem đánh dấu

48

Hình 2.14. Biểu đồ trình tự chức năng tìm xe khách

49

3


Hình 2.15. Biểu đồ trình tự chức năng xem thông tin xe khách 49
Hình 2.16. Biểu đồ trình tự chức năng tìm xe buýt

50

Hình 2.17. Biểu đồ trình tự chức năng tìm Taxi 50
Hình 2.18. Biểu đồ trình tự chức năng xem đánh dấu
Hình 2.19. Biểu đồ hoạt động tìm xe khách

51

51

Hình 2.20. Biểu đồ hoạt động xem thông tin xe khách 52
Hình 2.21. Biểu đồ hoạt động xem thông tin xe buýt

Hình 2.22. Biểu đồ hoạt động tìm Taxi

52

53

Hình 2.23. Biểu đồ hoạt động xem đánh dấu

53

Hình 3.1. Giao diện chính của phần mềm 54
Hình 3.2. Giao diện tìm xe khách 55
Hình 3.3. Giao diện chọn tỉnh

56

Hình 3.4. Giao diện chọn bến xe 57
Hình 3.5. Giao diện xem và chọn xe khách

58

Hình 3.6. Giao diện xem chi tiết thông tin xe khách

59

Hình 3.7 - 3.8. Giao diện xem lộ trình xe khách trên Google Map

60

Hình 3.9. Giao diện xem danh sách các tuyến xe buýt 61

Hình 3.10. Giao diện xem thông tin tuyến xe buýt
Hình 3.11. Giao diện xem taxi

62

63

Hình 3.12. Giao diện xem đánh dấu

64

Hình 3.13 - 3.14. Giao diện chia sẻ ứng dụng và thông tin ứng dụng. 65

4


LỜI CẢM ƠN
Được sự phân công của khoa Công nghệ thông tin, trường Đại học Công nghệ
thông tin và Truyền thông Thái Nguyên cùng với sự đồng ý của Thầy giáo hướng
dẫn TS. Nguyễn Văn Núi, tôi đã thực hiện đề tài “Xây dựng phần mềm tra cứu
tuyến xe tại Thái Nguyên trên hệ điều hành Android”.
Để hoàn thành khoá luận này. Tôi xin chân thành cảm ơn các thầy cô giáo đã
tận tình hướng dẫn, giảng dạy trong suốt quá trình học tập, nghiên cứu và rèn
luyện ở Đại Học Công nghệ thông tin và Truyền thông.
Xin chân thành cảm ơn Thầy giáo hướng dẫn TS. Nguyễn Văn Núi đã tận tình,
chu đáo hướng dẫn tôi thực hiện khoá luận này.
Mặc dù đã có nhiều cố gắng để thực hiện đề tài một cách hoàn chỉnh nhất. Song
do buổi đầu mới làm quen với công tác nghiên cứu, tiếp cận với thực tế cũng như
hạn chế về kiến thức và kinh nghiệm nên không thể tránh khỏi những thiếu sót mà
bản thân chưa thấy được. Tôi rất mong được sự góp ý của quý thầy, cô giáo và các

bạn để khoá luận được hoàn chỉnh hơn.
Tôi xin chân thành cảm ơn!
Thái Nguyên, ngày 30 tháng 05 năm 2016
Sinh viên

TRIỆU ĐỨC THÁI

5


LỜI MỞ ĐẦU
Ngày nay phương tiện giao thông ngày càng phổ biến. Hệ thống giao thông
ngày càng được mở rộng nhằm phục vụ nhu cầu đi lại và vận chuyển của người
dân.
Tại bến xe Thái Nguyên có khoảng 600 xe khác nhau đi đến hơn 30 tỉnh thành
trên cả nước. Và có 12 chuyến xe buýt đang hoạt động trên địa bàn tỉnh. Với số
lượng xe lớn như vậy, việc di chuyển là hết sức thuận tiện nhưng việc tìm kiếm xe
thích hợp với yêu cầu lại gặp nhiều khó khăn.
Nhằm góp phần nâng cao chất lượng tìm kiếm, tôi đã quyết định nghiên cứu
xây dựng đồ án tốt nghiệp với đề tài: “Xây dựng phần mềm tra cứu tuyến xe tại
Thái Nguyên trên hệ điều hành Android”. Phần mềm sẽ cung cấp thông tin đầy đủ
nhất về các chuyến xe từ thành phố Thái Nguyên đi các huyện, tỉnh và các tuyến xe
buýt trong tỉnh.
Với phần mềm này, mong rằng sẽ giúp cho mọi người tìm xe dễ dàng, thuận
tiện hơn. Người dùng có thể tra cứu mọi thông tin về tuyến xe, giá vé, lộ trình, nhà
xe, số điện thoại,...một cách hiệu quả nhất.
Tôi rất mong đề tài này sẽ được đón nhận và có những ý kiến đóng góp để phát
triển và hoàn thiện hơn nữa. Hi vọng một ngày không xa, sản phẩm phần mềm này
sẽ được ứng dụng rộng rãi trong đời sống.
Đề tài “Xây dựng phần mềm tra cứu tuyến xe tại Thái Nguyên trên hệ điều hành

Android” bao gồm:
Chương 1: Cơ sở lý thuyết.
Chương 2: Phân tích thiết kế hệ thống..
Chương 3: Xây dựng phần mềm.

6


CHƯƠNG I: CƠ SỞ LÝ THUYẾT
 Hệ điều hành Android
 Giới thiệu hệ điều hành Android
Android là một hệ điều hành di động dựa trên một phiên bản sửa đổi của Linux.
Được phát triển vào năm 2005 với một dự án cùng tên “Android”. Như một phần
chiến lược của mình để lấn sâu vào lĩnh vực di động Google Android đã mua về
toàn bộ quá trình phát triển cũng như đội phát triển nó. Đây là con át chủ bài của
Google để cạnh tranh thị phần hệ điều hành di động với Apple.
Google Android muốn mở và miễn phí, vì vậy hầu hết các mã android được
được đưa ra dưới dạng mã nguồn mở Apache License, điều này tương đương với
việc bất cứ ai muốn sử dụng Android có thể làm như vậy bằng cách tải về mã
nguồn android đầy đủ. Hơn nữa các nhà cung cấp (thường là những nhà phát triển
phần cứng) có thể thêm phần mở rộng và tùy biến cho android để phân biệt sản
phẩm của họ với sản phẩm của những người khác. Điều này đơn giản làm cho mô
hình phát triển android rất hấp dẫn và do đó khơi dậy sự quan tâm của nhiều nhà
cung cấp. Những nhà sản xuất coi android như một giải pháp – họ sẽ tiếp tục thiết
kế phần cứng của riêng mình và sử dụng android như một hệ điều hành chính.
Ưu điểm chính của việc áp dụng android là nó cung cấp một cách tiếp cận
thống nhất để phát triển ứng dụng. Các nhà phát triển chỉ cần phát triển cho
android và các ứng dụng của họ có thể chạy trên nhiều thiết bị khác nhau, miễn là
các thiết bị được hỗ trợ bằng cách sử dụng android. Trong thế giới điện thoại thông
minh ứng dụng là một phần quan trọng nhất của chuỗi thành công. Do đó các nhà

sản xuất thiết bị coi Android như là hy vọng tốt nhất để thách thức sự tấn công của
Apple.
 Những đặc trưng của hệ điều hành Android
Application framework: cho phép sử dụng lại và thay thế các thành phần trong
lập trình ứng dụng.
Dalvik virtual machine: tối ưu hóa cho thiết bị di động.
Intergrated browser: trình duyệt tích hợp, dựa trên cơ chế WebKit mã nguồn
mở.
SQLite: sơ sở dữ liệu trong môi trường di động.
Media support: hỗ trợ các định dạng audio, video và hình ảnh thông dụng.
GSM Telephony: mạng điện thoại di động (phụ thuộc vào phần cứng).
Bluetooth, EDGE, 3G, và WiFi: các chuẩn kết nối dữ liệu (phụ thuộc vào phần
cứng).
Camera, GPS, la bàn, và gia tốc kế: (phụ thuộc vào phần cứng).
7


Môi trường phát triển phong phú: bao gồm thiết bị mô phỏng, công cụ cho việc
dò tìm lỗi, bộ nhớ và định hình hiệu năng và một plugin cho Eclipse IDE
 Các tính năng hỗ trợ sẵn trong hệ điều hành Android
Các tính năng được hổ trỡ tùy thuộc vào cấu hình phần cứng và phần mềm.
Storage: Sử dụng SQLite, một cơ sở dữ liệu quan hệ nhẹ cho việc lưu trữ dữ
liệu
Connectivity: Hỗ trợ GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth
(bao gồm AD2P và AVRCP), Wifi, LTE và WiMAX
Messaging: hỗ trợ cả SMS và MMS
Web browser: Dựa trên mã nguồn mở Webkit, cùng với công nghệ JavaScript
V8 của Chrome
Media support: Bao gồm hỗ trợ các phương tiện truyền thông sau: H.263,
H.264 (Trong 3GP hoặc MP4 container), MPEG-4 SP, AMR, AMR-WB (3GP

container), AAC, HE-AAC (MP4 hoặc 3GP container), MP3, MIDI, Ogg Vorbis,
WAV, JPEG, PNG, GIF và BMP
Hardware support: Accelerometer Sensor, Camera, Digital Compass, Proximity
Sensor và GPS
Multi-touch: Hỗ trợ màn hình cảm ứng đa điểm
Multi-tasking: Hỗ trợ ứng dụng đa tác vụ
Flash support: Android 2.3 hỗ trợ Flash 10.1
Tethering: Hỗ trợ kết nối internet không dây/có dây
 Kiến trúc và các thành phần trong hệ điều hành Android
Mô hình sau thể hiện đầy đủ kiến trúc các thành phần của hệ điều hành
Android.

8


Hình 1.. Kiến trúc các thành phần của hệ điều hành Android

9


 Linux kernel (nhân Linux)
Kernel Linux hoạt động như một lớp trừu tượng hóa giữa phần cứng và tầng
dưới của phần mềm. 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.
 Libraries
Libraries bao gồm một tập hợp các thư viện lập trình chứa mã lệnh cung cấp
những tính năng và thao tác chính trên hệ điều hành. Một số các thư viện cơ bản
được liệt kê dưới đây:
System C library: a BSD-derived triển khai các thư viện hệ thống ngôn ngữ C
chuẩn, được nhúng vào các thiết bị dựa trên hệ điều hành Linux.

Media Libraries – Dựa trên PacketVideo's OpenCORE; thư viện này hỗ trợ cho
việc chơi nhạc, quay phim, chụp hình theo các định dạng file MPEG4, H.264,
MP3, AAC, AMR, JPG, and PNG
Surface Manager – Quản lý truy cập đến các hệ thống con hiển thị cũng như các
lớp đồ họa 2D, 3D từ tầng ứng dụng.
LibWebCore – Thư viện được dùng để tạo nên thành phần webview trong
Android và có thể nhúng được vào nhiều ứng dụng.
SGL – Thư viện hỗ trợ đồ hoạ 2D.
3D libraries – Thư viện đồ họa 3D.
FreeType - bitmap and vector font rendering.
SQLite – Một cơ sở dữ liệu nhỏ được dùng cho các thiết bị cầm tay có bộ nhớ
hạn chế. SQLite không có quan hệ như các cơ sở dữ liệu khác.
 Android runtime
Tại cùng một tầng với Libraries, android runtime cung cấp một bộ lõi thư viện
cho phép các nhà phát triển viết các ứng dụng android bằng cách sử dụng ngôn
ngữ lập trình java. Android runtime cũng bao gồm các máy ảo Dalvik, cho phép
mọi ứng dụng android chạy trong tiến trình riêng của mình. Dalvik là một máy ảo
chuyên dụng được thiết kế đặc biệt cho android và tối ưu hóa cho các thiết bị điện
thoại di động với giới hạn bộ nhớ và CPU.
 Application framework 2.4.3 Android runtime
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
10


trạng thái, và nhiều, nhiều hơn nữa.
Nhà phát triển có thể truy cập vào các API được 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 API.

Đưa ra những khả năng khác nhau của hệ điều hành android vào ứng dụng để sử
dụng chúng trong các ứng dụng của mình.
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: các
View (là dùng để hiển thị thông tin và để người dùng thao tác), Content Provider
để chia sẻ dữ liệu giữa các ứng dụng, Resource Manager truy xuất tài nguyên,
Notification Manager hiển thị các thông báo, Activity Manager quản lý chu trình
sống của ứng dụng và điều hướng Activity.
 Applications
Tại lớp trên cùng sẽ là các ứng dụng cho android (như điện thoại, danh bạ, trình
duyệt,…) cũng như các ứng dụng được tải về và cài đặt từ AndroidMarket hay bất
lý ứng dụng nào bạn viết được tại tầng này.
 Các khái niệm cơ bản trong lập trình ứng dụng Android
 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ện người dùng, mỗi activity độc lập với những cái khác. Mỗi activity là một
lớp con của lớp cơ sở Activity.
Một ứng dụng có thể gồm chỉ một activity hay nhiều activity. Activity chính
phải được hiển thị đầu tiên khi khởi động chương trình. Chuyển từ một activity
sang activity khác bằng cách cho activity hiện thời khởi động activity kế tiếp.
Mỗi activity được vẽ vào một cửa sổ trên màn hình, mặc định 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 ví dụ như
activity thông báo một thông tin gì đó.
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
11


người dùng nhấn vào hình ảnh đó. Android có một số view đã xây dựng sẵn mà
bạn có thể sử dụng – gồm có các buttons, text fields, scroll bars, menu items,
check boxes …
Một cây phân cấp view được đặt trong một cửa sổ của activity bằng phương
thức Activity.setContentView(). Content view là đối tượng View ở gốc của cây
phân cấp.
Class cơ sở Activity định nghĩa một loạt các sự kiện mà điều chỉnh vòng đời
của một hoạt động. Class Activity định nghĩa các sự kiện sau đây :
onCreate(): Được gọi khi hoạt động được tạo ra lần đầ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 độ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 trước khi hoạt động bị phá hủy bởi hệ thống (bằng tay
hoặc bằng hệ thống để bảo tồn bộ nhớ)
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
Sau đây là sơ đồ các sự kiện trong vòng đời của một Activity:

12



Hình 1.. Sơ đồ các sự kiện trong vòng đời của một Activity

13


 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.
Trong khi kết nối, người sử dụng có thể giao tiếp với service thông qua giao
diện mà service đó trưng ra. Ví dụ như trong service chơi nhạc, giao diện này có
thể cho phép người dùng pause, rewind, stop và restart lại playback.
Giống như các activity và các thành phần khác khác, service chạy trong thread
chính của tiến trình ứng dụng. Vì thế chúng không thể chặn những thành phần
khác hay giao diện người dùng, chúng thường tạo ra các thead khác cho các nhiệm
vụ hao tốn thời gian.
Sơ đồ các sự kiện trong vòng đời của một service:

Hình 1.. Sơ đồ các sự kiện trong vòng đời của một service

14


 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.
 Broadcast Receive
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ụng khác biết được một số dữ liệu đã được tải về thiết bị và sẵn sàng cho việc sử
dụng chúng.
Một ứng dụng có thể có một số Broadcast Receiver để đáp lại bất cứ thông báo
nào mà nó cho là quan trọng. Tất cả các receiver mở rộng từ lớp cơ sở
BroadcastReceiver.
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. 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 thanh,
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.
 View
Trong một ứng dụng Android, giao diện người dùng được xây dựng từ các đối
tượng View và ViewGroup. Có nhiều kiểu View và ViewGroup. Mỗi một kiểu là
một con của class View và tất cả các kiểu đó được gọi là các Widget.
Tất cả mọi widget đều có chung các thuộc tính cơ bản như là cách trình bày vị
trí, background, kích thước, lề,… Tất cả những thuộc tính chung này được thể hiện
hết ở trong đối tượng View.
Trong Android Platform, các screen luôn được bố trí theo một kiểu cấu trúc
phân cấp như hình dưới. Một màn hình là một tập hợp các Layout và các widget
được bố trí có thứ tự. Để thể hiện một màn hình thì trong hàm onCreate của mỗi

15


Activity cần phải được gọi một hàm là setContentView(R.layout.main); hàm này
sẽ load giao diện từ file XML lên để phân tích thành mã bytecode.

16


Hình 1.. Cấu trúc phân cấp View
 Intent
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 1.. Hoạt động của Intent
 Các thành phần trong một project ứng dụng Android
 AndroidManifest.xml
Trong bất kì một dự án Android nào khi tạo ra đều có một file
AndroidManifest.xml, file này được dùng để định nghĩa các màn hình sử dụng, các
quyền cũng như các giao diện cho ứng dụng. Đồng thời nó cũng chứa thông tin về
phiên bản SDK cũng như màn hình chính sẽ chạy đầu tiên.
File này được tự động sinh ra khi tạo một dự án Android. Trong file manifest
bao giờ cũng có 3 thành phần chính đó là: application, permission và version.
Application: chứa các giá trị định nghĩa cho một ứng dụng Android như
icon,tên ứng dụng, chế độ hiển thị giao diện…Ngoài ra cần phải khai báo các
Activity và Service có trong chương trình tại đây.
17



Permission: bao gồm các thuộc tính chỉ định quyền truy xuất và sử dụng tài
nguyên của ứng dụng. Khi cần sử dụng một loại tài nguyên nào đó thì trong file
manifest của ứng dụng cần phải khai báo các quyền truy xuất tương ứng
SDK version: Xác định phiên bản SDK nhỏ nhất mà ứng dụng hiện đang sử
dụng tương ứng với một phiên bản hệ điều hành Android mà ứng dụng có thể
tương thích.

 File R.java
File R.java là một file tự động sinh ra ngay khi tạo ứng dụng, file này được sử
dụng để quản lý các thuộc tính được khai báo trong file XML của ứng dụng và các
tài nguyên hình ảnh.Mã nguồn của file R.java được tự động sinh khi có bất kì một
sự kiện nào xảy xa làm thay đổi các thuộc tính trong ứng dụng.
Có thể nói file R.java hoàn toàn không cần phải đụng chạm gì đến trong cả quá
trình xây dựng ứng dụng.
 Thư mục src
Là vị trí chứa gói các class trong ứng dụng. Các class có thể là các một Activity
hoặc Service hoặc các lớp chức năng nào đó được viết bằng ngôn ngữ Java dựa
trên API được cung cấp sẵn của Android. Cần phải có ít nhất một Activity và khai
báo là Activity chính để chương trình có thể chạy được.
 Thư mục rec
Thư mục chứa tài nguyên ứng dụng. Thư mục này bao gồm 5 thư mục con là:
drawable – hdpi, drawable – mdpi, drawable – ldpi,layout,values.
Drawable – hdpi, drawable – mdpi, drawable – ldpi là ba thư mục dùng để chứa
các hình ảnh được sử dụng trong quá trình thiết kế giao diện ứng dụng, bao gồm cả
icon của ứng dụng. 3 thư mục tương ứng với hình ảnh sẽ được sử dụng ở ba độ
phân giải khác nhau lần lược là: cao, trung bình, thấp. Điều này giúp các nhà lập
trình có thể thiết kế giao diện ứng dụng phù hợp với nhiều độ phân giải màn hình
tương thích với nhiều lại thiết bị.

Thư mục layout chứa các file xml dùng để khai báo và thiết kế giao diện cho
một Activity hay một thành phần điều khiển con trong ứng dụng Android.
Thư mục values gồm các file xml chứa các giá trị chuỗi, mã màu … Giúp người
lập trình có thể dễ dàng thay đổi những giá trị này trong ứng dụng một cách nhanh
chóng mà khôn cần phải sửa trong code của ứng dụng.
18


 Công nghệ XML và Webservice
 Công nghệ XML
 Lịch sử ra đời chuẩn XML, XML là gì?
XML (viết tắt từ tiếng Anh eXtensible Markup Language, “Ngôn ngữ Đánh dấu
Mở rộng”) là ngôn ngữ đánh dấu do W3C đề nghị. Mục đích chính của XML là
đơn giản hóa việc chia sẻ dữ liệu giữa các hệ thống khác nhau, đặc biệt là các hệ
thống được kết nối với Internet.
XML là một ngôn ngữ đánh dấu tương đối mới vì nó là một subset (một phần
nhỏ hơn) của và đến từ (derived from) một ngôn ngữ đánh dấu ra đời trước tên là
Standard Generalized Markup Language (SGML). Ngôn ngữ HTML cũng dựa vào
SGML, thật ra nó là một áp dụng của SGML.
SGML được phát minh bởi Ed Mosher, Ray Lorie và Charles F. Goldfarb của
nhóm IBM research vào năm 1969, khi con người đặt chân lên mặt trăng. Lúc đầu
nó có tên là Generalized Markup Language (GML), và được thiết kế để dùng làm
meta- language, một ngôn ngữ được dùng để diễn tả các ngôn ngữ khác - văn
phạm, ngữ vựng của chúng ,.v.v..
Năm 1986, SGML được cơ quan ISO (International Standard Organisation) thu
nhận (adopted) làm tiêu chuẩn để lưu trữ và trao đổi dữ liệu. Khi Tim Berners-Lee
triển khai HyperText Markup Language - HTML để dùng cho các trang Web hồi
đầu thập niên 1990, ông ta cứ nhắc nhở rằng HTML là một áp dụng của SGML.
Vì SGML rất rắc rối, và HTML có nhiều giới hạn nên năm 1996 tổ chức W3C
thiết kế XML. XML version 1.0 được định nghĩa trong hồ sơ February 1998 W3C

Recommendation, giống như một Internet Request for Comments (RFC), là một
"tiêu chuẩn".
 Cấu trúc của file XML và tài liệu XML
Cấu trúc file xml:
Document Prolog: lưu trữ metadata của XML gồm 2 phần đó là khai báo XML
và khai báo kiểu dữ liệu trong XML. Phần khai báo XML (XML declaration) bao
gồm các thông tin về version của XML, charset, encoding…. Phần khai báo kiểu
dữ liệu trong XML (DTD) dùng để khai báo cấu trúc của các thẻ dùng trong XML.
Root element hay còn gọi là Document Element: chứa tất cả các phần tử và nội
dung của nó. 1 phần tử của XML phải có thẻ mở và thẻ đóng.
Dưới đây là sơ đồ cấu trúc của tài liệu XML

19


Hình 1.. Sơ đồ cấu trúc của tài liệu XML

20


Cấu trúc tài liệu xml:
Gồm có hai phần đó là cấu trúc logic và cấu trúc vật lý .
Cấu trúc logic: Định nghĩa các phần tử, các thuộc tính, kiểu dữ liệu
Cấu trúc vật lý: Chứa dữ liệu và các phần tử chứa dữ liệu như text, hình ảnh,
media...
 Đặ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à áp
dụng một cấu trúc kiểu cây cho thông tin đó.
Đơn vị cơ sở của XML là các ký tự theo định nghĩa của Universal Character Set
(Bộ ký tự toàn cầu).

Các tệp XML có thể dùng cho nhiều loại dữ liệu đa phương tiện. RFC3023 định
nghĩa các loại "application/xml" và "text/xml", với ý rằng dữ liệu được biểu diễn
bằng XML mà không nói gì đến ngữ nghĩa của dữ liệu.
XML được dùng kết hợp với HTML, rất hữu ích cho việc trao đổi dữ liệu và
tạo ra tùy biến cho các tags.
 XML và HTML
XML

HTML

Content Markup Language

Presenttation Markup Language

Cho phép người sử dụng định nghĩa các
Các phần tử được định nghĩa sẵn

phần tử.
Kiểm tra tính hợp lệ

Hầu như không bắt lỗi

Cho phép trao đổi dữ liệu giữa các ứng dụng Chỉ được thiết kế để trình diễn
Cần phải được định nghĩa một cách chặt chẽ Không bắt buộc
Các phần tử phải được đóng

Các phần tử rổng không cần đóng
21

Bảng 1.. So sánh XML và HTML



 Ngôn ngữ đặc tả cấu trúc
DTD (Document Type Definition)
Một DTD xác định ngữ pháp của một tài liệu XML, DTD định nghĩa cấu trúc
tài liệu XML bằng một tập những qui tắc của phần tử (elements) và thuộc tính
(attributes).
XML Schema
XML Schema mô tả cấu trúc của tài liệu XML, thay thế cho DTD. XML
Schema mô tả:
Các phần tử và thuộc tính trong tài liệu XML.
Thứ tự và số lượng các phần tử con.
Các kiểu dữ liệu của phần tử và thuộc tính.
 Ưu điểm của XML
Dễ dàng xử lý, chuyển tải và trao đổi dữ liệu.
Mô tả dữ liệu và cách thể hiện dữ liệu thông qua các thẻ.
Tổ chức dữ liệu và cấu trúc phân cấp
Dữ liệu độc lập là ưu điểm chính của XML. Do XML chỉ dùng để mô tả dữ liệu
bằng dạng text nên tất cả các chương trình đều có thể đọc được XML.
Dễ dàng để tạo 1 file XML
Lưu trữ cấu hình cho web site
Sử dụng cho phương thức Remote Procedure Calls (RPC) phục vụ web service
 Webservice
 Webservice là gì?
Webservice (dịch vụ web) là sự kết hợp các máy tính cá nhân với các thiết bị
khác, các cơ sở dữ liệu và các mạng máy tính để tạo thành một cơ cấu tính toán ảo
mà người sử dụng có thể làm việc thông qua các trình duyệt mạng hoặc ứng dụng
có kết nối mạng.

22



Hình 1.. Mô hình Webservice
Webservice
Một web service có thể được mô tả như là một chức năng có thể duy trì trên
web, và có thể được gọi bởi bất kỳ ứng dụng nào hay dịch vụ nào. Nó có thể là một
business application hay một system function.
Bản thân các dịch vụ này sẽ chạy trên các máy chủ trên nền Internet chứ không
phải là các máy tính cá nhân, do vậy có thể chuyển các chức nǎng từ máy tính cá
nhân lên Internet. Người sử dụng có thể làm việc với các dịch vụ thông qua bất kỳ
loại máy hay phần mềm nào có hỗ trợ web service và có truy cập internet, kể cả
các thiết bị cầm tay. Do đó các web service sẽ làm internet biến đổi thành một nơi
làm việc chứ không phải là một phương tiện để xem và tải nội dung.
Điều này cũng sẽ đưa các dữ liệu và các ứng dụng từ máy tính cá nhân tới các
máy phục vụ của một nhà cung cấp dịch vụ web. Các máy phục vụ này cũng cần
trở thành nguồn cung cấp cho người sử dụng cả về độ an toàn, độ riêng tư và khả
nǎng truy nhập.
Các máy phục vụ ứng dụng sẽ là một phần quan trọng của các web service bởi
vì thường thì các máy chủ này thực hiện các hoạt động ứng dụng phức tạp dựa trên
sự chuyển giao giữa người sử dụng và các chương trình kinh doanh hay các cơ sở
dữ liệu của một tổ chức nào đó.
Một số nhà quan sát ngành công nghiệp này cho rằng web service không thực
sự là một khái niệm mới và phản ánh một phần không nhỏ khái niệm mạng máy
tính vốn đã trở nên quen thuộc trong nhiều nǎm qua. Web service chủ yếu dựa trên
một lời gọi thủ tục từ xa không chặt chẽ mà có thể thay thế các lời gọi thủ tục từ xa
chặt chẽ, đòi hỏi các kết nối API phù hợp đang phổ biến hiện nay. Dịch vụ web sử
23


dụng XML chứ không phải C hay C++, để gọi các quy trình.

Tuy nhiên các chuyên gia khác lại cho rằng web service là một dạng API dựa
trên phần mềm trung gian, có sử dụng XML để tạo phần giao diện trên nền Java 2
(J2EE) hay các server ứng dụng .NET. Giống như các phần mềm trung gian, web
service sẽ kết nối server ứng dụng với các chương trình khách hàng.
 Một số đặc điểm cơ bản của webservice
Một webservice có thể được truy cập thông qua web.
Một webservice có giao diện dịch vụ. Giao diện này giúp cho webservice có thể
được gọi bởi bất kỳ một ứng dụng nào hay bởi webservice nào khác. Giao diện
dịch vụ là một tài liệu XML. Bởi vì XML có thể thể hiện rõ vai trò trong công
nghệ trao đổi thông tin toàn cục (global exchange technology) được chấp nhận bởi
phần lớn công nghệ hiện nay.
Các Dịch vụ web dùng giao thức tiêu chuẩn web để giao tiếp, không như COM,
RMI hay CORBA. XML được dùng để trao đổi thông tin giữa các chương trình
ứng dụng và dịch vụ.
 Phân loại webservice
Service có hai loại :
Dịch vụ ứng dụng và dịch vụ hệ thống (Application and System Service ). Một
Application Service thể hiện một hành động của user như duyệt thư email, hay
kiểm tra tỷ số hối đoái… Một System Service thể hiện yêu cầu của kiến trúc hệ
thống và sự quản lý như bảo mật , lưu trữ và chịu lỗi, quản lý transaction hay
messaging.
Một dịch vụ có hai đặc điểm chính : Interface và Registration. Sử dụng
Interface, một dịch vụ có thể được gọi từ một chương trình khác. Một service được
đăng ký trong một registry.
Các ví dụ về công nghệ liên quan đến hệ thống hướng dịch vụ (service-oriented
system) là Remote Method Invocation (RMI), Jini, CORBA và Distributed
Computing Environment (DCE).
Một vấn đề tổng quát với service hệ thống là các client cần thiết chỉ rõ giao
thức để yêu cầu các dịch vụ từ các hệ thống. Web service là một hệ thống phát
triển từ hệ thống hướng dịch vụ , dùng giao tiếp tổng quát để chuyển tải các thông

điệp giữa các hệ thống.
Một tập hợp các modular service có thể được cung cấp bởi cùng công ty hay
bởi nhiều công ty khác nhau được mix và match lại để trở thành một business
process.
Lấy ví dụ đơn giản dễ nhận thấy nhất về webservice là hệ thống .NET passport
của Hotmail. Vấn đề đăng nhập trở nên đơn giản giữa các web site nếu giải quyết
24


bằng webservice. Web site tương tác với các site khác thông qua Web Service,
điều này cho phép thông tin người dùng được chia xẻ giữa các chúng. Một user khi
điền thông tin đăng nhập chỉ một lần duy nhất, và có thể dùng nó cho dịch vụ
email, và dùng cùng login user cùng mật khẩu trong một “accounting package
service site”.

25


×