Công cụ phát triển phần mềm Android (Android SDK)

Một phần của tài liệu Nghiên cứu phát triển ứng dụng nhận biết ngữ cảnh trong môi trường tính toán nhân rộng (Trang 53)

Android SDK[15] cung cấp nhiều tập tin và các công cụ đặc biệt nhằm mục đích

giúp cho việc thiết kế và phát triển các ứng dụng chạy trên nền tảng Android. Android SDK cũng chứa các thư viện để buộc các ứng dụng vào trong các đặc tính lõi của Android, chẳng hạn như những thư viện này được kết hợp với các chức năng của điện thoại di động (thực hiện và nhận cuộc gọi), các chức năng GPS, và nhắn tin văn bản. Những thư viện này tạo nên lõi của SDK và sẽ được sử dụng thường xuyên nhất.

Phần lớn Android SDK bao gồm các tập tin, tài liệu, với lập trình API, các công cụ, và các ví dụ. Trong Android SDK có một vài tập tin trong thư mục gốc giống như android.jar (một ứng dụng Java được biên dịch có chứa các thư viện lõi SDK và API), một số ghi chú, phần còn lại của Android SDK được chia thành ba thư mục chính:

· Docs: Chứa tất cả các tài liệu đi kèm với Android.

· Samples: Bao gồm các ví dụ, có thể được biên dịch và kiểm tra bên trong của Eclipse.

Tools: Chứa tất cả các công cụ gỡ lỗi, biên dịch, và phát triển mà ta cần trong suốt quá trình phát triển một ứng dụng Android.

Trong mục Samples của Android SDK có chứa 6 ví dụ mẫu cho ứng dụng Android. Những ví dụ này cung cấp bởi Google để cung cấp cho ta một ý tưởng nhanh chóng về làm cách nào để phát triển một ứng dụng Android. Mỗi ứng dụng mẫu thể hiện mỗi phần khác nhau về chức năng của Android. Chúng ta có thể mở và chạy các ứng dụng này từ bên trong của Eclipse.

Ứng dụng API Demos là một ứng dụng chủ (host application) mô tả nhiều hàm API trong một Activity đơn lẻ. Một Activity là một ứng dụng Android. Giao diện lập trình ứng dụng API là phần lõi của Android SDK. API là tập hợp các hàm, phương thức, đặc tính, lớp và các thư viện được sử dụng bởi các nhà phát triển ứng dụng để tạo ra các chương trình làm việc trên nền tảng cụ thể. Các Android API chứa tất cả các thông tin cụ thể mà ta cần để tạo ra ứng dụng có thể làm việc và tương tác với một ứng dụng trên nền Android.

Android SDK cũng chứa hai bộ APIs bổ sung là Google APIs và Optional APIs:

· Google APIs

Nằm trong tập tin android.jar, các API của Google được chứa trong gói com.google.*. Có một vài gói đi kèm với các API của Google. Một số gói được vận chuyển trong các API của Google bao gồm các gói cho đồ họa, tính khả chuyển, địa chỉ liên hệ và các tiện ích về lịch. Chẳng hạn như với gói cho Google Maps. Sử dụng gói com.google.android.maps. Trong gói này có chứa các thông tin cho bản đồ Google (Google Maps) ta có thể tạo các ứng dụng tương tác liên tục với giao diện quen thuộc của Google Maps.

· Optional APIs

Các Optional APIs bao gồm các tùy chọn chương tr.nh khi cố gắng sử dụng các tính năng này trong các ứng dụng Android. Một trong những tính năng tùy chọn là một điện thoại di động dựa trên GPS. Android LBS (Location-Based Services) API giải quyết việc tiếp nhận và sử dụng thông tin từ GPS của điện thoại. (Kết hợp thông tin trong LBS Android API với GPS trong Google Maps API có thể tạo ra một ứng dụng rất hữu ích có thể tự động hiển thị một bản đồ định vị trí ). Một số Optional APIs khác bao gồm các tùy chọn cho việc sử dụng Bluetooth, WiFi, chơi nhạc MP3…

Android SDK và Plugin Eclipse được gọi là Android Development Tools (ADT). Trình giả lập Android được tích hợp với Eclipse, sử dụng ADT plug-in cho Eclipse IDE. Trình giả lập điện thoại Android hay còn gọi là AVD (Android Virtual Device) trên đó các ứng dụng có thể chạy và được thử nghiệm. Một khi

AVD được khởi chạy, có thể triển khai một số lượng ứng dụng bất kỳ trong khi nó vẫn còn đang chạy và thậm chí có thể sử dụng nó để gỡ rối ứng dụng.

3.4.1 Xác định kịch bản và ngữ cảnh sử dụng trong hệ thống

3.4.2.1 Kịch bản sử dụng

Như chúng ta đã biết, trong nhịp sống công sở hiện nay, thói quen uống cà phê là một sở thích điển hình của các nhân viên văn phòng, học sinh sinh viên…Với sự phát triển mang tính chất đa hình đa dạng của các quán cà phê, số lượng ngày một nhiều như nấm và đặc biệt được bao phủ hầu hết bởi mạng không dây. Do đó việc tận dụng khoảng thời gian uống cà phê để thực hiện các công việc khác chính là cách tận dụng thời gian trong cuộc sống công nghiệp hiện nay. Người ta có thể chọn hình thức uông cà phê để thư giãn với không gian riêng tư một mình, tán gẫu với bạn bè, hẹn hò, học tập hay các cuộc thương thảo.

Chính vì những đặc điểm trên, nên việc lựa chọn một quán cà phê hợp lý theo sở thích cũng như ngữ cảnh hiện tại của người dùng là vô cùng quan trọng. Rõ ràng, việc chọn một quán cà phê để hẹn hò cần không gian lãng mạn, riêng tư, tránh ồn ào khác hẳn với khi bạn muốn chọn một nơi uống cà phê cùng đám bạn thân. Hoặc giả sử như khi muốn trao đổi vấn đề cùng đối tác làm ăn thì một quán cà phê với không gian sang trọng lịch sự lại là lựa chọn số một. Còn các bạn sinh viên có nhu cầu học tập và giải trí mọi lúc mọi nơi thì luôn cần những địa điểm hợp lý với nguồn wifi sẵn có.

Đó là những yêu cầu và thách thức thực tế đối với một tiện ích tìm kiếm các địa điểm hợp lý đáp ứng sở thích của người dùng.

3.4.2.2 Xác định ngữ cảnh và mô hình hóa a) Ngữ cảnh sử dụng

Hệ thống sử dụng hai loại ngữ cảnh cơ bản trong số các kiểu ngữ cảnh đã liệt kê. Cụ thể là: ngữ cảnh tĩnh và ngữ cảnh động.

Ngữ cảnh tĩnh là sở thích người dùng, cụ thể ở đây là các sở thích đối với quán cà phê theo từng hoàn cảnh riêng. Ví dụ như: đông đúc, sang trọng, có phục vụ ăn chay…

Ngữ cảnh động là thông tin về vị trí của người dùng, trạng thái của quán (trong nhà hay ngoài trời), thời tiết hiện tại.

Với hai kiểu thông tin ngữ cảnh cơ bản trên, việc lấy ngữ cảnh là tương đối đơn giản.

Ngữ cảnh tĩnh được lấy từ Profile của người dùng, ngữ cảnh động được thu nhận từ cảm biến GPS, Wifi được tích hợp sẵn trên điện thoại di động.

Trong phần nghiên cứu ở trên, luận văn đã trình bày một số cách tiếp cận để mô hình hóa ngữ cảnh. Ở chương trình minh họa này, ngữ cảnh sẽ được mô hình hóa dựa theo vai trò các đối tượng theo Henricksen [12].

Lý do của việc chọn mô hình này xuất phát từ thực tiễn hệ thống là nhỏ, đơn giản, tính phức tạp của ngữ cảnh ở mức độ vừa phải. Theo cách tiếp cận này, hệ thống là hướng ngữ cảnh và coi các ngữ cảnh là đối tượng sử dụng theo vai trò của chúng. Với sự hỗ trợ của phần mềm VisioModeler, ngữ cảnh được mô hình như hình 3.6 sau đây:

Hình 3.6 Mô hình hóa ngữ cảnh hệ thống

3.4.3 Mô hình kiến trúc hệ thống

Như chúng ta đã biết, kiến trúc lớp được sử dụng phổ biến nhất trong các ứng dụng nhận biết ngữ cảnh vì tính hệ thống, rõ ràng để phân chia các tầng nhiệm vụ và rất phù hợp khi mô hình hóa ngữ cảnh. Do đó, trong ứng dụng mô hình kiến trúc lớp được miêu tả như hình 3.7 sau đây: (adsbygoogle = window.adsbygoogle || []).push({});

Databa se User profil e Context Provider Acquisition Acquisition Layer Cảm biếns

Hình 3.7 Mô hình kiến trúc hệ thống

Trong mô hình 3.7 này ta thấy, mỗi tầng có một chức năng nhiệm vụ riêng tạo nên sự hoàn chỉnh cho hệ thống xây dựng.

Tầng Acquisition có nhiệm vụ lấy dữ liệu ngữ cảnh từ các nguồn cơ bản như: form đặc tả, các cảm biến, và cơ sở dữ liệu sẵn có. Dữ liệu thu được thuộc thành phần Cung cấp thông tin ngữ cảnh (Context Provider).

Tầng Management mô hình hóa và lưu trữ dữ liệu ngữ cảnh lấy từ tầng Acquisition. Tiếp đó, tầng Consummer sử dụng ngữ cảnh bởi các truy vấn cần thiết khi có yêu cầu tới ngữ cảnh và trả về kết quả thông qua giao diện tầng Utilization.

3.4.4 Cài đặt ứng dụng

Với các công cụ lập trình chuyên biệt cho điện thoại, ứng dụng được cài đặt mã nguồn trong Eclipse, chạy với hệ điều hành Android bắt đầu từ phiên bản 2.1 và GoogleAPI 7, và sử dụng dữ liệu lưu trong SQLite Database.

HÌnh 3.8 Giao diện lập Android

3.4.4.1 Xây dựng các modul

Chương trình gồm có các modul chính như sau:

- Modul Cập nhật thông tin các quán cà phê: có chức năng lưu thông tin về các quán cà phê vào cơ sở dữ liệu như: địa điểm, đặc trưng và phong cách quán… - Modul Tìm kiếm: có chức năng tìm các địa điểm hợp lý theo yêu cầu và sở thích của người dùng.

- Modul Hiển thị kết quả: có chức năng trả về kết quả quán cà phê mà người dùng cần.

3.4.4.1.1Modul Cập nhật thông tin các quán cà phê

Người dùng tích hợp ứng dụng trên điện thoại của mình và có thể lưu thông tin các quán cà phê vào đó. Giao diện nhập thông tin đơn giản và dễ hiểu, thích hợp với mọi người dùng. Ngoài tên, địa chỉ và miêu tả và quán thì các đặc trưng phong cách của quán đó được cho sẵn dưới dạng các lựa chọn, người dùng tích vào các đặc trưng phù hợp và lưu lại trong điện thoại.

Hình 3.9 Giao diện nhập thông tin quán cà phê

3.4.2.2 Modul Tìm kiếm

Khi muốn tìm kiếm một quán cà phê theo ngữ cảnh hiện thời người dùng chọn biểu tượng Profile trên giao diện chính. Sau đó lựa chọn các tiêu chí về nơi mình muốn đến thưởng thức cà phê.

Hình 3.10 Giao diện tìm kiếm

3.4.2.3 Modul Kết quả

Sau khi lựa chọn các tiêu chí phù hợp về nơi muốn đến, người dùng vào biểu tượng Search để nhận các kết quả cần tìm.

Kết luận và hướng phát triển.

Kết quả đạt được

Mục tiêu của luận văn đã đưa ra:

- Tập chung tìm hiểu khái niệm về môi trường nhân rộng, khái niệm về thông tin ngữ cảnh và nhận biết ngữ cảnh.

- Tìm hiểu các cách tiếp cận để mô hình hóa thông tin ngữ cảnh ứng dụng trong một lĩnh vực cụ thể.

- Tìm hiêu và xây dựng ứng dụng nhận biết ngữ cảnh trong môi trường tính toán nhân rộng.

Kết quả luận văn đạt được:

- Tìm hiểu môi trường nhân rộng:

 Tổng quan về môi trường nhân rộng

 Đặc điểm (adsbygoogle = window.adsbygoogle || []).push({});

 Cơ hội và thách thức mà môi trường này mang lại. - Tìm hiểu về thông tin ngữ cảnh và nhận biết ngữ cảnh:

 Tổng hợp các khái niệm về ngữ cảnh, nhận biết ngữ cảnh

 Các đặc trưng của thông tin ngữ cảnh

 Phân loại ngữ cảnh.

- Tìm hiểu các cách tiếp cận mô hình hóa ngữ cảnh cho các ứng dụng trong lĩnh vực liên quan. Và một trong các cách tiếp cận đó được sử dụng để mô hình hóa ngữ cảnh bài toán một cách phù hợp.

- Tìm hiểu các công việc chính khi xây dựng ứng dụng nhận biết ngữ cảnh. - Các kiến thức đã tìm hiểu được áp dụng để xây dựng chương trình mô phỏng chạy trên hệ điều hành Android:”Coffee Context Search”. Chương trình sau khi xây dựng là một tiện ích dùng để tích hợp trên Smartphone giúp người dùng tìm kiếm địa điểm quán cà phê theo ngữ cảnh của họ. Ngữ cảnh bài toán được mô hình hóa theo một trong các cách tiếp cận đã được nghiên cứu với sự hỗ trợ của công cụ thiết kế Visio Modeler.

Hướng phát triển

Do thời gian thực hiện luận văn còn hạn chế nên luận văn mới chỉ thực hiện xây dựng ứng dụng ở mức độ đơn giản. Hướng phát triển tiếp theo của luận văn sẽ là mô hình hóa ngữ cảnh theo cách tiếp cận lai giữa CML và OWL. Vì đây đang là một xu hướng tiếp cận mới với nhiều ưu điểm do kết hợp được từ các kiểu mô hình ngữ cảnh khác. Ngoài ra việc sử dụng các kiểu thông tin ngữ cảnh đa dạng hơn giúp cho ngữ cảnh được mô hình hóa phong phú hơn, cho người dùng có nhiều chọn lựa và tăng độ chính xác của chương trình. Thêm nữa, việc kết nối được giữa những người sử dụng hệ thống trong nhóm bạn bè sẽ làm tăng thêm tính năng của tiện ích. Đây cũng là một hướng nghiên cứu tiếp theo của luận văn.

Tài liệu tham khảo

1. A. Newell and H.A. Simon (1965), “Computer Augmentation of Human Reasoning” Spartan Books, Washington DC, USA.

2. Albrecht Schmidt (2002), “Ubiquitous Computing –Computing in Context”, Computing Department, Lancaster University, U.K.

3. Albrecht Schmidt, Michael Beigl, and Hans-W. Gellersen, “There is more to Context than Location”, University of Karlsruhe

4. Albrecht SchmidtU, Kofi Asante Aidooª, Antti Takaluomai, Urpo Tuomelai, Kristof Van Laerhovenª, Walter Van de Velde, “Advanced Interaction in Context”, University of Karlsruhe, Germany.

5. Anind K. Dey (2000), “Providing Architectural Support for Building Context- Aware Applications”, Georgia Institute of Technology, November.

6. Anind K. Dey and Gregory D. Abowd, “A Conceptual Framework and a Toolkit for Supporting the Rapid Prototyping of Context-Aware Applications”, College of Computing & GVU CenterGeorgia Institute of Technology.

7. B. Schilit, N. Adams, and R. Want (1994), “Context-aware computing applications”, In IEEE Workshopon Mobile Computing Systems and Applications.

8. Balqis Omar, Tabarak Ballal, “Intelligent Wireless Web Services: Context-

Aware Computing in Construction-Logistics Supply Chain”,

www.itcon.org - Journal of Information Technology in Construction - ISSN 1874-4753.

9. Claudia Linnhoff-Popien, Thomas Strang, “Context Modeling Survey”, Institute for Informatics, D-80538 Munich, Germany.

10. Dey A. K. (2000), “Providing Architectural Support for Building Context- Aware Applications”, PhD Thesis, Georgia Institute of Technology. 11. G. Chen and D. Kotz (2000), “A Survey of Context-Aware Mobile

Computing Research”, Techreport TR2000-381, Dept. of Computer Science, Dartmouth College.

12. Harry Chen, Tim Finin, and Anupam Joshi (2003), “An Ontology for Context-Aware Pervasive Computing Environments”, The Knowledge Engineering Review, Volume 18 , Issue 3.

13. Ioanna Roussaki1, Nicolas Liampotis1, Nikos Kalatzis1, Korbinian Frank2 and Patrick Hayden, “How to make Personal Smart Spaces Context- aware”, School of Electrical and Computer Engineering, National Technical University of Athens, Greece.

14. J. Wolfgang Kaltz .Jürgen Ziegler . Steffen Lohmann, “Context-awareWeb Engineering: Modeling and Applications”, Universität Duisburg-Essen (Campus Duisburg)

15. James Steele Nelson (2010), “The Android Developer‟s Cookbook Building Applications with the Android SDK”, Add ison-Wesley.

16. Karen Henricksen (2005), “Modelling and Using Imperfect Context Information”, School of Information Technology and Electrical Engineering, The University of Queensland.

17. Karen Henricksen, Jadwiga Indulska (2005), “Developing Context-Aware Pervasive Computing Applications: Models and Approach”, School of Information Technology and Electrical Engineering, The University of Queensland, QLD 4072 Australia.

18. Marko Gargenta (2010), “Learning Android”, O‟Reilly Media, 1 edition. 19. P.J. Brown and J.D. Bovey and C. Xian (1997), “Context-aware

applications: from the laboratory to the marketplace”, IEEE Personal Communications, 4(5). (adsbygoogle = window.adsbygoogle || []).push({});

20. Matthias Baldauf , “A survey on context-aware systems”, V-Research, Industrial Research and Development, Stadtstrasse 33, 6850 Dornbirn, Austria

21. Moeiz Miraoui1, Chakib Tadj1, Chokri ben Amar, “Architectural survey of Context-aware system in pervasive computing environment”, Université du Québec

22. Pashtan A., Blattler R., Heusser A. and Scheurmann P. (2003), “CATIS: A Context-Aware Tourist Information System”, Proceedings of the 4th International Workshop of Mobile Computing, Rostock.

23. Schmidt, A., Aidoo, K.A., Takaluoma, A, Tuomela, U., Van Laerhoven, K., Van de Velde, W. (1999), “Advanced Interaction In Context”. Lecture Notes in Computer Science, Hand Held and Ubiquitous Computing ,. 24. Sonia Ben Mokhtar, Damien Fournier, Nikolaos Georgantas, and Val´erie

Issarny, “Context-Aware Service Composition in Pervasive Computing Environments”, http://www-rocq.inria.fr/arles/

25. Yun Her, Su-Kyoung Kim, YoungTaek Jin (2010), “A Context-Aware Framework using Ontology for Smart Phone Platform”, International Journal of Digital Content Technology.

Một phần của tài liệu Nghiên cứu phát triển ứng dụng nhận biết ngữ cảnh trong môi trường tính toán nhân rộng (Trang 53)