Nghiên cứu google map api và xây dựng ứng dụng trên android

35 863 0
Nghiên cứu google map api và xây dựng ứng dụng trên android

Đ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

LỜI MỞ ĐẦU Ngày với phát triển không ngừng xã hội nhu cầu người ngày tăng, đặc biệt nhu cầu việc sử dụng công nghệ hỗ trợ cho sống ngày Nắm bắt nhu cầu mà công ty không ngừng đổi mới, tạo nhiều công nghệ Trong ta thấy bật công nghệ di động, ứng dụng di động Từ ý nghĩa nhóm định nghiên cứu xây dựng ứng dụng áp dụng công nghệ động để đơn giản hóa việc tìm đường, tra cứu thông tin đồ Với ứng dụng người sử dụng dễ dàng biết vị trí mình, tìm đường địa điểm cách nhanh chóng xác nơi Ứng dụng đặc biệt thích hợp với khách du lịch cần cài đặt ứng dụng điện thoại sử dụng Khóa luận “Nghiên cứu Google Map Api xây dựng ứng dụng Android” bao gồm chương: Chương 1: Giới thiệu: Giới thiệu khái quát khóa luận mục đích đợt thực tập Chương 2: Tổng quan hệ điều hành Android Chương 3: Kiến trúc thành phần hệ điều hành Android Chương 4: Google Map API & dịch vu Google Map Anroid Chương 5: Phân tích thiết kế hệ thống GVHD: Bùi Thanh Tùng SV: Vũ Minh Tân LỜI CẢM ƠN Trong trình thực tập chuyên ngành này, em may mắn nhận giúp đỡ nhiều từ quý thầy cô Trước hết, nhóm xin gửi lời tri ân sâu sắc đến quý thầy cô môn mạng truyền thông mạng máy tính, quý thầy cô khoa môn trường Đại học Bách khoa Hà Nội nhiệt tình truyền đạt kiến thức kinh nghiệm thực tế, đặc biệt Thầy Bùi Trọng Tùng người quan tâm nhiệt tình hướng dẫn nhóm hoàn thành tập Cuối cùng, em xin gửi lời chúc sức khỏe thành công đến quý thầy cô trường Đại học Bách khoa Hà Nội Mặc dù em cố gắng trình làm đề tài không tránh khỏi thiếu sót Rất mong nhận góp ý quý báu quý thầy cô bạn bè để đợt thực tập hoàn chỉnh Hà Nội, ngày 28 tháng 12 năm 2013 Sinh viên thực Vũ Minh Tân GVHD: Bùi Thanh Tùng SV: Vũ Minh Tân CHƯƠNG I 1.1 Giới thiệu đề tài Ngày với phát triển mạnh mẽ công nghệ đồ việc tìm kiếm thông tin định vị đồ ngày dễ dàng dàng Không việc ứng dụng công nghệ thiết bị di động xu hướng tất yếu Trên thực tế có nhiều hãng phần mềm hỗ trợ công nghệ này, không khó nhận ứng dụng như: Bing Maps hãng phần mềm Microsoft, Yahoo! Maps hãng phần mềm Yahoo, Trendsmap mạng xã hội twitter…Trong đáng ý Google Maps hãng phần mềm tìm kiếm hàng đầu giới Google Không hỗ trợ đầy đủ dạng đồ như: Earth, Satellite, Traffic, Weather….mà hỗ trợ đồ Android Hình 1.1: Một số công nghệ đồ Giống công nghệ đồ, công nghệ di động smartphone không phần sôi động với tham gia hãng lớn như: RIM, Nokia, Samsung, Apple, Google, Microsoft… Không điện thoại bình thường, smartphone hoạt động giống máy tính mini với nhiều công nghệ đại tích hơp như: GPS, Web, E-mail, Office… GVHD: Bùi Thanh Tùng SV: Vũ Minh Tân Nhận thấy xu hướng phát triển em nhận đề tài tạo ứng dụng tìm kiếm dẫn đường hệ điều hành Android dựa Map APIs thiết bị Android Google Maps 1.2Mục tiêu đề tài Tìm hiểu vấn đề xung quanh Google Map APIs dịch vụ mà Google Maps hỗ trợ đặc biệt ứng dụng Android Tìm hiểu hệ điều hành cách xây dựng hệ hành Android Áp dụng kiến thức tìm hiểu xây dựng hệ thống chạy hệ điều hành Android để giải vấn đề sau:  Tìm kiếm thông tin xung quanh vị trí như: TM, nhà hàng, khách sạn, trường học, nhà sách…, tìm kiếm theo địa cho sẵn( cụ thể tìm vị trí hàng vàng Hà Nộ)  Tìm kiếm địa điểm địa đồ  Hướng dẫn đường  Định vị người dùng GVHD: Bùi Thanh Tùng SV: Vũ Minh Tân CHƯƠNG II:TỔNG QUAN HỆ ĐIỀU HÀNH ANDROID 2.1 Khái niệm: Hình 2.2: Một số điện thoại sử dụng Android Android phát triển tập đoàn Google, phiên đời năm 2008 Được xây dựng tảng mở, thư viện đa năng, mạnh mẽ với nguyên lý mở, Android nhanh chóng cộng đồng lập trình viên di động hưởng ứng mạnh mẽ Nền tảng Android tích hợp nhiều tính bật:  Android hệ điều hành nhân Linux, đảm bảo tương tác với phần cứng, quản lý nhớ, điều khiển tiến trình tối ưu cho thiết bị di động  Bộ ứng dụng khung cho phép sử dụng lại thay thành phần riêng lẻ  Máy ảo Dalvik tối ưu cho thiết bị di động, chạy ứng dụng lập trình ngôn ngữ Java  Các thư viện cho phát triển ứng dụng mã nguồn mở bao gồm SQLite, WebKit, OpenGL trình quản lý đa phương tiện  Hỗ trợ chuẩn đa phương tiện phổ biến, thoại GSM, Bluetooth EDGE, 3G Wifi  Hỗ trợ Camera, GPS, la bàn, máy đo gia tốc… GVHD: Bùi Thanh Tùng SV: Vũ Minh Tân  Bộ phát triển ứng dụng SDK đầy đủ gồm thiết bị giả lập, công cụ sửa lỗi, tích hợp với Eclipse SDK Android cung cấp tập hợp đầy đủ phần mềm cho thiết bị di động bao gồm: hệ điều hành, khung ứng dụng ứng dụng 2.2 Đặc điểm 2.2.1Tính mở Android xây dựng từ lên cho phép người phát triển tạo ứng dụng di động hấp dẫn với đầy đủ điểm mạnh thiết bị cầm tay có Android hoàn toàn mở, ứng dụng gọi tới chức lõi điện thoại tạo gọi, gửi tin nhắn hay sử dụng máy ảnh, cho phép người phát triển tạo phong phú hơn, liên kết tính cho người dùng Android xây dựng nhân Linux mở Thêm nữa, sử dụng máy ảo mà tối ưu hóa nhớ phần cứng với môi trường di động Android mã nguồn mở, mở rộng để kết hợp tự công nghệ trội Nền tảng tiếp tục phát triển cộng đồng phát triển để tạo ứng dụng di động hoàn hảo 2.2.2Tính ngang hàng ứng dụng Với Android, khác ứng dụng điện thoại với ứng dụng bên thứ ba Chúng xây dựng để truy cập tới loạt ứng dụng dịch vụ điện thoại Với thiết bị xây dựng tảng Android, người dùng đáp ứng đầy đủ nhu cầu mà họ thích Chúng ta đổi hình nền, kiểu gọi điện thoại, hay ứng dụng Chúng ta chí hướng dẫn điện thoại xem ảnh thích GVHD: Bùi Thanh Tùng SV: Vũ Minh Tân 2.2.3 Phá vỡ rào cản phát triển ứng dụng Android phá vỡ rào cản để tạo ứng dụng cải tiến Một người phát triển kết hợp thông tin từ trang web với liệu điện thoại cá nhân – chẳng hạn danh bạ, lịch hay vị trí đồ – để cung cấp xác cho người khác Với Android, người phát triển xây dựng ứng dụng mà cho phép người dùng xem vị trí người bạn thông báo họ vị trí lân cận Tất lập trình dễ dàng thông qua hỗ trợ MapView dịch vụ định vị toàn cầu GPS 2.2.4 Dễ dàng nhanh chóng xây dựng ứng dụng Android cung cấp thư viện giao diện lập trình ứng dụng đồ sộ công cụ để viết ứng dụng phức tạp Ví dụ, Android cho phép người phát triển biết vị trí thiết bị cho phép thiết bị giao tiếp với để tạo nên mạng xã hội chia sẻ ngang hàng rộng khắp Thêm nữa, Android bao gồm công cụ đầy đủ giúp cho việc phát triển trở nên dễ dàng Ưu nhược điểm Android so với hệ điều hành khác Ưu điểm Android Nhược điểm Google Android tảng mở, cho Có hỗ trợ cảm ứng đa điểm, phép người dùng tùy biến chức bị tắt (do tảng theo ý thích, lại có sợ vi phạm quyền với Liên minh thiết bị cầm tay mở hậu iPhone), giao diện không bắt thuẫn, Google Android đối thủ mắt, khả hỗ trợ nhớ xứng tầm iPhone Apple iPhone, không đồng Google tích cực mở rộng cộng với máy tính Hi vọng đồng phát triển ứng dụng cho thời gian tới Google Android Bộ công cụ phát triển phần sớm khắc phục nhược mềm (SDK) đầy đủ, hỗ trợ đa điểm GVHD: Bùi Thanh Tùng SV: Vũ Minh Tân (Linux, Windows hay Mac OS) chạy máy ảo Java Thư viện ngày hoàn thiện, dễ dàng cho người lập trình Window Có thư viện API giống với API Sự có mặt iPhone s Mobile Win32, công cụ hỗ trợ lập trình đầy Android hai trở ngại lớn với đủ với Visual Studio, điều làm cho Windows Mobile Hai tảng người phát triển Win32 hoàn thiện không công tìm hiểu lại API người dùng ưa chuộng công cụ lập trình iPhone Màn hình cảm ứng đa điểm: iPhone Không gửi tin nhắn đa sử dụng hoàn toàn cảm ứng phương tiện (MMS) IM không sử dụng nút Với iPhone ta (Instant Messaging), thiếu điều khiển hình kể nhớ mở rộng Việc lập trình việc trượt ngón tay Ta cho iPhone phải thực phóng to ảnh cách trượt hai ngón hệ điều hành Mac, không tay xa thu nhỏ cách ngược phải lập trình cho lại iPhone Hơn thế, muốn đưa Bộ cảm nhận gia tốc: Những phản ứng chương trình máy thật người nhanh chóng cảm nhận gia tốc lập trình phải trả khoản phí thay đổi độ phân giải hình từ dọc lập trình, điều làm giảm tính sang ngang tự động ta đặt điện thoại cạnh tranh so với đối thủ nằm ngang Điều làm sinh động khác thêm cho trò chơi Âm thanh, hình ảnh hoàn hảo Bảng 2.1: So sánh hệ điều hành GVHD: Bùi Thanh Tùng SV: Vũ Minh Tân CHƯƠNG III: KIẾN TRÚC VÀ THÀNH PHẦN ANDROID 3.1Kiến trúc tảng Android 3.1 Kiến trúc tổng quát Android bao gồm bốn thành phần sau:  Hệ điều hành  Thư viện giao diện lập trình ứng dụng  Khung ứng dụng  Ứng dụng 3.1.2 Hệ điều hành Hình 3.3: Nhân Linux Android Android sử dụng nhân Linux 2.6 làm nhân cho dịch vụ hệ thống bảo mật, quản lý nhớ, quản lý tiến trình (xử lý tiến trình, đa luồng), ngăn xếp mạng trình điều khiển thiết bị (giao tiếp USB, giao tiếp hồng ngoại, không đây, v.v…) Nhân Linux có vai trò lớp trừu tượng phần cứng phần mềm 3.1.3 Thư viện giao diện lập trình ứng dụng Android có thư viện phong phú cung cấp sẵn để người lập trình sử dụng Hình sau sơ đồ tóm tắt hệ thống thư viện GVHD: Bùi Thanh Tùng SV: Vũ Minh Tân Hình 3.4: Thư viện lập trình ứng dụng Android 3.1.3.1Android runtime Android có tập thư viện nòng cốt để cung cấp hầu hết chức sẵn có thư viện cốt lõi ngôn ngữ lập trình Java Android Runtime: Bao gồm máy ảo Dalvik thư viện Android Các thư viện bản: Các ứng dụng Android phát triển môi trường Java, Dalvik lại Java VM Các thư viện Android cung cấp hầu hết chức có thư viện Java thư viện riêng Android Máy ảo Dalvik: Dalvik máy ảo để chạy ứng dụng Android, tối ưu để đảm bảo thiết bị chạy nhiều Instance cách hiệu Nó dựa vào nhân Linux để thực đa luồng quản lý nhớ cấp thấp 3.1.3.2 Bộ thư viện Android cung cấp số APIs cho phát triển ứng dụng Danh sách API sau cung cấp tất thiết bị Android: GVHD: Bùi Thanh Tùng 10 SV: Vũ Minh Tân Một hoạt động khởi chạy thông qua đối tượng Intent Context.startActivity() hay Activity.startActivityForResult() Hoạt động đáp lại theo dõi intent tạo phương thức getIntent() cập nhật thông qua phương thức setIntent(Intent) Android gọi phương thức onNewIntent() để bỏ qua intent đến trước Một hoạt động thường bắt đầu hoạt động khác Nếu muốn trả lại kết hoạt động khởi chạy, gọi phương thức startActivityForResult() thay cho phương thức startActivity() Ví dụ, khởi chạy hoạt động mà cho phép người dùng lấy ảnh, muốn lấy kết ảnh chọn Kết trả đối tượng Intent thông qua phương thức onActivityResult() Một dịch vụ bắt đầu thông qua đối tượng Intent Context.startService() Android gọi phương thức onStart() dịch vụ thông qua đối tượng Intent Tương tự, intent thông qua Context.bindService() để thiết lập kết nối liên tục thành phần dịch vụ đích Dịch vụ nhận đối tượng Intent qua lời gọi onBind() (nếu dịch vụ chưa chạy, bindService() chọn bắt đầu nó) Cho ví dụ, hoạt động thiết lập kết nối với dịch vụ chơi nhạc đề cập phần trước để cung cấp cho người dùng giao diện sử dụng để điều khiển chơi lại Hoạt động gọi bindService để thiết lập kết nối sau gọi phương thức định nghĩa dịch vụ để áp dụng chơi lại ca khúc Một ứng dụng khởi tạo quảng bá thông qua đối tượng Intent phương thức Context.setBroadcast(), Context.setOrderedBroadcast() Context.sendStickyBroadcast() Android chuyển intent tới tất nhận quảng bá quan tâm việc gọi phương thức onReceive() GVHD: Bùi Thanh Tùng 21 SV: Vũ Minh Tân 3.2.6 Ngắt thành phần Một hoạt động bị ngắt thông qua việc gọi phương thức finish() Một hoạt động tắt hoạt động khác (hoạt động khởi động với lời gọi startActivityForResult() việc gọi finishActivity() Để ngắt dịch vụ sử dụng phương thức stopSelf(), cách gọi Context.stopService() Content provider kích hoạt đáp lại yêu cầu từ ContentResolver Bộ nhận quảng bá kích hoạt đáp lại thông điệp quảng bá Chúng ta không cần thiết phải tắt thành phần 3.27 Tập tin khai báo (manifest) Trước khởi chạy ứng dụng thành phần, phải xem ứng dụng bao gồm thành phần Thêm nữa, ứng dụng khai báo thành phần tập tin khai báo để đóng gói lại vào gói Android (tập tin apk chứa mã nguồn, tập tin tài nguyên) Tập tin có cấu trúc tập tin XML có tên AndroidManifest.xml ứng dụng Tập tin thực số chức thêm khai báo thành phần ứng dụng, tên thư viện ứng dụng cần liên kết tới (ngoài thư viện chuẩn Android) xác định quyền cho ứng dụng Tuy nhiên, nhiệm vụ tập tin khai báo khai báo thành phần ứng dụng Một hoạt động khai báo sau: Thuộc tính “name” phần tử tên lớp lớp Activity cài đặt, thuộc tính “icon” “label” trỏ đến tập tin tài nguyên chứa biểu tượng nhãn hiển thị cho người dùng Các thành phần khác khai báo theo cách tương tự: < service> dịch vụ, nhận quảng bá content provider Các hoạt động, dịch vụ content provider khai báo tập tin khai báo tạo tự động mã (như đối tượng BroadcastReceiver) đăng ký với hệ thống cách gọi Context.registerReceiver() 3.2.8 Bộ lọc Intent Một đối tượng Intent có tên rõ ràng thành phần đích Nếu có, Android tìm thành phần (dựa khai báo tập tin khai báo) kích hoạt Nhưng đích có tên không rõ ràng, Android phải xác định thành phần thích hợp để đáp lại intent Nó thực so sánh đối tượng Intent với lọc intent đích có khả Một thành phần lọc intent cho Android biết loại intent thành phần cần xử lý Giống thông tin bản, chúng khai tập tin khai báo Đây ví dụ để thêm hai lọc intent cho hoạt động Bộ lọc – kết hợp hành động “android.intent.action.Main” danh mục “android.intent.category.LAUNCHER” – ví dụ phổ biến Nó đánh dấu lại Intent mô tả lại cho khởi chạy ứng dụng, đặt vào danh mục ứng dụng GVHD: Bùi Thanh Tùng 24 SV: Vũ Minh Tân điện thoại Nói theo cách khác, hoạt động làm lối vào cho ứng dụng khởi chạy, người dùng thấy chọn khởi chạy ứng dụng Bộ lọc thứ hai khai báo để hoạt động thực thi kiểu liệu đặc biệt Một thành phần có số lọc intent tùy thích, lại khai báo khác cho khả Nếu lọc nào, được kích hoạt intent khác gọi đến Để tạo đăng ký nhận quảng bá mã nguồn, lọc intent tạo thẳng đối tượng giống đối tượng IntentFilter Tất lọc khác cài đặt tập tin khai báo 3.3 Công cụ hỗ trợ lập trình Android 3.3.1 Tổng quan Bộ công cụ phát triển phần mềm Android SDK gồm nhiều công cụ trợ giúp cho việc phát triển ứng dụng di động tảng Android Thành phần quan trọng công cụ trình giả lập Android plug-in phát triển ứng dụng Android Eclipse ADT, bên cạnh SDK bao gồm công cụ khác cho việc gỡ rối, đóng gói cài đặt ứng dụng trình giả lập thiết bị Trình giả lập Android: Thực chất chương trình mô thiết bị di động ảo máy tính Chúng ta sử dụng giả lập để thiết kế gỡ rối kiểm tra ứng dụng thiết bị trước đưa chương trình vào thiết bị thật Android Development Tools Plugin (cho Eclipse): viết tắt ADT, Plugin hỗ trợ cho việc tạo gỡ rối ứng dụng sử dụng môi trường phát triển tích hợp Eclipse trở nên dễ dàng GVHD: Bùi Thanh Tùng 25 SV: Vũ Minh Tân Trình gỡ rối Dalvik Debug Monitor Service (DDMS): giúp quản lý tiến trình giả lập thiết bị trợ giúp việc gỡ rối ứng dụng Có thể sử dụng công cụ để hủy tiến trình, chọn tiến trình cụ thể để gỡ rối, sinh liệu truy vết, xem nhớ heap thông tin luồng, chụp ảnh hình trình giả lập Android Debug Bridge (adb): Công cụ cho phép cài đặt tập tin apk giả lập thiết bị, đồng thời hỗ trợ truy cập hai đối tượng từ cửa sổ dòng lệnh Android Asset Packaging Tool (aapt): Công cụ để tạo tập tin apk chứa mã nhị phân tài nguyên ứng dụng Android Sqlite3: Đây công cụ để truy cập tập tin liệu SQLite tạo sử dụng ứng dụng Android Dx: Đây công cụ biên dịch tập tin class thành mã bytecode chạy máy ảo Dalvik (lưu trữ dạng tập tin dex) Mksdcard: Giúp tạo tập tin ảnh lưu trữ liệu mà ta sử dụng giả lập, để mô có mặt thẻ nhớ (như thẻ SD) Android Virtual Devices (AVD): Cho phép tạo cấu hình thiết bị ảo, mô đặc điểm giả lập Android Với cấu hình, ta xác định tảng cho chạy, tùy chỉnh phần cứng hay giao diện sử dụng Mỗi tùy chỉnh AVD thiết bị độc lập với liệu lưu trữ nó, thẻ nhớ SD, v.v… 3.3.2Tạo máy ảo android Bước 1: Chọn Project, Android SDK and AVD Manager GVHD: Bùi Thanh Tùng 26 SV: Vũ Minh Tân Hình 3.9: Tạo máy ảo Virtual Devices: dùng để thiết lập máy ảo, tùy theo nhu cầu chương trình mà thiết lập máy ảo khác Trong phân biệt làm hai nhóm máy ảo để chạy Android máy ảo chạy Google APIs Installed packages: gói packages hỗ trợ máy áo mà cài đặt Available packages: tùy chọn gói packages mà bạn muốn sử dụng để thiết lập máy ảo android googleAPIs –API level 14 Chúng ta phải cài gói packages khởi tạo máy ảo Bước 2: Chọn New để khởi tạo máy ảo GVHD: Bùi Thanh Tùng 27 SV: Vũ Minh Tân Hình 3.10: Khởi tạo máy ảo Tùy theo nhu cầu người lập trình mà tạo máy ảo cấu hình khác Ở thiết lập máy ảo chạy máy Nexus S4.0 với ứng dụng Google APIs API level 14 Chọn OK sau nhập vào máy ảo vừa tạo chọn Start Như có máy ảo để phục vụ cho việc lập trình GVHD: Bùi Thanh Tùng 28 SV: Vũ Minh Tân 3.3.3 Xuất phần mềm chạy android Bước 1: Tạo dự án cách vào File → New Android Project Điền vào tất chi tiết, chọn Google API target sdk đặt tên cho activity Nếu project lỗi chọn Next sang hình GVHD: Bùi Thanh Tùng 29 SV: Vũ Minh Tân GVHD: Bùi Thanh Tùng 30 SV: Vũ Minh Tân Hình 3.11: Xuất phần mềm Android Ở hình thiết lập thông số cần thiết cho việc lấy mã MD5 để đăng ký trang chủ Google Maps Api Để lấy mã MD5 vào Windows > Prefs > Android > Build để lấy đường dẫn lấy SHA1 fingerprint với kết quả: ( E6:A8:6F:AC:DD:E2:3A:84:D8:55:2F:0F:13:58:EB:32:9D:B6:DF:26) Truy cập Android Maps API (https://developers.google.com/maps/documentation/android/start? hl=vi#create_an_api_project_in_the_google_apis_console) lấy khóa dựa vào SHA1 fingerprint GVHD: Bùi Thanh Tùng 31 SV: Vũ Minh Tân GVHD: Bùi Thanh Tùng 32 SV: Vũ Minh Tân Ta nhận khóa API : AIzaSyAMy51IkTx3ZUJlmjvFh4BGXO-9tMgxOIY Đây khóa key để chèn vào main.xml 3.3 3.1 Ta mở tập tin main.xml src → layout → main.xml chèn mã sau 3.3 3.2 Khai báo thư viện tập tin AndroidManifest.xml Ngoài cần phải cho phép kết nối internet Mở tập tin AndroidManifest.xml sửa sau : GVHD: Bùi Thanh Tùng 33 SV: Vũ Minh Tân /> GVHD: Bùi Thanh Tùng 34 SV: Vũ Minh Tân Tập tin MainActivity sửa sau : package com.androidhive.googlemaps; import android.os.Bundle; import com.google.android.maps.MapActivity; public class AndroidGoogleMapsActivity extends MapActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } protected boolean isRouteDisplayed(){ return false; } } GVHD: Bùi Thanh Tùng 35 SV: Vũ Minh Tân

Ngày đăng: 01/07/2016, 12:56

Từ khóa liên quan

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

Tài liệu liên quan