Tải bản đầy đủ (.doc) (16 trang)

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.

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (386.22 KB, 16 trang )

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=" /> 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.
III. Xây dựng ứng dụng
1. Tổng quan:
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
quyết định xây dựng một ứng 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 contact
3. Giao diện chính

Chương trình gồm 3 Activities đảm nhiệm 3 chức năng chính: 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 cứu và bắt 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 diện của chương trình có thể dễ
dàng thấy được điều mình quan 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 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 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 phần đó thì gần như ngay lập 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 của chương 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 chương trình không cần phải biết đến 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 đang nghiên cứu chức năng này, dựa trên framework Restlet
và Google App Engine. Cần có thêm thời gian để áp dụng.
 Hiển thị nhanh thông tin Email, status Facebook
 Chia sẻ danh bạ qua các cổng trao đổi phổ biến: Bluetooth, Wifi,
Tài liệu tham khảo:
1. />

×