Nghiên cứu hệ điều hành Android và xây dựng ứng dụng tìm kiếm máy rút tiền ATM

32 205 0
Nghiên cứu hệ điều hành Android và xây dựng ứng dụng tìm kiếm máy rút tiền ATM

Đ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

Với sự phát triển nhanh chóng của khoa học công nghệ và đặc biệt là ngành công nghệ thông tin, làm từng bước thay đổi cuộc sống của con người bởi các ứng dụng sản phẩm của công nghệ. Một trong những bộ phận ứng dụng công nghệ thông tin chính là thay đổi và giúp đỡ việc sinh hoạt hàng ngày của mọi người trong cuộc sống. Vì vậy em đã lựa chọn đề tài “Nghiên cứu hệ điều hành Android và xây dựng ứng dụng tìm kiếm máy rút tiền ATM” để làm đồ án với ý nghĩa mang tính thực tế.

TRƯỜNG ĐHSPKT VINH KHOA CNTT MỤC LỤC GVHD: ThS Trần Thanh Phong SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT LỜI NÓI ĐẦU Với phát triển nhanh chóng khoa học cơng nghệ đặc biệt ngành công nghệ thông tin, làm bước thay đổi sống người ứng dụng sản phẩm công nghệ Một phận ứng dụng cơng nghệ thơng tin thay đổi giúp đỡ việc sinh hoạt hàng ngày người sống Vì em lựa chọn đề tài “Nghiên cứu hệ điều hành Android xây dựng ứng dụng tìm kiếm máy rút tiền ATM” để làm đồ án với ý nghĩa mang tính thực tế Trong thời gian làm đồ án em gặp khơng khó khăn giúp đỡ hướng dẫn tận tình thầy giáo, giáo mơn lập trình – Khoa Học Máy Tính –Trường đại học sư phạm kỹ thuật Vinh giúp em hoàn thành đồ án Em xin chân thành cảm ơn giảng viên ths.Trần Thanh Phong – người trực tiếp hướng dẫn tận tình hướng dẫn giúp đỡ em hoàn thành đồ án Một lời cảm ơn sâu sắc em muốn gửi tới toàn thể thầy cô giáo trang bị cho em kiến thức cần thiết năm học vừa qua để em thực tốt đồ án đủ tự tin để làm việc sau Em xin chân thành cảm ơn! GVHD: ThS Trần Thanh Phong SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT CHƯƠNG – MỞ ĐẦU 1.1 Lý chọn đề tài Ngày thiết bị số cầm tay điện thoại di động, điện thoại thông minh, máy tính bảng có nhiều thị trường Với giá thành ngày rẻ lợi ích đem lại, thiết bị ngày sử dụng nhiều phổ biến Một tảng sử dụng thiết bị hệ điều hành thơng minh Android Google Do việc phát triển sử dụng thiết bị phần cứng cách hiệu việc phát triển ứng dụng phần mềm chạy Android lúc tăng cao Các thiết bị di động ngày mạnh mẽ với khả xử lí tác vụ mà khó tưởng tượng trước vài năm Những điện thoại thời trang tiện dụng với tính phần cứng GPS, gia tốc kế hình cảm ứng tảng hấp dẫn cho ứng dụng di động đột phá Trong việc phát triển tảng di động chủ yếu xây dựng hệ điều hành độc quyền, hạn chế ứng dụng bên thứ ba, đời Android mang lại giải pháp mở Khơng bị hạn chế, lập trình viên Android tự viết ứng dụng tận dụng tối đa phát triển mạnh mẽ 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 chiếm thị phần lớn thị trường di động Việc sử dụng thiết bị số khả hỗ trợ người cơng việc, giải trí mà giúp người tiết kiệm thời gian vào nhiều công việc thực tiễn đời sống ngày Hiện hình thức lưu giữ tiền phổ biến sống thẻ rút tiền ATM, dùng để chi trả lương cho nhiều nhân viên công ty, doanh nghiệp, hay dùng để gởi tiền cho sinh viên xa nhà Vì việc tìm kiếm địa điểm để sử dụng thẻ điều hữu dụng sống, mà số trường hợp khó xác định cột thẻ hàng ngàn địa điểm thành phố hay khu vực khác 1.2 Đối tượng nghiên cứu Với đề tài này, em tập trung vào nội dung : - Cách cài đặt chương trình để chạy android - Tìm hiểu Activity Android - Tìm hiểu Service Android GVHD: ThS Trần Thanh Phong SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH - Tìm hiểu Google Map API - Cách tạo giao diện Android - Cách lưu trữ liệu Android - Xây dựng ứng dụng tìm kiếm máy ATM KHOA CNTT 1.3 Mục đích nghiên cứu - Nghiên cứu kiến trúc Android - Nghiên cứu thành phần Android - Nghiên cứu cách phát triển ứng dụng Android - Xây dựng ứng dụng “Tìm kiếm máy ATM” tảng Android 1.4 Ý nghĩa lý luận thực tiễn đề tài - Ý nghĩa luận: Đề tài tài liệu tham khảo hữu ích cho muốn tìm hiểu Android Bên cạnh đó, chưa có nhiều tài liệu tham khảo Android tiếng việt, em muốn nghiên cứu muốn đóng góp hiểu biết để làm giàu thêm tài liệu tham khảo cho chủ đề - Ý nghĩa thực tiễn: Hiện tại, hệ điều hành Android sử dụng rộng rãi thiết bị di động Nhu cầu học người dùng điện thoại cao Chính chương trình “tìm kiếm máy ATM” ứng dụng học tập hữu ích cho sử dụng điện thoại cài hệ điều hành Android GVHD: ThS Trần Thanh Phong SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT CHƯƠNG – CƠ SỞ LÝ THUYẾT Giới thiệu hệ điều hành Android 2.1 Android hệ điều hành thiết bị số di động smartphone tablet (và số đầu phát HD, HD Player) phát triển Google dựa tảng Linux Trước đây, Android phát triển công ty liên hợp Android Vào năm 2005, Google mua lại Android nằm chiến lược tiến vào thị trường di động Google muốn Android trở thành tảng “mở” miễn phí Do hầu hết mã nguồn Android phát hành theo giấy phép mã nguồn mở Apache nên muốn sử dụng Android download tồn mã nguồn Hơn nhà sản xuất phần cứng thêm thành phần mở rộng độc quyền hãng để tạo sản phẩm khác Chính mơ hình phát triển đơn giản khiến Android trở nên hấp dẫn Android có cộng đồng nhà phát triển lớn viết ứng dụng cho hệ điều hành Hiện có khoảng 250,000 ứng dụng cho Android OS vào khoảng 375,000 ứng dụng đệ trình, điều 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ứ Các nhà phát triển viết ứng dụng cho Android dựa ngôn ngữ Java Sự mắt Android vào ngày tháng 11 năm 2007 gắn với thành lập 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 viễn thông nhằm mục đính tạo nên chuẩn mở cho điện thoại di động tương lai Google công bố hầu hết mã nguồn Android theo cấp phép Apache Hệ điều hành Android bao gồm 12 triệu dòng mã; triệu dòng XML, 2.8 triệu dòng mã C, 2.1 triệu mã Java 1.75 triệu dòng mã C++ 2.1.1 Tổng quan cấu trúc Android Nói cách đơn giản Android bao gồm ba thành phần: Một hệ điều hành mở, miễn phí cho thiết bị di động Một tảng mã nguồn mở cho phát triển ứng dụng Thiết bị chạy hệ điều hành Android ứng dụng Android Chi tiết Android gồm thành phần quan trọng sau: Một thiết kế phần cứng cho thiết bị di động hỗ trợ phần mềm GVHD: ThS Trần Thanh Phong SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT 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ý nhớ kiểm sốt tiến trình Tất tối ưu hoá cho thiết bị di động Thư viện mã nguồn mở cho phát triển ứng dụng bao gồm SQLite, Webkit, OpenGL quản lí đa phương tiện Một hệ thống thực thi lưu trữ cho ứng dụng Android bao gồm máy ảo Dalvik thư viện cung cấp chức đặc thù cho Android Hệ thống thực thi thiết kế nhỏ gọn hiệu sử dụng thiết bị di động Một kiến trúc ứng dụng cung cấp 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 cảm biến Một kiến trúc giao diện người dùng để lưu trữ chạy ứng dụng Một số ứng dụng cài đặt sẵn coi phần ứng dụng Một phát triển ứng dụng bao gồm cơng cụ tài liệu Hình 1: Các thành phần hệ điều hành Android 2.1.2 Sơ lược phiên Android Android tảng phát triển nhanh Các phiên thông thường phát hành sau khoảng tháng Sau danh sách phiên thay đổi lớn phiên Android GVHD: ThS Trần Thanh Phong SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT  OHA giới thiệu Android (5-11-2007)  Phát hành SDK (12-11-2007)  Apple pie - Android 1.0 (23/9/2008): Phát hành phiên Android 1.0 điện thoại Android – HTC Dream (G1)  Banana bread - Android 1.1 (9-2-2009): Phát hành phiên cập nhật 1.1 riêng cho T-Mobile G1  Cupcake - Android 1.5 (30/4/2009)  Donut - Android 1.6 (15/9/2009)  Éclair - Android 2.0 (26/10/2009)  Froyo - Android 2.2 (20/5/2010)  Gingerbread - Android 2.3 (6/12/2010)  Honeycomb - Android 3.0 (22/2/2011)  Ice Cream Sandwich: tuyên bố phát hành quí năm 2011 Đây kết hợp hai phiên Gingerbread Honeycomb  Jelly Bean - Android 4.1 (9/7/2012)  KitKat - Android 4.3 (10/2013)  Lollipop - Android 5.0 (7/2014)  Marshmallow - Android 6.0 (29/9/2016) Tên gọi phiên Android đặt theo tráng miệng: GVHD: ThS Trần Thanh Phong SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT Hình 2: Logo tên phiên Android 2.1.3 Các thành phần ứng dụng Android Ứng dụng Android bao gồm nhiều thành phần liên kết với giới hạn kiến trúc ứng dụng Kiến trúc ứng dụng mô tả chi tiết thành phần tương tác thành phần siêu liệu yêu cầu phần cứng Các thành phần sau tạo nên ứng dụng Android:  Activity: lớp thể ứng dụng Mỗi hình ứng dụng mở rộng lớp Activity Các Activity sử dụng View tạo thành giao diện đồ họa tương tác người dùng để thể thông tin phản hồi hành động người dùng  Service: thành phần chạy ẩn, cập nhật nguồn liệu thể Activity, kích hoạt Notification Các Service thường thực xử lí thơng thường tiếp tục Activity sau Activity không hoạt động hiển thị  Content Provider: thành phần lưu trữ liệu chia sẻ Content Provider quản lí chia sẻ sở liệu ứng dụng Chúng coi phương tiện chia sẻ liệu ứng dụng  Intent: cấu trúc truyền thơng điệp ứng dụng Chúng ta sử dụng Intent để truyền thơng tin tới tồn hệ thống hay tới Activity hay Service định GVHD: ThS Trần Thanh Phong SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT trước để thực thi hoạt động Hệ thống sau xác định đối tượng thực hoạt động phù hợp  Broadcast Receiver: nơi nhận Intent Chúng ta tự tạo Broadcast Receiver để ứng dụng nhận Intent phù hợp với lọc đặt trước Broadcast Receiver tự động bắt đầu ứng dụng phản hồi với Intent nhận biến ứng dụng trở thành hướng kiện cách hoàn hảo  Widget: thành phần trực quan ứng dụng thêm vào hình Là dạng Broadcast Receiver, Widget cho phép người dùng tạo ứng dụng động, tương tác nhúng hình  Notification: thành phần thông báo cho người dùng Hộp thoại thông báo cho người dùng mà không gián đoạn Activity thời Đây kĩ thuật thông báo cho người dùng năm Service hay Broadcast Receiver Ví dụ nhận tin nhắn hay gọi đến thơng báo cho người dùng nhấp nháy đèn hay âm thanh… Một ứng dụng không thiết phải gồm tất thành phần để có giao diện với người dùng ứng dụng phải có Activity Mã biên dịch thành phần ứng dụng, tài nguyên liên quan thư viện, hình ảnh liệu cần thiết khác đóng gói file apk dạng file thực thi ứng dụng Android Như trình bày trên, Activity thành phần quan trọng đóng vai trò việc xây dựng ứng dụng Android Hệ điều hành Android quản lí ứng dụng dạng stack : Activity khởi tạo, xếp lên đầu stack trở thành running activity, Actitivy trước bị tạm dừng vả hoạt động trở lại Activity giải phóng 2.1.4 Các dịch vụ google với lập trình MapView Để làm việc tốt với hệ thống đồ google, cần sử dụng số dịch vụ cần thiết để lập trình Điểm chung dịch vụ chạy môi trường web trả kết qua định dạng file JSON XML 2.1.4.1 Google Maps Google Maps (thời gian trước gọi Google Local) dịch vụ ứng dụng công nghệ đồ trực tuyến web miễn phí cung cấp Google hỗ trợ GVHD: ThS Trần Thanh Phong SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT nhiều dịch vụ dựa vào đồ Google Ride Finder số dùng để nhúng vào trang web bên thứ ba thông qua Google Maps API Nó cho phép thấy đồ đường sá, đường cho xe đạp, cho người (những đường ngắn 6.2 dặm) xe hơi, địa điểm kinh doanh khu vực khắp nơi giới Hình 3: Một ví dụ Google Maps 2.1.4.2 Google Places API Google Places API dịch vụ Google INC mà sử dụng nhận thông tin địa điểm đánh dấu đổ Google Maps tổ chức, công ty cá nhân khắp nơi giới Để sử dụng dịch vụ phải đăng ký API key dịch vụ Google Places với google (Sử dụng miễn phí có giới hạn số lần request/day) GVHD: ThS Trần Thanh Phong 10 SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT tạo phương thức (chương trình gắn liền với lớp cụ thể) Trong Java khơng cho phép đối tượng có tính đa kế thừa mà thay giao diện (interface) Độc lập phần cứng hệ điều hành: Đối với ngơn ngữ lập trình truyền thống C/C++, phương pháp biên dịch thực sau Hình 5: Cách biên dịch chương trình truyền thống Với phần cứng khác nhau, có trình biên dịch khác để biên dịch mã nguồn chương trình cho phù hợp với phần cứng Do vậy, chạy phần cứng khác bắt buộc phải biên dịch lại mã nguồn Đối với chương trình viết Java, trình biên dịch Javac biên dịch mã nguồn thành dạng bytecode Sau đó, chạy chương trình phần cứng khác nhau, máy ảo Java dùng trình thơng dịch Java để chuyển mã bytecode thành dạng chạy phần cứng tương ứng Do vậy, thay đổi phần cứng, biên dịch lại mã nguồn Java GVHD: ThS Trần Thanh Phong 18 SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT Hình 6: Cơ chế biên dịch chương trình Java Mạnh mẽ:  Java ngơn ngữ yêu cầu chặt chẽ kiểu liệu  Kiểu liệu phải khai báo tường minh  Java không sử dụng trỏ phép toán trỏ  Java kiểm tra tất truy nhập đến mảng, chuỗi thực thi để đảm bảo truy nhập khơng ngồi giới hạn kích thước  Trong mơi trường lập trình truyền thống, lập trình viên phải tự cấp phát nhớ, trước chương trình kết thúc phải tự giải phóng nhớ cấp Vấn đề nảy sinh lập trình viên qn giải phóng nhớ xin cấp trước Trong chương trình Java, lập trình viên bận tâm đến việc cấp phát nhớ Q trình cấp phát, giải phóng thực tự động, nhờ dịch vụ thu nhặt đối tượng khơng sử dụng (garbage collection)  Cơ chế bẫy lỗi Java giúp đơn giản hóa q trình xử lý lỗi hồi phục sau lỗi Bảo mật: Java cung cấp môi trường quản lý thực thi chương trình với nhiều mức để kiểm sốt tính an toàn:  Ở mức thứ nhất, liệu phương thức đóng gói bên lớp Chúng truy xuất thông qua giao diện mà lớp cung cấp  Ở mức thứ hai, trình biên dịch kiểm sốt để đảm bảo mã an tồn, tuân theo nguyên tắc Java  Mức thứ ba đảm bảo trình thơng dịch; chúng kiểm sốt xem bytecode có đảm bảo quy tắc an tồn trước thực thi khơng GVHD: ThS Trần Thanh Phong 19 SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT  Mức thứ tư kiểm soát việc nạp lớp vào nhớ để giám sát việc vi phạm giới hạn truy xuất trước nạp vào hệ thống Phân tán: Java thiết kế để hỗ trợ ứng dụng chạy mạng lớp mạng (java.net) Hơn nữa, Java hỗ trợ nhiều chạy khác nên chúng sử dụng rộng rãi công cụ phát triển Internet - nơi sử dụng nhiều khác Đa luồng: Chương trình Java cung cấp giải pháp đa luồng (Multithreading) để thực thi công việc đồng thời Chúng cung cấp giải pháp đồng luồng Đặc tính hỗ trợ đa luồng cho phép xây dựng ứng dụng mạng chạy hiệu Linh động: Java thiết kế ngôn ngữ động để đáp ứng cho môi trường mở Các chương trình Java chứa nhiều thơng tin thực thi nhằm kiểm soát truy nhập đối tượng lúc chạy Điều cho phép khả liên kết mã động 2.2.2 Ngôn ngữ JSON JSON (JavaScript Object Noattion) chuẩn để định dạng liệu Rất dễ dàng để đọc, viết phân tích Nó dựa sở tập hợp ngôn ngữ JavaScript, tiêu chuẩn ECMA-262 phiên – tháng 12 năm 1999 Khi sử dụng JSON khơng cần phải có bước phân tích phức tạp XML Mà truy vấn trực tiếp giá trị theo tên (khóa) định nghĩa JSON Đứng mặt tốc độ ứng dụng di động ưu điểm lớn JSON xây dựng cấu trúc:  Là tập hợp cặp tên giá trị name-value  Là tập hợp giá trị xếp Các đặc điểm JSON:  JSON văn trơn (khơng có định dạng(màu sắc, cỡ chữ,…))  JSON "tự mô tả" (người dùng hiểu được)  JSON phân cấp (có cấu trúc cây)  JSON phân tích cú pháp (parse) JavaScript  Dữ liệu JSON truyền AJAX  Khơng có thẻ kết thúc  Ngắn GVHD: ThS Trần Thanh Phong 20 SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT  Nhanh để đọc ghi  Có thể phân tích cú pháp hàm dựng sẵn JavaScript eval ()  Sử dụng mảng (Array)  Không dùng từ reserve 2.2.3 Ngôn ngữ XML XML, Extensible Markup Language (ngôn ngữ đánh dấu mở rộng), ngơn ngữ đánh dấu mà bạn sử dụng để tạo thẻ riêng Nó tạo nên Liên minh mạng tồn cầu nhằm khắc phục hạn chế HTML - ngôn ngữ đánh dấu siêu văn bản, sở trang Web Giống HTML, XML dựa SGML – Standard Generalized Markup Language Mặc dù SGML sử dụng ngành công nghiệp xuất nhiều thập kỷ, phức tạp khiến sử dụng mà khơng có cách khác phải thấy mệt mỏi Các đặc điểm XML:  Dễ dàng viết chương trình xử lý liệu  Tài liệu XML dễ đọc có tính hợp lý cao  XML dễ dàng sử dụng Internet  XML hỗ trợ nhiều ứng dụng  Khơng đặt nặng tính hình thức nội dung thẻ Các loại văn XML:  Văn không hợp lệ: không theo nguyên tắc cú pháp quy định đặc tính kỹ thuật XML  Văn hợp lệ: tuân theo nguyên tắc cú pháp XML quy định DTD lược đồ  Văn chuẩn: tuân theo quy tắc cú pháp XML khơng có DTD lược đồ Một tài liệu XML chia thành hai phần chính: - Phần khai báo: khai báo cho tài liệu XML  khai báo phiên bản, bảng mã ký tự sử dụng tài liệu  định nghĩa kiểu cho tài liệu GVHD: ThS Trần Thanh Phong 21 SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT - Phần thân: chứa nội dung liệu  gồm hay nhiều phần tử,  phần tử chứa cặp thẻ  phần tử phần tử gốc (root element) GVHD: ThS Trần Thanh Phong 22 SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT CHƯƠNG 3: THIẾT KẾ HỆ THỐNG PHẦN MỀM ỨNG DỤNG 3.1 Thiết kế hệ thống 3.1.1 Đặc tả tốn - Phần mềm cập nhật danh sách phường thành phố Vinh - Cập nhật danh sách ngân hàng - Tìm kiếm ATM theo quận huyện ngân hàng - Hiển thị ATM sau tìm kiếm Sơ đồ Use-case 3.1.2 Đặc tả chức chương trình - Tìm kiếm ATM theo địa điểm(Phường) khu vực thành phố Vinh - Cho phép tìm kiếm theo ngân hàng có khu vực -Cho phép hiển thị địa điểm cụ thể atm cần tìm kiếm 3.2 Biểu đồ trạng thái hoạt động Nguoi su dung khoi dong he thong de su dung GVHD: ThS Trần Thanh Phong Thuc hien 23 SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT 3.3 Phần mềm ứng dụng 3.3.1 Truyền liệu qua form Activity A Intent Activity B Trong android để truyền liệu qua form để sử dụng ta sử dụng đối tượng Intent Bundle Thay dùng danh sách tham số/đối số truyền thống, Android việc trao đổi liệu tiến trình sử dụng chế Intent Hình 2: Mơ hình trao đổi liệu Activity 3.3.2 Hiển thị MapView GVHD: ThS Trần Thanh Phong 24 SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT Hình 3: Quá trình lấy liệu map từ Google Thêm MapAPI key vào layout form: android:apiKey="0rMwFsILEdg4813dweucAH5iRKJHGozQs8FFvzQ" 3.3.3 Sử dụng tài nguyên GPS Internet hệ thống False Application Permission Check System Resources True Việc sử dụng tài nguyên hệ thống Android đề cập rõ lập trình, để tương tác với ứng dụng khác tài nguyên phần cứng, phải thêm thẻ quyền (permission) vào file manifest project Hình 4: Quá trình sử dụng tài nguyên hệ thống 3.3.4 Đánh dấu vị trí MapView Để đánh dấu vị trí map, sử dụng class để định dạng vị trí đánh dấu kế thừa từ class ItemizedOverlay thư viện android Bat dau Dua vi tri can danh dau (Location) ItemizedOverlay Danh dau len MapView Ket thuc Hình5: Quá trình đánh dấu vị trí MapView GVHD: ThS Trần Thanh Phong 25 SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT Việc đưa vị trí cần đánh dấu thực phương thức setLocation() ItemizedOverlay Sau điểm đánh dấu định dạng đồ họa cấu trúc class ItemizedOverlay vẽ tọa độ MapView tương ứng 3.3.5 Truy vấn lấy liệu từ hệ thống Services Google Hình 7: Quá trình Truy vấn lấy liệu từ hệ thống Services Google Cấu trúc URL truy vấn thuộc tính tìm kiếm cần có tọa độ nơi tìm kiếm bán kính Trong chương trình tạo HttpClient để thực thi URL truy vấn đối tượng Response, Entity để lấy liệu 3.3.6 Đọc liệu từ file JSON Cấu trúc file JSON xác định mảng giá trị dựa vào cặp thẻ đóng mở “[“ “]” Vì để lấy liệu khai báo mảng JSONArray định nghĩa sẵn gán liệu thông qua phương thức getJSONArray() Cấu trúc thẻ liệu mảng cấu trúc để truy cập đến thẻ mảng phải sử dụng phương thức getJSONObject() 3.4 Một số giao diện chương trình 3.4.1 MainActivity GVHD: ThS Trần Thanh Phong 26 SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT - Hiển thị danh sách phường ngân hàng thành phố vinh - Người dùng chọn địa điểm ngân hàng cần tìm kiếm sau thực thao tác tìm package com.maithu.googleplacesatm; import android.app.Activity; import android.content.Intent; import android.os.Bundle; GVHD: ThS Trần Thanh Phong 27 SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; public class MainActivity extends Activity { public static final String EXTRA_AREA = "AREA"; public static final String EXTRA_BANK = "BANK"; private Spinner spinnerArea; private Spinner spinnerBank; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); spinnerArea = (Spinner) findViewById(R.id.spinnerArea); // Create an ArrayAdapter using the string array and a default spinner layout ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.areas_array, android.R.layout.simple_spinner_item); // Specify the layout to use when the list of choices appears adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // Apply the adapter to the spinner spinnerArea.setAdapter(adapter); spinnerArea.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView parent, View view, int pos, long id) { parent.getItemAtPosition(pos); } @Override public void onNothingSelected(AdapterView adapterView) { } }); spinnerBank = (Spinner) findViewById(R.id.spinnerBank); // Create an ArrayAdapter using the string array and a default spinner layout ArrayAdapter adapterBank = ArrayAdapter.createFromResource(this, R.array.banks_array, android.R.layout.simple_spinner_item); // Specify the layout to use when the list of choices appears adapterBank.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_i tem); // Apply the adapter to the spinner spinnerBank.setAdapter(adapterBank); } GVHD: ThS Trần Thanh Phong 28 SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT public void onSearch(View v) { Intent intent = new Intent(this, GooglePlacesActivity.class); intent.putExtra(EXTRA_AREA, spinnerArea.getSelectedItemPosition()); intent.putExtra(EXTRA_BANK, spinnerBank.getSelectedItemPosition()); startActivity(intent); 3.4.2 Kết tìm kiếm Hiển thị địa cụ thể atm cần tìm package com.maithu.googleplacesatm; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import java.util.HashMap; import java.util.List; public class Places { public List parse(JSONObject jsonObject) { JSONArray jsonArray = null; GVHD: ThS Trần Thanh Phong 29 SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT try { jsonArray = jsonObject.getJSONArray("results"); } catch (JSONException e) { e.printStackTrace(); } return getPlaces(jsonArray); } private List getPlaces(JSONArray jsonArray) { int placesCount = jsonArray.length(); List placesList = new ArrayList(); HashMap placeMap = null; for (int i = 0; i < placesCount; i++) { try { placeMap = getPlace((JSONObject) jsonArray.get(i)); placesList.add(placeMap); } catch (JSONException e) { e.printStackTrace(); } } return placesList; } private HashMap getPlace(JSONObject googlePlaceJson) { HashMap googlePlaceMap = new HashMap(); String placeName = "-NA-"; String vicinity = "-NA-"; String latitude = ""; String longitude = ""; String reference = ""; try { if (!googlePlaceJson.isNull("name")) { placeName = googlePlaceJson.getString("name"); } if (!googlePlaceJson.isNull("vicinity")) { vicinity = googlePlaceJson.getString("vicinity"); } latitude = googlePlaceJson.getJSONObject("geometry").getJSONObject("location").getString("l at"); longitude = googlePlaceJson.getJSONObject("geometry").getJSONObject("location").getString("l ng"); reference = googlePlaceJson.getString("reference"); googlePlaceMap.put("place_name", placeName); googlePlaceMap.put("vicinity", vicinity); GVHD: ThS Trần Thanh Phong 30 SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT googlePlaceMap.put("lat", latitude); googlePlaceMap.put("lng", longitude); googlePlaceMap.put("reference", reference); } catch (JSONException e) { e.printStackTrace(); } return googlePlaceMap; } } KẾT LUẬN Qua kiến thức tảng học trường qua tài liệu chúng em tìm hiểu thực đề tài “ nghiên cứu hệ điều hành android xây dựng ứng dụng tìm kiếm máy rút tiền ATM android” chương trình thực số chức như: - Tìm kiếm ATM theo địa điểm(Phường) khu vực thành phố Vinh - Cho phép tìm kiếm theo ngân hàng có khu vực - Cho phép hiển thị địa điểm cụ thể atm cần tìm kiếm - Giao diện thân thiện với người dùng, dễ hiểu, dễ thao tác Tuy nhiên bên cạnh chức đạt chương trình số hạn chế như: - Chỉ áp dụng khu vực thành phố Vinh - Xử lý chậm sở liệu lớn - Chưa nâng cao nhiều chức Hướng phát triển đề tài: Em tiếp tục nghiên cứu hồn thiện ứng dụng để áp dụng vào thực tế thời gian tới Do kiến thức hạn chế nên khơng thể tránh thiếu sót q trình thực Em mong nhận góp ý q thầy để chương trình hồn thiện GVHD: ThS Trần Thanh Phong 31 SVTH: Mai Thị Thu TRƯỜNG ĐHSPKT VINH KHOA CNTT TÀI LIỆU THAM KHẢO [1] , Lý thuyết ứng dụng phát triên ứng dụng di động Khoa CNTT – Trường ĐHSPKT Vinh [2] Khuất Thùy Phương, Lập trình ứng dụng Android, NXB ĐHQG TP.Hồ Chí Minh Một số trang web tham khảo - http://sharecode.vn/ - http://android.vn -http://www.codeproject.com/ GVHD: ThS Trần Thanh Phong 32 SVTH: Mai Thị Thu ... Android - Xây dựng ứng dụng tìm kiếm máy ATM KHOA CNTT 1.3 Mục đích nghiên cứu - Nghiên cứu kiến trúc Android - Nghiên cứu thành phần Android - Nghiên cứu cách phát triển ứng dụng Android - Xây. .. em tìm hiểu thực đề tài “ nghiên cứu hệ điều hành android xây dựng ứng dụng tìm kiếm máy rút tiền ATM android chương trình thực số chức như: - Tìm kiếm ATM theo địa điểm(Phường) khu vực thành... nhà phát triển lớn viết ứng dụng cho hệ điều hành Hiện có khoảng 250,000 ứng dụng cho Android OS vào khoảng 375,000 ứng dụng đệ trình, điều khiến Android trở thành hệ điều hành di động có mơi trường

Ngày đăng: 15/06/2018, 07:50

Từ khóa liên quan

Mục lục

  • LỜI NÓI ĐẦU

  • CHƯƠNG 1 – MỞ ĐẦU

  • 1.1. Lý do chọn đề tài

  • 1.2. Đối tượng nghiên cứu

  • 1.3. Mục đích nghiên cứu

  • 1.4. Ý nghĩa lý luận và thực tiễn của đề tài

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

  • 2.1. Giới thiệu hệ điều hành Android

  • 2.1.1. Tổng quan cấu trúc của Android

    • 2.1.2. Sơ lược các phiên bản Android

    • 2.1.3. Các thành phần cơ bản của ứng dụng Android

    • Như đã trình bày ở trên, Activity là thành phần quan trọng nhất và đóng vai trò chính trong việc xây dựng ứng dụng Android. Hệ điều hành Android quản lí ứng dụng dưới dạng stack : khi một Activity mới được khởi tạo, nó được xếp lên đầu stack và trở thành running activity, các Actitivy trước đó sẽ bị tạm dừng vả chỉ hoạt động trở lại khi Activity mới được giải phóng.

    • 2.1.4 Các dịch vụ của google với lập trình MapView

    • 2.1.4.1 Google Maps

    • 2.1.4.2 Google Places API

    • 2.1.4.3 Google Directions API

    • 2.1.4.4 Google Geocoding API

    • 2.1.5 Tích hợp google map vào ứng dụng android – Download Google Play services

    • 2.2. Lập trình trên hệ điều hành Android

    • 2.2.1. Ngôn ngữ JAVA

    • 2.2.1.1. Tổng quan về ngôn ngữ JAVA

Tài liệu cùng người dùng

Tài liệu liên quan