Ứng dụng android tìm kiếm và đăng ký địa điểm trên bản đồ

đang tải dữ liệu....

Nội dung tài liệu: Ứng dụng android tìm kiếm và đăng ký địa điểm trên bản đồ

TRƯỜNG ĐẠI HỌC MỞ TP.HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN  NGUYỄN XUÂN TRUNG MSSV: 0851010298 PHẠM TRỊNH MINH TRIẾT MSSV: 0851010291 ỨNG DỤNG ANDROID TÌM KIẾM VÀ ĐĂNG KÝ ĐỊA ĐIỂM TRÊN BẢN ĐỒ ĐỒ ÁN MÔN HỌC NGÀNH TIN HỌC Thành phố Hồ Chí Minh – Năm 2012 LỜI CÁM ƠN Đồ án được thành công là nhờ sự hướng dẫn, giúp đỡ của thầy. Chúng em xin chân thành cảm ơn thầy đã bỏ thời gian quý báu của mình để giúp chúng em hoàn thành tốt đồ án này. MỤC LỤC CHƯƠNG 1: TỔNG QUAN .................................................................................. 1 1.1 Giới thiệu ....................................................................................................... 1 1.2 Mục đích nghiên cứu ..................................................................................... 1 1.3 Đối tượng và phạm vi nghiên cứu ................................................................. 2 1.3.1 Đối tượng nghiên cứu: ............................................................................ 2 1.3.2 Phạm vi nghiên cứu: ............................................................................... 2 1.4 Phương pháp nghiên cứu ............................................................................... 2 1.4.1 Tìm vị trí dịch vụ: ................................................................................... 2 1.4.2 Đăng vị trí dịch vụ .................................................................................. 2 1.5 Bố cục báo cáo ............................................................................................... 3 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT....................................................................... 4 2.1 Cơ bản về ứng dụng Android ........................................................................ 4 2.1.1 Thành phần ứng dụng (Application Components) ................................. 5 2.1.2 Tập tin manifest ...................................................................................... 6 2.1.3 Tài nguyên ứng dụng ............................................................................ 11 2.2 Điện toán đám mây ...................................................................................... 13 2.2.1 Tổng quan ............................................................................................. 13 2.2.2 Khái niệm đơn giản............................................................................... 13 2.2.3 Lịch sử .................................................................................................. 14 2.2.4 Kiến trúc ............................................................................................... 14 2.2.5 Các đặc tính .......................................................................................... 15 2.2.6 Các dịch vụ điện toán đám mây ............................................................ 16 2.3 Hệ thống định vị toàn cầu ............................................................................ 17 2.3.1 Tổng quan ............................................................................................. 17 2.3.2 Sự hoạt động của GPS .......................................................................... 17 2.3.3 Độ chính xác của GPS .......................................................................... 18 2.3.4 Các thành phần của GPS....................................................................... 19 2.3.5 Nguồn lỗi của tín hiệu GPS .................................................................. 21 2.3.6 Ứng dụng GPS ...................................................................................... 22 CHƯƠNG 3: THỰC HIỆN .................................................................................. 24 3.1 Tạo ứng dụng trên Android (Client) ............................................................ 24 3.1.1 Tạo Project mới..................................................................................... 24 3.1.2 Gán quyền truy cập tài nguyên cho chương trình................................. 26 3.1.3 Tạo giao diện cho ứng dụng ................................................................. 26 3.1.4 Class Activity chính dùng để chạy ứng dụng ....................................... 27 3.1.5 Class lấy dữ liệu về từ Web Server....................................................... 29 3.1.6 Hiện địa điểm cần tìm lên bản đồ ......................................................... 31 3.1.7 Gửi thông tin địa điểm mới lên Web Server ......................................... 32 3.2 Tạo WebServer ............................................................................................ 33 CHƯƠNG 4: TỔNG KẾT .................................................................................... 35 4.1 Kết quả ......................................................................................................... 35 4.1.1 Tìm được vị trí những điểm gần thiết bị GPS ...................................... 35 4.1.2 Đăng được tọa độ GPS của thiết bị lên web server .............................. 35 4.2 Vấn đề hiện tại và Hướng phát triển ứng dụng ........................................... 36 TÀI LIỆU THAM KHẢO......................................................................................... 38 Tìm kiếm và đăng ký địa điểm dịch vụ trên bản đồ CHƯƠNG 1: TỔNG QUAN 1.1 Giới thiệu Ngày nay với sự phát triển của công nghê thông tin ngày một cao cũng đã giải quyết được nhiều vấn đề trong cuộc sống. Tính nhanh chóng và tiện lợi luôn được đặt lên hàng đầu. Vì vậy, điện thoại di dộng không chỉ dùng để nghe gọi mà còn phục vụ rất nhiều trong công việc và đời sống. Các smartphone ra đời ngày còn nhiều với cấu hình ngày càng cao. Kéo theo là sự phát triển đa dạng của các ứng dụng trên smartphone đã góp phần làm tăng khả năng linh động trong xử lý công việc. Bên cạnh đó, sự phát triển đô thị cùng với sự gia tăng dân số và mức sống của con người ngày càng cao nên cuộc sống phát sinh rất nhiều nhu cầu. Vì vậy các loại hình dịch vụ (ăn uống, giải trí, du lịch,…) cũng phát triển theo một cách đa dạng và phong phú. Khi nhu cầu phát sinh thì vấn đề tìm kiếm nhanh chóng các địa điểm dịch vụ đáp ứng nhu cầu được đặt ra. Một ứng dụng trên smartphone sẽ dễ dàng đáp ứng nhu cầu đó một cách tiện lợi. Ngày nay, smartphone được rất nhiều người sử dụng. Hệ điều hành Android cũng được nhiều hãng sản xuất điện thoại đưa vào điện thoại của mình. Ứng dụng này sẽ được viết trên smartphone chạy hệ điều hành android. 1.2 Mục đích nghiên cứu Ứng dụng trên smartphone này sẽ giúp người dùng tìm địa điểm các dịch vụ như máy rút tiền ATM, nhà hàng, khách sạn, địa điểm vui chơi giải trí, khu mua sắm, trạm xăng dầu,... mà họ mong muốn một cách dễ dàng. Đồng thời, ứng dụng này cũng tạo điều kiện cho các nhà cung cấp dịch vụ có thể giới thiệu đến khách hàng của mình vị trí của họ để khách hàng có thể biết và tìm đến một cách thuận tiện và dễ dàng hơn. Trang 1 Tìm kiếm và đăng ký địa điểm dịch vụ trên bản đồ 1.3 Đối tượng và phạm vi nghiên cứu 1.3.1 Đối tượng nghiên cứu: o Tìm hiểu về GPS o Tìm hiểu bản đồ google map o Ứng dụng trên hệ điều hành Android. 1.3.2 Phạm vi nghiên cứu: o Bản đồ trong nội thành. o Viết ứng dụng trên Android. 1.4 Phương pháp nghiên cứu 1.4.1 Tìm vị trí dịch vụ: o Ứng dụng được viết trên smart phone chạy android. o Ứng dụng sẽ liệt kê danh sách loại dich vụ mà người dùng muốn tìm vị trí. Ví dụ: nhà hàng, khách sạn, ATM, cây xăng,…. o Khi người dùng chọn loại dịch vụ thì chương trình load bản đổ lên và chỉ vào vị trí hiện tại của bạn đang đứng ( dựa vào GPS ). Sau đó chương trình sẽ hiện vị trí các dịch vụ mà người sử dụng muốn tìm lên trên bản đồ. 1.4.2 Đăng vị trí dịch vụ o Khi người dùng chọn chức năng đăng vị trí thì ứng dụng sẽ cho bạn chọn địa điểm bằng GPS hoặc thủ công. o Sau đó điền thông tin về vị trí vừa đăng. o Tọa độ vị trí đó sẽ được gửi lên server o Server sẽ đưa vào danh sách địa điểm để người dùng có thể tìm thấy. Trang 2 Tìm kiếm và đăng ký địa điểm dịch vụ trên bản đồ o Địa điểm các dịch vụ khác nhau sẽ được đánh dấu bằng những màu khác nhau. 1.5 Bố cục báo cáo  Chương 1: Tổng quan Chương này giới thiệu về đề tài, mục đích chọn đề tài, đối tượng và phạm vi, phương pháp nghiên cứu.  Chương 2: Cơ sở lý thuyết Giới thiệu lý thuyết về ứng dụng Android, điện toán đám mậy, GPS.  Chương 3: Hiện thực Triển khai ứng dụng.  Chương 4: Kết quả Thể hiện kết quả làm được. Trang 3 Tìm kiếm và đăng ký địa điểm dịch vụ trên bản đồ CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Cơ bản về ứng dụng Android Các ứng dụng Android được viết bằng ngôn ngữ lập trình Java. Android SDK tools biên dịch code, gồm file dữ liệu và các tài nguyên thành một gói Android, một tập tin lưu trữ với phần mở rộng .apk. File này được coi là một ứng dụng và các thiết bị Android sử dụng nó để cài đặt các ứng dụng. Sau khi cài đặt trên một thiết bị, mỗi ứng dụng Android chạy trong vùng bảo mật riêng của mình:  Hệ điều hành Android là một hệ thống Linux đa người dùng (multi-user Linux system) mà mỗi ứng dụng là một người dùng khác nhau.  Theo mặc định, hệ thống gán cho mỗi ứng dụng một ID người dùng Linux (Linux user ID) duy nhất. Hệ thống chỉ làm việc với ID và không biết đến các ứng dụng. Hệ thống thiết lập quyền truy cập cho tất cả các file trong một ứng dụng để chỉ những ID người dùng được gán cho ứng dụng đó mới có thể truy cập chúng.  Mỗi tiến trình có máy ảo (Virtual Machine) của chính nó, vì vậy mã của một ứng dụng chạy cô lập với các ứng dụng khác.  Mặc định, tất cả các ứng dụng chạy trong tiến trình Linux riêng của mình. Android khởi động tiến trình khi các thành phần của ứng dụng cần phải được thực thi, sau đó tắt tiến trình khi nó không còn cần thiết hoặc khi hệ thống phải thu hồi bộ nhớ cho các ứng dụng khác. Bằng cách này, hệ thống Android thực hiện các nguyên tắc đặc quyền tối thiểu. Đó là, mặc định mỗi ứng dụng chỉ có quyền truy cập đến các thành phần mà nó đòi hỏi phải làm công việc của mình và không hơn. Điều này tạo ra một môi trường rất an toàn, trong đó một ứng dụng không thể truy cập vào các bộ phận của hệ thống mà nó không được phép. Trang 4 Tìm kiếm và đăng ký địa điểm dịch vụ trên bản đồ Tuy nhiên, có nhiều cách cho một ứng dụng chia sẻ dữ liệu với các ứng dụng khác và truy cập các dịch vụ hệ thống:  Có thể sắp xếp cho hai ứng dụng chia sẻ cùng Linux user ID, trong trường hợp chúng có thể truy cập các tập tin của nhau. Để tiết kiệm tài nguyên hệ thống, các ứng dụng có cùng một user ID cũng có thể sắp xếp để chạy trong cùng tiến trình Linux và chia sẻ cùng một máy ảo (các ứng dụng cũng phải được ký kết với cùng một chứng chỉ).  Một ứng dụng có thể yêu cầu sự cho phép truy cập dữ liệu thiết bị như danh bạ, tin nhắn SMS, bộ nhớ ngoài (SD card), camera, Bluetooth, và nhiều hơn nữa. Tất cả các quyền truy cập ứng dụng phải được cấp bởi người dùng lúc cài đặt.[1] 2.1.1 Thành phần ứng dụng (Application Components) Có bốn loại thành phần ứng dụng khác nhau. Mỗi loại phục vụ một mục đích riêng biệt và có một vòng đời riêng. Dưới đây là bốn loại của các thành phần ứng dụng:  Activities Một activity đại diện cho một màn hình duy nhất với một giao diện người dùng. Ví dụ, một ứng dụng email có thể có một activity hiển thị danh sách các email mới, một activity để soạn email, và các activity khác để đọc email. Mặc dù các activity làm việc với nhau để tạo thành một ứng dụng email, nhưng chúng có thể làm việc độc lập với activity khác. Như vậy, một ứng dụng khác nhau có thể chạy bất kỳ một trong các activity này (nếu ứng dụng email cho phép nó). Ví dụ, một ứng dụng máy ảnh có thể chạy activity soạn thư mới trong ứng dụng email để cho người dùng chia sẻ một hình ảnh.  Services là một thành phần chạy ở chế độ nền để thực hiện các hoạt động lâu dài hoặc để thực hiện công việc cho các quá trình điều khiển từ xa. Một service không thể hiện giao diện người dùng. Trang 5 Tìm kiếm và đăng ký địa điểm dịch vụ trên bản đồ  Content providers được sử dụng để quản lý và chia sẻ dữ liệu giữa các ứng dụng. Ta có thể lưu trữ dữ liệu trong hệ thống tập tin, một cơ sở dữ liệu SQLite, trên trang web, hoặc bất kỳ vị trí lưu trữ nào mà ứng dụng có thể truy cập. Thông qua content provider, các ứng dụng khác có thể truy vấn hoặc thậm chí sửa đổi dữ liệu (nếu nhà cung cấp nội dung cho phép).  Broadcast receivers Broadcast receiver là một thành phần phản ứng với thông báo broadcast trên toàn hệ thống. Broadcast có nguồn gốc từ hệ thống như broadcast thông báo rằng màn hình đã tắt, pin yếu hoặc một hình đã được chụp. Ứng dụng cũng có thể khởi tạo broadcast để thông báo cho ứng dụng khác. Mặc dù broadcast receiver không hiển thị giao diện người dùng, nhưng chúng có thể tạo ra một thông báo ở thanh trạng thái để cảnh báo người dùng khi một sự kiện broadcast xảy ra. Một khía cạnh độc đáo của thiết kế hệ thống Android là bất kỳ ứng dụng nào cũng có thể chạy một thành phần của ứng dụng khác. Kết quả được trả lại cho ứng dụng. Nhìn bên ngoài, giống như là chức năng của ứng dụng đó. Tuy nhiên, để kích hoạt một thành phần trong ứng dụng khác, ta phải gửi một thông điệp tới hệ thống chỉ định mục đích của mình để chạy thành phần đó. Hệ thống sau đó kích hoạt các thành phần theo yêu cầu. Ba trong số bốn loại thành phần: activities, services, and broadcast receivers được kích hoạt bởi một thông báo bất đồng bộ được gọi là một intent. Intent ràng buộc các thành phần cá nhân với nhau tại thời gian chạy (có thể hiểu chúng như là người gửi tin yêu cầu một hành động từ các thành phần khác), cho dù thành phần này thuộc về ứng dụng của bạn hay ứng dụng khác.[1] 2.1.2 Tập tin manifest Trước khi hệ thống Android có thể bắt đầu một thành phần ứng dụng, hệ thống phải biết rằng thành phần đó tồn tại bằng cách đọc tập tin Trang 6 Tìm kiếm và đăng ký địa điểm dịch vụ trên bản đồ AndroidManifest.xml của ứng dụng (tập tin "manifest"). Ứng dụng của bạn phải khai báo tất cả các thành phần trong tập tin này, phải ở thư mục gốc của project. Các thành phần được khai báo trong tập tin manifest như:  Xác định bất kỳ quyền truy cập người dùng mà ứng dụng yêu cầu, chẳng hạn như truy cập Internet hoặc cho phép đọc địa chỉ liên lạc của người dùng.  Khai báo API Level tối thiểu được yêu cầu của ứng dụng, dựa vào các API ứng dụng sử dụng.  Khai báo các tính năng phần cứng và phần mềm được sử dụng hoặc theo yêu cầu của ứng dụng, chẳng hạn như camera, bluetooth, hoặc một màn hình cảm ứng đa điểm.  API thư viện ứng dụng cần được liên kết lại, chẳng hạn như thư viện Google Maps.  ....  Khai báo thành phần Nhiệm vụ chính của manifest là để thông báo cho hệ thống về các thành phần của ứng dụng. Ví dụ, một tập tin manifest có thể khai báo một hoạt động như sau: ... Trang 7 Tìm kiếm và đăng ký địa điểm dịch vụ trên bản đồ Trong , thuộc tính android:icon xác định icon cho ứng dụng. Trong , thuộc tính android:name xác định tên class với Activity subclass và thuộc tính android:label xác định một chuỗi để sử dụng như là nhãn hiệu rõ ràng cho người sử dụng hoạt động. Bạn phải khai báo tất cả các thành phần ứng dụng theo cách này: yếu tố cho activities yếu tố cho services yếu tố cho broadcast receiver yếu tố cho content provider Activities, services, và content provider mà bạn include trong mã nguồn của bạn, nhưng không khai báo trong manifest thì không truy cập được vào hệ thống và, do đó, không thể chạy. Tuy nhiên, broadcast receivers có thể được khai báo trong manifest hoặc tạo ra tự động (như các đối tượng BroadcastReceiver) và đăng ký với hệ thống bằng cách gọi registerReceiver ().  Khai báo khả năng của các thành phần Như đã nói ở trên, trong Activating Compoments, bạn có thể sử dụng một Intent để bắt đầu các activities, services, và broadcast receivers. Bạn có thể làm như vậy bằng cách đặt tên một cách rõ ràng các thành phần mục tiêu (bằng cách sử dụng các thành phần tên lớp) trong intent. Tuy nhiên, sức mạnh thực sự của intent nằm trong khái niệm của những intent actions. Với intent actions, bạn chỉ đơn giản mô tả các loại hành động mà bạn muốn thực hiện (và tùy chọn, các dữ liệu mà bạn muốn thực hiện các hành động) và cho phép các hệ thống để tìm một thành phần trên các thiết bị có thể thực hiện các hành động và bắt đầu nó. Nếu có nhiều thành phần có thể thực hiện các hành động được mô tả bởi intent, sau đó người dùng lựa chọn một cái để sử dụng. Trang 8 Tìm kiếm và đăng ký địa điểm dịch vụ trên bản đồ Cách hệ thống xác định các thành phần có thể đáp ứng với một intent là bằng cách so sánh mục đích nhận được các intent filters cung cấp trong file manifest của các ứng dụng khác trên thiết bị. Khi bạn khai báo một thành phần trong manifest của ứng dụng của bạn, bạn có thể tùy chọn bao gồm các bộ lọc intent khai báo khả năng của các thành phần để nó có thể đáp ứng với intent từ các ứng dụng khác. Bạn có thể khai báo một bộ lọc intent cho thành phần của bạn bằng cách thêm vào một yếu tố như một thành phần con của khai báo của thành phần. Ví dụ, một ứng dụng email với một hoạt động để soạn một email mới có thể khai báo một intent filter trong mục manifest của nó để đáp ứng “send” intent (để gửi email). Một hoạt động trong ứng dụng của bạn sau đó có thể tạo ra một “send” action (ACTION_SEND), hệ thống phù hợp để hoạt động ứng dụng email “send” và khởi chạy nó khi bạn gọi các intent với startActivity ().  Khai báo những yêu cầu của ứng dụng Có rất nhiều thiết bị được hỗ trợ bởi Android và không phải tất cả trong số chúng có các tính năng và khả năng như nhau. Để ngăn chặn ứng dụng của bạn đang được cài đặt trên các thiết bị không có chức năng của ứng dụng của bạn, quan trọng là bạn xác định rõ một hồ sơ cho các loại thiết bị ứng dụng của bạn hỗ trợ bằng cách khai thiết bị và các yêu cầu phần mềm trong file manifest của bạn. Hầu hết chỉ khai thông tin và hệ thống không đọc chúng, nhưng các dịch vụ bên ngoài như Android Market đọc chúng để cung cấp cho người dùng khi họ tìm kiếm cho các ứng dụng từ thiết bị của họ. Ví dụ, nếu ứng dụng của bạn yêu cầu một máy ảnh và sử dụng các API được giới thiệu trong Android 2.1 (API Level 7), bạn nên khai báo theo yêu cầu trong file manifest của bạn. Bằng cách đó, các thiết bị mà không có một camera và có một phiên bản Android thấp hơn 2,1 không thể cài đặt ứng dụng của bạn từ Android Market. Trang 9 Tìm kiếm và đăng ký địa điểm dịch vụ trên bản đồ Tuy nhiên, bạn cũng có thể tuyên bố rằng ứng dụng của bạn sử dụng máy ảnh, nhưng không yêu cầu nó. Trong trường hợp đó, ứng dụng của bạn phải thực hiện việc kiểm tra tại thời gian chạy để xác định xem thiết bị có một máy ảnh và vô hiệu hóa bất kỳ tính năng sử dụng máy ảnh nếu nó không có sẵn.  Một số các đặc điểm thiết bị quan trọng để thiết kế và phát triển ứng dụng: Kích thước và độ phân giải màn hình Để phân loại các thiết bị dựa vào loại màn hình, Android xác định hai đặc tính cho từng thiết bị: kích thước màn hình (kích thước vật lý của màn hình) và độ phân giải màn hình (mật độ vật lý của các điểm ảnh trên màn hình, hoặc dpi chấm trên mỗi inch). Các kích cỡ màn hình là: nhỏ, bình thường, lớn, và cực lớn. Độ phân giải màn hình là: thấp, trung bình, cao, và siêu cao. Theo mặc định, ứng dụng của bạn là tương thích với tất cả các kích cỡ màn hình và độ phân giải, bởi vì hệ thống Android làm những điều chỉnh thích hợp để bố trí giao diện người dùng và các tài nguyên hình ảnh. Tuy nhiên, bạn nên tạo bố trí chuyên biệt cho một số kích cỡ màn hình và cung cấp hình ảnh chuyên biệt cho độ phân giải nhất định, sử dụng tài nguyên bố trí thay thế, và bằng cách khai báo trong manifest chính xác kích thước màn hình ứng dụng hỗ trợ với các yếu tố . Cấu hình đầu vào Nhiều thiết bị cung cấp các cơ chế đầu vào khác nhau, chẳng hạn như một bàn phím cứng, trackball, .... Nếu ứng dụng yêu cầu một cấu hình phần cứng cụ thể, nên khai báo nó trong manifest với các yếu tố . Tuy nhiên, ít khi mà một ứng dụng đòi hỏi một cấu hình đầu vào nhất định. Tính năng thiết bị Trang 10 Tìm kiếm và đăng ký địa điểm dịch vụ trên bản đồ Có rất nhiều phần cứng và các tính năng phần mềm có thể có hoặc không thể tồn tại trên một thiết bị hỗ trợ Android, chẳng hạn như một máy ảnh, cảm biến ánh sáng, bluetooth, một phiên bản nhất định của OpenGL, hoặc độ trung thực của màn hình cảm ứng. Bạn không nên giả định rằng một tính năng nào đó có sẵn trên tất cả các thiết bị Android-powered, vì vậy bạn nên khai báo bất kỳ tính năng được sử dụng bởi ứng dụng với các yếu tố . Phiên bản Platform Thiết bị chạy Android khác nhau thường chạy các phiên bản khác nhau của nền tảng Android, chẳng hạn như Android 1.6 hoặc Android 2.3. Mỗi phiên bản kế tiếp thường bao gồm các API bổ sung không có sẵn trong các phiên bản trước. Để chỉ ra tập hợp các API có sẵn, mỗi phiên bản nền tảng xác định một cấp API (ví dụ, Android 1.0 API Level 1 và Android 2.3 là API Cấp 9). Nếu bạn sử dụng các API đã được bổ sung vào nền tảng sau phiên bản 1.0, bạn nên khai báo Cấp API tối thiểu, bằng cách sử dụng các yếu tố . Điều quan trọng là bạn khai báo tất cả các yêu cầu như vậy cho các ứng dụng của bạn, bởi vì, khi bạn phát hành ứng dụng trên Android Market, Market sử dụng các khai báo này để lọc các ứng dụng có thể cài trên mỗi thiết bị. 2.1.3 Tài nguyên ứng dụng Một ứng dụng Android không chỉ cần mã nó đòi hỏi nguồn tài nguyên riêng biệt từ mã nguồn, chẳng hạn như hình ảnh, file âm thanh, và bất cứ điều gì liên quan đến trình bày trực quan của ứng dụng. Ví dụ, bạn nên xác định hình ảnh động, các menu, phong cách, màu sắc, và bố trí giao diện người dùng hoạt động với các tập tin XML. Sử dụng tài nguyên ứng dụng làm cho nó dễ dàng để cập nhật các đặc điểm khác nhau của ứng dụng mà không cần mã sửa đổi và bằng cách cung cấp các bộ thay thế nguồn tài nguyên cho phép bạn tối ưu hóa các ứng dụng cho một loạt các cấu hình thiết bị (chẳng hạn như ngôn ngữ khác nhau và kích cỡ màn hình). Trang 11 Tìm kiếm và đăng ký địa điểm dịch vụ trên bản đồ Đối với tất cả các nguồn tài nguyên mà bạn tích hợp trong dự án Android, xây dựng các công cụ SDK xác định một ID duy nhất là 1 số nguyên, mà bạn có thể sử dụng để tham khảo các tài nguyên từ mã ứng dụng hoặc từ các nguồn khác được định nghĩa trong XML. Ví dụ, nếu ứng dụng của bạn có chứa một tập tin hình ảnh được đặt tên là logo.png (được lưu trong res / drawable / directory), các công cụ SDK tạo ra một ID tài nguyên tên R.drawable.logo, mà bạn có thể sử dụng để tham chiếu hình ảnh và chèn nó trong giao diện người dùng. Một trong những khía cạnh quan trọng nhất của việc cung cấp nguồn tài nguyên riêng biệt từ mã nguồn là khả năng cho bạn cung cấp các nguồn tài nguyên thay thế cho các cấu hình thiết bị khác nhau. Ví dụ, bằng cách xác định các chuỗi giao diện người dùng trong XML, bạn có thể dịch những chuỗi kí tự sang ngôn ngữ khác và lưu những chuỗi trong các tập tin riêng biệt. Sau đó, dựa trên một qualifiers ngôn ngữ mà bạn nối thêm vào tên của thư mục tài nguyên (chẳng hạn như res / values-vn / for Vietnamese string values) và cài đặt ngôn ngữ của người dùng, hệ thống Android áp dụng các chuỗi ngôn ngữ phù hợp giao diện người dùng của bạn. Android hỗ trợ các qualifiers khác nhau cho các nguồn tài nguyên thay thế của bạn. Qualifiers là một chuỗi ngắn mà bạn tích hợp trong tên của thư mục tài nguyên để xác định cấu hình thiết bị mà những tài nguyên nên được sử dụng. Một ví dụ khác, bạn nên thường tạo ra những bố trí khác nhau cho các hoạt động của bạn, tùy thuộc vào định hướng màn hình và kích thước của thiết bị. Ví dụ, khi màn hình điện thoại theo hướng dọc (cao), bạn có thể muốn có một bố trí với các nút được theo chiều dọc, nhưng khi màn hình là trong định hướng phong cảnh (rộng), các nút được sắp xếp theo chiều ngang. Để thay đổi cách bố trí tùy thuộc vào định hướng, bạn có thể xác định hai bố trí khác nhau và áp dụng các qualifier thích hợp để đặt tên cho mỗi thư mục bố trí. Sau đó, hệ thống sẽ tự động áp dụng cách bố trí thích hợp tùy thuộc vào định hướng thiết bị hiện tại.[1] Trang 12 Tìm kiếm và đăng ký địa điểm dịch vụ trên bản đồ 2.2 Điện toán đám mây 2.2.1 Tổng quan Điện toán đám mây (cloud computing), còn gọi là điện toán máy chủ ảo, là mô hình điện toán sử dụng các công nghệ máy tính và phát triển dựa vào mạng Internet. Thuật ngữ "đám mây" ở đây là lối nói ẩn dụ chỉ mạng Internet (dựa vào cách được bố trí của nó trong sơ đồ mạng máy tính) và như một liên tưởng về độ phức tạp của các cơ sở hạ tầng chứa trong nó. Ở mô hình điện toán này, mọi khả năng liên quan đến công nghệ thông tin đều được cung cấp dưới dạng các "dịch vụ", cho phép người sử dụng truy cập các dịch vụ công nghệ từ một nhà cung cấp nào đó "trong đám mây" mà không cần phải có các kiến thức, kinh nghiệm về công nghệ đó, cũng như không cần quan tâm đến các cơ sở hạ tầng phục vụ công nghệ đó. Theo tổ chức Xã hội máy tính IEEE "Nó là hình mẫu trong đó thông tin được lưu trữ thường trực tại các máy chủ trên Internet và chỉ được được lưu trữ tạm thời ở các máy khách, bao gồm máy tính cá nhân, trung tâm giải trí, máy tính trong doanh nghiệp, các phương tiện máy tính cầm tay, ...". Điện toán đám mây là khái niệm tổng thể bao gồm cả các khái niệm như phần mềm dịch vụ, Web 2.0 và các vấn đề khác xuất hiện gần đây, các xu hướng công nghệ nổi bật, trong đó đề tài chủ yếu của nó là vấn đề dựa vào Internet để đáp ứng những nhu cầu điện toán của người dùng. Ví dụ, dịch vụ Google AppEngine cung cấp những ứng dụng kinh doanh trực tuyến thông thường, có thể truy nhập từ một trình duyệt web, còn các phần mềm và dữ liệu đều được lưu trữ trên các máy chủ.[2] 2.2.2 Khái niệm đơn giản Thuật ngữ "cloud computing" ra đời giữa năm 2007 không phải để nói về một trào lưu mới, mà để khái quát lại các hướng đi của cơ sở hạ tầng thông tin vốn đã và đang diễn ra từ mấy năm qua. Quan niệm này có thể được diễn giải một cách đơn giản: các nguồn điện toán khổng lồ như phần mềm, dịch vụ... sẽ nằm tại các máy chủ ảo (đám mây) trên Internet thay vì trong máy tính gia đình và văn phòng (trên Trang 13 Tìm kiếm và đăng ký địa điểm dịch vụ trên bản đồ mặt đất) để mọi người kết nối và sử dụng mỗi khi họ cần. Với các dịch vụ sẵn có trên Internet, doanh nghiệp không phải mua và duy trì hàng trăm, thậm chí hàng nghìn máy tính cũng như phần mềm. Họ chỉ cần tập trung vào kinh doanh lĩnh vực riêng của mình bởi đã có người khác lo cơ sở hạ tầng và công nghệ thông tin thay họ. Google, theo lẽ tự nhiên, nằm trong số những hãng ủng hộ điện toán máy chủ ảo tích cực nhất bởi hoạt động kinh doanh của họ dựa trên việc phân phối các cloud (virtual server). Đa số người dùng Internet đã tiếp cận những dịch vụ đám mây phổ thông như e-mail, album ảnh và bản đồ số...[2] 2.2.3 Lịch sử Thuật ngữ điện toán đám mây xuất hiện bắt nguồn từ ứng dụng điện toán lưới (grid computing) trong thập niên 1980, tiếp theo là điện toán theo nhu cầu (utility computing) và phần mềm dịch vụ (SaaS). Điện toán lưới đặt trọng tâm vào việc di chuyển một tải công việc (workload) đến địa điểm của các tài nguyên điện toán cần thiết để sử dụng. Một lưới là một nhóm máy chủ mà trên đó nhiệm vụ lớn được chia thành những tác vụ nhỏ để chạy song song, được xem là một máy chủ ảo. Với điện toán đám mây, các tài nguyên điện toán như máy chủ có thể được định hình động hoặc cắt nhỏ từ cơ sở hạ tầng phần cứng nền và trở nên sẵn sàng thực hiện nhiệm vụ, hỗ trợ những môi trường không phải là điện toán lưới như Web ba lớp chạy các ứng dụng truyền thống hay ứng dụng Web 2.0.[2] 2.2.4 Kiến trúc Đại bộ phận hạ tầng cơ sở của điện toán đám mây hiện nay là sự kết hợp của những dịch vụ đáng tin cậy được phân phối thông qua các trung tâm dữ liệu (data center) được xây dựng trên những máy chủ với những cấp độ khác nhau của các công nghệ ảo hóa. Những dịch vụ này có thể được truy cập từ bất kỳ đâu trên thế giới, trong đó Đám mây là một điểm truy cập duy nhất cho tất cả các máy tính có nhu cầu của khách hàng. Các dịch vụ thương mại cần đáp ứng yêu cầu chất lượng Trang 14 Tìm kiếm và đăng ký địa điểm dịch vụ trên bản đồ dịch vụ từ phía khách hàng và thông thường đều đưa ra các mức thỏa thuận dịch vụ (Service level agreement). Các tiêu chuẩn mở (Open standard) và phần mềm mã nguồn mở (open source software) cũng góp phần phát triển điện toán máy chủ ảo. 2.2.5 Các đặc tính Như vậy, trước đây để có thể triển khai một ứng dụng (ví dụ một trang Web), bạn phải đi mua/thuê một hay nhiều máy chủ (server), sau đó đặt máy chủ tại các trung tâm dữ liệu (data center) thì nay điện toán đám mây cho phép bạn giản lược quá trình mua/thuê đi. Bạn chỉ cần nêu ra yêu cầu của mình, hệ thống sẽ tự động gom nhặt các tài nguyên rỗi (free) để đáp ứng yêu cầu của bạn. Chính vì vậy, có thể kể đến một vài lợi ích cơ bản của điện toán đám mây như sau : Sử dụng các tài nguyên tính toán động (Dynamic computing resources) : Các tài nguyên được cấp phát cho doanh nghiệp đúng như những gì doanh nghiệp muốn một cách tức thời. Thay vì việc doanh nghiệp phải tính toán xem có nên mở rộng hay không, phải đầu tư bao nhiêu máy chủ thì nay doanh nghiệp chỉ cần yêu cầu “Hey, đám mây, chúng tôi cần thêm tài nguyên tương đương với 1 CPU 3.0 GHz, 128GB RAM…” và đám mây sẽ tự tìm kiếm tài nguyên rỗi để cung cấp cho bạn. Giảm chi phí : Doanh nghiệp sẽ có khả năng cắt giảm chi phí để mua bán, cài đặt và bảo trì tài nguyên. Rõ ràng thay vì việc phải cử một chuyên gia đi mua máy chủ, cài đặt máy chủ, bảo trì máy chủ thì nay bạn chẳng cần phải làm gì ngoài việc xác định chính xác tài nguyên mình cần và yêu cầu. Quá tiện!. Giảm độ phức tạp trong cơ cấu của doanh nghiệp : Doanh nghiệp sản xuất hàng hóa mà lại phải có cả một chuyên gia IT để vận hành, bảo trì máy chủ thì quá tốn kém. Nếu outsource được quá trình này thì doanh nghiệp sẽ chỉ tập trung vào việc sản xuất hàng hóa chuyên môn của mình và giảm bớt được độ phức tạp trong cơ cấu. Trang 15 Tìm kiếm và đăng ký địa điểm dịch vụ trên bản đồ Tăng khả năng sử dụng tài nguyên tính toán : Một trong những câu hỏi đau đầu của việc đầu tư tài nguyên (ví dụ máy chủ) là bao lâu thì nó sẽ hết khấu hao, tôi đầu tư như thế có lãi hay không, có bị outdate về công nghệ hay không… Khi sử dụng tài nguyên trên đám mây thì bạn không còn phải quan tâm tới điều này nữa.[2] 2.2.6 Các dịch vụ điện toán đám mây Các dịch vụ điện toán đám mây được nhóm lại thành 3 dạng: Cơ sở hạ tầng như một dịch vụ (Infrastructure as a Service – IaaS); Nền tảng như một dịch vụ (Platform as a Service – PaaS); và Phần mềm như một dịch vụ (Sotware as a Service – SaaS). IaaS: cung cấp môi trường xử lý (các máy chủ, lưu trữ, cân bằng tải, tường lửa). Những dịch vụ này có thể được thực hiện thông qua các công nghệ khác nhau, ảo hóa là một trong những công nghệ phổ biến nhất, ngoài ra có thể là công nghệ tính toán lưới (grid computing) hoặc chuỗi (cluster)...[3] Các nhà cung cấp IaaS bao gồm: Amazon Web Services Elastic Compute Cloud (EC2), Rackspace Cloud, Microsoft (MSFT) Windows Azure, Google (GOOG) App Engine... Trang 16

Tìm luận văn, tài liệu, khoá luận - 2024 © Timluanvan.net