1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tìm hiểu hệ điều hành android và xây dựng ứng dụng minh họa

286 7 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

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 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com LỜI GIỚI THIỆU Android hệ điều hành mã nguồn mở phát triển dựa nhân Linux Trong hai năm trở lại đây, phát triển Android có bước phát triển mạnh mẽ dần chiếm cảm tình người dùng Do có lợi xây dựng theo tiêu chí mở nên việc phát triển ứng dụng Android cho dễ dàng Tuy nhiên, nguồn tài liệu để lập trình ứng dụng chạy Android rời rạc chưa có xếp tổ chức tốt Chính mà Phụ lục viết ngồi mục đích hỗ trợ cho Khóa luận “Tìm hiểu Hệ điều hành Android xây dựng ứng dụng minh họa” cịn có mục đích cao cung cấp nhìn nhất, chung giúp cho người đọc dễ dàng nắm bắt, học hỏi cách thức vận hành phát triển ứng dụng hệ điều hành nhiều tiềm Do thời gian thực đề tài ngắn việc thiếu sót viết phần Phụ lục điều tránh khỏi Nhóm chúng em mong góp ý từ Thầy 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 Võ Thành Nhật – Phan Thành Trung LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com MỤC LỤC MỤC LỤC DANH MỤC CÁC HÌNH 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ị Google Android năm gần (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 ý 26 B.3 Báo cáo Admob 26 B.4 Báo cáo Myxer 28 Phụ lục C Danh sách công ty Hiệp hội 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 hệ điều hành có smart phone 35 Phụ lục F Hai HĐH smartphone Android iPhone tăng trưởng nhanh 39 Phụ lục G Lập trình Android 41 G.1 Tổng quan Android 41 G.1.1 Định nghĩa Android 41 G.1.2 Tính kiến trúc Android 41 G.2 Giới thiệu Java SE JDK, Android SDK , ADT, Eclipse bước cài đặt 44 G.2.1 Giới thiệu Java SE JDK, Android SDK, ADT, DDMS, Eclipse mối liên hệ 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 cài đặt 64 G.3 Bước đầu làm quen với Android qua project HelloNhatTrungApp 67 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com G.3.1 Các bước tạo project HelloNhatTrungApp 67 G.3.2 Cấu trúc project Android 85 G.4 Làm quen với khung nhìn Eclipse qua nhì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 tảng ứng dụng Android 108 G.5.1 Các thành phần ứng dụng 109 G.5.2 Activities Tasks 114 G.5.3 Tiến trình luồng 115 G.5.4 Vòng đời thành phần ứng dụng Android 115 G.6 Làm quen với công cụ hỗ trợ sẵn có 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 đề lập trình Android 137 H.1 Các vấn đề khái niệm lập trình giao diện 137 H.1.1 Giới thiệu lập trình giao diện Android tính 137 H.1.2 Các từ khóa thường gặp lập trình giao diện 141 H.1.3 Các đơn vị tính giao diện 142 H.1.4 Các thuộc tính thường gặp View 143 H.1.5 Tổng quát View nhìn hướng đối tượng 144 H.1.6 Cách thức xây dựng thiết kế giao diện 149 H.1.7 Cách thao tác control Java code 152 H.2 Lập trình với giao diện 153 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 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 ý lập trình giao diện 166 Phụ lục I I.1 Lập trình theo chủ đề 167 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 lớp 167 I.1.2 Dùng Adapter Spinner 168 I.1.3 Dùng Adapter Gallery 170 I.1.4 Dùng Adapter ListView 173 I.1.5 Dùng Adapter ListView nâng cao 175 I.1.6 Dùng Adapter GridView 177 I.1.7 Dùng Adapter 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 Android 193 I.3.3 Lập trình phát Video 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 gọi điện thoại tới số cho trước 195 I.4.3 Thực gửi tin nhắn SMS 197 I.4.4 Thực chức 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 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com I.5.2 Các đặc tính 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 widget khác 241 I.12.1 Widget Date/Time 241 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 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 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 ý nghĩa thành phần project Android 251 Phụ lục L Hướng dẫn sử dụng, thao tác chương trình eSaleShopping 253 L.1 Sơ đồ liên kết hình chức ứng dụng eSaleShopping 253 L.2 Giới thiệu chức hình 254 L.2.1 Các chức hình 254 L.2.2 Thực đơn (menu) chức hình 255 L.3 Thao tác hình chụp mã vạch 256 L.3.1 Sử dụng chức chụp mã vạch 256 L.3.2 Các chức thực sau chụp mã vạch hàng hóa 259 L.4 Thao tác hình tìm theo danh mục hàng hóa 262 L.5 Thao tác hình tìm theo chuỗi 264 L.6 Thao tác hình tìm theo hệ thống siêu thị 265 L.6.1 Thao tác 265 L.6.2 Thao tác chức siêu thị 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 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 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 sử dụng ứ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 đồ vị trí 279 M.3.1 Các tham số Google Map hỗ trợ tìm kiếm đường 279 M.3.2 Thể đường đồ Google Map 280 M.3.3 Cách thức tìm vị trí thiết bị thơng qua GPS mạng 281 M.4 Ứng dụng EndlessList 282 M.4.1 Giải pháp M.Murphy 282 M.4.2 Giải pháp 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 285 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com DANH MỤC CÁC HÌNH Hình phụ lục 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 vòng 90 ngày tới (theo ChangeWave) 19 Hình phụ lục Ứng Tỉ lệ số người dùng dự định mua smart phone dùng hệ điều hành đợt thăm dò 09/2009 12/2009 (theo ChangeWave) 20 Hình phụ lục Tỉ lệ người dùng smart phone đợt thăm dò tháng 12/2009 (theo ChangeWave) 21 Hình phụ lục Biểu đồ số người mua smart phone vòng 90 ngày tới nhà sản xuất smart phone dự định mua đợt thăm dò tháng 9/2009 12/2009 (theo ChangeWave) 22 Hình phụ lục 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 Dữ liệu thống kê tuần cuối từ ngày 4/1/2010 25 Hình phụ lục Thống kê so sánh ba phiên hệ điều Android hai thời điểm 17/12/2009 04/01/2010 25 Hình phụ lục Thị phần hệ điều hành smart phone theo khu vực 26 Hình phụ lục Thị phần hệ điều hành toàn giới 27 Hình phụ lục 10 Biểu đồ cạnh tranh iPhone Android từ 01/01/2009 đến 01/12/2009 28 Hình phụ lục 11 Kiến trúc Android theo tầng (nguồn developer.Android.com) 42 Hình phụ lục 12 Trang web tải Java SE Windows 46 Hình phụ lục 13 Mục Eclipse cần tải để làm IDE cho phát triển Android 47 Hình phụ lục 14 Mục cần tải ADT (nguồn developer.Android.com) 49 Hình phụ lục 15 Biểu diễn trình tự quan hệ Java SE, Android SDK, ADT Eclipse 49 Hình phụ lục 16 Mục Android SDK cần tải để dùng Windows 50 Hình phụ lục 17 Lựa chọn mục Java SE (JDK) 51 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình phụ lục 18 Lựa chọn tải JDK 51 Hình phụ lục 19 Chọn lựa phiê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 máy 52 Hình phụ lục 21 Chấp nhận điều khoản sử dụng JDK tiến hành cài đặt 53 Hình phụ lục 22 Lựa chọn đường dẫn để cài đặt JDK 53 Hình phụ lục 23 Mục lựa chọ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ữ Eclipse 54 Hình phụ lục 25 Giải nén IDE Eclipse 55 Hình phụ lục 26 Chọn Work space để làm việc 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 vào Eclipse 56 Hình phụ lục 28 Chọn đường dẫn để đồng ADT từ Google 56 Hình phụ lục 20 Lựa chọn 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 Android SDK Eclipse 59 Hình phụ lục 33 Trình đơn quản lý Android SDK máy ảo 60 Hình phụ lục 34 Mục quản lý thiết bị Android ảo 61 Hình phụ lục 35 Mục cập nhật gói hỗ trợ lập trình Android từ Google 61 Hình phụ lục 36 Hình minh họa cho việc cập nhật gói hỗ trợ từ Google 62 Hình phụ lục 37 Mục tạo diện thoại Android ảo 63 Hình phụ lục 38 Thư mục chứa Android SDK 65 Hình phụ lục 39 Các thư mục bên Android SDK 66 Hình phụ lục 40 Mục tạo project Android 67 Hình phụ lục 41 Các thông số cần quan tâm thiết lập project Android 68 Hình phụ lục 42 Khung ứng dụng HelloNhatTrungApp 71 Hình phụ lục 43 Màn hình thiết kế giao diện cho Android 72 10 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Khi người dùng đứng danh sách mà nhấn chọn hàng hóa hàng hóa di chuyển qua danh sách lại Người dùng nhấn nút Menu thiết bị thấy chức là: Thêm hàng cần mua, Xóa hàng cần mua, Gửi tin hàng cần mua Hình phụ lục 206 Menu hình danh sách hàng cần mua L.8.1 Thao tác thêm hàng cần mua Hình phụ lục 207 Màn hình thêm hàng hóa cần mua Màn hình giúp người dùng nhập thơng tin hàng hóa cần mua Người dùng muốn thêm hàng cần mua xem danh sách hàng cần mua nhấn nút “Thêm Xem”, cịn muốn nhập nhiều lần nhấn nút “Thêm” L.8.2 Thao tác xóa hàng cần mua 272 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình phụ lục 208 Màn hình xóa hàng cần mua Màn hình giúp người dùng xóa phần xóa hết danh sách hàng hóa cần mua Nếu muốn xóa mặt hàng người dùng nhấn chọn vào dịng, chương trình lên hộp thoại hỏi lại người dùng có thực muốn xóa mặt hàng hay khơng Cịn người dùng muốn xóa tồn danh sách cần nhấn nút “Xóa Hết” Hình phụ lục 209 Hộp thoại hỏi người dùng có thực muốn xóa mặt hàng hay khơng L.8.3 Thao tác gửi tin nhắn hàng cần mua 273 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình phụ lục 210 Màn hình gửi tin nhắn hàng cần mua Đây chức gửi tin nhắn SMS cho người nhờ họ mua giùm mặt hàng có danh sách hàng hóa cần mua Người dùng việc kiểm tra lại nội dung tin nhắn lần cuối nhấn nút gửi 274 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phụ lục M Các cấu trúc, mã lệnh, ứng dụng tham khảo sử dụng ứng dụng eSaleShopping M.1 Bộ gõ Tiếng Việt IME Đóng góp phần khơng nhỏ cho ứng dụng eSaleShopping ứng dụng gõ Tiếng Việt để thực tìm kiếm thơng tin hàng hóa Tiếng Việt Nhóm định dùng gõ Tiếng Việt IME (đã diễn đàn tinhte.com giới thiệu gần - http://www.tinhte.com/threads/192466-Vietnamese-IME-bản1.9-bộ-gõ-tiếng-Việt-đầu-tiên-trên-Android) để gõ Tiếng Việt Android phục vụ cho chức tìm kiếm hàng hóa Tiếng Việt Bộ gõ Tiếng Việt IME tác giả Phạm Cao Trí phát triển phát hành miễn phí người dùng địa http://code.google.com/p/vietnameseime/ Phiên VietnameseIME-1.9.1 hỗ trợ kiểu gõ Tiếng Việt VNI TELEX tốt, giao diện đẹp Ở phiên tác giả cải tiến, thêm số tính như: hỗ trợ tốt cho phiên Android (từ 1.5 đến 2.1), chỉnh độ rung gõ phím, chỉnh âm lượng gõ phím, có tùy chọn màu sắc bàn phím, chức đặc sắc hỗ trợ từ điển gợi ý Tiếng Việt kết hợp với chức tự tạo từ điển gợi ý cho riêng người dùng Hình bên hình chụp hình gửi tin nhắn SMS dùng gõ Tiếng Việt IME để gõ tiếng Việt với phiên Android 1.5 2.1 275 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình phụ lục 211 Màn hình sử dụng gõ Tiếng Việt IME Android 1.5 2.1 M.2 Chụp mã vạch hàng hóa (barcode) Trong ứng dụng eSaleShopping có chức chụp mã vạch hàng hóa bất kỳ, sau lấy kết mã vạch phân tích từ hình chụp gồm 13 chữ số tiến hành gửi mã vạch lên server yêu cầu server trả thông tin hàng hóa ứng với mã vạch Trong q trình tìm hiểu ý tưởng, công nghệ để hỗ trợ cho chức vừa nêu, nhóm gặp nhiều khó khăn Khó khăn lớn chụp hình ảnh mã vạch in hàng hóa phân tích hình ảnh thành chuỗi số để gửi lên cho server u cầu tìm kiếm thơng tin hàng hóa Việc viết riêng chương trình chụp mã vạch điều khơng khả thi Nhóm chuyển sang tìm hiểu theo hướng khác tích hợp module chụp mã vạch công bố mạng vào chương trình eSaleShopping Sau nhiều lần tìm kiếm giải pháp mạng, nhóm tìm thấy ZXing ("Zebra Crossing") project mở với giấy phép Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0) công bố Google Code (http://code.google.com/p/zxing/) Khi tải mã 276 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com nguồn ZXing nhận thấy toàn mã nguồn hỗ trợ cho nhiều tảng, hệ điều hành khác RIM, iPhone, Android… Hình phụ lục 212 Nội dung gói mã nguồn ZXing Hình phụ lục 213 Mã nguồn ZXing dành cho HĐH Android Tuy “gánh nặng” chụp mã vạch giảm bớt việc áp dụng project ZXing vào ứng dụng khó khăn khơng nhỏ tồn mã nguồn cơng bố “đồ sộ” Để nắm bắt ứng dụng mã nguồn lượng thời gian bỏ để tìm hiểu khơng nhỏ Sau hồi lần tìm giải pháp mạng, nhóm chúng tơi tìm giải pháp thay nhờ chương trình Barcode Scanner chụp phân giải mã vạch trả kết cho 277 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ứng dụng eSaleShopping Barcode Scanner nhóm ZXing phát triển (địa tải ứng dụng http://zxing.googlecode.com/files/BarcodeScanner3.1.apk) Việc gọi thực thi Barcode Scanner để lấy kết mã vạch thực thông qua gọi Intent nhóm ZXing hướng dẫn cụ thể tại: http://code.google.com/p/zxing/wiki/ScanningViaIntent public Button.OnClickListener mScan = new Button.OnClickListener() { public void onClick(View v) { Intent intent = new Intent("com.google.zxing.client.android.SCAN"); intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); startActivityForResult(intent, 0); } }; public void onActivityResult(int requestCode, int resultCode, Intent intent) { if (requestCode == 0) { if (resultCode == RESULT_OK) { String contents = intent.getStringExtra("SCAN_RESULT"); String format = intent.getStringExtra("SCAN_RESULT_FORMAT"); // Handle successful scan } else if (resultCode == RESULT_CANCELED) { // Handle cancel } } } Để tiện dụng hơn, nhóm chúng tơi dùng lớp IntentIntegrator.java lớp IntentResult.java (các lớp tiết kế tác giả: Sean Owen, Fred Lin, Isaac Potoczny-Jones) để thực việc gọi Intent kích hoạt chương trình Barcode Scanner chụp ảnh mã vạch yêu cầu lấy kết trả thông qua phương thức initiateScan(…) parseActivityResult(…) Activity gọi nhận kết từ chương trình Barcode Scanner Cách gọi ứng dụng Barcode Scanner Activity ManHinhTimTheoMaVach: việc gọi Intent thực thông qua kiện nhấn nút “Đọc Mã Vạch” // button chụp barcode btnReadBarcode.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { IntentIntegrator.initiateScan(ManHinhTimTheoMaVach.this); IntentIntegrator.initiateScan(ManHinhTimTheoMaVach.this, 278 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com "Thông Báo", "Đồng ý tải chương trình Barcode Scanner khơng?", "Đồng Ý", "Không"); } }); Cách thức lấy kết trả từ ứng dụng Barcode Scanner: protected void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { case IntentIntegrator.REQUEST_CODE: { if (resultCode != RESULT_CANCELED) { IntentResult scanResult = IntentIntegrator.parseActivityResult( requestCode, resultCode, data); if (scanResult != null) { String upc = scanResult.getContents(); TextView txtBarcodeResult = (TextView) findViewById(R.id.TextViewBarcodeResult); txtBarcodeResult.setText("" + upc); // break; } } Một điểm thú vị lớp IntentIntegrator.java lớp IntentResult.java điện thoại khơng có sẵn chương trình đọc mã vạch Barcode Scanner xuất thơng báo hỏi người dùng có muốn tải ứng dụng Barcode Scanner hay khơng Nếu đồng ý tải chương trình tìm kiếm ứng dụng Barcode Scanner thơng qua Android Market để tiến hành tải cài đặt ứng dụng Nhóm chúng tơi hoan nghênh cám ơn cộng đồng mã nguồn mở nhà lập trình phát triển cung cấp ứng dụng, project thật hay có chất lượng mã mở ZXing đề cập M.3 Ứng dụng đồ vị trí M.3.1 Các tham số Google Map hỗ trợ tìm kiếm đường 279 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Việc Google mở rộng hỗ trợ đường cho Việt Nam điều thuận lợi cho nhóm tích hợp phần đường vào đồ đường tới siêu thị gần Thông tin yêu cầu đường gửi lên Google với tham số theo quy định (http://mapki.com/wiki/Google_Map_Parameters) Sau tính tốn lộ trình đường đi, Google trả kết tập tin KML có cấu trúc dạng thẻ XML Ta việc phân tích thơng tin từ tập tin để có hướng dẫn đường từ Google Sau ví dụ mẫu u cầu tìm đường từ điểm có kinh độ vĩ độ biết trước gửi yêu cầu lên Google tìm đường điểm ấy: http://maps.google.com/maps?f=d&hl=en&saddr=10.75896,106.68257&daddr=10 848731,106.773877&ie=UTF8&0&om=0&output=kml Với saddr thông tin kinh độ, vĩ độ điểm xuất phát; dsddr thông tin kinh độ, vĩ độ điểm cần đến Nội dung tập tin KML trả từ Google Nguyễn Trãi to Unknown road7fcf00646Printable view]]>Head east on Nguyễn Trãi toward Nguyen BieuNguyễn Trãinormalhttp://maps.gstatic.com/intl/en_ALL/mapfiles/kml/paddle/go.png http://maps.gstatic.com/intl/en_ ALL/mapfiles/kml/paddle/go-lv.png M.3.2 Thể đường đồ Google Map Nhóm tham khảo áp dụng viết dẫn vẽ đường lên đồ GoogleMap là: Android - Driving Direction (Route Path) địa http://csietw.blogspot.com/2009/06/android-driving-direction-route-path.html để thực hóa chức đường đến siêu thị 280 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình phụ lục 214 Ứng dụng vẽ đường đồ Google Map eSaleShopping Nhóm tham khảo lớp Direction.java (truyền tham số lên Google) MyOverlay.java (vẽ đường đồ) để áp dụng vào ứng dụng eSaleShopping Bên cạnh tham khảo lớp này, nhóm tiến hành xử lý lại thuật tốn đọc tập tin KML để lấy tính tốn đường ngắn đến siêu thị gần M.3.3 Cách thức tìm vị trí thiết bị thơng qua GPS mạng Để chương trình xác định vị trí nhóm tham khảo viết “Android Examples - Using Location API”, viết tác giả Marko Gargenta địa http://marakana.com/forums/android/android_examples/42.html mã nguồn tham khảo viết địa http://marakana.com/static/tutorials/LocationDemo.zip Đồng thời nhóm có tham khảo viết thành viên có nickname jagtap.jj1 diễn đàn anddev.org với phần viết “app with GPS-enable but the device is indoor” (http://www.anddev.org/app_with_gps- enable_but_the_device_is_indoor-t8997.html) để tham khảo phương: 281 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com startLocationReceiving(), stopLocationReceiving() cho việc khởi động hay dừng thiết bị nhận tín hiệu xác định vị trí M.4 Ứng dụng EndlessList Khái niệm EndlessList chúng tơi trình bày phụ lục J Ở phần chúng tơi trình bày giải pháp tiêu biểu mà chúng tơi có dịp tham khảo áp dụng vào ứng dụng eSaleShopping M.4.1 Giải pháp M.Murphy Mark Murphy làm việc cho Commons Ware, email liên hệ: mmurphy@commonsware.com Tác giả có cung cấp sẵn mã nguồn hướng dẫn sử dụng project CWAC EndlessAdapter địa http://github.com/commonsguy/cwac-endless Nhóm có dịp dùng ứng dụng EndlessAdapter M.Murphy vào toán EndlessList Việc ứng dụng EndlessList vào giải vấn dề EndlessList bên cạnh EndlessAdapter cịn tồn lỗi nhỏ vịng trịn xoay thể tiến trình download liệu từ server để gắn thêm vào ListView hiển thị bị lỗi Chúng hiển thị khơng có kiểm sốt hình ListView Do mã nguồn ứng dụng tác giả đóng gói thành tập tin jar nên nhóm chúng tơi khơng thể hiệu chỉnh lại lỗi nên tiến hành tìm kiếm giải pháp khác cho vấn đề EndlessList Hình bên thể ứng dụng chạy EndlessAdapter bug lỗi 282 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình phụ lục 215 Hình minh họa bug lỗi cũa EndlessAdapter M.4.2 Giải pháp Evan Charlton Tác giả Evan Charlton sinh viên năm học viện công nghệ Rochester (http://evancharlton.com/about/) Trong viết công bố mạng tác giả (http://evancharlton.com/thoughts/lazy-loading-images-in-a-listview/) nhóm thấy nguồn tham khảo hữu ích Ứng dụng Magnatune (http://evancharlton.com/projects/magnatune/downloads/) tác giả giải tốt vấn đề EndlessList đồng thời có cách giải việc download hình ảnh minh họa máy cách linh hoạt uyển chuyển Ứng dụng Magnatune tải máy thông tin (chuỗi ký tự) tên hát, album, thông tin nhạc sĩ ca sĩ từ server hiển thị trước ListView hình ảnh download thẻ nhớ download hình hiển thị lên ListView sau hình minh họa bên Nhóm chúng tơi dùng lại hàm thiết kế tác giả để phục vụ cho ứng dụng eSaleShopping là: 283 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Dùng lại lớp HTTPQueue.java, HTTPThread.java, RemoteImageView.java: phục vụ cho việc chạy ngầm tải hình ảnh từ server dạng danh sách hàng đợi dùng Thread Hiệu chỉnh lớp MagnatuneAPI.java có chỉnh sửa lại cho phù hợp để phục vụ việc lưu vết thư mục tạm lưu trữ hình ảnh từ server Hiệu chỉnh lớp LazyAdapter.java phục vụ hiển thị item ListView Hiệu chỉnh lớp LazyActivity.java, lớp mà nhóm tham khảo kỹ thực viết lại số tính cho phù hợp lớp chứa giải pháp giải vấn đề EndlessList hiệu dùng Task khơng đồng Vấn đề dùng Task không đồng nhóm trình bày phụ lục J Hình phụ lục 216 Hình minh họa ứng dụng Magnatune M.5 Mã nguồn android-misc-widgets Đây project viết tác giả có nickname pskink (http://code.google.com/u/pskink/) đăng tải Google Code địa 284 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com http://code.google.com/p/android-misc-widgets/ Đây project chứa loạt hiệu ứng chuyển động (animation) widget tiện dụng hữu ích Nhóm áp dụng số lớp, thiết kế projec android-misc-widget để làm phong phú thêm cho ứng dụng eSaleShopping M.5.1 Hiệu ứng hoạt cảnh Nhóm chúng tơi dùng lại hết lớp tạo hiệu ứng chuyển động vào ứng dụng eSaleShopping Đó ứng với hình minh họa bên Hình phụ lục 217 Các lớp tạo hiệu ứng chuyển động dùng lại ứng dụng eSaleShopping M.5.2 Các widget Nhóm dùng lại widget có tên Panel Switcher để làm cho ứng dụng eSaleShopping thêm phần phong phú 285 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình phụ lục 218 Ứng dụng Panel tạo khung đường đồ eSaleShopping Hình phụ lục 219 Ứng dụng Switcher tạo lựa chọn hình thức bán hàng eSaleShopping 286 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... hiểu Hệ điều hành Android xây dựng ứng dụng minh họa? ?? cịn có mục đích cao cung cấp nhìn nhất, chung giúp cho người đọc dễ dàng nắm bắt, học hỏi cách thức vận hành phát triển ứng dụng hệ điều hành. .. trình Android G.1 Tổng quan Android G.1.1 Định nghĩa Android Android hệ thống phần mềm cho thiết bị di động bao gồm hệ điều hành, trình điều khiển phần cứng ứng dụng G.1.2 Tính kiến trúc Android. .. dùng Kiến trúc ứng dụng thiết kế đơn giản để tái sử dụng lại thành phần ứng dụng Như ứng dụng mua sắm xem giá sử dụng lại ứng dụng chụp mã vạch BarcodeZXing Tất ứng dụng dịch vụ hệ thống, bao gồm:

Ngày đăng: 01/11/2022, 20:07

Xem thêm:

w