Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 246 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
246
Dung lượng
24,93 MB
Nội dung
60 NGUYỄN VĂN HIỆP TRẦN ĐỨC THIỆN TRẦN MẠNH SƠN LẬP TRÌNH ANDROID VÀ ỨNG DỤNG TRONG CÁC HỆ THỐNG IOTS (ANDROID TRONG ĐIỀU KHIỂN, IOTS, WEAROS) NHÀ XUẤT BẢN ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH THS NGUYỄN VĂN HIỆP TS TRẦN ĐỨC THIỆN TS TRẦN MẠNH SƠN LẬP TRÌNH ANDROID VÀ ỨNG DỤNG TRONG CÁC HỆ THỐNG IOTS (ANDROID TRONG ĐIỀU KHIỂN, IOTS, WEAROS) hát hành nội tộc NHÀ XUẤT BẢN ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH - NĂM 2022 LỜI GIỚI THIỆU Những năm 2000, điện thoại thông minh (smartphone) khái niệm xa xỉ Người giàu “sang chảnh” với điện thoại “đập đá” nghĩa Nhưng thật chứng kiến thay đổi vũ bão giới smartphone Rất nhiều hãng điện thoại nổi, thành công mang đến cho người dùng tiếp cận dễ dàng hết Điện thoại thông minh thơng minh hơn, với tích hợp AI (trí tuệ nhân tạo), người dùng có thêm trợ lý đắc lực hiểu Smartphone ngày đa dạng, trải dài phân khúc từ cao cấp đến bình dân Giới trẻ có smartphone, thứ bắt đầu liên kết hầu hết với qua internet Thế giới trở nên phẳng hơn, tương tác liên quan đến đời sống tinh thần, vật chất số hóa chia sẻ Với thống trị Android giới smartphone bối cảnh cách mạng công nghiệp 4.0 tiến đến gõ cửa nhà, sách mong muốn mang đến cho người đọc tảng bản, cốt lõi việc lập trình di động ứng dụng điều khiển, giám sát thiết bị Quyển sách viết dựa hai “Lập trình Android bản” “Lập trình Android ứng dụng điều khiển” tác giả, NXB Đại học Quốc gia Thành phố Hồ Chí Minh xuất trước Chính vậy, số khái niệm bỏ bớt, hướng đến phần ứng dụng thực tế, hệ thống giám sát điều khiển thông qua thiết bị Android cải tiến, chỉnh sửa, bổ sung Tác giả hi vọng sau đọc sách này, người đọc tự xây dựng số hệ thống điều khiển thông minh phù hợp với nhu cầu cụ thể Hoặc đơn giản trang bị kiến thức để việc trải nghiệm thiết bị smarthome (nhà thông minh) dễ dàng thuận tiện hơn! Chân thành cảm ơn ủng hộ quý độc giả, góp ý nội dung vui lịng gởi email: hiepspkt@hmcute.edu.vn Thân ái! MỤC LỤC Lời giới thiệu .3 Chương 1: Giới thiệu Android 13 1.1 Định nghĩa Android 13 1.2 Một số tảng Android .15 Chương 2: Thiết kế Layout Android Studio .17 2.1 Đặt vấn đề 17 2.2 Các loại Layout tiêu chuẩn Android 18 2.3 Relative Layout 19 2.4 Linear Layout .23 2.5 Table Layout 31 2.6 Grid Layout 33 2.7 Frame Layout .34 2.8 Constraint Layout 36 Chương 3: Các điều khiển giao diện người dùng .42 3.1 Đặt vấn đề 42 3.2 Các đối tượng UI thuộc tính quan trọng .43 3.2.1 Các thuộc tính quan trọng UI 43 3.2.2 Các đối tượng UI 47 3.3 Bài tập UI Control 47 Chương 4: Xây dựng ứng dụng IoTs sử dụng Firebase 57 4.1 Đặt vấn đề 57 4.2 Định nghĩa Firebase .57 4.2.1 Content Delivery Network 60 4.2.2 Dữ liệu thời gian thực - Firebase Realtime Database 60 4.2.3 Cách thức hoạt động của sở dữ liệu thời gian thực 61 4.3 Xây dựng dự án đơn giản sử dụng Google Firebase 63 4.3.1 Bài toán .63 4.3.2 Bài toán .74 Chương 5: Điều khiển thiết bị qua tin nhắn SMS .89 5.1 Đặt vấn đề 89 5.2 Phần mềm điện thoại Android 90 5.2.1 Xây dựng giao diện bằng phần mềm SMS_Control 91 5.2.2 Chương trình hoạt động 97 5.3 Bộ điều khiển .98 5.4 Kết nối phần cứng và chương trình Arduino .100 Chương 6: Sử dụng Google Maps ứng dụng giám sát, định vị 109 6.1 GPS 109 6.1.1 Cách thức hoạt động vệ tinh 109 6.1.2 Cách xác định vị trí theo kinh độ vĩ độ 110 6.2 Google Maps 111 6.2.1 Xây dựng ứng dụng đơn giản giám sát thiết bị dùng Google Maps 112 6.2.2 Viết chương trình cho ứng dụng xác định vị trí Google Maps 113 6.2.3 Chương trình hoạt động 124 6.3 Viết chương trình cho thiết bị nhận tin nhắn yêu cầu gửi lại vị trí 134 6.3.1 Thiết kế giao diện 134 6.3.2 Yêu cầu thiết bị cấp quyền cho ứng dụng 134 6.3.3 Phần code MainsActivity.java 134 6.4 Mô 141 Chương 7: Điều khiển và giám sát thiết bị qua Bluetooth .144 7.1 Đặt vấn đề 144 7.2 Phần mềm điện thoại Android .145 7.2.1 Xây dựng ứng dụng đơn giản 145 7.2.2 Chương trình hoạt động thế nào 154 7.3 Bộ điều khiển .159 Chương 8: Ứng dụng công nghệ OCR điều khiển 163 8.1 Đặt vấn đề 163 8.2 Định nghĩa về công nghệ OCR 163 8.3 Ứng dụng công nghệ OCR điều khiển led màu 164 8.3.1 Yêu cầu 164 8.3.2 Sơ đồ hệ thống 165 8.3.3 Thiết kế ứng dụng Android 165 8.3.4 Thiết kế điều khiển .175 Chương 9: Ứng dụng cảm biến gia tốc điều khiển 180 9.1 Đặt vấn đề 180 9.2 Phần mềm điện thoại Android .181 9.3 Bộ điều khiển .194 Chương 10:Ứng dụng công nghệ nhận dạng giọng nói 196 10.1 Đặt vấn đề 196 10.2 Ứng dụng điện thoại Android .197 10.3 Bộ điều khiển .210 Chương 11: Sử dụng Blynk tạo ứng dụng điều khiển với Google Assistant 213 11.1 Đặt vấn đề 213 11.2 Xây dựng ứng dụng với Blynk 214 11.2.1 Giới thiệu app Blynk .214 11.2.2 Tạo dự án Blynk 215 11.3 Đăng nhập cài đặt IFTTT 219 11.4 Bộ điều khiển .226 Chương 12: Wear OS ứng dụng điều khiển 228 12.1 Đặt vấn đề 228 12.2 Tạo Database Firebase 229 12.3 Tạo ứng dụng smartphone 233 12.4 Tạo ứng dụng smartwatch 235 12.5 Mạch điều khiển ESP8266 đọc liệu từ Firebase 239 Tổng kết 242 Tài liệu tham khảo 243 DANH MỤC HÌNH ẢNH Hình 1.1 Chiếc điện thoại T-Mobile G1 14 Hình 1.2 Các phiên hệ điều hành Android thời gian phát hành 14 Hình 2.1 Sơ đồ thừa kế thành phần giao diện Android 17 Hình 2.2 Thiết kế giao diện sử dụng Relative Layout 19 Hình 2.3 Màn hình ứng dụng chạy máy ảo 23 Hình 2.4 Hình ảnh minh họa cho margin padding 24 Hình 2.5 Kết hình sau thiết kế 26 Hình 2.6 Kết hiển thị hình thiết kế Linear Layout dọc 28 Hình 2.7 Thiết kế Layout lồng vào 30 Hình 2.8 Kết hiển thị máy ảo Layout lồng vào 30 Hình 2.9 Thiết kế hình đăng nhập dùng Table Layout 31 Hình 2.10 Mơ xây dựng hình đăng nhập dùng Table Layout 33 Hình 2.11 Thiết kế nút nhấn sử dụng Frame Layout 34 Hình 2.12 Sử dụng Layout thiết kế giao diện máy tính đơn giản 36 Hình 2.13 Thiết kế giao diện ứng dụng sử dụng Constraint Layout 37 Hình 2.14 Kết hình ứng dụng chạy máy ảo 40 Hình 3.1 Cách xếp View, ViewGroup 42 Hình 3.2 Chọn kích thước hình thiết kế Android Studio 44 Hình 3.3 Độ phân giải pixel Android 44 Hình 3.4 Kích thước tính theo đơn vị dp 45 Hình 3.5 Kích thước dp Android 45 Hình 3.6 Ví dụ kích thước sp 46 Hình 3.7 Biểu diễn đơn vị đo hình 46 Hình 3.8 Giao diện ứng dụng tính số BMI 48 Hình 3.9 Giao diện thiết kế ứng dụng BMI 51 Hình 3.10 Kết quả chạy máy tính ảo 56 Hình 4.1 Firebase hỗ trợ nhiều tảng 58 Hình 4.2 Phần cứng kết nối sử dụng NODEMCU 8266 63 Hình 4.3 Vào mục Setting 63 Hình 4.4 Vào mục Android SDK 65 Hình 4.5 Vào SDK Tools 66 Hình 4.6 Vào mục Tools\Firebase 67 Hình 4.7 Vào mục Realtime Database 67 Hình 4.8 Vào mục Save and retrieve data 68 Hình 4.9 Kết quả Database thêm một Child tên là LED 68 Hình 4.10 Code mục Rules 69 Hình 4.11 Thông báo tại cửa sổ Firebase 69 Hình 4.12 Kết quả chạy máy ảo: a) Led sáng, b) Led tắt 73 Hình 4.13 Sơ đồ chân module NodeMCU 8266 74 Hình 4.14 Ảnh thực tế DHT11 76 Hình 4.15 Kết nối NodeMCU 8266 với DHT11 76 Hình 4.16 Phần cứng kết nối cho hệ thống 77 Hình 4.17 Xây dựng ứng dụng Android Studio 77 Hình 4.18 Tạo một dự án Firebase 80 Hình 4.19 Một dự án Firebase lưu trữ liệu thời gian thực 81 Hình 4.20 Hoạt động Realtime Data Firebase 85 Hình 4.21 Lấy Firebase_host 88 Hình 5.1 Hệ thống điều khiển thiết bị qua SMS 89 Hình 5.2 Giao diện ứng dụng điều khiển SMS_Control 91 Hình 5.3 SIM900 99 Hình 5.4 Board TDGGSM_900 100 Hình 5.5 Board GPRS Shield-EFCom 100 Hình 5.6 Sơ đồ kết nối phần cứng 101 Hình 5.7 Giao tiếp SIM900 qua hai chân khác chân Tx, Rx mặc định 102 Hình 6.1 Hệ thống định vị toàn cầu GPS 110 Hình 6.2 Xác định vị trí cơng thức lượng giác 111 Hình 6.3 Hình biểu tượng ứng dụng Google Maps cập nhật 111 Hình 6.4 Giao diện Google Maps điện thoại 112 Hình 6.5 Theo dõi định vị thiết bị từ thiết bị khác 113 Hình 6.6 Tạo Project 113 Hình 6.7 Các bước tiến hành xin API key 114 Hình 6.8 Tạo API key cho ứng dụng 115 Hình 6.9 File Google_maps_api.xml 115 Hình 6.10 Vào trang web xin API key 116 Sau bước đến bước 3, bạn thêm dịng code hướng dẫn từ Firebase hình dưới, phần vào phần Android Studio tơi nói chi tiết bạn đừng lo Hình 12.4 Hướng dẫn tích hợp Firebase vào Android project Vậy xong bước Tiếp theo, hình chọn “Add Firebase to your Android app”: Hình 12.5 Chọn dự án Android để tích hợp Firebase 231 Bây đến phần quan trọng, bạn vào MainActivity java Android Studio để lấy “Android package name” để đăng ký cho Firebase sau chọn “REGISTER APP” Nhớ phải lấy cho đừng sót chữ package name Hình 12.6 Thêm package name để add dự án vào Firebase Tiếp sau bạn vào thiết lập cho phép đọc ghi liệu Các bạn vào Database Rule chuyển thành “true” chỗ read write Sau nhấn PUBLISH Hình 12.7 Thiết lập cho phép đọc ghi liệu lên Data Firebase 232 Sau nhấn vào DATA bạn thấy sở liệu dạng JSON hình Bạn tạo biến liệu Hình 12.8 Tạo liệu cho Data Firebase Và Database sẵn sàng để đọc ghi liệu lên rồi, xây dựng ứng dụng smartphone để gửi liệu lên Database Firebase 12.3 Tạo ứng dụng smartphone Việc tạo ứng dụng Android đơn giản ứng dụng trước Khơng có khác biệt Sau khởi tạo xong project ta chép file Googleservices.json vào thư mục Ở phần Firebase, yêu cầu ta chép thư viện cho file Gradle Ta tiến hành chép dòng code hướng dẫn bên Firebase lúc vào file build.gradle (project) Lưu ý phiên Android Studio Gradle có xếp khác biệt vài điểm Nhắc lại, bạn liên kết Firebase vào project cách tự động làm chương trước thư viện thêm vào tự động ta làm thủ công Hình 12.9 Thêm thư viện Firebase vào Gradle 233 Tiếp theo ta vào file Build.gradle(Module: app) thêm dòng code hướng dẫn bên Firebase, sau nhập xong nhấn SYNC góc để đồng Hình 12.10 Thêm thư viện vào Build.Gradle(app) Tiếp theo vào phần layout cho phần mềm, thiết kế switch (nút gạt điều khiển): Hình 12.11 Thiết kế giao diện cho ứng dụng điện thoại Đặt ID widget “switch1” Sau ta qua MainActivity java để lập trình hoạt động ứng dụng Việc viết code cho ứng dụng điều khiển bạn xem lại chương “Xây dựng ứng dụng IoTs sử dụng Firebase” 234 Hình 12.12 Xây dựng code cho file MainActivity.java Sau viết đoạn code chạy mô chạy thiết bị thật ta thấy biến Firebase tạo thay đổi giá trị: Hình 12.13 Kết quan sát Firebase chạy ứng dụng 12.4 Tạo ứng dụng smartwatch Nếu bạn có đồng hồ thông minh chạy Android, bạn tạo project cài chương trình thực tế lên đồng hồ thơng minh Ở ta sử dụng đồng hồ cũ Asus Zenwatch Các đồng hồ khác bạn thay đổi lúc kết nối tải chương trình xuống Hoặc bạn chạy mơ phần Android Studio Việc tạo project tương tự project Android bình thường lưu ý bạn phải chọn Wear OS mặt đồng hồ trịn/vng cho phù hợp 235 Hình 12.14 Tạo ứng dụng cho đồng hồ thông minh Tùy thuộc vào người lập trình có muốn chọn giao diện có chứa sẵn cơng cụ hỗ trợ hay khơng, người lập trình muốn giao diện trống người lập trình lựa chọn Blank Activity Tiếp theo sau đặt tên cho ứng dụng, chọn phiên hệ điều hành, ngơn ngữ lập trình Hình 12.15 Thiết lập ứng dụng Wear OS 236 Khi hồn thành hết thao tác mơi trường để thiết kế, giao diện lập trình xuất sau: Hình 12.16 Giao diện xây dựng ứng dụng Wear OS Về bản, ứng dụng viết đồng hồ thông minh viết tương tự điện thoại thông minh nên tác giả không thực lại Vì xem ta viết chương trình cho đồng hồ thơng minh Và cách để nạp chương trình cho đồng hồ “ASUS ZENWATCH 2” Mở đồng hồ Android, vào cài đặt tùy chọn nhà phát triển chọn “gỡ lỗi qua Wi-Fi” ta thấy địa IP đồng hồ hình 192.168.1.104 PORT để kết nối với laptop 5555: Hình 12.17 Xem địa IP đồng hồ thông minh Vào thư mục ADB (Android Debugging Bridge - ta tải ADB 237 nhiều nguồn google) nhấn Shift click chuột trái chọn “Open command window here”: Hình 12.18 Vào cửa sổ command “Android Debugging bridge” Tại cửa sổ command mở lên ta gõ “adb connect 192.168.1.104:5555”: Hình 12.19 Dịng lệnh để kết nối đồng hồ thơng minh với máy tính Sau ta nạp chương trình qua wifi theo thứ tự Hình 12.20: Hình 12.20 Debugging thơng qua wifi máy tính đồng hồ 238 12.5 Mạch điều khiển ESP8266 đọc liệu từ Firebase Ở ta sử dụng ESP8266, chân dương (Anode) led gắn vào chân D4 ESP8266 Chú ý: Để ESP8266 kết nối đọc liệu từ FIREBASE phải thêm thư viện Firebase “#include ” Khối xử lý trung tâm (Module wifi ESP8266 NodeMCU Mini D1) Hình 12.21 Module thu phát wifi ESP8266 NodeMCU Mini D1 Module wifi ESP8266 NodeMCU Mini D1 kit phát triển dựa chip Wifi SoC ESP8266EX với thiết kế dễ dàng sử dụng tích hợp sẵn mạch nạp sử dụng chip CH340 bo mạch Người dùng muốn nạp chương trình cần kết nối với máy tính qua cáp USB (loại dùng cho laptop điện thoại thông minh) Bạn sử dụng trực tiếp phần mềm IDE Arduino để lập trình với thư viện riêng để lập trình cho ESP Chương trình cho ESP8266 đọc liệu từ Firebase điều khiển LED, nói trên, chân sử dụng kết nối led D4 #include #include #define wifiName “wifiName” //Đây SSID mạng wifi bạn muốn ESP kết nối tới #define wifiPass “wifiPass” //Đây password #define LED D4 String chipId = “Den 1”; //Bạn điền đường link dự án firebase vào bên #define firebaseURl “link_dự_án.firebaseio.com” // #define authCode “ dùng lấy auth từ dự án firebase, khơng bỏ qua” int onlyt=1,onlys=1; void setupFirebase() { Firebase.begin(firebaseURl, authCode); } void setupWifi() { //kết nối wifi với tên mật từ hai mảng lưu WiFi.begin(wifiName, wifiPass); 239 Serial.println(“Hey i ‘m connecting ”); while (WiFi.status() != WL_CONNECTED) { Serial.println(“.”); delay(500); } Serial.println(); Serial.println(“I ‘m connected and my IP address: “); Serial.println(WiFi.localIP()); } void setup() { pinMode(LED, OUTPUT); WiFi.mode(WIFI_OFF); delay(50); Serial.begin(115200); delay(10); setupWifi(); setupFirebase(); } void getData() { String path = chipId; FirebaseObject object = Firebase.get(path); String trangthai = object.getString(“Trang Thai”); Serial.println(“TRANG THAI DEN: “); Serial.println(trangthai); if(trangthai!=”\0”) { if(trangthai==”SANG”) { if(onlys==1) { Firebase.setString(chipId+”/TT”,”SANG”); onlys=0; onlyt=1; }; analogWrite(LED,255); }else { if(onlyt==1) { Firebase.setString(chipId+”/TT”,”TAT”); onlyt=0; onlys=1; }; analogWrite(LED,0); } } } void loop() { getData(); } 240 Nếu bạn sử dụng authCode dự án Firebase lấy hình hướng dẫn bên dưới: Hình 12.22 Hướng dẫn lấy authCode dự án Firebase Như đến ta xây dựng ứng dụng IoTs với đồng hồ thông minh, việc điều khiển trở nên tiện lợi đa dạng Chúc bạn tiếp tục phát triển dự án hay phù hợp khác 241 TỔNG KẾT Đến bạn nắm kiến thức tảng với lập trình di động ứng dụng điều khiển Các bạn dễ dàng xây dựng ứng dụng IoTs phù hợp cho riêng Hệ điều hành Android hệ điều hành mở, ngày có nhiều hỗ trợ người dùng hết Ngày trước việc điều khiển giọng nói, khn mặt, vân tay, khó khăn, Google cung cấp nhiều hàm API để ta dễ dàng thực điều Tác giả cố gắng cập nhật, thêm nhiều nội dung Tuy nhiên kiến thức lập trình Android điều khiển ứng dụng rộng Vì tác giả chọn lọc số phần cốt lõi, phổ biến để đưa đến độc giả Hi vọng lần tái có nhiều cải tiến phù hợp Rất cám ơn quý độc giả, bạn sinh viên với lòng đam mê khoa học đọc hết sách Chúc bạn giữ nhiệt huyết sáng tạo, vận dụng kiến thức vào thực tế để giúp đất nước ngày tươi đẹp phát triển Trân trọng 242 TÀI LIỆU THAM KHẢO [1] Nguyễn Văn Hiệp, Lập trình Android ứng dụng điều khiển, NXB Đại học Quốc gia Thành phố Hồ Chí Minh, 2016 [2] Trang hỗ trợ nhà lập trình Android: http://developer.android.com, 01-9/2020 [3] Diễn đàn lập trình Android: http://stackoverflow.com/questions, 25/3/2020 [4] Cộng đồng Arduino Việt Nam: http://arduino.vn/, 28/5/2020 243 Lập trình Android ứng dụng hệ thống IoTs (Android điều khiển, IoTs,WearOS) Nguyễn Văn Hiệp, Trần Đức Thiện, Trần Mạnh Sơn Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh NHÀ XUẤT BẢN ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH Trụ sở: Phịng 501, Nhà Điều hành ĐHQG-HCM, phường Linh Trung, thành phố Thủ Đức, Thành phố Hồ Chí Minh ĐT: 028 62726361 E-mail: vnuhp@vnuhcm.edu.vn Văn phòng đại diện: Tòa nhà K-Trường Đại học Khoa học Xã hội & Nhân văn, số 10-12 Đinh Tiên Hồng, phường Bến Nghé, Quận 1,Thành phố Hồ Chí Minh ĐT: 028 62726390 Website: www.vnuhcmpress.edu.vn Chịu trách nhiệm xuất nội dung TS ĐỖ VĂN BIÊN Biên tập NGUYỄN THỊ NGỌC ANH Sửa in PHƯỚC HUỆ Trình bày bìa TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỒ HỒ CHÍ MINH Đối tác liên kết TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỒ HỒ CHÍ MINH Xuất lần thứ Số lượng in: 250 cuốn, khổ 16 x 24cm Số XNĐKXB: 1946-2022/CXBIPH/5-25/ĐHQGTPHCM QĐXB số: 199/QĐ-NXB cấp ngày 12/7/2022 In tại: Công ty TNHH In Bao bì Hưng Phú; Địa chỉ: 162A/1, KP1A, phường An Phú, TP Thuận An, Bình Dương Nộp lưu chiểu: Năm 2022 ISBN: 978-604-73-9136-3 Bản quyền tác phẩm bảo hộ Luật Xuất Luật Sở hữu trí tuệ Việt Nam Nghiêm cấm hình thức xuất bản, chụp, phát tán nội dung chưa có đồng ý tác giả Nhà xuất ĐỂ CÓ SÁCH HAY, CẦN CHUNG TAY BẢO VỆ TÁC QUYỀN! NXB ĐHQG-HCM ISBN: 978-604-73-9136-3 786047 391363 ...THS NGUYỄN VĂN HIỆP TS TRẦN ĐỨC THIỆN TS TRẦN MẠNH SƠN LẬP TRÌNH ANDROID VÀ ỨNG DỤNG TRONG CÁC HỆ THỐNG IOTS (ANDROID TRONG ĐIỀU KHIỂN, IOTS, WEAROS) hát hành nội tộc NHÀ XUẤT BẢN ĐẠI HỌC QUỐC... cơng nghệ OCR 164 Hình 8.2 Sơ đồ hệ thống ứng dụng công nghệ OCR điều khiển led màu 165 Hình 8.3 Giao diện ứng dụng OCR điều khiển led 166 Hình 8.4 Liên kết ứng dụng OCR... dựa hai ? ?Lập trình Android bản” ? ?Lập trình Android ứng dụng điều khiển” tác giả, NXB Đại học Quốc gia Thành phố Hồ Chí Minh xuất trước Chính vậy, số khái niệm bỏ bớt, hướng đến phần ứng dụng thực