BÀI TẬP LỚN Nhập môn tương tác người máy Đề tài: Thiết kế danh bạ người dùng trên thiết bị Android, đồng bộ hóa danh bạ bằng công nghệ điện toán đám mây. (HCI05) Nhóm HCI10: Lê Quang Hiếu 20071095 Nguyễn Ngọc Hiếu 20071111 Lưu Thị Thùy Nhung 20072167 Phạm Văn Tân 20072530 Bạch Duy Tùng 20073274 Hà Nội, tháng 102011 MỤC LỤC I. Tổng quan về hệ điều hành Android 4 II. Thiết kế ứng dụng trên nền tảng Android 6 1. Giao diện 6 2. Widgets 8 3. UI Sự kiện 8 4. Menus 9 III. Xây dựng ứng dụng 11 1. Tổng quan: 11 2. Mô tả: 11 3. Giao diện chính 11 4. Đánh giá: 13 5. Hướng phát triển: 15 I. Tổng quan về hệ điều hành Android Android là hệ điều hành được Google đưa ra vào năm 2005. Hệ điều hành Android được sử dụng trên các thiết bị cảm ứng như smartphones, máy tính bảng... Hiện nay, hệ điều hành Android là hệ điều hành phổ biến nhất trên các thiết bị di động thông minh ở nhiều phân khúc khác nhau. Android là hệ điều hành thân thiện với người dùng và đạt được những tiêu chuẩn về tương tác giữa người dùng với thiết bị Tính thân thiện: Giao diện của Android được thiết kế giúp người dùng tương tác rất đơn giản với thiết bị thông qua những thao tác chạm và vuốt. Các thông báo cũng đơn giản và dễ hiểu, hướng dẫn người dùng thực hiện dễ dàng những thao tác mà người dùng cần sử dụng. Hiện nay với phiên bản 4.0, ngoài việc dùng động tác tay, người sử dụng còn có thể tương tác với thiết bị qua giọng nói hoặc khuôn mặt, rất dễ dàng cho người dùng. Tính thẩm mỹ: Hệ điều hành Android được thiết kế ngày càng đẹp mắt với độ phân giải màn hình cao, font chữ dễ nhìn. Ngoài ra, với các tương tác của người dùng, còn có các hiệu ứng animation rất bắt mắt khiến cho người sử dụng có cảm hứng hơn trong việc tương tác với thiết bị. Hơn nữa, người sử dụng còn có thể cài thêm các gói giao diện khác ưng ý với mình hơn để thích hợp với con mắt thẩm mỹ của từng người. Tính mềm dẻo: Hiện tại có hàng ngàn ứng dụng trên Android market và hầu hết là miễn phí, người sử dụng có thể đáp ứng mọi nhu cầu của mình với các ứng dụng đó, với các ứng dụng hết sức đơn giản nhưng hiệu quả. Android quản lý các ứng dụng theo danh sách khiến người dùng sử dụng dễ dàng, với phiên bản 4.0, người dùng còn có thể nhóm các ứng dụng cùng loại với nhau thành 1 nhóm dễ cho việc tìm kiếm và sử dụng các ứng dụng đó. Tính hiệu quả: Android hỗ trợ đầy đủ các phương thức kết nối từ 3G, Wifi... đến NFC khiến cho những yêu cầu của người dùng có thể dễ dàng được đáp ứng. Hơn nữa, những tác vụ thiết yếu của người dùng đều được những ứng dụng tích hợp trong Android hỗ trợ đầy đủ, khiến cho người dùng có thể dễ dàng đạt được mục tiêu một cách nhanh chóng nhất.
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG *** BÀI TẬP LỚN Nhập môn tương tác người - máy Đề tài: Thiết kế danh bạ người dùng trên thiết bị Android, đồng bộ hóa danh bạ bằng công nghệ điện toán đám mây. (HCI05) Nhóm HCI10: Lê Quang Hiếu - 20071095 Nguyễn Ngọc Hiếu - 20071111 Lưu Thị Thùy Nhung - 20072167 Phạm Văn Tân - 20072530 Bạch Duy Tùng - 20073274 Hà Nội, tháng 10-2011 MỤC LỤC I. Tổng quan về hệ điều hành Android 4 II. Thiết kế ứng dụng trên nền tảng Android 6 1. Giao diện 6 2. Widgets 8 3. UI Sự kiện 8 4. Menus 9 III. Xây dựng ứng dụng 11 1. Tổng quan: 11 2. Mô tả: 11 3. Giao diện chính 11 4. Đánh giá: 13 5. Hướng phát triển: 15 I. Tổng quan về hệ điều hành Android Android là hệ điều hành được Google đưa ra vào năm 2005. Hệ điều hành Android được sử dụng trên các thiết bị cảm ứng như smartphones, máy tính bảng Hiện nay, hệ điều hành Android là hệ điều hành phổ biến nhất trên các thiết bị di động thông minh ở nhiều phân khúc khác nhau. Android là hệ điều hành thân thiện với người dùng và đạt được những tiêu chuẩn về tương tác giữa người dùng với thiết bị - Tính thân thiện: Giao diện của Android được thiết kế giúp người dùng tương tác rất đơn giản với thiết bị thông qua những thao tác chạm và vuốt. Các thông báo cũng đơn giản và dễ hiểu, hướng dẫn người dùng thực hiện dễ dàng những thao tác mà người dùng cần sử dụng. Hiện nay với phiên bản 4.0, ngoài việc dùng động tác tay, người sử dụng còn có thể tương tác với thiết bị qua giọng nói hoặc khuôn mặt, rất dễ dàng cho người dùng. - Tính thẩm mỹ: Hệ điều hành Android được thiết kế ngày càng đẹp mắt với độ phân giải màn hình cao, font chữ dễ nhìn. Ngoài ra, với các tương tác của người dùng, còn có các hiệu ứng animation rất bắt mắt khiến cho người sử dụng có cảm hứng hơn trong việc tương tác với thiết bị. Hơn nữa, người sử dụng còn có thể cài thêm các gói giao diện khác ưng ý với mình hơn để thích hợp với con mắt thẩm mỹ của từng người. - Tính mềm dẻo: Hiện tại có hàng ngàn ứng dụng trên Android market và hầu hết là miễn phí, người sử dụng có thể đáp ứng mọi nhu cầu của mình với các ứng dụng đó, với các ứng dụng hết sức đơn giản nhưng hiệu quả. Android quản lý các ứng dụng theo danh sách khiến người dùng sử dụng dễ dàng, với phiên bản 4.0, người dùng còn có thể nhóm các ứng dụng cùng loại với nhau thành 1 nhóm dễ cho việc tìm kiếm và sử dụng các ứng dụng đó. - Tính hiệu quả: Android hỗ trợ đầy đủ các phương thức kết nối từ 3G, Wifi đến NFC khiến cho những yêu cầu của người dùng có thể dễ dàng được đáp ứng. Hơn nữa, những tác vụ thiết yếu của người dùng đều được những ứng dụng tích hợp trong Android hỗ trợ đầy đủ, khiến cho người dùng có thể dễ dàng đạt được mục tiêu một cách nhanh chóng nhất. II. Thiết kế ứng dụng trên nền tảng Android Trong một ứng dụng Android, giao diện người dùng được xây dựng bằng cách sử dụng View và ViewGroup đối tượng. Có nhiều loại quan điểm và các nhóm view, mỗi một trong số đó là hậu duệ của lớp View. View objects là các đơn vị cơ bản của biểu hiện giao diện người dùng trên nền tảng Android. Các class xem như là cơ sở phục vụ cho class con được gọi là "widget", trong đó cung cấp đầy đủ các đối tượng thực hiện giao diện, giống như các lĩnh vực văn bản và nút. Class ViewGroup phục vụ như là cơ sở cho lớp con được gọi là " layouts", cung cấp các loại khác nhau của kiến trúc bố trí, như linear, tabular và relative. Một View object là một cấu trúc dữ liệu có đặc tính lưu trữ các thông số bố trí và nội dung cho một khu vực cụ thể hình chữ nhật của màn hình. Một View object xử lý đo lường riêng của mình, bố trí, bản vẽ thay đổi tập trung, di chuyển, và phím/tương tác cử chỉ cho khu vực hình chữ nhật của màn hình. Là một object trong giao diện người dùng, view cũng là một điểm tương tác cho người sử dụng và nhận các sự kiện tương tác. 1. Giao diện Cách phổ biến nhất để xác định bố trí của bạn và thể hiện sự phân cấp view là với một tập tin XML layout. XML cung cấp một cơ cấu có thể đọc được cho bố trí, giống như HTML. Mỗi phần tử trong XML là cả một View hoặc đối tượng ViewGroup (hoặc hậu duệ đó). Các đối tượng View là lá trong cây, ViewGroup đối tượng là các nhánh trong cây. Tên của một phần tử XML là tương ứng với lớp học Java mà nó đại diện. Vì vậy, một yếu tố <textview> tạo ra một TextView trong UI của bạn, và một phần tử <linearlayout> tạo ra một LinearLayout viewgroup. Khi bạn tải một layout resource, hệ thống Android khởi chạy thời gian các đối tượng, tương ứng với các yếu tố trong cách bố trí của bạn. Ví dụ, một bố trí dọc đơn giản với một lần xem văn bản và một nút sẽ như thế này: <? xml version = "1.0" encoding = "utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a TextView"/> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a Button" /> </LinearLayout> Chú ý rằng các phần tử LinearLayout chứa cả TextView và Button. Bạn có thể làm khác LinearLayout (hoặc các loại hình xem nhóm) bên trong ở đây, để kéo dài sự phân cấp xem và tạo ra một bố cục phức tạp hơn. Để biết thêm về việc xây dựng một bố cục UI, đọc Giao diện kê khai. Có rất nhiều cách mà bạn có thể xem cách bố trí của bạn. Sử dụng nhiều hơn và các loại khác nhau của các view group, bạn có thể cấu trúc views con và view groups trong vô số cách . Xác định các nhóm xem được cung cấp bởi Android (gọi là layouts) bao gồm LinearLayout, RelativeLayout, TableLayout, GridLayout và khác. Mỗi cung cấp một bộ duy nhất của các thông số bố trí được sử dụng để xác định vị trí của views con và cơ cấu layout Để tìm hiểu về một số các loại khác nhau của các view group được sử dụng cho một layout, đọc Giao diện đối tượng thường gặp. 2. Widgets Widget là một object View phục vụ như một giao diện để tương tác với người dùng. Android cung cấp một tập các widgets thực hiện đầy đủ, giống như các button, Checkbox, và text-entry , do đó bạn có thể nhanh chóng xây dựng giao diện người dùng của bạn. Một số widgets được cung cấp bởi Android phức tạp hơn, giống như một date picker, clock, và zoom controls. Nhưng nó không giới hạn trong các loại widgets được cung cấp bởi các nền tảng Android. Nếu bạn muốn làm một cái gì thêm cho tùy biến và tạo ra các yếu tố của hành động của bạn, bạn có thể, bằng cách xác định object view của riêng bạn hoặc bằng cách mở rộng và kết hợp các Widget hiện có. Đọc tiếp tại Building Custom Components. Để có một danh sách các vật dụng được cung cấp bởi Android, xem gói android.widget 3. UI Sự kiện Một khi bạn đã thêm một số Views/widgets đến giao diện, có thể bạn muốn biết về sự tương tác của người dùng với họ, vì vậy bạn có thể thực hiện hành động. Để được thông báo về UI events người dùng, bạn cần phải làm một trong hai điều: Xác định một sự kiện nghe và đăng ký nó với các View. Khác thường hơn không, đây là cách bạn sẽ lắng nghe cho các sự kiện. Các class View có chứa một tập hợp các giao diện lồng nhau đặt tên On<something>Listener, đều có một phương pháp gọi lại được gọi là On<something>() Ví dụ. View.OnClickListener (để xử lý "nhấp chuột" trên một View), View.OnTouchListener ( để xử lý các sự kiện màn hình cảm ứng trong một View), và View.OnKeyListener (để xử lý thiết bị ép quan trọng trong một View). Vì vậy nếu bạn muốn View của bạn được thông báo khi nó là " clicked" (chẳng hạn như khi một nút được chọn), thực hiện và xác định OnClickListener của nó gọi method onClick() (nơi bạn thực hiện các hành động sau khi nhấp chuột), và đăng ký nó vào Xem với setOnClickListener(). Ghi đè một callback method hiện cho View. Đây là những gì bạn nên làm gì khi bạn đã thực hiện lớp View của riêng bạn và muốn lắng nghe cho các sự kiện cụ thể xảy ra trong nó. Ví dụ về các sự kiện bạn có thể xử lý bao gồm màn hình là touched onTouchEvent() khi trackball là di chuyển onTrackballEvent() hoặc khi một phím trên thiết bị được nhấn onKeyDown(). Điều này cho phép bạn xác định các hành vi mặc định cho từng sự kiện bên trong tuỳ chỉnh View của bạn và xác định xem sự kiện này cần được thông qua ngày để View con khác. Một lần nữa, đây là những callbacks View class, do đó, cơ hội duy nhất của bạn để xác định đó là khi bạn xây dựng một phần tùy chỉnh. 4. Menus Menu đơn có một phần quan trọng của giao diện người dùng trong một ứng dụng. Menus cung cấp một giao diện đáng tin cậy cho thấy rằng các chức năng ứng dụng và cài đặt. Trong trình đơn ứng dụng phổ biến nhất là tiết lộ bằng cách bấm phím MENU trên thiết bị. Tuy nhiên, bạn cũng có thể thêm Context Menus, có thể hiển thị khi người sử dụng máy nhấn và nắm giữ phím trên một mục. Thực đơn cũng được hệ thống phân cấp cấu trúc bằng cách sử dụng một xem, nhưng bạn không xác định cấu trúc này cho mình. Thay vào đó, bạn xác định onCreateOptionsMenu() hoặc onCreateContextMenu() gọi method cho hoạt động của bạn và tuyên bố các mục mà bạn muốn bao gồm trong menu của bạn. Trong một thời gian thích hợp, Android sẽ tự động tạo ra hệ thống View phân cấp cần thiết cho menu, và rút ra mỗi trong mỗi menu items đó. Menus cũng xử lý các sự kiện riêng của nó, do đó không cần phải đăng ký sự kiện listeners trên các item trong menu của bạn. Khi một item trong menu của bạn được chọn, onOptionsItemSelected() hoặc onOptionsItemSelected() onContextItemSelected() method onContextItemSelected() sẽ được gọi bằng framework. Và cũng giống như layout của bạn, bạn có tùy chọn để khai báo các menu item cho bạn trong một tệp tin XML. Đọc Tạo Menus để tìm hiểu thêm. [...]... dụng lưu trữ danh bạ người dùng, và nghiên cứu để đồng bộ hóa danh bạ người dùng dựa vào công nghệ điện toán đám mây, giúp cho danh bạ người dùng có thể được lưu trữ an toàn, và có thể được sao lưu bất cứ lúc nào, ở bất cứ thiết bị nào có sử dụng ứng dụng này 2 Mô tả: Những chức năng chính: - Hiện danh sách contact - Hiện thông tin của contact muốn xem - Thêm, sửa, xóa contact - Đồng bộ hóa danh sách... Với mỗi người sử dụng di động, việc lưu lại những thông tin liên lạc của bạn b , người thân, các quan hệ xã hội là việc vô cùng cần thiết Vì vậy, mỗi người đều có một danh bạ riêng cho mình với đầy đủ những thông tin cần thiết nhất Hơn thế nữa, việc sao lưu dữ liệu danh bạ là một điều hết sức cần thiết nếu một lúc nào đó người dùng bị mất danh b , hay trường hợp xấu hơn là mất điện thoại Vì th , nhóm... tâm, đó là danh sách các contact hiện có Không có quá nhiều chức năng rườm rà trên giao diện khiến người dùng có thể dễ dàng nhận biết được điều mình cần làm khi tương tác với chương trình Tương thích: Chương trình thiết kế theo những nhu cầu cần thiết nhất của người dùng như: Lưu danh b , sao lưu, đồng bộ hóa, xem thông tin danh bạ Chương trình còn có thể dễ dàng tương thích với các phiên bản Android. .. các chi tiết kỹ thuật, lập trình, dữ liệu tạo nên chương trình, chỉ cần thao tác theo nhu cầu sử dụng để đạt được mục đích Do đ , khi thao tác, người dùng có thể tập trung hơn vào nghiệp vụ của mình 5 Hướng phát triển: Chương trình còn có thể hoàn thiện thêm để đáp ứng nhiều hơn các nhu cầu của người sử dụng: Update, sao lưu dữ liệu danh bạ người dùng dựa trên công nghệ điện toán đám mây: Hiện nhóm... giúp cho nhiều người dùng khác nhau đều có thể tiếp cận được sản phẩm một cách dễ dàng nhất Nhất quán: Các thành phần trên giao diện chương trình được thiết kế đảm bảo cho người sử dụng không gặp khó khăn khi thao tác Với các tương tác giống nhau trên thiết b , các kết quả đầu ra sẽ giống nhau Các chức năng của mỗi thành phần đều cố định, không thay đổi tùy tiện Trực tiếp: Khi người dùng tác động... tay vào xây dựng ứng dụng, tuy ứng dụng chưa hoàn hảo nhưng cũng đạt được những nguyên tắc cơ bản về thiết kế giao diện người dùng, giúp người dùng thao tác dễ dàng, hiệu quả Thẩm mỹ: Chương trình sử dụng thiết kế rất đơn giản với chữ và nền cho độ tương phản cao (đen - trắng) Các thành phần hiển thị trên màn hình có chức năng và nhiệm vụ rõ ràng, mạch lạc Rõ ràng: Khi người sử dụng nhìn vào giao... trình khiến người sử dụng có thể tương tác một cách đơn giản, dễ dàng, hiệu quả Menu chỉ xuất hiện khi người sử dụng cần đến nó Các chức năng giống nhau đều được hiển thị trên cùng mọt khuôn nhìn, giúp người sử dụng thao tác đơn giản hơn Khi người sử dụng đã chọn một nút, một phần nhập chữ thì không có những thông báo phức tạp hiện ra làm gián đoạn hoạt động của người dùng Trong suốt: Người dùng sử dụng... Hiện danh sách contact, hiển thị thông tin chi tiết của một contact và Thêm/sửa một contact Ngoài ra, chương trình còn cung cấp menu để tương tác với các contact, giúp người sử dụng dễ dàng thêm, xóa contact hoặc sao lưu, đồng bộ dữ liệu Danh sách contact: Hiển thị thông tin contact khi ấn vào 1 contact muốn xem: Thêm contact mới hoặc sửa một contact đã có 4 Đánh giá: Qua thời gian ngắn tìm hiểu, nghiên... tức các thao tác sẽ cho kết quả Điều này khiến cho các thao tác của người dùng đạt hiệu quả cao nhất Thân thiện: Giao diện rất tự nhiên và đơn giản, không khó khăn để cho người dùng có thể nhận ra các chức năng của chương trình Các nút bấm trên giao diện đều có tác dụng giúp người dùng ngay lập tức hiểu được nhiệm vụ và chức năng của mỗi thành phần hiện ra trước mắt người dùng Đơn giản: Giao diện... động lên các thành phần của phần mềm, các tính năng của chương trình sẽ được hiển thị tương ứng để đáp ứng nhu cầu của người sử dụng Với mỗi thành phần, khi thao tác không phải sử dụng quá nhiều động tác để có thể đạt được nhu cầu của người dùng Hiệu quả: Các chức năng của chương trình đều được bố trí trực tiếp trên các thành phần của giao diện hoặc trên menu để khi người sử dụng tương tác với các thành . dùng trên thiết bị Android, đồng bộ hóa danh bạ bằng công nghệ điện toán đám mây. (HCI05) Nhóm HCI10: Lê Quang Hiếu - 20071095 Nguyễn Ngọc Hiếu - 20071111 Lưu Thị Thùy Nhung - 20072167 Phạm Văn