TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN
VÕ THÀNH NHẬT – PHAN THÀNH TRUNG
TÌM HIỂU HỆ ĐIỀU HÀNH ANDROID VÀ
XÂY DỰNG ỨNG DỤNG MINH HỌA
- PHỤ LỤC -
KHÓA LUẬN TỐT NGHIỆP CỬ NHÂN CNTT
TP.HCM, 2010
2
LỜI GIỚI THIỆU
Android là một hệ điều hành mã nguồn mở được phát triển dựa trên nhân
Linux. Trong một hai năm trở lại đây, sự phát triển của Android đã có những bước
phát triển mạnh mẽ và dần chiếm cảm tình của người dùng. Do có lợi thế là được
xây dựng theo tiêu chí mở nên việc phát triển ứng dụng trên Android được cho là
khá dễ dàng. Tuy nhiên, nguồn tài liệu để lập trình được ứng dụng chạy trên
Android khá là rời rạc và chưa có sự sắp xếp và tổ chức tốt. Chính vì thế mà cuốn
Phụ lục này được viết ngoài mục đích hỗ trợ cho Khóa luận “Tìm hiểu Hệ điều
hành Android và xây dựng ứng dụng minh họa” còn có mục đích cao hơn đó là
cung cấp những cái nhìn cơ bản nhất, chung nhất giúp cho người đọc có thể dễ dàng
nắm bắt, học hỏi cách thức vận hành cũng như phát triển ứng dụng trên hệ điều
hành nhiều tiềm năng này.
Do thời gian thực hiện đề tài khá ngắn cho nên việc thiếu sót trong khi viết
phần Phụ lục này là một điều không thể tránh khỏi. Nhóm chúng em rất mong được
sự góp ý từ Thầy Cô và các Bạn. Nhóm chúng em xin chân thành cảm ơn.
Tp. Hồ Chí Minh, tháng 03 năm 2010
Nhóm sinh viên thực hiện
Võ Thành Nhật – Phan Thành Trung
3
MỤC LỤC
MỤC LỤC 3
DANH MỤC CÁC HÌNH 9
Phụ lục A Cuộc thăm dò hệ điều hành Android khuấy động thị trường
smart phone 19
Phụ lục B Những thống kê thú vị về Google Android trong những năm gần
đây (theo iTech.vn ngày 25/01/2010) 24
B.1 Những thống kê từ Google 24
B.2 Những thông tin đáng chú ý 26
B.3 Báo cáo của Admob 26
B.4 Báo cáo của Myxer 28
Phụ lục C Danh sách các công ty trong Hiệp hội các thiết bị cầm tay mở 29
Phụ lục D Các smart phone dùng hệ điều hành Android 32
Phụ lục E So sánh các hệ điều hành hiện có trên smart phone 35
Phụ lục F Hai HĐH smartphone Android và iPhone tăng trưởng nhanh
nhất 39
Phụ lục G Lập trình trên Android 41
G.1 Tổng quan Android 41
G.1.1 Định nghĩa Android 41
G.1.2 Tính năng và kiến trúc Android 41
G.2 Giới thiệu Java SE JDK, Android SDK , ADT, Eclipse và các bước cài đặt
44
G.2.1 Giới thiệu Java SE JDK, Android SDK, ADT, DDMS, Eclipse và mối
liên hệ giữa chúng 44
G.2.2 Các bước cài đặt để lập trình Android 50
G.2.3 Các điều lưu ý sau khi cài đặt 64
G.3 Bước đầu làm quen với Android qua project HelloNhatTrungApp 67
4
G.3.1 Các bước tạo project HelloNhatTrungApp 67
G.3.2 Cấu trúc của một project Android 85
G.4 Làm quen với các khung nhìn trên Eclipse qua cái nhìn trên Android
project 87
G.4.1 Khung nhìn Java 87
G.4.2 Khung nhìn DDMS 99
G.4.3 Tìm hiểu Debug 104
G.5 Làm quen với nền tảng ứng dụng Android 108
G.5.1 Các thành phần ứng dụng 109
G.5.2 Activities và Tasks 114
G.5.3 Tiến trình và luồng 115
G.5.4 Vòng đời các thành phần ứng dụng Android 115
G.6 Làm quen với các công cụ hỗ trợ sẵn có của Android SDK 125
G.6.1 Android Development Tools Plugin (ADT) 125
G.6.2 Dalvik Debug Monitor Service (DDMS) 126
G.6.3 Hierarchy Viewer 128
G.6.4 Draw 9-patch 130
G.6.5 Android Debug Bridge (ADB) 134
G.6.6 Các công cụ hỗ trợ khác 136
Phụ lục H Các vấn đề cơ bản trong lập trình Android 137
H.1 Các vấn đề và khái niệm cơ bản trong lập trình giao diện 137
H.1.1 Giới thiệu lập trình giao diện trên Android và các tính năng của nó 137
H.1.2 Các từ khóa thường gặp trong lập trình giao diện 141
H.1.3 Các đơn vị tính trên giao diện 142
H.1.4 Các thuộc tính thường gặp trên các View 143
H.1.5 Tổng quát các View dưới cái nhìn hướng đối tượng 144
H.1.6 Cách thức xây dựng và thiết kế giao diện 149
H.1.7 Cách thao tác control trên Java code 152
H.2 Lập trình với giao diện cơ bản 153
5
H.2.1 Các điều khiển chứa điều khiển khác (layout) 153
H.2.2 Các điều khiển thông dụng 164
H.3 Các chú ý khi lập trình giao diện 166
Phụ lục I Lập trình theo từng chủ đề 167
I.1 Lập trình giao diện tùy biến với Adapter 167
I.1.1 Giới thiệu sơ lược BaseAdapter và các lớp con của nó 167
I.1.2 Dùng Adapter trên Spinner 168
I.1.3 Dùng Adapter trên Gallery 170
I.1.4 Dùng Adapter trên ListView cơ bản 173
I.1.5 Dùng Adapter trên ListView nâng cao 175
I.1.6 Dùng Adapter trên GridView cơ bản 177
I.1.7 Dùng Adapter trên GridView nâng cao 179
I.1.8 Kinh nghiệm lập trình với Adapter 182
I.2 Lập trình với hoạt cảnh chuyển động (Animation) 183
I.2.1 Giới thiệu lập trình với Animation 183
I.2.2 Lập trình với TweenAnimation 184
I.2.3 Lập trình với FrameByFrameAnimation 189
I.3 Lập trình với Media 191
I.3.1 Giới thiệu 191
I.3.2 Lập trình phát âm thanh trên Android 193
I.3.3 Lập trình phát Video trên Android 193
I.3.4 Nhận xét 194
I.4 Lập trình với thao tác Telephony 195
I.4.1 Giới thiệu 195
I.4.2 Thực hiện gọi điện thoại tới một số cho trước 195
I.4.3 Thực hiện gửi tin nhắn SMS 197
I.4.4 Thực hiện chức năng rung điện thoại 198
I.5 Lập trình với luồng (Thread) 198
I.5.1 Giới thiệu luồng 198
6
I.5.2 Các đặc tính và cách thức vận hành luồng 199
I.5.3 Lập trình luồng 200
I.6 Lập trình với thực đơn (Menu) 202
I.6.1 Giới thiệu thực đơn 202
I.6.2 Cách thức lập trình 203
I.6.3 Nhận xét 212
I.7 Lập trình với kiểu chữ (Font) 212
I.7.1 Giới thiệu 212
I.7.2 Cách lập trình 213
I.7.3 Nhận xét 214
I.8 Lập trình với khung thoại (Dialog) 214
I.8.1 Giới thiệu 214
I.8.2 Cách thức lập trình 215
I.9 Lập trình với nhập xuất tập tin 220
I.9.1 Giới thiệu 220
I.9.2 Preferences 221
I.9.3 Files 222
I.9.4 Databases 226
I.9.5 Network 231
I.10 Lập trình với MapView 233
I.10.1 Giới thiệu 233
I.10.2 Cách thức lập trình 235
I.10.3 Nhận xét 239
I.11 Lập trình thao tác WebKit 239
I.11.1 Giới thiệu 239
I.11.2 Cách thức lập trình 240
I.11.3 Nhận xét 241
I.12 Lập trình với các widget khác 241
I.12.1 Widget Date/Time 241
7
I.12.2 Widget Tab 242
Phụ lục J Lập trình với EndlessList 245
J.1 Giới thiệu 245
J.2 Cách thức tạo EndlessList 246
J.2.1 Cách thức vận hành của EndlessList: 246
J.2.2 Cách thức lập trình tạo EndlessList 247
J.3 Nhận xét 250
Phụ lục K Cấu trúc và ý nghĩa các thành phần của một project Android 251
Phụ lục L Hướng dẫn sử dụng, thao tác chính trên chương trình
eSaleShopping 253
L.1 Sơ đồ liên kết các màn hình chức năng trong ứng dụng eSaleShopping . 253
L.2 Giới thiệu chức năng của màn hình chính 254
L.2.1 Các chức năng trên màn hình chính 254
L.2.2 Thực đơn (menu) chức năng của màn hình chính 255
L.3 Thao tác trên màn hình chụp mã vạch 256
L.3.1 Sử dụng chức năng chụp mã vạch 256
L.3.2 Các chức năng thực hiện sau khi chụp được mã vạch hàng hóa 259
L.4 Thao tác trên màn hình tìm theo danh mục hàng hóa 262
L.5 Thao tác trên màn hình tìm theo chuỗi 264
L.6 Thao tác trên màn hình tìm theo hệ thống siêu thị 265
L.6.1 Thao tác chính 265
L.6.2 Thao tác trên các chức năng trên một siêu thị được chọn 267
L.6.3 Tìm hàng hóa siêu thị theo chuỗi 269
L.6.4 Tìm hàng hóa siêu thị theo mã vạch 269
L.6.5 Tìm hàng hóa siêu thị theo danh mục 270
L.7 Thao tác quản lý danh sách hàng hóa ưa thích 270
L.8 Thao tác quản lý danh sách hàng hóa cần mua 271
L.8.1 Thao tác thêm hàng cần mua 272
8
L.8.2 Thao tác xóa hàng cần mua 272
L.8.3 Thao tác gửi tin nhắn hàng cần mua 273
Phụ lục M Các cấu trúc, mã lệnh, ứng dụng tham khảo được sử dụng
trong ứng dụng eSaleShopping 275
M.1 Bộ gõ Tiếng Việt IME 275
M.2 Chụp mã vạch hàng hóa (barcode) 276
M.3 Ứng dụng bản đồ và vị trí 279
M.3.1 Các tham số Google Map hỗ trợ tìm kiếm đường đi 279
M.3.2 Thể hiện đường đi trên bản đồ Google Map 280
M.3.3 Cách thức tìm vị trí thiết bị thông qua GPS hoặc mạng 281
M.4 Ứng dụng EndlessList 282
M.4.1 Giải pháp của M.Murphy 282
M.4.2 Giải pháp của Evan Charlton 283
M.5 Mã nguồn android-misc-widgets 284
M.5.1 Hiệu ứng hoạt cảnh 285
M.5.2 Các widget mới 285
9
DANH MỤC CÁC HÌNH
Hình phụ lục 1 Hệ Điều Hành Android Của Google - Phần trăm người dự định mua
smart phone dùng hệ điều hành Android trong vòng 90 ngày tới (theo
ChangeWave) 19
Hình phụ lục 2 Ứng Tỉ lệ số người dùng dự định mua smart phone dùng hệ điều
hành giữa đợt thăm dò 09/2009 và 12/2009 (theo ChangeWave) 20
Hình phụ lục 3 Tỉ lệ người dùng smart phone trong đợt thăm dò tháng 12/2009
(theo ChangeWave) 21
Hình phụ lục 4 Biểu đồ số người mua smart phone trong vòng 90 ngày tới thì nhà
sản xuất smart phone nào dự định mua giữa đợt thăm dò tháng 9/2009 và
12/2009 (theo ChangeWave) 22
Hình phụ lục 5 Mức Độ Hài Lòng Dựa Trên Hệ Điều Hành Trong Đợt Thăm Dò
Tháng 12/2009 (theo ChangeWave) 23
Hình phụ lục 6 Dữ liệu thống kê trong 2 tuần cuối từ ngày 4/1/2010 25
Hình phụ lục 7 Thống kê so sánh ba phiên bản hệ điều Android giữa hai thời điểm
17/12/2009 và 04/01/2010 25
Hình phụ lục 8 Thị phần các hệ điều hành trên smart phone theo từng khu vực 26
Hình phụ lục 9 Thị phần hệ điều hành trên toàn thế giới 27
Hình phụ lục 10 Biểu đồ cạnh tranh giữa iPhone và Android từ 01/01/2009 đến
01/12/2009 28
Hình phụ lục 11 Kiến trúc Android theo từng tầng (nguồn developer.Android.com)
42
Hình phụ lục 12 Trang web tải về Java SE trên Windows 46
Hình phụ lục 13 Mục Eclipse cần tải về để làm IDE cho phát triển Android 47
Hình phụ lục 14 Mục cần tải về ADT (nguồn developer.Android.com) 49
Hình phụ lục 15 Biểu diễn trình tự và quan hệ giữa Java SE, Android SDK, ADT và
Eclipse. 49
Hình phụ lục 16 Mục Android SDK cần tải về để dùng trên Windows 50
Hình phụ lục 17 Lựa chọn mục Java SE (JDK) 6 51
10
Hình phụ lục 18 Lựa chọn tải về bản JDK mới nhất 51
Hình phụ lục 19 Chọn lựa phiên bản JDK phù hợp với máy trạm 52
Hình phụ lục 20 Lựa chọn nơi lưu trữ tập tin JDK về máy 52
Hình phụ lục 21 Chấp nhận điều khoản sử dụng JDK và tiến hành cài đặt 53
Hình phụ lục 22 Lựa chọn đường dẫn để cài đặt bộ JDK 53
Hình phụ lục 23 Mục lựa chọn bản Eclipse phù hợp với hệ thống 54
Hình phụ lục 24 Lựa chọn thư mục lưu trữ bộ Eclipse 54
Hình phụ lục 25 Giải nén bộ IDE Eclipse 55
Hình phụ lục 26 Chọn Work space để làm việc khi khởi động Eclipse 55
Hình phụ lục 27 Mục chọn để cập nhật thêm phần mềm mới vào Eclipse 56
Hình phụ lục 28 Chọn đường dẫn để đồng bộ bản ADT từ Google 56
Hình phụ lục 20 Lựa chọn các plug-in cần cài đặt vào Eclipse 57
Hình phụ lục 30 Lựa chọn tập tin ADT.zip để cập nhật vào Eclipse 58
Hình phụ lục 31 Chọn đường dẫn tới tập tin ADT.zip 58
Hình phụ lục 32 Chọn cập nhật đường dẫn tới bộ Android SDK trên Eclipse 59
Hình phụ lục 33 Trình đơn quản lý các bộ Android SDK và máy ảo 60
Hình phụ lục 34 Mục quản lý các thiết bị Android ảo 61
Hình phụ lục 35 Mục cập nhật các gói hỗ trợ lập trình Android mới nhất từ Google
61
Hình phụ lục 36 Hình minh họa cho việc cập nhật một gói hỗ trợ mới nhất từ
Google 62
Hình phụ lục 37 Mục tạo mới một diện thoại Android ảo 63
Hình phụ lục 38 Thư mục chứa bộ Android SDK 65
Hình phụ lục 39 Các thư mục bên trong bộ Android SDK 66
Hình phụ lục 40 Mục tạo mới một project Android 67
Hình phụ lục 41 Các thông số cần quan tâm khi thiết lập một project Android mới
68
Hình phụ lục 42 Khung ứng dụng của HelloNhatTrungApp 71
Hình phụ lục 43 Màn hình thiết kế giao diện cho Android 72
11
Hình phụ lục 44 Màn hình hiện nút nhấn xóa TextViews 73
Hình phụ lục 45 Màn hình hiện nút thêm TextView 73
Hình phụ lục 46 Màn hình thêm mới một widget vào giao diện 74
Hình phụ lục 47 Màn hình chọn thêm mới một EditText 75
Hình phụ lục 48 Màn hình thêm mới một LinearLayout 75
Hình phụ lục 49 Màn hình thêm một Button 76
Hình phụ lục 50 Màn hình giao diện hoàn chỉnh 77
Hình phụ lục 51 Các thẻ XML tạo nên giao diện ứng dụng HelloNhatTrungApp 77
Hình phụ lục 52 Màn hình thông báo lỗi mã hóa chuỗi khi lưu Tiếng Việt 79
Hình phụ lục 53 Màn hình chọn thuộc tính của một project 80
Hình phụ lục 54 Màn hình lựa chọn thuộc tính mã hóa ký tự 81
Hình phụ lục 55 Màn hình chạy một ứng dụng Android từ Eclipse 82
Hình phụ lục 56 Màn hình minh họa trạng thái chạy cũa một ứng dụng 83
Hình phụ lục 57 Màn hình đợi ứng dụng xử lý xong 83
Hình phụ lục 58 Màn hình thao tác xử dụng ứng dụng HelloNhatTrungApp 84
Hình phụ lục 59 Màn hình giao diện chính của Android 2.1 84
Hình phụ lục 60 câu trúc ứng dụng Android trên Eclipse 85
Hình phụ lục 61 Cấu trúc thư mục của một project Android trên bộ nhớ 87
Hình phụ lục 62 Mành hình khung nhìn Java 88
Hình phụ lục 63 Cửa sổ Package Explorer 89
Hình phụ lục 64 Thực đơn ngữ cảnh của một project Android 90
Hình phụ lục 65 Hộp thoại Properties/Resource của một project Android 91
Hình phụ lục 66 Hộp thoại Properties/Android của một project Android 92
Hình phụ lục 67 Hộp thoại Properties/Java Build Path của một project Android 93
Hình phụ lục 68 Thực đơn ngữ cảnh của một tập tin .Java 94
Hình phụ lục 69 Thực đơn ngữ cảnh Source trên một tập tin .Java 95
Hình phụ lục 70 Hình minh họa cho một ghi chú mã lệnh của một phương thức 96
Hình phụ lục 71 Thực đơn ngữ cảnh Refactor trên một tập tin .Java 97
Hình phụ lục 72 Màn hình Outline 98
12
Hình phụ lục 73 Màn hình Outline 99
Hình phụ lục 74 Khung nhìn DDMS 99
Hình phụ lục 75 Khung nhìn của File Explorer 100
Hình phụ lục 76 Khung nhìn của Devices 101
Hình phụ lục 77 Khung nhìn của Emulator Control 101
Hình phụ lục 78 Màn hình Development Settings hỗ trợ lập trình cài sẵn trên điện
thoại Android ảo 102
Hình phụ lục 79 Khung nhìn Debug 103
Hình phụ lục 80 Màn hình thể hiện công đoạn debug 104
Hình phụ lục 81 Tab Debug trong khung nhìn Debug 105
Hình phụ lục 82 Tab Variables trong khung nhìn Debug 106
Hình phụ lục 83 Tab Breakpoints trong khung nhìn Debug 106
Hình phụ lục 84 Tab Expressions trong khung nhìn Debug 107
Hình phụ lục 85 Tab thể hiện dòng hiện hành đang kiểm lỗi 107
Hình phụ lục 86 Tab LogCat, Progress, Search, ErrorLog 108
Hình phụ lục 87 Vòng đời của một Activity 118
Hình phụ lục 88 Vòng đời của một Service 123
Hình phụ lục 89 Hình minh họa mối quan hệ giữ Eclipse, ADT và Android SDK 126
Hình phụ lục 90 Hình minh họa công cụ DDMS 127
Hình phụ lục 91 Hình minh họa công cụ Hierarrchy Viewer 128
Hình phụ lục 92 Cấu trúc dạng cây khi phân tích một khung giao diện đang được
thực thi trên màn hình 129
Hình phụ lục 93 Hình minh họa công cụ Pixel Perfect View 130
Hình phụ lục 94 Định nghĩa dạng hình NinePatch (Google) 130
Hình phụ lục 95 Hình minh họa cho việc thiết kế một ảnh nền của một nút nhấn
dùng định dạng hình NinePatch 131
Hình phụ lục 96 Hình nhận định về thuộc tính Strecthable của ảnh Nine Patch 132
Hình phụ lục 97 Hình nhận định về thuộc tính Padding của ảnh Nine Patch 133
Hình phụ lục 98 Hình minh họa công cụ Draw 9-patch 134
13
Hình phụ lục 99 Hình minh họa cách thức dùng dòng lệnh để thực thi công cụ adb
135
Hình phụ lục 100 Hình minh họa cách thức tạo biến môi trường (Windows XP) . 135
Hình phụ lục 101 Hình minh họa giao diện ứng dụng NhatTrungHelloAndroid 138
Hình phụ lục 102 Đoạn mã lệnh XML tạo giao diện cho ứng dụng
NhatTrungHelloAndroid 138
Hình phụ lục 103 Hình minh họa cho việc kéo thả giao diện từ khung Layouts và
Views 139
Hình phụ lục 104 Hình minh họa cho việc tạo giao diện từ khung Outline 139
Hình phụ lục 105 Hình minh họa việc thêm một phần tử mới từ khung Outline 140
Hình phụ lục 106 Các công cụ hỗ trợ bên trong thư mục Android SDK 141
Hình phụ lục 107 Giao diện công cụ Hierarchy Viewer 141
Hình phụ lục 108 Nhóm thuộc tính thường gặp trên một TextView 143
Hình phụ lục 109 Nhóm thuộc tính thường gặp trên một LinearLayout 143
Hình phụ lục 110 Hình ảnh các View dưới góc nhìn hướng đối tượng 144
Hình phụ lục 111 Hình ảnh minh họa của một Linear Layout 145
Hình phụ lục 112 Hình ảnh minh họa của một Relative Layout 146
Hình phụ lục 113 Hình ảnh minh họa của một Absolute Layout 147
Hình phụ lục 114 Hỉnh ảnh một số View thông dụng 148
Hình phụ lục 115 Hình ảnh minh họa cấu trúc dạng cây của một giao diện bất kỳ
148
Hình phụ lục 116 Hình minh họa tạo giao diện bằng mã lệnh XML 149
Hình phụ lục 117Hình minh họa tạo giao diện bằng Java 149
Hình phụ lục 118 Cấu trúc xây dựng giao diện bằng XML 150
Hình phụ lục 119 Hình minh họa việc quản lý các View thông qua định danh ID 152
Hình phụ lục 120 Hình minh họa một Linear Layout 154
Hình phụ lục 121 Hình minh họa cho thuộc Layout_weight 157
Hình phụ lục 122 Hình minh họa cho một Table Layout 158
Hình phụ lục 123 Hình minh họa cho một Frame Layout 160
14
Hình phụ lục 124 Hình minh họa cho một Absolute layout 162
Hình phụ lục 125 Hình minh họa Relative Layout 163
Hình phụ lục 126 Hình minh họa các điều khiển khác 165
Hình phụ lục 127 Hình minh họa các điều khiển khác 165
Hình phụ lục 128 Hình minh họa cho một Spinner trong Android 168
Hình phụ lục 129 Danh sách lựa chọn khi nhấn vào Spinner 169
Hình phụ lục 130 Hình minh họa việc tạo Giao diện có chứa Spinner 169
Hình phụ lục 131 Hình minh họa Gallery 171
Hình phụ lục 132 Hình ảnh minh họa của một ListView 174
Hình phụ lục 133 Minh họa việc tạo một List View 174
Hình phụ lục 134 Hình minh họa một Custom ListView 175
Hình phụ lục 135 Hình minh họa cách thức làm một custom row cho một ListView
176
Hình phụ lục 136 Hình minh họa cách thức làm một ListView 176
Hình phụ lục 137 Hình ảnh minh họa một GridView đơn giản 178
Hình phụ lục 138 Cách thưc tạo một GridView 178
Hình phụ lục 139 Hình ảnh minh họa một Custom GridView 180
Hình phụ lục 140 Cách thức tạo một Custom Item cho một Grid View 180
Hình phụ lục 141 Hình minh họa cách thức tạo một GridView 180
Hình phụ lục 142 Tập tin quy định hoạt cảnh chuyển động 183
Hình phụ lục 143 Hình ảnh minh họa sự hỗ trợ của Eclipse giúp tạo hiệu ứng hoạt
cảnh 184
Hình phụ lục 144 Hình minh họa cho Tweened Animation 185
Hình phụ lục 145 Công cụ hỗ trợ thiết kế hoạt cảnh từ Eclipse 186
Hình phụ lục 146 Hình minh họa một Frame-by-frame animation đơn giản 190
Hình phụ lục 147 Hình ảnh một bộ MediaController hỗ trợ việc phát Video tốt hơn
194
Hình phụ lục 148 Hình minh họa việc gọi điện dùng ACTION.CALL 196
Hình phụ lục 149 Hình minh họa việc gọi điện dùng ACTION.DIAL 196
15
Hình phụ lục 150 Hình minh họa tiến trình và luồng 199
Hình phụ lục 151 Lập trình luồng dùng Message 200
Hình phụ lục 152 Hình minh họa lập trình luồng 201
Hình phụ lục 153 Lập trình luồng dùng Post 202
Hình phụ lục 154 Hình minh họa thực đơn của hệ thống 203
Hình phụ lục 155 Hình minh họa thực đơn ngữ cảnh 203
Hình phụ lục 156 Hình minh họa tạo menu bằng mã lệnh Java 204
Hình phụ lục 157 Hình minh họa tạo menu bằng XML 204
Hình phụ lục 158 Hình minh họa thao tác tạo menu thông qua công cụ hỗ trợ được
tích hợp bên trong Eclipse (ADT) 207
Hình phụ lục 159 Hình minh họa tạo thực đơn ngữ cảnh 212
Hình phụ lục 160 Hình minh họa dùng font chữ khác trong Android 213
Hình phụ lục 161 Hình minh họa các thức chọn font chữ thông thường mà Android
hỗ trợ 213
Hình phụ lục 162 Hình minh họa thư mục chứa tập tin font chữ (.ttf) trong một
project Android 214
Hình phụ lục 163 Hình minh họa hộp thoại có nút nhấn 217
Hình phụ lục 164 Hình minh họa hộp thoại dạng danh sách chọn 217
Hình phụ lục 165Hình minh họa hộp thoại dạng danh sách lựa chọn RadioButton
218
Hình phụ lục 166 Hình minh họa hộp thoại dạng ProgressDialog 219
Hình phụ lục 167 Hình minh họa ProgressDialog dạng thanh trượt ngang 219
Hình phụ lục 168 Hình minh họa tạo hộp thoại từ một gioa diện 220
Hình phụ lục 169 Hình minh họa thư mục chứa các lưu trữ Preferences nằm trong
hệ thống của điện thoại 221
Hình phụ lục 170 Hinh minh họa thư mục mặc định lưu trữ tập tin SQLite của một
ứng dụng trên hệ thống Android 228
Hình phụ lục 171 Hình minh họa thư mục chứa tập tin debug.keystore (Windows 7)
236
16
Hình phụ lục 172 Hình minh họa trang web lấy mã đăng ý Google Maps ApiKey từ
Google 238
Hình phụ lục 173 Hình minh họa Date widget 241
Hình phụ lục 174 Hình minh họa Time widget 241
Hình phụ lục 175 Hình minh họa giao diện dạng Tab trong Android 242
Hình phụ lục 176 Mã XML minh họa cho việc tạo một khung ứng dụng Tab đơn
giản 243
Hình phụ lục 177 Hình minh họa cấu trúc của một Tab widget 243
Hình phụ lục 178 Hình minh họa cho một EndlessList được áp dụng vào
eSaleShopping 247
Hình phụ lục 179 Sơ đồ liên kết các màn hình của ứng dụng eSaleShopping 253
Hình phụ lục 180 Sơ đồ liên kết các màn hình của ứng dụng eSaleShopping (tiếp)
254
Hình phụ lục 181 Màn hình chính của ứng dụng eSaleShopping 254
Hình phụ lục 182 Menu chức năng của màn hình chính 256
Hình phụ lục 183 Màn hình chụp và tìm kiếm hàng hóa dựa theo mã vạch 256
Hình phụ lục 184 Các bước tiến hành tải về ứng dụng Barcode Scanner 257
Hình phụ lục 185 Màn hình chụp thông tin của một mã vạch hàng hóa 258
Hình phụ lục 186 Màn hình hiển thị kết quả đọc được từ quá trình chụp mã vạch 258
Hình phụ lục 187 Màn hình gợi ý tìm hàng hóa theo chuỗi 259
Hình phụ lục 188 Màn hình danh sách hàng hóa ứng với một mã vạch nào đó 260
Hình phụ lục 189 Màn hình thêm thông tin của một hàng hóa vào danh sách hàng
hóa cần mua 261
Hình phụ lục 190 Màn hình danh sách các hàng hóa ưa thích 261
Hình phụ lục 191 Màn hình thông tin chi tiết của một hàng hóa 262
Hình phụ lục 192 Màn hình tìm kiếm theo danh mục hàng hóa và loại hàng hóa
tương ứng 262
Hình phụ lục 193 Màn hình danh sách hàng hóa 263
Hình phụ lục 194 Màn hình tìm kiếm hàng hóa theo chuỗi 264
17
Hình phụ lục 195 Menu của màn hình tìm kiếm hàng hóa theo chuỗi 264
Hình phụ lục 196 Màn hình trợ giúp người dùng tìm kiếm hiệu quả hơn 265
Hình phụ lục 197 Màn hình tìm theo danh sách hệ thống các siêu thị 266
Hình phụ lục 198 Màn hình danh sách siêu thị con của hệ thống siêu thị 266
Hình phụ lục 199 Các chức năng khi chọn vào một siêu thị trong một hệ thống siêu
thị 267
Hình phụ lục 200 Màn hình thông tin chi tiết của một siêu thị 268
Hình phụ lục 201 Màn hình thông tin bản đồ đường đi đến siêu thị 269
Hình phụ lục 202 Menu của ứng dụng bản đồ đường đi đến siêu thị 269
Hình phụ lục 203 Màn hình tìm kiếm theo danh mục hàng hóa và loại hàng hóa
tương ứng 270
Hình phụ lục 204 Màn hình danh sách các mặt hàng ưa thích 271
Hình phụ lục 205 Màn hình danh sách hàng hóa cần mua 271
Hình phụ lục 206 Menu của màn hình danh sách hàng cần mua 272
Hình phụ lục 207 Màn hình thêm hàng hóa cần mua 272
Hình phụ lục 208 Màn hình xóa hàng cần mua 273
Hình phụ lục 209 Hộp thoại hỏi người dùng có thực sự muốn xóa một mặt hàng nào
đó hay không 273
Hình phụ lục 210 Màn hình gửi tin nhắn hàng cần mua 274
Hình phụ lục 211 Màn hình sử dụng bộ gõ Tiếng Việt IME trên Android 1.5 và 2.1
276
Hình phụ lục 212 Nội dung của một gói mã nguồn ZXing 277
Hình phụ lục 213 Mã nguồn ZXing dành cho HĐH Android 277
Hình phụ lục 214 Ứng dụng vẽ đường đi trên bản đồ Google Map trong
eSaleShopping 281
Hình phụ lục 215 Hình minh họa và bug lỗi cũa EndlessAdapter 283
Hình phụ lục 216 Hình minh họa của ứng dụng Magnatune 284
Hình phụ lục 217 Các lớp tạo hiệu ứng chuyển động được dùng lại trong ứng dụng
eSaleShopping 285
18
Hình phụ lục 218 Ứng dụng Panel tạo khung chỉ đường đi trên bản đồ trong
eSaleShopping 286
Hình phụ lục 219 Ứng dụng Switcher tạo lựa chọn hình thức bán hàng trong
eSaleShopping 286
19
Phụ lục A Cuộc thăm dò hệ điều hành Android khuấy
động thị trường smart phone
Tác giả Paul Carton và Jean Crumrine
Ngày 04 tháng 01 năm 2010
Hệ điều hành Android của Google ra đời cách đây hơn một năm và nó được
mong đợi là hệ điều hành có thể thay đổi được thị trường smart phone trên toàn thế
giới.
Theo đợt thăm dò 4068 khách hàng từ ngày 9 đến ngày 14 tháng 12 của
ChangeWave với chủ đề hệ điều hành Android ảnh hưởng đến thị trường smart
phone, thì trong thời điểm đó có 4% nói là họ đang dùng hệ điều hành Android có
nghĩa là tăng 3% so với đợt thăm dò của ChangeWave trong tháng 9.
Nhưng quan trọng hơn, 21% trong những người nói dự định mua smart
phone dùng hệ điều hành Android trong vòng 90 ngày tới.
Hình phụ lục 1 Hệ Điều Hành Android Của Google - Phần trăm người dự định mua smart phone dùng
hệ điều hành Android trong vòng 90 ngày tới (theo ChangeWave)
Trong đợt thăm dò trước đó tức là tháng 09/2009, chỉ có 6% số người được
hỏi trả lời là sẽ mua smatphone dùng hệ điều hành Android trong vòng 90 ngày tới
1%
2%
2%
4%
4%
3%
6%
21%
0%
5%
10%
15%
20%
25%
Hệ Điều Hành Android Của Google
Phần trăm người dự định mua smartphone dùng hệ điều
hành Android trong vòng 90 ngày tới
Phần trăm người dự định
mua smartphone dùng hệ
điều hành Android trong
vòng 90 ngày tới
20
nhưng trong thời điểm tháng 12/2009 thì con số đó đã tiến lên 21% giành vị trí thứ
2 sau hệ điều hành iPhone OS X chiếm 28% mặc dù đã giảm 4% so với đợt thăm dò
trước đó.
Hình phụ lục 2 Ứng Tỉ lệ số người dùng dự định mua smart phone dùng hệ điều hành giữa đợt thăm
dò 09/2009 và 12/2009 (theo ChangeWave)
Trái lại với sự tăng vọt của Google Android, RIM OS chỉ tăng nhẹ 1%, còn
Windows Mobile và Palm OS/Web OS giảm 3% từ đợt thăm dò tháng 9/2009.
Những con số rút ra từ những đợt thăm dò ấy có ảnh hưởng lớn đối với các nhà sản
xuất smart phone. Nhưng đáng ghi nhận là sự tăng tưởng này diễn ra ngay tại thời
điểm mà nghành công nghiệp sản xuất smart phone nhìn chung lớn mạnh.
Hơn nữa, 42% trong số người tham gia đợt thăm dò nói là họ đang dùng
smart phone, tăng 3% so với đợt thăm dò tháng 09/2009. Thêm vào đó, 12,8%
người trong đợt thăm dò nói là họ dự định mua smart phone trong vòng 90 ngày tới,
đây là con số lớn nhất từ trước tới nay trong các đợt thăm dò ý kiến người dùng của
ChangeWave.
32%
6%
17%
9%
6%
28%
21%
18%
6%
3%
0%
5%
10%
15%
20%
25%
30%
35%
iPhone OS X
Google
Android
BlackBerry
RIM OS
Windows
Mobile
Palm
OS/Web OS
Đợt thăm dò (09/2009)
Đợt thăm dò (12/2009)
21
Hình phụ lục 3 Tỉ lệ người dùng smart phone trong đợt thăm dò tháng 12/2009 (theo ChangeWave)
Trong đợt thăm dò này, khi ChangeWave đưa ra câu hỏi là nếu bạn muốn
mua smart phone trong 90 ngày tới thì nhà sản xuất smart phone nào mà bạn chọn
để mua với kết quả là biểu đồ sau:
15%
16%
17%
20%
21%
22%
23%
27%
32%
32%
34%
37%
39%
42%
0%
5%
10%
15%
20%
25%
30%
35%
40%
45%
Tỉ lệ số người dùng smartphone trong đợt
thăm dò tháng 12/2009
Tỉ lệ số
người
dùng
smartph
one
22
Hình phụ lục 4 Biểu đồ số người mua smart phone trong vòng 90 ngày tới thì nhà sản xuất smart
phone nào dự định mua giữa đợt thăm dò tháng 9/2009 và 12/2009 (theo ChangeWave)
Mặc dù thị phần sức mua iPhone của Apple giảm từ 36% còn 32% kể từ đợt
thăm dò tháng 09/2009 nhưng nó vẫn tiếp tục đứng đầu trong thị trường smart
phone. Trong đợt thăm dò này cho thấy iPhone vẫn đứng vị trí độc tôn đối với thị
trường smart phone trong thời gian sắp tới.
Không giống như cách đây một năm khi mà những sản phẩm mới của
Blackberry đã tạo ra sự đẩy mạnh cho RIM, số lượng người dùng dự định mua
RIM giảm 6 điểm còn 21%. Nhưng mà chúng ta ghi nhận rằng trong nửa đầu năm
2010 RIM đưa ra một vài mẫu Backberry với các phiên bản Tour, Pearl, Bold, và
Curve – và điều đó có nghĩa là giúp ngăn chặn sự lớn mạnh của Android và sự
thống trị của iPhone trong lòng khách hàng.
Còn về Palm, 6 tháng sau khi Palm Pre phát hành, tỉ lệ số người dùng dự
định mua máy Palm giảm từ 8% trong đợt thăm dò 9/2009 còn 4% trong đợt thăm
dò 12/2009. Rõ ràng là Palm bị mắt kẹt giữa hệ điều Android đang lên và hai nhà
cạnh tranh smart phone hùng mạnh là RIM và Apple. Biện pháp đối phó lớn nhất
của Palm là phát hành nhiều mẫu điện thoại mới dựa trên hai nhà phân phối mạng
lớn là Verizon và AT&T, hứa hẹn sự khởi sắc trong tương lai.
36%
27%
1%
5%
8%
32%
21%
13%
9%
4%
0%
5%
10%
15%
20%
25%
30%
35%
40%
Đợt thăm dò 09/2009
Đợt thăm dò 12/2009
23
Xét góc độ mức độ thỏa mãn người dùng di động, thì iPhone OS X tiếp tục
dẫn đầu trong tất cả các nhà sản xuất điện thoại di động với 77% số người nói là họ
rất hài lòng với iPhone. Với chi tiết theo biểu đồ sau:
Hình phụ lục 5 Mức Độ Hài Lòng Dựa Trên Hệ Điều Hành Trong Đợt Thăm Dò Tháng 12/2009 (theo
ChangeWave)
Trên là những tổng hợp từ bài báo cáo của ChangeWave do 2 tác giả Paul
Carton và Jean Crumrine đưa ra vào ngày 04/01/2010. So với thời điểm mà khóa
luận này báo cáo thì con số có thể khác đi đôi chút vì thị trường điện thoại smart
phone dần khởi sắc sau đợt khủng hoảng kinh tế thế giới trong năm 2009.
Như đã phân tích trong chương 1 của cuốn khóa luận thì Android đang vươn
lên là hệ điều hành tiềm năng trong tương lai và có thể vươn lên đứng vị trí dẫn đầu
trong nhiều khía cạnh và để làm được chuyện đó thì cần sự hợp tác của các bên
trong Hiệp hội các thiết bị cầm tay mở (OHA).
77%
72%
41%
33%
25%
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
iPhone OS X
Google
Android
Blackberry RIM
OS
Palm OS/ Web
OS
Windows
Mobile
Mức Độ Hài Lòng Dựa Trên Hệ Điều Hành
Trong Đợt Thăm Dò Tháng 12/2009
Tỉ lệ người dùng nói là họ rất hài lòng với hệ điều hành trên
smart phone của họ đang dùng
Tỉ lệ người
dùng nói là
họ rất hài
lòng với hệ
điều hành
trên smart
phone của
họ đang
dùng
24
Phụ lục B Những thống kê thú vị về Google Android
trong những năm gần đây (theo iTech.vn ngày
25/01/2010)
Hệ điều hành “non trẻ” của Google đã có một năm 2009 rất thành công, nhất
là trong 2 quý cuối năm ngoái. Đây được xem là bước đệm vững chắc để Google
Android tiếp tục gặt hái được những thành công trong năm 2010:
Được sự hậu thuẫn to lớn từ Google và các nhà sản xuất di động hàng đầu
hiện nay như HTC, Motorola, Sony Ericsson, Samsung, Acer, hệ điều hành Google
Android đang dần được nhiều người biết đến và trở thành một đối thủ đáng gờm
cho các hệ điều hành di động khác như Windows Mobile, Symbian và đặc biệt là
RIM OS, WebOS và iPhone OS trong phân khúc điện thoại thông minh.
Dưới đây là những thống kê mới nhất liên quan đến nền tảng di động linh
hoạt và mạnh mẽ này:
B.1 Những thống kê từ Google
Giống như tháng trước, Google cũng đưa ra các số liệu mới nhất về thị phần
các thiết bị chạy trên các phiên bản Android khác nhau. Đây là các số liệu rất cần
thiết và rất quan trọng dành cho các nhà phát triển phần mềm, giúp họ có một cái
nhìn tổng quát hơn về các phiên bản hệ điều hành Android.
Theo số liệu từ Google, phiên bản Android 1.6 là nền tảng phổ biến nhất hiện
nay trong các nền tảng Android, với 47.6%. Tiếp theo sau là phiên bản Android 1.5
và Android 2.0.1 (phiên bản Android mới nhất, đang được sử dụng trên Motorola
Droid).
25
Hình phụ lục 6 Dữ liệu thống kê trong 2 tuần cuối từ ngày 4/1/2010
So sánh từ 17/12/2009 đến 4/1/2010, các dòng điện thoại sử dụng phiên bản
Android 1.5 và Android 2.x đều tăng, trong khi các thiết bị sử dụng Android 1.6 lại
giảm, nhưng trong khoảng thời gian này, không có di động nào cập nhật lên các nền
tảng Android 2.x. Điều này có thể lý giải là số lượng bán ra của các dòng di động sử
dụng Android 1.5 và Android 2.x tăng cao, kéo theo thị phần của 2 nền tảng này
được tăng thêm.
Hình phụ lục 7 Thống kê so sánh ba phiên bản hệ điều Android giữa hai thời điểm 17/12/2009 và
04/01/2010
Trong số liệu thống kê mới nhất này, không có sự đóng góp từ Google Nexus
One, di động mới nhất của Google đang sử dụng Android 2.1.