Xây dựng hệ thống báo trạm xe buýt

  • Số trang: 45 |
  • Loại file: PDF |
  • Lượt xem: 83 |
  • Lượt tải: 0
sakura

Đã đăng 9626 tài liệu

Mô tả:

TRƯỜNG ĐẠI HỌC MỞ THÀNH PHỐ HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN CHUYÊN NGÀNH MẠNG XÂY DỰNG HỆ THỐNG BÁO TRẠM XE BUÝT Sinh viên thực hiện : Đỗ Hoàng Đạo Lê Hoàng Minh Nhựt 0851010050 0851010180 Lớp : Giảng viên hướng dẫn : TH08B1 TS. Lê Xuân Trường TP.Hồ Chí Minh - 2012 NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... LỜI CẢM ƠN [ \ Trong suốt thời gian tìm hiểu và hoàn thành đồ án này, chúng em đã nhận được sự quan tâm cũng như giúp đỡ tận tình của thầy cô khoa công nghệ thông tin đã cung cấp kiến thức nền vững chắc tạo nhiều điều kiện thuận lợi cho chúng em khi làm đề tài này. Đặc biệt chúng em tỏ lòng biết ơn sâu sắc đến TS. Lê Xuân Trường - người đã luôn theo sát và tận tình hướng dẫn, chỉ bảo những điểm sai hay thiếu sót mà chúng em cần khắc phục để hoàn thành đồ án một cách tốt nhất. TP. Hồ Chí Minh, ngày 16 Tháng 02 năm 2012 Sinh Viên Đỗ Hoàng Đạo Lê Hoàng Minh Nhựt MỤC LỤC Chương 1. MỞ ĐẦU ................................................................................................. 1 1.1. Tổng Quan............................................................................................................... 1 1.2. Mục đích đề tài........................................................................................................ 1 1.3. Phương pháp thực hiện ........................................................................................... 2 1.3.1. Giai đoạn 1 : Tìm hiểu thông tin liên quan. .................................................... 2 1.3.2. Giai đoạn 2 : Phân tích, xây dựng và hiện thực .............................................. 3 1.4. Phạm vi thực hiện. .................................................................................................. 3 1.5. Bố cục bài báo cáo .................................................................................................. 3 Chương 2. 2.1. CƠ SỞ LÝ THUYẾT............................................................................... 5 Tìm hiểu về Android ............................................................................................... 5 2.1.1 Giới thiệu về Android ..................................................................................... 5 2.1.2 Công cụ cài đặt Android ................................................................................. 5 2.1.3 Làm quen với lập trình Android...................................................................... 5 2.1.4 Các bước tạo một Project Android .................................................................. 9 2.2. Webservice ............................................................................................................ 11 2.2.1. Giới thiệu công nghệ ..................................................................................... 11 2.2.2. Đặc điểm Webservice ................................................................................... 11 2.2.2.1. Đặc điểm.................................................................................................. 11 2.2.2.2. Ưu và nhược điểm ................................................................................... 12 Nhược điểm:................................................................................................................ 12 2.2.3. Kiến trúc Webservice .................................................................................... 13 2.2.4. Các thành phần của Webservice ................................................................... 13 2.2.4.1. XML – eXtensible Markup Language...................................................... 13 2.2.4.2. WSDL – Web Service Description Language .......................................... 14 2.2.4.3. - Universal Description, Discovery, and Integration (UDDI) .................. 14 Loại dịch vụ – tModel: chứa các thông tin về loại dịch vụ được sử dụng. .............. 14 2.3. 2.2.4.4. SOAP – Simple Object Access Protocol .................................................. 14 2.2.4.5. Xây dựng một Webservice ....................................................................... 15 Giới thiệu GPS ...................................................................................................... 16 2.3.1. Sự ra đời của hệ thống GPS .......................................................................... 16 2.3.2. Nghiên cứu các thành phần hệ thống GPS .................................................... 17 2.3.2.1. Các thành phần hệ thống GPS ................................................................ 17 2.3.2.2. Nguyên lý định vị GPS............................................................................. 17 a. Định vị tuyệt đối (point positioning).............................................................. 17 b. Định vị tương đối (Relative Positioning) ....................................................... 17 2.3.2.3. Các phương pháp đo GPS ....................................................................... 17 a. Đo cải chính phân sai DGPS (Code-based Differential GPS) ....................... 17 b. Đo tĩnh (Static) ............................................................................................... 18 c. Đo động (Kinematic)...................................................................................... 18 d. Đo giả động (Pseudo-Kinematic) ................................................................... 18 2.3.2.4. Chương 3. 3.1. Cách xác định vị trí trên mặt đất thông qua hệ thống GPS. ................... 19 THIẾT KẾ VÀ TRIỂN KHAI ỨNG DỤNG........................................ 20 Phân tích chức năng ứng dụng : ............................................................................ 20 3.1.1. Khảo sát hiện trạng : ..................................................................................... 20 3.1.2. Phân tích các chức năng yêu cầu : ................................................................ 20 3.2. Triển khai thiết kế ứng dụng : ............................................................................... 21 3.2.1. Tải bản đồ về ứng dụng :............................................................................... 21 3.2.2. Di chuyển bản đồ : ........................................................................................ 22 3.2.3. Phóng to, thu nhỏ bản đồ : ............................................................................ 22 3.2.4. Menu lựa chọn các chức năng : ..................................................................... 23 3.2.5. Bản đồ các tuyến xe buýt : ............................................................................ 23 3.2.6. Tìm kiếm thông tin tuyến xe : ...................................................................... 25 3.2.6.1. Webservice : ............................................................................................ 25 3.2.6.2. Ứng dụng Client : .................................................................................... 28 3.2.7. GPS trên Android : ........................................................................................ 31 3.2.7.1. Định vị vị trí trong Androird: .................................................................. 31 3.2.7.2. Thiết lập Emulator cho Andoird sử dụng GPS: ...................................... 32 3.2.7.3. Cách lấy tọa độ GPS : ............................................................................. 32 3.2.8. Chương 4. Thông báo trạm: ............................................................................................ 34 TỔNG KẾT ............................................................................................ 37 4.1 Kết luận ................................................................................................................. 37 4.2 Hướng phát triển ................................................................................................... 37 Tài liệu tham khảo .......................................................................................................... 38 MỤC LỤC HÌNH Hình 3.1: Giao diện chính của ứng dụng ....................................................................... .21 Hình 3.2 : Phóng to thu nhỏ bản đồ .............................................................................. . 22 Hình 3.3: Menu trên Android ......................................................................................... 23 Hình 3.4: Bản đồ 114 tuyến xe bus ................................................................................ 24 Hình 3.5: Bảng thông tin tuyến xe ................................................................................. 26 Hình 3.7: Giao diện Webservice .................................................................................... 27 Hình 3.8: GetTuyen ........................................................................................................ 27 Hình 3.9: Kết quả trả về của Webservice ....................................................................... 28 Hinh 3.10: Giao diện tìm kiếm của ứng dụng. ............................................................... 30 Hình 3.11: Kết quả trả về khi nhập mã số tuyến tìm kiếm. ........................................... 31 Hình 3.12: Công cụ Emulator ........................................................................................ 32 Hình 3.13: Xác định vị trí hiện tại của người dùng ....................................................... 33 Hình 3.14: CSDL lưu trữ thông tin trạm. ....................................................................... 34 Hình 3.15: Truyền kinh độ, vĩ độ ................................................................................... 34 Hình 3.16: Kết quả trả về khi đúng tọa độ kinh độ, vĩ độ. ............................................. 35 Hình 3.17: Hiển thị tên trạm khi gửi vị trì lên server ................................................... . 36 Đề tài : Xây Dựng Hệ Thống Báo Trạm Xe Buýt Chương 1. MỞ ĐẦU 1.1. Tổng Quan Hệ thống xe buýt được đưa vào sử dụng ở nước ta đã lâu, nó đã góp phần không nhỏ trong việc giải quyết kẹt xe trong thành phố và là phương tiện rất hữu ích để đi lại như: đi học, đi làm, đi chơi an toàn, hiệu quả và ít chi phí. Từ lúc ra đời đến nay, hệ thống xe buýt trong thành phố đã có nhiều thay đổi ngày càng được hoàn thiện hơn. Khi đi xe buýt thì hành khách chỉ cần biết tuyến xe mình đi và trạm mình sẽ đến. Trên thực tế thì việc báo trạm trên một hay nhiều tuyến xe có khi hành khách không được thông báo rõ có thể do chất lượng phục vụ xe buýt còn chưa tốt, thiếu ân cần tận tình. Một phần là hành khách thiếu thông tin về các trạm mình sẽ đi qua và trạm mình sẽ đến. Bên cạch đó, hành khách cũng cần biết thông tin về các tuyến xe cần đi để có thể đến đia điểm đó. Đối với một số tuyến xe buýt hiện nay đang thay đổi bán vé tự động mà không có tiếp viên thì việc báo trạm thật cần thiết giúp hành khách đến đúng nơi mà không bị mất thời gian và trễ trạm. Hiện nay, trên điạ bàn thành phố đã và đang đưa ra mô hình các tuyến xe buýt thông minh có áp dụng các hệ thống định vị, báo trạm, bán vé tự động nhưng chỉ thử nghiệm ở một số tuyến ngắn. Cho nên, đối với người đi xe buýt dù đã đi quen một tuyến hay đi trên một tuyến xe khác đều cần biết thông tin trạm xe sắp đến để chuẩn bị xuống xe tránh được tình trạng luôn bị qua trạm. Vì thế cần giải quyết việc thông báo trạm dừng, nhà chờ cùng thông tin các trạm sắp tới giúp cho hệ thống xe buýt hoàn thiện và được người dân mặn mà hơn khi chọn đó là phương tiện giao thông chính của mình. 1.2. Mục đích đề tài Để giải quyến vấn đề trên ta nên xây dựng hệ thống báo trạm trên xe buýt hoặc có thể xây dựng một ứng dụng trên điện thoại dạng Client-server để kết nối đến lấy thông tin, vị trí các trạm sắp đến. Nếu xây dựng hệ thống báo trạm gắn trên xe buýt cần phải có thiết bị GPS gắn trên xe và chip điện tử được lập trình báo trạm phát ra loa, nhưng việc đó cần phải có thiết bị chuyên dùng để các nhà điều hành xe buýt áp dụng. Ta tập trung giải quyết xây dựng ứng dụng trên điện thoại cùng các tiện ích mà công nghệ điện thoại mang đến. Cùng với sự phát triển của công nghệ điện thọai ngày càng cao, thì nhu cầu của người sử dụng cũng không có điểm dừng. Hiện nay có rất nhiều phần mềm về bản đồ, tìm đường đi đã và đang thu hút rất nhiều người sử dụng cùng với nhiều tiện ích của nó. Tuy nhiên, trên thị trường đã có nhiều phần mền bản đồ nhưng chưa thấy có bản đồ xe buýt. Mặt khác đã có phần mềm tìm tuyến xe buýt nhưng dữ liệu chỉ tập trung cùng với chương trình nên không thay đổi khi dữ liệu thực tế thay đổi được. ‐ 1 ‐    Đề tài : Xây Dựng Hệ Thống Báo Trạm Xe Buýt Để tránh tình trạng này ta xây dựng phần mềm dạng Client-Server. Phần dữ liệu sẽ nằm ở Server, phần chương trình nằm ở Client. Chức năng của chương trình, hành khách sử dụng phần mềm như một Client kết nối đến Server sẽ hiển thị bản đồ xe buýt đang đi. Cùng với thiết bị GPS được trang bị trên điện thoại giúp xác định vị trí của xe khi hành khách ở trên xe. Chương trình sẽ lấy thông tin về vị trí của xe và gửi lên Server kiểm tra tọa độ được lưu cùng với tên và thông tin trạm xe. Ngoài ra, phần mềm còn có thể giúp ta tìm kiếm các tuyến đường mà xe đi qua… Chương trình này sẽ lấy bản đồ từ trên WebService và hiển thị các tuyến đường, các trạm xe. Phần mềm hoàn chỉnh sẽ chạy được trên các thiết bị đi động có chạy hệ điều hành Androird có các chức năng cơ bản sau : - Xem bản đồ offline tuyến xe buýt. - Hiện vị trí và địa chỉ tại điểm chọn. - Xác định tọa độ hiện tại người dùng trên bản đồ. - Phát thông báo khi gần đến trạm khi người dùng kiểm tra vị trí của mình. - Tìm kiếm thông tin và lộ trình mà xe đi qua. 1.3. Phương pháp thực hiện 1.3.1. Giai đoạn 1 : Tìm hiểu thông tin liên quan. Do tính chất hoạt động của hệ thống xe buýt là luôn di chuyển nên hệ thống xe buýt sẽ ứng dụng hệ thống mạng không dây để thực hiện kết nối với server. Để xác định được vị trí, thời gian và vận tốc của xe buýt trong lộ trình thì các xe buýt phải được trang bị một thiết bị định vị GPS. GPS là hệ thống định vị toàn cầu do quân đội Mỹ phát triển giúp xác định tọa độ ở vị trí hiện tại. Trong giai đoạn này chúng ta sẽ tìm hiểu về hệ thống GPS, cấu tạo và cách thức xác định vị trí của nó. Tìm hiểu và chọn ra một loại thiết bị hỗ trợ định vị phù hợp trang bị cho xe buýt và một thiết bị hỗ trợ kết nối với hệ thống xe buýt. Trong bài báo cáo này thiết bị được chọn để hỗ trợ thực hiện các công việc trên là một smartphone được phát triển trên nền tảng Android - một nền tảng cho việc phát triển ứng dụng của Google đối với dòng máy điện thoại có hỗ trợ hệ điều hành. Tìm hiểu môi trường lập trình của Android: • Các phương pháp hỗ trợ lập trình giao tiếp mạng. • Thư viện hộ trợ định vị trên điện thoại di động có hỗ trợ Android. ‐ 2 ‐    Đề tài : Xây Dựng Hệ Thống Báo Trạm Xe Buýt 1.3.2. Giai đoạn 2 : Phân tích, xây dựng và hiện thực Phân tích các vấn đề cần liên quan. Xây dựng cơ sở dữ liệu về thông tin lộ trình các tuyến xe buýt. Xây dựng một cơ sở dữ liệu lưu trữ tọa độ các trạm xe buýt cần quản lý. Thiết lập mô hình quản lý đạng Client – Server : • Server : o Tiếp nhận các kết nối từ client và lắng nghe khi co client yêu cầu. o Cho phép gửi thông tin đến các client khi có yêu cầu. o Lưu trữ thông tin các trạm xe bus và trả về khi có clietn ket nối đến . • Client : o Kết nối đến server để lấy thông tin về lộ trình xe buýt. o Cho phép nhận thông tin được cập nhật từ server. o Lấy vị trí của mình báo cáo với server để lấy thông tin trạm xe gần đến và hiển thị lên bản đồ . 1.4. Phạm vi thực hiện. Để tiện cho việc quản lý thì chúng ta cần thiết kế, xây dựng cơ sở dữ liệu lưu trữ các thông tin cần thiết của các trạm xe buýt. Cơ sở dữ liệu này được lưu trữ trên Server và được gửi đến Client khi Client có nhu cầu sử dụng phần cơ sở dữ liệu cần thiết. Trên Server sẽ chứa cơ sở dữ liệu lưu trữ thông tin về lộ trình, thời gian hoạt động, quãng đường, danh sách tọa độ. Trên Client sẽ có một module sử dụng thiết bị định vị GPS để sử lý thông tin vận hành của xe buýt. Ở module này nó thực hiện nhiệm vụ xác định vị trí hiện tại của xe buýt, kiểm tra xe có đi đúng với lộ trình hay không bằng cách kiểm tra tọa độ hiện tại so với danh sách tọa độ, kiểm tra độ lệch thời gian của xe so với lịch trình và kiểm tra vận tốc của xe. Đồng thời module này thực hiện thao tác kiểm tra các trường hợp vi phạm về lộ tình, thời gian và vận tốc. 1.5. Bố cục bài báo cáo Bố cục bài báo cáo bao gồm các chương: Chương 1: Giới thiệu khái quát về đề tài và đưa ra mục đích, phương pháp thực hiện đề tài. Chương 2: Giới thiệu một số cơ sở lý thuyết làm nền tảng có liên quan đến nội dung thực hiện của đề tài bao gồm Webservice, Android, các kỹ thuật của cộng nghệ GPS, công nghệ đó được ứng dụng như thế nào và cuối cùng là phương pháp triển khai công nghệ GPS trên thiết bị di động. ‐ 3 ‐    Đề tài : Xây Dựng Hệ Thống Báo Trạm Xe Buýt Chương 3: Thiết kế và triển khai ứng dụng. Chương 4: Tổng kết lại nội dung trong bài báo cáo và đưa ra hướng phát triển mới cho ứng dụng. ‐ 4 ‐    Đề tài : Xây Dựng Hệ Thống Báo Trạm Xe Buýt Chương 2. CƠ SỞ LÝ THUYẾT 2.1. Tìm hiểu về Android 2.1.1 Giới thiệu về Android Android là hệ điều hành trên điện thoại di động phát triển bởi Google và dựa trên nền tảng Linux. Trước đây, Android được phát triển bởi công ty liên hợp Android, sau đó được Google mua lại vào năm 2005. 2.1.2 Công cụ cài đặt Android Để lập trình Android thì mỗi bộ SDK của Google là không đủ, còn cần tích hợp nó vào một IDE như Eclipse hay Netbeans. Với Netbeans hiện nay thì plugin cho Android vẫn chưa hoàn thiện, trong khi đó Eclipse có nhiều tính năng hỗ trợ lập trình Google API. Vì thế tốt hơn mọi người nên sử dụng Eclipse. Để sử dụng cho lập trình ứng dụng này nên xài Eclipse. Tải và cài cài đặt Eclipse được hướng dẫn chi tiết. Ngoài ra cần có một môi trường để có thể chạy Android trên máy ảo ADV. Các phiên bản và các công cụ được tải về thấp nhất là 1.6 và cao nhất là 4.0.Để tải các gói có thể xem thông tin của từng gói: -SDK Platform Android: Dùng để lập trình Android, bắt buộc bạn phải chọn ít nhất một bản. Bạn dùng bản nào thì check bản đó, có thể chọn nhiều bản cho tiện lập trình . -Documents: Chính là phần Javadoc mô tả hoạt động của các phương thức và các lớp (phần này chắc chắn không thể thiếu rồi). -Samples: Là các đoạn code mẫu. Bạn nên chọn cái này. -Google API: Dùng để phát triển các phần mềm liên quan đến dịch vụ của Google. (như Google Map nếu bạn muốn lập trình liên quan đến GPS). -USB Driver: Chỉ dành cho người sử dụng Windows và muốn phát triển ứng dụng test bằng điện thoại thật. (tài liệu tham khảo http://developer.android.com/android) 2.1.3 Làm quen với lập trình Android Một ứng dụng Android khi được xây dựng nên sẽ được đóng gói thành file cài đặt dạng *.apk . Bên trong của một ứng dụng gồm có các thành phần: 2.1.3.1 Các thành phần tạo nên ứng dụng Android -Activity: Hiểu một cách đơn giản thì Activity là nền của 1 ứng dụng. Khi khởi động 1 ứng dụng Android nào đó thì bao giờ cũng có 1 main Activity được gọi, hiển thị màn hình giao diện của ứng dụng cho phép người dùng tương tác. ‐ 5 ‐    Đề tài : Xây Dựng Hệ Thống Báo Trạm Xe Buýt -Service: Đây là thành phần chạy ẩn trong Android. Service sử dụng để cập nhật dữ liệu, đưa ra các cảnh báo(Notification) và không bao giờ hiển thị cho người dùng thấy. -Content Provider: Là kho dữ liệu chia sẻ. Content Provider được sử dụng để quản lý và chia sẻ dữ liệu giữa các ứng dụng. -Intent: Nền tảng để truyền tải các thông báo. Intent được sử dụng để gửi các thông báo đi nhằm khởi tạo 1 Activity hay Service để thực hiện công việc bạn mong muốn. VD: Khi mở 1 trang web, bạn gửi 1 intent đi để tạo 1 activity mới hiển thị trang web đó. -Broadcast Receiver: Thành phần thu nhận các Intent bên ngoài gửi tới. VD: Bạn viết 1 chương trình thay thế cho phần gọi điện mặc định của Android, khi đó bạn cần 1 BR để nhận biết các Intent là các cuộc gọi tới. -Notification: Đưa ra các cảnh báo mà không làm cho các Activity phải ngừng hoạt động . Activity, Service, Broadcast Receiver và Content Provider mới là những thành phần chính cấu thành nên ứng dụng Android, bắt buộc phải khai báo trong AndroidManifest. 2.1.3.2 Cấu trúc một Project Android Đầu tiên chúng ta cần biết cấu trúc và chức năng các tệp trong thư mục dự án của một ứng dụng Android. Khi bạn tạo một ứng dụng Android, cấu trúc thư mục dự án sẽ như sau: -AndroidManifest.xml: Tệp này bắt buộc phải có. Tệp này chứa thông tin mô tả ứng dụng, các thông tin này rất quan trọng và hệ thống Android cần phải có nó trước khởi chạy ứng dụng. -src/: Thư mục chứa mã nguồn java. Các file mã nguồn có thể ở trong một thư mục nào đó, tương ứng với package tương ứng theo cấu trúc /myPackagePath/.../MyClass.java. Bạn phải có ít nhất một tệp .java ở trong một package nào đó. -res/: Thư mục này là bắt buộc, nới chứa toàn bộ tài nguyên cho ứng dụng của bạn. Tài nguyên có thể là các tệp dữ liệu ở ngoài hay các tệp mô tả, và khi build ứng dụng các tài nguyên này cũng sẽ được compile. Các tệp ở trong thư mục khác nhau thì sẽ được compile khác nhau, vì vậy bạn phải đặt đúng tài nguyên vào thư mục phù hợp. Trong thư mục này sẽ có các thư mục con tương ứng với một kiểu tài nguyên như sau: -adnim/(Có thể có hoặc không): Chứa các tệp như animation1.xml,... Chứa các tệp xml mô tả thông tin animation mà ứng dụng sử dụng. ‐ 6 ‐    Đề tài : Xây Dựng Hệ Thống Báo Trạm Xe Buýt drawable/ (Có thể có hoặc không): Chứa các tệp ảnh (như some_picture.png, some_stretchable.9.png, ...), hoặc tệp XML (như some_background.xml, ...) mô tả thông tin thêm về ảnh. Các tệp này được compile tới android.graphics.drawable. -layout/ (Có thể có hoặc không): Chứa tất cả các tệp XML mô tả toàn bộ hay một phần màn hình ứng dụng, chẳng hạn như screen_1_layout.xml... Mặc dù bạn có thể tạo nó bằng lệnh của Java nhưng việc sử dụng tệp XML để mô tả sẽ dễ dàng và đơn giản hơn nhiều. -values/ (Có thể có hoặc không): Chứa tệp như arrays, classes.xml, colors.xml, dimens.xml, strings.xml, styles.xml, values.xml... để mô tả các tài nguyên thêm như strings, colors, và styles. Tên và số lượng các tệp này tùy ý bạn, không bắt buộc nhưng tất nhiên bạn phải tuân theo chuẩn đặt tên. -xml/: Chứa các tệp XML có đọc trực tiếp từ trong ứng dụng. Thư mục này có thể không cần. -raw/: Chứa tệp bất kỳ, các tệp này sẽ được copy trực tiếp lên thiết bị. Thư mục này cũng có thể hoặc không có. 2.1.3.3 Thiết kế giao diện trong Android dùng XML -XML trong Android: Không giống như lập trình java thông thường, lập trình android ngoài các lớp được viết trong *.java còn sử dụng XML để thiết kế giao diện cho ứng dụng. Tất nhiên hoàn toàn có thể thiết kế 1 giao diện như ý muốn mà không cần tới bất cứ 1 dòng XML nào, nhưng sử dụng XML sẽ đơn giản công việc đi rất nhiều. Đồng thời sử dụng XML sẽ giúp việc chỉnh sửa ứng dụng sau này trở nên dễ dàng.Về nguyên tắc, khi lập trình ứng dụng ta thiết kế giao diện bằng XML và cài đặt các xử lý khi tương tác với giao diện trong code. -Thiết kế giao diện trong Android: Khi thiết kế giao diện trên Android chúng ta phải hiểu về Layout. Layout được dùng để quản lý các thành phần giao diện khác theo 1 trật tự nhất định. Các Layout bao gồm: ‐ FrameLayout: Layout đơn giản nhất, thêm các thành phần con vào góc trên bên trái của màn hình. ‐ LinearLayout: Thêm các thành phần con theo 1 chiều nhất định(ngang hoặc dọc). Đây là layout được sử dụng nhiều nhất. ‐ 7 ‐    Đề tài : Xây Dựng Hệ Thống Báo Trạm Xe Buýt ‐ RelativeLayout: Thêm các thành phần con dựa trên mối quan hệ với các thành phần khác hoặc với biên của layout. ‐ TableLayout: Thêm các thành phần con dựa trên 1 lưới các ô ngang và dọc. ‐ AbsoluteLayout: Thêm các thành phần con dựa theo tọa độ x, y. Layout được sử dụng nhằm mục đích thiết kế giao diện cho nhiều độ phân giải. Thường khi lập trình nên kết hợp nhiều layout với nhau để tạo ra giao diện bạn mong muốn. -Một số thuộc tính của Layout : ‐ Layout_width, layout_height: Chiều rộng, chiều cao của view (fill_parent là to bằng kích thước của layout chứa view này, wrap_content là vừa đủ nội dung cần hiển thị của View). ‐ Orientation: Với LinearLayout, việc sắp xếp các view là nằm kề nhau theo hàng ngang hoặc hàng dọc, ta khai báo Orientation để chọn sắp theo kiểu nào(horizontal/vertical). ‐ Gravity: Thuộc tính này qui định các View nằm bên trong Layout sẽ đặt theo vị trí nào so với Layout (trung tâm, trái , phải, trên dưới…). ‐ Weight: Để các View phân chia tỉ lệ diện tích hiển thị trên màn hình (tỉ lệ tính theo Weight của từng View trên tổng số Weight, các View không khai báo Weight thì sẽ xem qua Width và Height). 2.1.3.4 Kiến thức cần cho lập trình Android Để lập trình android, mọi người chỉ cần kiến thức java căn bản là hoàn toàn có thể lập trình. Căn bản ở đây có nghĩa là hiểu được thế nào là class, package, biết ý nghĩa của các từ khóa như public, private, protected,... thành thạo các lệnh cơ bản như if, for(), switch(), while(),...biết sử dụng các lệnh như Integer.parseInt() hay String.valueOf()... Nên có thêm kiến thức về gói java.util vì đây là gói hỗ trợ nhiều lớp rất mạnh được sử dụng trên mọi nền, ngoài ra các gói như java.io, java.net... cũng được recommended. Các kiến thức về các gói lập trình cho desktop như java.awt, java.swing hoàn toàn không cần thiết (bản thân mình cũng chưa sử dụng cái này bao giờ, nhảy vào học java là học J2ME luôn), hay các gói của J2ME cũng vậy. Lập trình Android tuy cũng là lập trình di động, nhưng các điện thoại sử dụng hệ điều hành Android có cấu hình rất mạnh (Nexus One có VXL lên tới 1Ghz), vì vậy 2 nền tảng Android và J2ME cũng rất khác nhau. Android có những gói riêng hỗ trợ lập trình cho nó và không yêu cầu khắt khe về việc tối ưu code như J2ME. ‐ 8 ‐    Đề tài : Xây Dựng Hệ Thống Báo Trạm Xe Buýt 2.1.4 Các bước tạo một Project Android Để tạo một Project trước tiên ta phải cài đặt đầy đủ các công cụ, môi trường cần thiết như SDK, ADV quản lý và tạo máy ảo Android, quản lý các gói cài đặt tải về. Sau khi có đầy đủ ta dùng bộ công cụ Elipse có tích hợp Android vào trong để xây dựng ứng dụng. Ở đây ta chỉ xây dụng một chương trình Hello đơn giản để khảo sát các yếu tó và tính năng của một ứng dụng. Các bước thực hiện : Bước 1 : Tạo một Project Hello: Ở màn hình eclipse, bấm File Æ New Æ Project Æ Android Æ Android Project Æ Next. Ở màn hình kế nhập liệu vào các ô như sau: - Project name: HelloWorld (tên project hiển trị trên eclipse cũng sẽ là thư mục chứ ứng dụng trong workspace). - Application name: Hello World (tên ứng dụng sẽ hiện thị trên điện thoại). - Create activity: HelloWorldActivity (tạo một lớp con của lớp Activity, dùng để hiển thị một màn hình ở đây là màn hình HelloWorld của chúng ta). - Min SDK version: 4 (tức SDK 1.6, ở đây chúng ta khai báo là ứng dụng này có thể đáp ứng được phiên bản SDK cũ nhất là phiên bản nào) Sau khi hoàn tất bấm Finish, project mới đã được tạo. Bước 2: Thêm code cho chương trình: Ở project mới tạo ta thấy nó sẽ tạo cho ta các thư mục như trong cấu trúc trình bày ở trên.Thư mục source sẽ chứa code của chương trình, ta sẽ thêm code vào trong file Hello.java : public class HelloActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);} Ngoài ra để thiết kế giao diện cho ứng dụng ta có thể dùng XML hoặc thiết kế bằng giao diện, Elipse có hỗ trợ thiết kế giao diện kéo thả. Muốn làm được vậy ta vào thư mục res/layout ở đây sẽ chứa file .xml của ứng dụng. Mọi thiết kế trong file main.xnl sẽ được hiển thị khi code File Hello.java gọi nó. Cấu trúc file mxl như sau: ‐ 9 ‐    Đề tài : Xây Dựng Hệ Thống Báo Trạm Xe Buýt Mỗi ứng dụng đều cần có AndroidManifest.xml để mô tả những thông tin quan trọng của nó cho hệ thống Android biết. Chúng ta xem xét kỹ hơn qua ví dụ dưới: Cụ thể những công việc mà AndroidManifest.xml thực hiện: ‐ Đặt tên cho Java package của ứng dụng. ‐ Mô tả các thành phần (component) của ứng dụng: activity, service, broadcast receiver hoặc content provider. ‐ Thông báo những permission mà ứng dụng cần có để truy nhập các protected API và tương tác với các ứng dụng khác. ‐ Thông báo những permission mà các ứng dụng khác cần có để tương tác với ứng dụng hiện thời. ‐ Thông báo level thấp nhất của Android API mà ứng dụng cần để chạy. (Android 1.0 là level 1, 1.1 là level 2, 1.5 level 3, 1.6 level 4 và 2.0 là level 5). ‐ 10 ‐    Đề tài : Xây Dựng Hệ Thống Báo Trạm Xe Buýt 2.2. Webservice 2.2.1. Giới thiệu công nghệ Theo định nghĩa của W3C (World Wide Web Consortium), dịch vụ Web là một hệ thống phần mềm được thiết kế để hỗ trợ khả năng tương tác giữa các ứng dụng trên các máy tính khác nhau thông qua mạng Internet, giao diện chung và sự gắn kết của nó được mô tả bằng XML. Dịch vụ Web là tài nguyên phần mềm có thể xác định bằng địa chỉ URL, thực hiện các chức năng và đưa ra các thông tin người dùng yêu cầu. Một dịch vụ Web được tạo nên bằng cách lấy các chức năng và đóng gói chúng sao cho các ứng dụng khác dễ dàng nhìn thấy và có thể truy cập đến những dịch vụ mà nó thực hiện, đồng thời có thể yêu cầu thông tin từ dịch vụ Web khác. Nó bao gồm các module độc lập cho hoạt động của khách hàng và doanh nghiệp và bản thân nó được thực thi trên server. Trước hết, có thể nói rằng ứng dụng cơ bản của Dịch vụ Web là tích hợp các hệ thống và là một trong những hoạt động chính khi phát triển hệ thống.Trong hệ thống này, các ứng dụng cần được tích hợp với cơ sở dữ liệu (CSDL) và các ứng dụng khác, người sử dụng sẽ giao tiếp với CSDL để tiến hành phân tích và lấy dữ liệu. Trong thời gian gần đây, việc phát triển mạnh mẽ của thương mại điện tử và B2B cũng đòi hỏi các hệ thống phải có khả năng tích hợp với CSDL của các đối tác kinh doanh (nghĩa là tương tác với hệ thống bên ngoài – bên cạnh tương tác với các thành phần bên trong của hệ thống trong doanh nghiệp). Dưới đây, chúng ta sẽ xem qua những khái niệm và cách thức cơ bản nhất để xây dựng một dịch vụ Web trong tích hợp và phát triển hệ thống. 2.2.2. Đặc điểm Webservice 2.2.2.1. Đặc điểm Dịch vụ Web cho phép client và server tương tác được với nhau ngay cả trong những môi trường khác nhau. Ví dụ, đặt Web server cho ứng dụng trên một máy chủ chạy hệ điều hành Linux trong khi người dùng sử dụng máy tính chạy hệ điều hành Windows, ứng dụng vẫn có thể chạy và xử lý bình thường mà không cần thêm yêu cầu đặc biệt để tương thích giữa hai hệ điều hành này. Phần lớn kĩ thuật của Dịch vụ Web được xây dựng dựa trên mã nguồn mở và được phát triển từ các chuẩn đã được công nhận, ví dụ như XML. Một Dịch vụ Web bao gồm có nhiều module và có thể công bố lên mạng Internet. Là sự kết hợp của việc phát triển theo hướng từng thành phần với những lĩnh vực cụ thể và cơ sở hạ tầng Web, đưa ra những lợi ích cho cả doanh nghiệp, khách hàng, những nhà cung cấp khác và cả những cá nhân thông qua mạng Internet. ‐ 11 ‐    Đề tài : Xây Dựng Hệ Thống Báo Trạm Xe Buýt Một ứng dụng khi được triển khai sẽ hoạt động theo mô hình client-server. Nó có thể được triển khai bởi một phần mềm ứng dụng phía server ví dụ như PHP, Oracle Application server hay Microsoft.Net… Ngày nay dịch vụ Web đang rất phát triển, những lĩnh vực trong cuộc sống có thể áp dụng và tích hợp dịch vụ Web là khá rộng lớn như dịch vụ chọn lọc và phân loại tin tức (hệ thống thư viện có kết nối đến web portal để tìm kiếm các thông tin cần thiết); ứng dụng cho các dịch vụ du lịch (cung cấp giá vé, thông tin về địa điểm…), các đại lý bán hàng qua mạng, thông tin thương mại như giá cả, tỷ giá hối đoái, đấu giá qua mạng…hay dịch vụ giao dịch trực tuyến (cho cả B2B và B2C) như đặt vé máy bay, thông tin thuê xe… Các ứng dụng có tích hợp dịch vụ Web đã không còn là xa lạ, đặc biệt trong điều kiện thương mại điện tử đang bùng nổ và phát triển không ngừng cùng với sự lớn mạnh của Internet. Bất kì một lĩnh vực nào trong cuộc sống cũng có thể tích hợp với dịch vụ Web, đây là cách thức kinh doanh và làm việc có hiệu quả bởi thời đại ngày nay là thời đại của truyền thông và trao đổi thông tin qua mạng. Do vậy, việc phát triển và tích hợp các ứng dụng với dịch vụ Web đang được quan tâm phát triển là điều hoàn toàn dễ hiểu. 2.2.2.2. Ưu và nhược điểm Ưu điểm: ‐ Dịch vụ Web cung cấp khả năng hoạt động rộng lớn với các ứng dụng phần mềm khác nhau chạy trên những nền tảng khác nhau. ‐ Sử dụng các giao thức và chuẩn mở. Giao thức và định dạng dữ liệu dựa trên văn bản (text), giúp các lập trình viên dễ dàng hiểu được. ‐ Nâng cao khả năng tái sử dụng. ‐ Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phép các tiến trình/chức năng nghiệp vụ đóng gói trong giao diện dịch vụ Web. ‐ Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán. ‐ Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành hoạt động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh nghiệp khác. Nhược điểm: ‐ Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của Dịch vụ Web, giao diện không thay đổi, có thể lỗi nếu một máy khách không được nâng cấp, thiếu các giao thức cho việc vận hành. ‐ Có quá nhiều chuẩn cho dịch vụ Web khiến người dùng khó nắm bắt. ‐ Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật. ‐ 12 ‐    Đề tài : Xây Dựng Hệ Thống Báo Trạm Xe Buýt 2.2.3. Kiến trúc Webservice Dịch vụ Web gồm có 3 chuẩn chính: ‐ SOAP (Simple Object Access Protocol) ‐ WSDL (Web Service Description Language) ‐ UDDI (Universal Description, Discovery, and Integration). Chồng giao thức dịch vụ Web là tập hợp các giao thức mạng máy tính được sử dụng để định nghĩa, xác định vị trí, thi hành và tạo nên dịch vụ Web tương tác với những ứng dụng hay dịch vụ khác. Chồng giao thức này có 4 thành phần chính: ‐ Dịch vụ vận chuyển (Service Transport): có nhiệm vụ truyền thông điệp giữa các ứng dụng mạng, bao gồm những giao thức như HTTP, SMTP, FTP, JSM và gần đây nhất là giao thức thay đổi khổi mở rộng (Blocks Extensible Exchange ProtocolBEEP). ‐ Thông điệp XML: có nhiệm vụ giải mã các thông điệp theo định dạng XML để có thể hiểu được ở mức ứng dụng tương tác với người dùng. Hiện tại, những giao thức thực hiện nhiệm vụ này là XML-RPC, SOAP và REST. ‐ Mô tả dịch vụ: được sử dụng để miêu tả các giao diện chung cho một dịch vụ Web cụ thể. WSDL thường được sử dụng cho mục đích này, nó là một ngôn ngữ mô tả giao tiếp và thực thi dựa trên XML.Dịch vụ Web sẽ sử dụng ngôn ngữ này để truyền tham số và các loại dữ liệu cho các thao tác và chức năng mà dịch vụ Web cung cấp. ‐ Khám phá dịch vụ: tập trung dịch vụ vào trong một nơi được đăng ký, từ đó giúp một dịch vụ Web có thể dễ dàng khám phá ra những dịch vụ nào đã có trên mạng, tốt hơn trong việc tìm kiếm những dịch vụ khác để tương tác. Một dịch vụ Web cũng phải tiến hành đăng ký để các dịch vụ khác có thể truy cập và giao tiếp.Hiện tại, UDDI API thường được sử dụng để thực hiện công việc này. Trong đó, tầng giao thức tương tác dịch vụ (Service Communication Protocol) với công nghệ chuẩn là SOAP. SOAP là giao thức nằm giữa tầng vận chuyển và tầng mô tả thông tin về dịch vụ, cho phép người dùng triệu gọi một dịch vụ từ xa thông qua một thông điệp XML. Ngoài ra, để các dịch vụ có tính an toàn, toàn vẹn và bảo mật thông tin, trong kiến trúc dịch vụ Web, chúng ta có thêm các tầng Policy, Security, Transaction, Management. 2.2.4. Các thành phần của Webservice 2.2.4.1. XML – eXtensible Markup Language ‐ Là một chuẩn mở do W3C đưa ra cho cách thức mô tả dữ liệu, nó được sử dụng để định nghĩa các thành phần dữ liệu trên trang web và cho những tài liệu B2B. ‐ 13 ‐   
- Xem thêm -