PHÁT TRIỂN ỨNG DỤNG DI ĐỘNG NÂNG CAO

Similar documents
Bộ môn MMT&TT, Khoa Công Nghệ Thông Tin và TT, ĐH Cần Thơ

HƯỚNG DẪN CÀI ĐẶT PHẦN MỀM DIỆT VIRUS AVIRA

Tài liệu hướng dẫn: Stored Procedure

HƯỚNG DẪN SỬ DỤNG HỆ THỐNG CẬP NHẬT CHỨNG THƯ SỐ HOTLINE:

Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin và TT, ĐH Cần Thơ

Khối: Cao Đẳng nghề và Trung Cấp Năm 2009

Khoa KH & KTMT Bộ môn Kỹ Thuật Máy Tính

Tình huống 1: PPPoE với Username và Password

Cài đặt và cấu hình StarWind iscsi trên Windows. iscsi SAN là gì?

HƯỚNG DẪN SỬ DỤNG PLESK PANEL

BÀI TẬP THỰC HÀNH LẬP TRÌNH WINDOWS C#

BELGIUM ONLINE APPOINTMENT

STACK và QUEUE. Lấy STACK

Giáo trình này được biên dịch theo sách hướng dẫn của Sun Light. Vì là hướng dẫn kỹ thuật, trong này những thuật ngữ kỹ thuật bằng tiếng Anh tôi chỉ

Mạng máy tính - Computer Network: Hệ. Giao thức - Protocol:

CẤU TRÚC DỮ LIỆU NÂNG CAO

Nội dung chính của chương. Các công nghệ đĩa cứng Cấu tạo vật lý của đĩa cứng Cấu tạo logic của đĩa cứng Cài đặt đĩa cứng như thế nào?

Online Appointment System will work better with below conditions/ Hệ thống đặt hẹn online sẽ hoạt động tốt hơn với điều kiện sau đây:

TÀI LIỆU THỰC HÀNH MÔN CƠ SỞ DỮ LIỆU NÂNG CAO

Internet Protocol. Bởi: Phạm Nguyễn Bảo Nguyên

SIEMENS INDUSTRIAL NETWORKS

Mô hình dữ liệu quan hệ (Relational data model)

HƯỚNG DẪN SỬ DỤNG DỊCH VỤ CDN

HƯỚNG DẪN SỬ DỤNG DỊCH VỤ CDN

Chương 5. Network Layer. Phần 1 - Địa chỉ IPv4. Tài liệu : Forouzan, Data Communication and Networking

HỢP ĐỒNG MUA BÁN HÀNG HÓA QUỐC TẾ GV: NGUYỄN THỊ BÍCH PHƯỢNG

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG HOSTING PLESK PANEL

PHÁT TRIỂN ỨNG DỤNG WEB

TỔNG QUAN VỀ.NET VÀ C#

CHƯƠNG 2: CÁC ĐẶC ĐIỂM VỀ MÔI TRƯỜNG PHÁT TRIỂN (IDE)

Cụ thể những công việc mà AndroidManifest.xml thực hiện: - Đặt tên cho Java package của ứng dụng.

Tạo Project với MPLAB

Chương 5. Network Layer 19/09/2016 1

Hướng dẫn cài đặt FPT

HƯỚNG DẪN QUẢN TRỊ HỆ THỐNG

I. Hướng Dẫn Đăng Nhập:

BÀI 1: VBA LÀ GÌ? TẠO MACRO, ỨNG DỤNG CÁC HÀM TỰ TẠO (UDF), CÀI ĐẶT ADD-INS VBA là gì?

Tìm hiểu Group Policy Object và các ví dụ

Entity Framework (EF)

Chương 7. Application Layer. Tài liệu : Forouzan, Data Communication and Networking

HƯỚNG DẪN CÁCH SỬ DỤNG WINDOWS MOVIE MAKER

Bài Thực hành Asp.Net - Buổi 1 - Trang: 1

Lab01: M V C Lưu ý: Để thực hành, các bạn phải cài Visual Studio 2013 trở lên mới hỗ trợ MVC5.

HƢỚNG DẪN TRIỂN KHAI KASPERSKY - MOBILE DEVICE MANAGEMENT

BÀI GIẢNG CHƯƠNG 3 GIAO TIẾP KẾT NỐI SỐ LIỆU

Bài tập lớn số 1. Giả lập bộ định thời

Chương 6. Transport Layer. Tài liệu : Forouzan, Data Communication and Networking

LẬP TRÌNH WINDOWS FORM VỚI CÁC CONTROL NÂNG CAO (Các control trình bày dữ liệu dưới dạng danh sách)

GV: Phạm Đình Sắc or

ĐỀ CƯƠNG CHI TIẾT HỌC PHẦN

ĐỌC, GHI XML VỚI C# TRONG ADO.NET --- SỬ DỤNG VISUAL STUDIO

HƯỚNG DẪN SỬ DỤNG ĐẦU GHI H.264 DVR VISION VS (4CH - 8CH - 16CH)

B5: Time to coding. Tới thư mục src/example.java và thay đổi nội dung file như sau: Mã: package at.exam;

GIẢI THUẬT ĐỊNH TUYẾN (ROUTING ALGORITHM)

LÂ P TRI NH WEB ASP.NET

SIMULATE AND CONTROL ROBOT

Ôn tập Thiết bị mạng và truyền thông DH07TT - Lưu hành nội bộ (không sao chép dưới mọi hình thức)

Tạo repository mới. The working tree. The staging index. Lệnh git init tạo một repository loại git. tại thư mục hiện tại: $ git init

MA NG MA Y TI NH (Computer Networks)

Bài 10. Cấu trúc liên nối. khác nhau được gọi là cấu trúc liên nối. nhu cầu trao đổi giữa các module.

dụng một chính sách, điều này giúp dễ dàng quản lý và cung cấp tính năng Load Balancing (cân bằng tải) phục vụ tốt hơn các yêu cầu của tổ chức.

Phần 2. SỬ DỤNG POWERPOINT ĐỂ CHUẨN BỊ NỘI DUNG TRÌNH BÀY

BÀI 6 LÀM VIỆC VỚI THÀNH PHẦN MỞ RỘNG CỦA CSS3

MỤC LỤC. Giáo trình Thiết kế web Trang 1

NHẬP MÔN LẬP TRÌNH KHOA HỌC DỮ LIỆU. Bài 10: Thư viện Pandas (2)

KIẾN TRÚC MÁY TÍNH. Giảng viên: ThS. Phan Thanh Toàn. v

BẢO MẬT TRONG SQL SERVER

Nhấn nút New để tạo 1 biến mới Trang 17

Chủ đề 7: Triển khai và Bảo trì. COMP1026 Introduction to Software Engneering CH7-1 HIENLTH

Lecture 12. Trees (1/2) Nội dung bài học:

Bài 10: Cấu trúc dữ liệu

Môn Học: Cơ Sở Dữ Liệu 2. Chương 3 LẤY DỮ LIỆU TỪ NHIỀU NGUỒN

Kích hoạt phương thức xa (RMI- Remote Method Invocation )

LAB IP SLA Bài 1. Bùi Quốc Kỳ ***

BÀI THỰC HÀNH SỐ 1. Quản trị tập tin: 1/ Tạo các thư mục sau: Bài tập thực hành linux Linuxlab. bt1 bt11 bt111. bt121. bt12. bh1 bh11 bh111.

Lập trình chuyên nâng cao. Lập trình phân tán (Distributed computing

Khối: Cao Đẳng nghề và Trung Cấp Năm 2009

Dọn "rác" Windows 7 vào dịp cuối năm

BÀI LAB ĐỔI TÊN DOMAIN

Đa ngôn ngữ (Internationalization) trong Servlet

Kỹ thuật thu nhỏ đối tượng trong Design (Layout)

FCAPS. nhìn từ quan điểm ITIL. Công cụ ManageEngine và ứng dụng khung ITIL trong các tổ chức, doanh

Parallels Cloud Server 6.0

NỘI DUNG ÔN TẬP MÔN HỆ CƠ SỞ DỮ LIỆU

1 Bước 1: Test thử kit LaunchPad.

Hệ điều hành Bài tập tuần 7_ Chúng ta làm quen một số lệnh thao tác với hệ thống file trong Linux :

NHÚNG. Vi ñiều khiển BM Kỹ Thuật ðiện Tử - ðh Bách Khoa TP.HCM 2

Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM LẬP TRÌNH MINICHAT. Bài giảng 3. Trang1. Khoa Khoa Học Và Kỹ Thuật Máy Tính

Google Search Engine. 12/24/2014 Google Search Engine 1

2.4. GIAO THỨC MQTT Các khái niệm cơ bản MQTT được phát triển bởi IBM và Eurotech, phiên bản mới nhất là MQTT 3.1 MQTT (Giao vận tầm xa) là

Các virus đầu tiên xuất hiện trong hệ điều hành của máy tính Apple II

ĐỀ CƯƠNG BÀI GIẢNG HỌC PHẦN: AN NINH MẠNG

ĐỀ CƢƠNG CHI TIẾT HỌC PHẦN CHUYÊN ĐỀ JAVA NÂNG CAO

Bài 7: Các cấu trúc điều khiển

Phạm Hữu Khang (Chủ biên) Hoàng Đức Hải Đoàn Thiện Ngân (Hiệu đính) GIÁO TRÌNH NHẬP L Ậ P T R Ì N H V B 6

GIỚI THIỆU TỔNG ĐÀI KX-HTS824. September, 2016

Bài tập căn bản Visual Basic.Net Vòng lặp. txtn. txtketqua. btntinh. txtn. txtketqua. btntinh. Trang 1

Cập nhật ResultSet trong JDBC

[ASP.NET] MVC Framework và ví dụ minh họa

Qu n ả tr h ố g t p ậ tin

Transcription:

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC KINH TẾ - LUẬT KHOA HỆ THỐNG THÔNG TIN TS LÊ HOÀNH SỬ (Chủ biên) ThS HỒ TRUNG THÀNH ThS TRẦN DUY THANH GIÁO TRÌNH PHÁT TRIỂN ỨNG DỤNG DI ĐỘNG NÂNG CAO NHÀ XUẤT BẢN ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH 2017 i

ii

LỜI GIỚI THIỆU Ngành lập trình ứng dụng di động đang thay đổi hàng giờ, nhiều công nghệ mới phát triển với những tính năng nổi trội. Nhu cầu sử dụng di động đặc biệt là smartphone ngày càng tăng nhanh, đi kèm với các hành vi như trao đổi buôn bán trên thiết bị di động, thanh toán di động, điện toán đám mây trên di động, mạng xã hội trên di động, trong tương lai cần rất nhiều nhân lực liên quan tới phát triển ứng dụng di động, đây chính là cơ hội để ngành Thương mại Điện tử đào tạo ngành Lập trình Di động, nó là một nhu cầu thiết yếu và cấp tiến trong cuộc cách mạng công nghệ hiện nay. Trong tất cả các hệ điều hành dành cho di động hiện nay, có thể nói: Android đã mang lại một cuộc cách mạng thật sự cho các lập trình viên. Nổi bật với tính mở, đơn giản nhưng mạnh mẽ, không tốn phí cho bất cứ bản quyền nào và đặc biệt cộng đồng lập trình viên vô cùng lớn mạnh. Android thật sự là một nền tảng mạnh mẽ cho phép các lập trình viên, những người chưa từng lập trình trên thiết bị di động có thể tạo ra các ứng dụng một cách nhanh chóng và dễ dàng. Có thể nói Android đang dần mang lại phong cách mới trong thói quen sử dụng điện thoại của người dùng. Tiếp nối cuốn Giáo trình Phát triển ứng dụng di động cơ bản, cuốn Giáo trình Phát triển ứng dụng di động nâng cao này cung cấp các kiến thức về lập trình nâng cao cho thiết bị di động sử dụng hệ điều hành Android, cách sử dụng ngôn ngữ lập trình Java vào việc triển khai các dự án trên thiết bị Android. Với lượng lý thuyết và danh sách bài tập phong phú giúp độc giả có thể hiểu sâu lý thuyết và áp dụng triển khai được các dự án thực tế trên di động. Tuy có nhiều cố gắng trong công tác biên soạn nhưng chắc rằng giáo trình này vẫn còn nhiều thiếu sót, chúng tôi xin trân trọng tiếp thu những ý kiến đóng góp quý báu từ người đọc để có thể hoàn thiện hơn trong những lần tái bản tiếp theo. Xin chân thành cảm ơn! Nhóm biên soạn iii

iv

MỤC LỤC LỜI GIỚI THIỆU... iii CHƯƠNG 1: MENU VÀ ĐIỀU KHIỂN TÌM KIẾM... 1 1.1. Option Menu... 1 1.2. Context Menu... 4 1.3. Menu Search View... 6 1.4. Bài tập... 8 CHƯƠNG 2: FRAGMENT... 12 2.1. Fragment và phiên bản hỗ trợ... 12 2.2. Vòng đời của Fragment... 13 2.3. Cấu trúc XML và lưu trữ Fragment... 15 2.4. Xây dựng và sử dụng Fragment... 16 2.5. Bài tập... 22 CHƯƠNG 3: CÁC CHUYỂN HOẠT TRONG ỨNG DỤNG... 26 3.1. Property Animation... 26 3.1.1. Giới thiệu Property Animation... 26 3.1.2. Cách tạo tập tin Property Animation... 27 3.1.3. Cách nạp Property Animation... 29 3.2. View Animation... 30 3.2.1. Giới thiệu View Animation... 30 3.2.2. Cách tạo tập tin View Animation... 30 3.2.3. Alpha Animation... 31 3.2.4. Scale Animation... 32 3.2.5. Translate Animation... 33 3.2.6. Rotate Animation... 34 3.2.7. Kết hợp các View Animation... 35 3.3. Drawable Animation... 36 v

3.3.1. Giới thiệu Drawable Animation... 36 3.3.2. Cách tạo tập tin Drawable Animation... 37 3.3.3. Cách nạp Drawable Animation... 39 3.4. Bài tập... 40 CHƯƠNG 4: DATA BINDING TRONG ANDROID... 45 4.1. Giới thiệu Data Binding trong Android... 45 4.2. Thêm thư viện Data Binding vào Android Studio... 45 4.3. Tạo các Data Model (POJO)... 46 4.4. Thiết lập Data Binding trong file layout... 47 4.5. Thực hiện Data Binding trong Activity... 49 4.6. List Data Binding... 50 4.7. Bài tập... 57 CHƯƠNG 5: SQLITE TRONG ANDROID... 60 5.1. Giới thiệu SQLite... 60 5.2. Cách cài plug in SQLite Manager trong Firefox... 61 5.3. Cách sử dụng SQLite Manager... 62 5.4. Sao chép dữ liệu SQLite vào hệ thống điện thoại... 66 5.5. Mở/đóng kết nối SQLite trong Android... 68 5.6. Truy vấn SQLite trong Android... 69 5.7. Thêm dữ liệu vào SQLite trong Android... 71 5.8. Cập nhật dữ liệu SQLite trong Android... 72 5.9. Xóa dữ liệu SQLite trong Android... 72 5.10. Bài tập... 73 CHƯƠNG 6: CONTENT PROVIDER... 85 6.1. Giới thiệu Content Provider... 85 6.2. Content URI... 86 6.3. Content Resolver... 87 6.4. Content Provider để đọc danh bạ trong hệ thống điện thoại... 90 6.5. Content Provider để đọc Call Log trong hệ thống điện thoại... 91 vi

6.6. Content Provider để đọc tin nhắn trong điện thoại... 92 6.7. Bài tập... 93 CHƯƠNG 7: LẬP TRÌNH ĐA TUYẾN TRONG ANDROID... 96 7.1. Giới thiệu đa tiến trình... 96 7.1.1. Khái niệm về Thread... 96 7.1.2. Khái niệm về MultiThread... 98 7.2. Lập trình đa tuyến với Handler class... 99 7.2.1. Kỹ thuật lập trình Using Message với Handler class... 99 7.2.2. Kỹ thuật lập trình Using Post với Handler class... 105 7.3. Kỹ thuật lập trình đa tuyến với AsyncTask... 109 7.3.1. Xử lý AsyncTask không có kết quả trả về... 111 7.3.2. Xử lý AsyncTask có kết quả trả về... 115 7.4. Đa tiến trình hẹn giờ... 118 7.5. Bài tập... 120 CHƯƠNG 8: SERVICE VÀ BROADCAST RECEIVER... 125 8.1. Service... 125 8.1.1. Giới thiệu Service... 125 8.1.2. Cách tạo Service... 127 8.1.3. Intent Service... 132 8.2. Broadcast Receiver... 135 8.2.1. Giới thiệu về Broadcast Receiver... 135 8.2.2. Tạo Broadcast Receiver... 136 8.2.3. Đăng ký Broadcast Receiver... 137 8.2.4. Hủy Broadcast Receiver... 137 8.3. Bài tập... 140 CHƯƠNG 9: TƯƠNG TÁC DỊCH VỤ INTERNET... 143 9.1. Một số đối tượng hỗ trợ tương tác dịch vụ Internet... 143 9.2. Kỹ thuật đọc định dạng HTML... 145 9.3. Kỹ thuật đọc định dạng XML... 148 vii

9.4. Kỹ thuật đọc định dạng JSON... 154 9.5. Kỹ thuật tương tác dịch vụ Web SOAP... 167 9.5.1. Triệu gọi kiểu dữ liệu cơ sở... 170 9.5.2. Triệu gọi kiểu dữ liệu đối tượng... 175 9.5.3. Triệu gọi kiểu dữ liệu danh sách đối tượng... 181 9.6. Kỹ thuật tương tác dịch vụ Web Restful... 185 9.7. Công cụ Download Manager... 189 9.7.1. Giới thiệu công cụ Download Manager... 189 9.7.2. Cách lập trình với Download Manager... 190 9.7.3. Tùy chỉnh thông báo cho Download Manager... 192 9.8. Bài tập... 194 CHƯƠNG 10: GOOGLE MAP... 199 10.1. Giới thiệu Google Maps Android API... 199 10.2. Cách tạo Google Map Activity... 203 10.3. Cách cấu hình hiển thị Google Map... 208 10.4. Các thao tác trên Google Map... 211 10.4.1. Thay đổi chế độ hiển thị Google Map... 211 10.4.2. Hiển thị vị trí hiện tại trên Google Map... 214 10.4.3. Vẽ các đồ họa trên Google Map... 216 10.4.4. Vẽ đường đi giữa các địa điểm trên Google Map... 220 10.4.5. Chỉnh sửa InfoWindowAdapter cho Google Map... 228 10.5. Bài tập... 231 CHƯƠNG 11: SENSOR... 235 11.1. Giới thiệu sơ lược về Cảm biến... 235 11.2. Lấy thông tin và điều khiển Cảm biến... 241 11.3. Xử lý thông tin một số Cảm biến... 244 11.4. Bài tập... 251 CHƯƠNG 12: GOOGLE ADMOB... 255 viii

12.1. Giới thiệu Google Admob... 255 12.2. Cách tạo tài khoản Google Admob... 256 12.3. Tạo Google Admob trong ứng dụng Android... 260 12.4. Bài tập... 266 CHƯƠNG 13: GOOGLE PLAY... 267 13.1. Giới thiệu Google Play... 267 13.2. Các phương thức thanh toán Google Play... 271 13.2.1. Thẻ tín dụng hoặc thẻ ghi nợ... 271 13.2.2. Thanh toán trực tiếp qua nhà cung cấp dịch vụ di động... 272 13.2.3. Các hình thức thanh toán không được hỗ trợ... 273 13.3. Cách đăng ký Google Play Developer... 273 13.4. Cách build và chứng thực ứng dụng... 276 13.5. Cách đưa ứng dụng lên Google Play... 280 13.6. Bài tập... 285 CÁC THUẬT NGỮ... 286 TÀI LIỆU THAM KHẢO... 290 ix

DANH MỤC HÌNH ẢNH Hình 1.1. Option Menu trong Android... 1 Hình 1.2. Tạo thư mục menu cho ứng dụng... 2 Hình 1.3. Context Menu... 4 Hình 1.4. Menu SearchView... 6 Hình 2.1. Fragment... 12 Hình 2.2. Vòng đời của Fragment... 13 Hình 2.3. Màn hình nằm đứng và ngang dùng Fragment... 18 Hình 2.4. Layout nằm đứng và ngang của Fragment... 18 Hình 2.5. Đặt tên layout cho Fragment... 19 Hình 2.6. Chọn Orientation cho Fragment... 19 Hình 2.7. Lớp MyFragment... 20 Hình 3.1. Property Animation... 26 Hình 3.2. Tạo file XML objectanimator... 27 Hình 3.3. Thư mục Animator... 29 Hình 3.4. Hiệu ứng chạy Property Animation... 30 Hình 3.5. View Animation... 30 Hình 3.6. Tạo file XML View Animation... 31 Hình 3.7. Cấu trúc thư mục của View Animation... 31 Hình 3.8. Drawable Animation... 37 Hình 3.9. Tạo file XML Drawable Animation... 37 Hình 3.10. Cấu trúc thư mục Drawable Animation... 38 Hình 3.11. Ví dụ Drawable Animation... 39 Hình 4.1. Data Binding... 45 Hình 4.2. Ví dụ giao diện Binding... 47 Hình 4.3. Ví dụ giao diện List Data Binding... 50 Hình 4.4. Cấu trúc Project List Data Binding... 50 Hình 5.1. Chọn Add-ons trong Firefox... 61 x

Hình 5.2. Cài đặt SQLite Manager... 62 Hình 5.3. Cài đặt SQLite Manager thành công... 62 Hình 5.4. Màn hình phần mềm SQLite Manager... 62 Hình 5.5. Tạo cơ sở dữ liệu SQLite... 63 Hình 5.6. Công cụ tạo bảng dữ liệu trong SQLite... 63 Hình 5.7. Tạo bảng dữ liệu trong SQLite... 64 Hình 5.8. Xác nhận tạo bảng cho SQLite... 64 Hình 5.9. Cấu trúc bảng trong SQLite... 65 Hình 5.10. Các thao tác thường dùng trong bảng... 65 Hình 5.11. Nhập dữ liệu cho bảng... 66 Hình 5.12. Kết quả nhập bảng dữ liệu... 66 Hình 5.13. Sao chép cơ sở dữ liệu vào thư mục assets... 66 Hình 7.1. Minh họa Using Message với Handler class... 101 Hình 7.2. Minh họa Using Post với Handler class... 106 Hình 7.3. Cơ chế hoạt động các hàm trong AsyncTask... 110 Hình 7.4. Thực hiện AsyncTask không có kết quả trả về... 111 Hình 7.5. Thực hiện AsyncTask có kết quả trả về... 115 Hình 7.6. Ví dụ TimerTask... 119 Hình 8.1. Service trong Android... 126 Hình 8.2. Service đổi năm Dương sang năm Âm... 127 Hình 8.3. Broadcast Receiver... 136 Hình 9.1. Đọc HTML lên Webview... 145 Hình 9.2. Đọc XML lên ListView... 149 Hình 9.3. Cấu trúc JSONObject... 154 Hình 9.4. Cấu trúc JSONArray... 155 Hình 9.5. Kết quả phân tích JSONArray... 165 Hình 9.6. Cấu trúc JSONArray... 165 Hình 9.7. Thêm thư viện vào Project... 166 Hình 9.8. Hệ thống SOAP đơn giản... 168 xi

Hình 9.9. Cấu trúc thông điệp SOAP... 170 Hình 9.10. Đặc tả HTTP GET của SOAP... 170 Hình 9.11. Giao diện xử lý SOAP trả về kiểu cơ sở... 171 Hình 9.12. Giao diện xử lý SOAP trả về kiểu đối tượng... 176 Hình 9.13. Giao diện xử lý SOAP trả về danh sách đối tượng.. 182 Hình 9.14. Kiến trúc của Restful API... 186 Hình 9.15. Công cụ Download Manager... 190 Hình 10.1. Google Map trên Android... 199 Hình 10.2. Custom InfoWindowAdapter... 202 Hình 10.3. Chọn Google Maps Activity... 203 Hình 10.4. Tập tin Google Maps API... 204 Hình 10.5. Nội dung chi tiết tập tin Google Maps API... 204 Hình 10.6. Màn hình tạo Project trong Google Console... 205 Hình 10.7. Danh sách các Project trong Google Console... 205 Hình 10.8. Màn hình tạo API KEY... 206 Hình 10.9. Màn hình kết quả API KEY... 206 Hình 10.10. Đưa API KEY vào ứng dụng... 207 Hình 10.11. Màn hình Google Map... 207 Hình 10.12. Địa điểm Đại học Kinh tế - Luật... 209 Hình 10.13. Kinh độ - vĩ độ của Đại học Kinh tế - Luật... 210 Hình 10.14. Google Map của Đại học Kinh tế - Luật... 210 Hình 10.15. Các chế độ hiển thị trong Google Map... 211 Hình 10.16. Ví dụ Polyline... 216 Hình 10.17. Ví dụ Polygon... 217 Hình 10.18. Ví dụ Circle... 218 Hình 10.19. Vẽ đường đi giữa hai địa điểm... 220 Hình 10.20. Custom InfoWindowAdapter... 229 Hình 11.1. Proximity sensor... 236 Hình 11.2. Light sensor... 237 xii

Hình 11.3. Image sensor... 238 Hình 11.4. Accelerometer sensor... 239 Hình 11.5. Gyroscope sensor... 240 Hình 11.6. Cảm biến vân tay... 241 Hình 11.7. Ma trận đặc trung cảm biến vân tay... 241 Hình 11.8. Tính năng mở rộng trong Android Emulator... 244 Hình 11.9. Virtual Sensors... 244 Hình 11.10. Additional Sensors... 245 Hình 12.1. Banner và Interstitial... 255 Hình 12.2. Màn hình Google AdMob... 256 Hình 12.3. Màn hình chọn ADD APP... 256 Hình 12.4. Màn hình chọn App trên Google Play và App Store... 257 Hình 12.5. Màn hình chọn App có sẵn... 257 Hình 12.6. Màn hình nhập tên App mới... 258 Hình 12.7. Màn hình Added to AdMob... 258 Hình 12.8. Màn hình chọn format cho AdMob... 258 Hình 12.9. Màn hình đặt tên và cấu hình cho AdMob... 259 Hình 12.10. Màn hình hoàn tất cấu hình AdMob... 260 Hình 12.11. Màn hình danh sách Ad unit ID... 260 Hình 12.12. Màn hình chọn Google AdMob Ads Activity... 261 Hình 12.13. Màn hình chọn Banner cho Ad Format... 261 Hình 12.14. Màn hình hiển thị Google Admob dạng banner... 265 Hình 13.1. Thông tin Google Play... 267 Hình 13.2. Danh mục ứng dụng trên Google Play... 268 Hình 13.3. Website cho Developer... 270 Hình 13.4. Màn hình chọn Play Console... 274 Hình 13.5. Màn hình Thanh toán... 274 Hình 13.6. Màn hình Credit/Debit Card... 275 Hình 13.7. Màn hình số thẻ và CVC... 275 xiii

Hình 13.8. Chọn Generate Signed APK... 276 Hình 13.9. Màn hình Generate Signed APK... 277 Hình 13.10. Màn hình New Key Store... 277 Hình 13.11. Màn hình Generate Signed APK có thông tin... 278 Hình 13.12. Màn hình nhập Master Password... 278 Hình 13.13. Màn hình Output Generate Signed APK... 279 Hình 13.14. Xuất Signed APK thành công... 279 Hình 13.15. Tập tin app-release.apk... 279 Hình 13.16. Tập tin Test Picture For Student.apk... 280 Hình 13.17. Màn hình Google Play Developer Console... 280 Hình 13.18. Màn hình Create Application... 281 Hình 13.19. Màn hình nhập Store Listing... 281 Hình 13.20. Màn hình tải APK lên Google Play... 282 Hình 13.21. Màn hình tải APK thành công... 282 Hình 13.22. Màn hình Content Rating... 283 Hình 13.23. Màn hình kết quả Content Rating... 283 Hình 13.24. Màn hình Pricing & Distribution... 284 Hình 13.25. Màn hình thông báo Publish App thành công... 284 xiv

DANH MỤC BẢNG Bảng 5.1. Ví dụ Bảng dữ liệu trong SQLite... 61 Bảng 6.1. Ví dụ cấu trúc bảng trong Content Provider... 85 Bảng 7.1. Quá trình xử lý Using Message với Handler class... 100 Bảng 7.2. Quá trình xử lý Using Post với Handler class... 105 Bảng 8.1. Các phương thức trong Service... 126 Bảng 8.2. Bảng so sánh các loại Service... 135 Bảng 9.1. Các phương thức trong URLConnection... 143 Bảng 9.2. Các phương thức chỉ định nơi lưu trữ của Download Manager... 193 Bảng 10.1. Các phương thức của đối tượng Polyline... 216 Bảng 10.2. Các phương thức của đối tượng Polygon... 218 Bảng 10.3. Các phương thức của đối tượng Circle... 219 xv