MỞ ĐẦU 1. LÝ DO CHỌN ĐỀ TÀI Ngày nay các thiết bị số cầm tay như điện thoại di động, điện thoại thông minh, máy tính bảng có rất nhiều trên thị trường. Với giá thành ngày càng rẻ và các lợi ích đem lại, các thiết bị đó ngày càng được sử dụng nhiều và phổ biến. Một nền tảng được sử dụng trong các thiết bị đó là hệ điều hành thông minh Android của Google.
Do vậy đi cùng việc phát triển và sử dụng các thiết bị phần cứng một cách hiệu quả thì việc phát triển các ứng dụng phần mềm chạy trên nền Android càng lúc càng tăng cao. Các thiết bị di động ngày càng mạnh mẽ với khả năng xử lí các tác vụ mà chúng ta khó có thể tưởng tượng trước đây vài năm. Những chiếc điện thoại thời trang và tiện dụng với những tính năng về phần cứng như GPS, gia tốc kế và màn hình cảm ứng là một nền tảng hấp dẫn cho các ứng dụng di động đột phá. Trong khi việc phát triển nền tảng di động hiện nay chủ yếu xây dựng trên các hệ điều hành độc quyền, hạn chế các ứng dụng của bên thứ ba, sự ra đời của Android đã mang lại một giải pháp mở.
Không bị hạn chế, các lập trình viên Android tự do viết các ứng dụng tận dụng tối đa sự phát triển mạnh mẽ của phần cứng cho điện thoại di động. Android nhanh chóng trở thành hệ điều hành thu hút nhiều lập trình viên và chiếm một thị phần lớn trong thị trường di động. Việc sử dụng các thiết bị số cầm tay ngoài khả năng hỗ trợ con người trong công việc, giải trí mà còn giúp con người tiết kiệm thời gian hơn vào nhiều công việc thực tiễn trong đời sống hằng ngày. Hiện nay xe buýt là phương tiện được khuyến khích sử dụng nhằm giảm thiểu ùn tắt giao thông.
Vì vậy việc tìm lịch trình các tuyến xe buýt là điều khá hữu dụng trong cuộc sống, khi mà trong một số trường hợp chúng ta rất khó có thể xác định được có bao nhiêu tuyến xe buýt đang hoạt động, tuyến đường nào có xe buýt đi qua, bao nhiêu phút thì có xe buýt đi qua… 1. MỤC TIÊU VÀ NHIỆM VỤ Mục tiêu: Tìm hiểu được các công nghệ lập trình cần thiết trên nền Android để hoàn thành được ứng dụng có thể có thể tìm kiếm nhanh và chính xác vị trí các tuyến xe buýt trong thành phố Đà Nẵng. Hiểu về nguyên lý hoạt động của Android, các thành phần của hệ thống cũng như của một ứng dụng thực thi trên nền android. SVTH: Tưởng Thành Nhật – CCLT04B Trang 1 Xây dựng hệ thống tìm lịch trình xe buýt trên hệ điều hành Android Tìm hiểu và áp dụng được các công nghệ lập trình trên nền Android như ngôn ngữ JAVA, tương tác với các tài nguyên của hệ thống (GPS, Internet, TouchScreen), sử dụng các dịch vụ của Google như Google Map, Google Places API, Google Directions API, Google Geocoding API.
Nhiệm vụ: Đọc các tài liệu liên quan về bộ thư viện lập trình trên nền Android. Tìm hiểu các dịch vụ liên quan đến ứng dụng. ĐỐI TƢỢNG NGHIÊN CỨU VÀ PHẠM VI HỆ THỐNG Đối tƣợng: Ngôn ngữ JAVA, JSON, XML. Hệ cơ sở dữ liệu SQlite.
Công cụ Android SDK Eclipse. Hệ điều hành và tài nguyên hệ thống Android. Các dịch vụ của google như Google Map, Google Places API, Google Directions API, Google Geocoding API. Phạm vi: Đề tài chỉ dừng lại ở khuôn khổ tìm kiếm các tuyến xe buýt hoạt động trong thành phố Đà Nẵng, ứng dụng mapview để tìm kiếm và dẫn đường trực quan cho người dùng.
Ứng dụng được viết trên nền android 4. PHƢƠNG PHÁP NGHIÊN CỨU Đọc sách và các tài liệu tham khảo tìm được. Hỏi những người có chuyên môn về Android. Ý NGHĨA THỰC TIỄN CỦA ỨNG DỤNG Chương trình có thể áp dụng vào cuộc sống hàng ngày để tìm kiếm các tuyến xe buýt khi có nhu cầu bằng thiết bị cầm tay chạy hệ điều hành Android mà đến cả những người có ít kiến thức về công nghệ cũng có thể sử dụng.
SVTH: Tưởng Thành Nhật – CCLT04B Trang 2 Xây dựng hệ thống tìm lịch trình xe buýt trên hệ điều hành Android CHƢƠNG 2 – CƠ SỞ LÝ THUYẾT 2. GIỚI THIỆU HỆ ĐIỀU HÀNH ANDROID Android là hệ điều hành trên các thiết bị số di động như smartphone và tablet (và hiện nay là cả trên một số đầu phát HD, HD Player) 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. Vào năm 2005, Google đã mua lại Android nằm trong chiến lược tiến vào thị trường di động.
Google muốn Android trở thành nền tảng “mở” và miễn phí. Do vậy hầu hết mã nguồn của Android được phát hành theo giấy phép mã nguồn mở Apache nên bất cứ ai muốn sử dụng Android có thể download toàn bộ mã nguồn. Hơn nữa các nhà sản xuất phần cứng có thể thêm các thành phần mở rộng độc quyền của hãng để tạo ra các sản phẩm khác nhau. Chính mô hình phát triển đơn giản này khiến Android trở nên rất hấp dẫn.
Android có một cộng đồng những nhà phát triển rất lớn viết các ứng dụng cho hệ điều hành của mình. Hiện tại có khoảng hơn 250,000 ứng dụng cho Android OS và vào khoảng hơn 375,000 ứng dụng đã được đệ trình, điều này khiến Android trở thành hệ điều hành di động có môi trường phát triển lớn thứ 2. Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn ngữ Java. Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 78 công ty phần cứng, phần mềm và viễn thông nhằm mục đính tạo nên một chuẩn mở cho điện thoại di động trong tương lai.
Google công bố hầu hết các mã nguồn của Android theo bản cấp phép Apache. Hệ điều hành Android bao gồm 12 triệu dòng mã; 3 triệu dòng XML, 2.1 triệu mã Java và 1. Tổng quan cấu trúc của Android Nói một cách đơn giản thì Android bao gồm ba thành phần: 1. Một hệ điều hành mở, miễn phí cho các thiết bị di động.
Một nền tảng mã nguồn mở cho phát triển các ứng dụng. Thiết bị chạy hệ điều hành Android và các ứng dụng Android. Chi tiết hơn thì Android gồm các thành phần quan trọng sau: 1. Một thiết kế phần cứng cho thiết bị di động hỗ trợ bộ phần mềm.
Một nhân hệ điều hành Linux cung cấp giao diện mức thấp với phần cứng, quản lý bộ nhớ và kiểm soát tiến trình. Tất cả đều tối ưu hoá cho thiết bị di động. SVTH: Tưởng Thành Nhật – CCLT04B Trang 3 Xây dựng hệ thống tìm lịch trình xe buýt trên hệ điều hành Android 3. Thư viện mã nguồn mở cho phát triển ứng dụng bao gồm SQLite, Webkit, OpenGL và quản lí đa phương tiện.
Một hệ thống thực thi và lưu trữ cho ứng dụng Android bao gồm máy ảo Dalvik và các thư viện cơ bản cung cấp chức năng đặc thù cho Android. Hệ thống thực thi được thiết kế nhỏ gọn và hiệu quả khi sử dụng trên các thiết bị di động. Một kiến trúc ứng dụng cung cấp các dịch vụ hệ thống cho tầng ứng dụng bao gồm quản lí cửa sổ, quản lí vị trí, cung cấp nội dung và các cảm biến. Một kiến trúc giao diện người dùng để lưu trữ và chạy các ứng dụng.
Một số ứng dụng được cài đặt sẵn được coi như một phần của bộ ứng dụng. Một bộ phát triển ứng dụng bao gồm các công cụ và tài liệu.1: Các thành phần của hệ điều hành Android 2. Sơ lƣợc các phiên bản Android Android là một nền tảng mới và phát triển nhanh. Các phiên bản thông thường được phát hành sau khoảng 6 tháng.
Sau đây là danh sách các phiên bản chính và sự thay đổi lớn trong mỗi phiên bản Android. OHA giới thiệu Android (5-11-2007). Phát hành SDK (12-11-2007). SVTH: Tưởng Thành Nhật – CCLT04B Trang 4 Xây dựng hệ thống tìm lịch trình xe buýt trên hệ điều hành Android Apple pie - Android 1.0 (23/11/2008): Phát hành phiên bản Android 1.0 trên điện thoại Android đầu tiên – HTC Dream (G1).
Banana bread - Android 1.1 (9-2-2009): Phát hành phiên bản cập nhật 1.1 riêng cho T-Mobile G1. Ice Cream Sandwich – Android 4. Đây là thế hệ android được mong đợi, cùng với sự xuất hiện của dòng Smartphone Samsung Galaxy Nexus, thế hệ Smartphone đầu tiên trang bị ICS Jelly Bean – Android 4. Đây là sản phẩm hợp tác giữa Google và Asus Jelly Bean – Android 4.2 (11/2012) Tên gọi của các phiên bản Android đều được đặt theo các món tráng miệng: Hình 2.2: Logo và tên các phiên bản Android 2.
Các thành phần cơ bản của ứng dụng Android Ứng dụng Android bao gồm nhiều thành phần liên kết với nhau được giới hạn trong kiến trúc ứng dụng. Kiến trúc ứng dụng mô tả chi tiết mỗi thành phần và sự tương tác giữa các thành phần này cũng như siêu dữ liệu về yêu cầu phần cứng. SVTH: Tưởng Thành Nhật – CCLT04B Trang 5 Xây dựng hệ thống tìm lịch trình xe buýt trên hệ điều hành Android Các thành phần sau đây tạo nên một ứng dụng Android: Activity: là lớp thể hiện ứng dụng. Mỗi màn hình trong ứng dụng là một mở rộng của lớp Activity.
Các Activity sử dụng các View tạo thành giao diện đồ họa tương tác người dùng để thể hiện thông tin và phản hồi hành động của người dùng. Service: là thành phần chạy ẩn, cập nhật nguồn dữ liệu và thể hiện các Activity, kích hoạt các Notification. Các Service thường thực hiện các xử lí thông thường như tiếp tục Activity sau khi các Activity này không hoạt động hoặc hiển thị. Content Provider: là thành phần lưu trữ dữ liệu chia sẻ.
Content Provider quản lí và chia sẻ cơ sở dữ liệu của ứng dụng. Chúng được coi như là phương tiện chia sẻ dữ liệu giữa các ứng dụng. Intent: là cấu trúc truyền thông điệp giữa các ứng dụng. Chúng ta có thể sử dụng Intent để truyền một thông tin tới toàn hệ thống hay tới Activity hay Service định trước để thực thi một hoạt động.
Hệ thống sau đó sẽ xác định đối tượng nào sẽ thực hiện các hoạt động phù hợp. Broadcast Receiver: là nơi nhận các Intent. Chúng ta có thể tự tạo một Broadcast Receiver để ứng dụng có thể nhận được các Intent phù hợp với bộ lọc đặt trước. Broadcast Receiver tự động bắt đầu khi ứng dụng phản hồi với Intent nhận được và biến ứng dụng trở thành hướng sự kiện một cách hoàn hảo.
Widget: thành phần trực quan của ứng dụng có thể thêm vào màn hình chính.