Đăng ký Đăng nhập
Trang chủ Giáo án - Bài giảng Giáo án điện tử Lập trình trên thiết bị di động ...

Tài liệu Lập trình trên thiết bị di động

.PDF
216
152
93

Mô tả:

BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC CÔNG NGHỆ TP.HCM LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG Biên Soạn: ThS. Nguyễn Hà Giang www.hutech.edu.vn LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG Ấn bản 2014 MỤC LỤC I MỤC LỤC MỤC LỤC ...................................................................................................................I HƯỚNG DẪN ............................................................................................................. V BÀI 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG ....................................... 1 1.1 THIẾT BỊ DI ĐỘNG .............................................................................................. 1 1.1.1 Nền tảng Android ............................................................................................ 2 1.1.2 Nền tảng iOS .................................................................................................. 3 1.1.3 Nền tảng Windows Phone ................................................................................. 4 2.2 ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG ................................................................... 4 1.1.4 Native Application ........................................................................................... 5 1.1.5 Mobile Web Application .................................................................................... 6 1.1.6 Hybrid Application ........................................................................................... 7 1.1.7 Chọn lựa giữa Native, Web hay Hybrid ............................................................... 8 TÓM TẮT .................................................................................................................. 9 BÀI TẬP ................................................................................................................... 9 BÀI 2: PHÁT TRIỂN ỨNG DỤNG TRÊN ANDROID ........................................................ 10 2.1 HỆ ĐIỀU HÀNH ANDROID ................................................................................. 10 2.1.1 Đặc điểm cơ bản ........................................................................................... 10 2.1.2 Giao diện ..................................................................................................... 11 2.1.3 Ứng dụng ..................................................................................................... 12 2.1.4 Kiến trúc ...................................................................................................... 13 2.1.5 Quản lý bộ nhớ ............................................................................................. 15 2.1.6 Các phiên bản Android ................................................................................... 15 2.1.7 Các thiết bị khác dùng Android........................................................................ 16 2.2 PHÁT TRIỂN ỨNG DỤNG TRÊN ANDROID ........................................................... 17 2.2.1 Nền tảng xây dựng và phát triển ứng dụng Android ........................................... 18 2.2.2 Công cụ và môi trường để phát triển ứng dụng trên Android ............................... 19 2.2.3 Các bước chuẩn bị môi trường phát triển ứng dụng ............................................ 20 2.3 QUY TRÌNH PHÁT TRIỂN ỨNG DỤNG ANDROID ................................................. 23 2.3.1 Giai đoạn phát triển ....................................................................................... 25 2.3.2 Giai đoạn build & run ứng dụng Android ........................................................... 27 2.3.3 Giai đoạn publish .......................................................................................... 30 2.4 CÁC THÀNH PHẦN TRONG ỨNG DỤNG ANDROID ............................................... 31 2.4.1 Activity ........................................................................................................ 31 2.4.2 Service ........................................................................................................ 31 2.4.3 Content provider ........................................................................................... 32 2.4.4 Broadcast receiver......................................................................................... 32 2.4.5 Đối tượng Intent ........................................................................................... 33 TÓM TẮT ................................................................................................................ 35 II MỤC LỤC BÀI TẬP ................................................................................................................. 35 BÀI 3: XÂY DỰNG ACTIVITY ...................................................................................... 36 3.1 ĐẶC ĐIỂM ACTIVITY ......................................................................................... 36 3.2 VÒNG ĐỜI HOẠT ĐỘNG..................................................................................... 36 3.2.1 Tiến trình hoạt động của ứng dụng Android .......................................................36 3.2.2 Activity stack .................................................................................................38 3.2.3 Vòng đời hoạt động của Activity .......................................................................39 3.3 XÂY DỰNG ACTIVITY ........................................................................................ 40 3.3.1 Tạo ứng dụng Android với Activity ....................................................................40 3.3.2 Các thành phần trong cấu trúc project Android ..................................................44 3.3.3 Làm việc với resource .....................................................................................50 3.4 XỬ LÝ SỰ KIỆN ................................................................................................. 55 3.4.1 Đăng ký xử lý sự kiện thông qua anonymous inner class .....................................57 3.4.2 Đăng ký thông qua lớp Activity thực thi giao diện Listener ...................................61 3.4.3 Đăng ký thông qua XML Layout ........................................................................62 TÓM TẮT ................................................................................................................ 65 BÀI TẬP ................................................................................................................. 66 BÀI 4: THIẾT KẾ GIAO DIỆN ...................................................................................... 67 4.1 TỔ CHỨC GIAO DIỆN ......................................................................................... 67 4.2 THIẾT KẾ GIAO DIỆN QUA XML ......................................................................... 70 4.3 CÁC THUỘC TÍNH XML CƠ BẢN .......................................................................... 72 4.4 ANDROIDMANIFEST.XML ................................................................................. 76 4.5 RESOURCE VÀ R.JAVA....................................................................................... 77 4.5.1 Resource .......................................................................................................77 4.5.2 Sử dụng resource trong mã chương trình (java code) .........................................78 4.5.3 Tham chiếu resource trong resource khác .........................................................79 4.5.4 Nhiều phiên bản của resource và tính năng localization .......................................80 4.5.5 Tập tin R.java ................................................................................................80 4.6 LINEARLAYOUT ................................................................................................ 82 4.7 ABSOLUTELAYOUT ........................................................................................... 85 4.8 RELATIVELAYOUT ............................................................................................ 87 4.9 TABLELAYOUT .................................................................................................. 89 4.10 FRAMELAYOUT ............................................................................................... 93 4.11 SCROLLVIEW.................................................................................................. 95 4.12 GRIDLAYOUT.................................................................................................. 97 TÓM TẮT .............................................................................................................. 105 BÀI TẬP ............................................................................................................... 106 BÀI 5: THÀNH PHẦN VIEW - WIDGET ...................................................................... 109 5.1 VIEW CƠ BẢN ................................................................................................. 109 5.2 VIEW NÂNG CAO ............................................................................................ 121 MỤC LỤC III 5.3 TOAST VÀ DIALOG .......................................................................................... 138 TÓM TẮT .............................................................................................................. 142 BÀI TẬP ............................................................................................................... 142 BÀI 6: THÀNH PHẦN INTENT ................................................................................... 146 6.1 CƠ CHẾ INTENT .............................................................................................. 146 6.2 ĐỐI TƯỢNG INTENT ....................................................................................... 147 6.3 PHÂN LOẠI INTENT ........................................................................................ 149 6.3.1 Intent Filter ................................................................................................. 150 6.3.2 Cách thức xác định thành phần phù hợp với Intent ........................................... 151 6.4 SỬ DỤNG CÁC INTENT .................................................................................... 152 6.4.1 Explicit Intent thực thi Activity ....................................................................... 153 6.4.2 Implicit Intent thực thi Activity ....................................................................... 153 6.5 GỌI HIỂN THỊ ACTIVITY ................................................................................. 154 6.5.1 Gọi hiển thị không có trau đổi dữ liệu.............................................................. 154 6.5.2 Gọi hiển thị và truyền dữ liệu cho Activity con .................................................. 155 6.5.3 Gọi hiển thị và truyền/nhận dữ liệu với Activity con .......................................... 156 TÓM TẮT .............................................................................................................. 159 BÀI TẬP ............................................................................................................... 160 BÀI 7: LẬP TRÌNH SQLITE ....................................................................................... 161 7.1 CƠ SỞ DỮ LIỆU SQLITE ................................................................................... 161 7.1.1 Đặc trưng cơ bản của SQLite.......................................................................... 162 7.1.2 Lập trình với SQLite ...................................................................................... 162 7.1.3 Kiểu dữ liệu lưu trữ ....................................................................................... 163 7.1.4 Các lớp cơ bản trong gói SQLite ..................................................................... 164 7.1.5 Thư mục lưu trữ ........................................................................................... 165 7.2 ỨNG DỤNG MINH HỌA .................................................................................... 166 7.2.1 Tạo lớp kế thừa từ SQLiteOpenHelper ............................................................. 166 7.2.2 Tạo lớp chứa dữ liệu DTO là Student ............................................................... 167 7.2.3 Tạo lớp truy cập dữ liệu ................................................................................ 168 7.2.4 Thao tác insert dữ liệu .................................................................................. 171 7.2.5 Hiển thị danh sách sinh viên .......................................................................... 172 TÓM TẮT .............................................................................................................. 173 BÀI TẬP ............................................................................................................... 173 BÀI 8: ỨNG DỤNG SERVICE ..................................................................................... 175 8.1 THÀNH PHẦN SERVICE ................................................................................... 175 8.1.1 Vòng đời của Service .................................................................................... 176 8.1.2 Khuôn mẫu chung của lớp thực thi Service ...................................................... 177 8.2 ỨNG DỤNG CHƠI NHẠC ................................................................................... 179 TÓM TẮT .............................................................................................................. 184 BÀI TẬP ............................................................................................................... 185 IV MỤC LỤC BÀI 9: BROADCAST RECEIVER ................................................................................. 186 9.1 CƠ CHẾ BROADCAST RECEIVER ...................................................................... 186 9.1.1 Phân loại Broadcast ...................................................................................... 187 9.1.2 Tạo một broadcast receiver ........................................................................... 187 9.1.3 Đăng ký xử lý Broadcast Intent ...................................................................... 187 9.1.4 Một số các Broadcast Intent .......................................................................... 188 9.1.5 Phát sinh Custome Broadcast Intent ............................................................... 189 9.2 MINH HỌA BẮT VÀ HIỂN THỊ SMS ................................................................... 190 9.2.1 Cách thức bắt và xử lý SMS ........................................................................... 190 TÓM TẮT .............................................................................................................. 195 BÀI TẬP ............................................................................................................... 196 BÀI 10: THÀNH PHẦN NOTIFICATION ..................................................................... 197 10.1 THÀNH PHẦN NOTIFICATION ....................................................................... 197 10.2 THỂ HIỆN THÔNG ĐIỆP ................................................................................. 198 10.2.1 Dạng bình thường ....................................................................................... 198 10.2.2 Dạng lớn ................................................................................................... 199 10.3 TẠO THÔNG ĐIỆP ......................................................................................... 200 10.3.1 Các nội dung thông điệp bắt buộc ................................................................. 200 10.3.2 Hành động của thông điệp ........................................................................... 201 10.3.3 Tạo thông điệp đơn giản .............................................................................. 201 10.4 SỬ DỤNG THANH TIẾN ĐỘ ............................................................................ 202 10.4.1 Thanh tiến độ với thời gian xác định ............................................................. 202 10.4.2 Thanh chỉ dẫn liên tục ................................................................................. 203 TÓM TẮT .............................................................................................................. 205 BÀI TẬP ............................................................................................................... 205 TÀI LIỆU THAM KHẢO ........................................................................................... 206 HƯỚNG DẪN V HƯỚNG DẪN MÔ TẢ MÔN HỌC Môn học trang bị các kiến thức về cách thức phát triển ứng dụng trên nền tảng thiết bị di động. Bao gồm các nhóm kiến thức: giới thiệu các nền tảng hay hệ điều hành trên thiết bị di động, các công cụ và môi trường để phát triển ứng dụng trên thiết bị di động thông minh. NỘI DUNG MÔN HỌC - Bài 1. Tổng quan về lập trình trên thiết bị di động: Kiến thức cơ bản về thiết bị di động và khái niệm cơ bản về môi trường và cách thức lập trình trên thiết bị di động. - Bài 2. Phát triển ứng dụng trên Android: Cung cấp các kiến thức cơ bản về hệ điều hành Android. Trình bày mô hình quy trình phát triển ứng dụng trên thiết bị di động hỗ trợ Android. Ngoài ra giới thiệu các thành phần chính của một ứng dụng Android điển hình. - Bài 3. Xây dựng Activity trong ứng dụng Android: Bài học cung cấp kiến thức để xây dựng ứng dụng có giao diện tương tác với người dùng; cách thức hoạt động của thành phần Activity trong ứng dụng Android. Làm quen với cách thức sử dụng layout XML để khởi tạo giao diện của Activity. - Bài 4. Thiết kế giao diện: Trong bài này trình bày các loại layout cơ bản và nâng cao để tạo giao diện cho Activity. - Bài 5. Thành phần View-Widget: Cung cấp các loại widget từ cơ bản đến nâng cao, bao gồm chức năng, cách sử dụng trong thiết kế giao diện và cách tham chiếu để lập trình trong mã nguồn Java. - Bài 6. Thành phần Intent: Bài này cung cấp kỹ thuật để truyền thông và giao tiếp giữa các thành phần trong ứng dụng Android. Cách thức gọi hiển thị Activity trong cùng một ứng dụng và gọi các ứng dụng hệ thống cũng được trình bày chi tiết trong bài học. VI - HƯỚNG DẪN Bài 7. Lập trình với SQLite: Kỹ thuật để tạo và sử dụng cơ sở dữ liệu SQLite trong ứng dụng Android. - Bài 8. Xây dựng ứng dụng Service: Cung cấp mô hình tổng quát để tạo ứng dụng Android chạy background, là dạng ứng dụng khi hoạt động không có giao diện tương tác với người dùng. - Bài 9. Lập trình Broadcast Receiver: Cung cấp kỹ thuật đăng ký xử lý các thông điệp của hệ thống hay của ứng dụng. - Bài 10. Thành phần Notification: Cách thức sử dụng Notification trong ứng dụng Android. KIẾN THỨC TIỀN ĐỀ Sinh viên có kiến thức về lập trình hướng đối tượng, lập trình có giao diện tương tác với người dùng. Ngoài ra có kiến thức về cơ sở dữ liệu quan hệ và lập trình cơ sở dữ liệu. YÊU CẦU MÔN HỌC Người học phải tham dự đầy đủ các buổi lên lớp và làm bài tập đầy đủ ở nhà. Ngoài ra trước mỗi buổi học, người học phải đọc trước bài học trong bài giảng để nắm các nội dung chính. Sau mỗi giờ lên lớp, người học cần đọc thêm tài liệu do giảng viên trực tiếp đứng lớp yêu cầu. Do giới hạn của bài giảng không thể cung cấp hết và chi tiết các thành phần trong lập trình Android, vì vậy yêu cầu người học cần phải đọc thêm các tài liệu tham khảo liệt kê trong phần cuối của bài giảng. CÁCH TIẾP NHẬN NỘI DUNG MÔN HỌC Để học tốt môn này, người học cần ôn tập các bài đã học, trả lời các câu hỏi và làm đầy đủ bài tập; đọc trước bài mới và tìm thêm các thông tin liên quan đến bài học. Đối với mỗi bài học, người học đọc trước mục tiêu và tóm tắt bài học, sau đó đọc nội dung bài học. Kết thúc mỗi bài học người đọc cần phải làm tối thiểu các bài tập yêu cầu. HƯỚNG DẪN VII Ngoài ra đây là môn học trong đó có một số bài sẽ có phần thực hành là viết chương trình, do đó người học cần phải làm những bài tập phần thực hành tương ứng với những bài học. PHƯƠNG PHÁP ĐÁNH GIÁ MÔN HỌC Môn học được đánh giá gồm:  Điểm quá trình: 30%. Hình thức và nội dung do giảng viên quyết định, phù hợp với quy chế đào tạo và tình hình thực tế tại nơi tổ chức học tập. Điểm thi: 70%. Hình thức thi là báo cáo đồ án môn học. BÀI 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG 1 BÀI 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG Học xong bài này người học cần nắm được các nội dung sau. - Tổng quan về các nền tảng trên thiết bị di động thông minh. - Các khái niệm cơ bản về phát triển các dạng ứng dụng trên thiết bị di động. - Phân biệt được thế nào là Native App, Web App, và Hybrid App trên các thiết bị di động. 1.1 THIẾT BỊ DI ĐỘNG Điện thoại di động thông minh hay còn gọi là smart phone thực sự đã mang đến một cuộc cách mạng cho các thiết bị di động, trong thời kì mà công nghệ số phát triển với tốc độ chóng mặt như hiện nay. Nhu cầu sử dụng thiết bị di động đã trở nên rất phổ biến không chỉ ở Việt Nam mà trên toàn thế giới. Sự tiến bộ vượt bậc của công nghệ đã làm thay đổi hoàn toàn thói quen cũng như hành vi của con người trong cuộc sống. Chỉ với một chiếc smart phone người ta có thể thỏa mãn hầu hết các nhu cầu cơ bản như: trò chuyện, gửi tin nhắn, chơi game, nghe nhạc, lướt web, thanh toán… Thiết bị di động là phân khúc đã có bước phát triển nhanh chóng trên thị trường. Theo nhiều cuộc nghiên cứu, đến năm 2015, số lượng truy cập Internet từ thiết bị di động sẽ vượt qua truy cập trên máy tính cá nhân. Trong tương lai, thiết bị di động sẽ trở thành phương tiện giao tiếp và làm việc chủ yếu của con người. Và phần cốt lõi để tạo ra sức hấp dẫn từ những chiếc smart phone chính là hệ điều hành và các ứng dụng mà chúng đang chạy. Do sự phát triển vượt bậc của thiết bị di động nên xu hướng hiện nay các công ty phát triển phần mềm đã chuyển hướng sang phát triển phần mềm trên thiết bị di 2 BÀI 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG động. Vì thế trong những năm gần đây nhu cầu nhân lực phát triển ứng dụng trên thiết bị di động hay smart phone đang rất phát triển. Hình 1.1: Điện thoại di động thông minh. Như chúng ta đã biết hiện tại vào thời điểm quý tư năm 2013, có 3 nền tảng di động đang được dùng khá phổ biến như: Android, iOS, Windows Phone. Theo khảo sát của IDC vào quý 3 của 2013 thì bảng thị phần các hệ điều hành như sau: Hình 1.2: Thị phần hệ điều hành di động 1.1.1 Nền tảng Android Đây là nền tảng phát triển nhanh nhất hiện nay, chiếm thị phần lớn nhất. Đa dạng về chủng loại và các thiết bị. Được rất nhiều hãng điện thoại lớn chọn để cài đặt cho thiết bị như Samsung, LG, Sony, HTC… Đây là hệ điều hành dựa trên nền tảng Linux, là mã nguồn mở do Google quản lý. Android được tích hợp và hỗ trợ rất nhiều dịch vụ của Google. Các ứng dụng chạy trên BÀI 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG 3 Android được cung cấp qua Google Play và có thể cài trực tiếp trên máy thông qua tập tin nén .apk (ứng dụng được viết bằng Java cho Android). Hình 1.3: Logo của Android. 1.1.2 Nền tảng iOS iOS là hệ điều hành trên các thiết bị di động của Apple. Ban đầu hệ điều hành này chỉ được phát triển để chạy trên iPhone (gọi là iPhone OS), nhưng sau đó đã được mở rộng để chạy trên các thiết bị của Apple như iPod Touch, iPad và Apple TV. Ngày 31 tháng 5, 2011, App Store của Apple chứa khoảng 500.000 ứng dụng iOS, và được tải về tổng cộng khoảng 15 tỷ lần. Hiện tại phiên bản iOS 7 được phát hành vào tháng 11/2013. Các thiết bị dùng iOS đều do Apple độc quyền sản xuất. Các thiết bị dùng iOS luôn có thiết kế mượt mà, đồ họa lôi cuốn nên luôn được giới công nghệ ưa chuộng. Chính việc ra đời thiết bị iPhone dùng iOS và App Store đã đi tiên phong và thúc đẩy việc phát triển các ứng dụng dành cho các thiết bị di động. Như chúng ta cũng biết các ứng dụng dành cho iOS được phân phối đến người dùng thông qua App Store đều có chất lượng cao, các ứng dụng này đều được kiểm duyệt trước khi đến tay người dùng iOS. Hình 1.4: Màn hình Home Screen iOS 7. 4 BÀI 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG 1.1.3 Nền tảng Windows Phone Windows Phone là hệ điều hành của Microsoft dành cho smart phone kế tục nền tảng Windows Mobile, mặc dù chúng không tương thích với nhau. Khác với Windows Mobile, Windows Phone tập trung vào sự phát triển của Marketplace nơi các nhà phát triển có thể cung cấp sản phẩm (miễn phí hoặc có phí) tới người dùng. Windows Phone được bán vào tháng 10 năm 2010 và đầu năm 2011 tại Châu Á. Phiên bản mới nhất hiện tại là Windows Phone 8. Microsoft còn đang phát triển bản Windows Phone Apollo Plus, và trong tương lai có thể còn có Windows Blue (hay có thể là Windows 9) giúp tương thích với hệ điều hành Windows trên máy tính. Với Windows Phone, Microsoft đã phát triển giao diện người dùng mới mang tên Modern (trước đây tên là Metro) - tích hợp Hình 1.5: Home Screen WP 8. khả năng liên kết với các phần cứng và phần mềm của hãng thứ ba một cách dễ dàng. 1.2 ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG Ngoài ứng dụng được cài đặt sẵn trên thiết bị di động, thì còn các ứng dụng được cài đặt thêm vào trong quá trình sử dụng thiết bị di động. Các ứng dụng này được bên thứ 3 cung cấp thông qua các kho ứng dụng di động trên Internet. Mỗi nền tảng di động sẽ có kho ứng dụng riêng: - Android có Google Play - iOS có App Store - Windows Phone có Windows Phone Store Hình 1.6: Mobile Native – Web. BÀI 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG 5 Các dạng ứng dụng cài đặt sẵn hay được cài đặt từ các cửa hàng ứng dụng như trên được gọi là "Native application". Đây là dạng ứng dụng chính trên thiết bị di động, ứng dụng này có nhiều tính năng mạnh mẽ do tận dụng được tối đa kiến trúc cũng như là phần cứng của thiết bị. Các ứng dụng dành cho thiết bị di động có thể chia thành ba dạng như sau: - Native application - Mobile web application - Hybrid application. 1.1.4 Native Application Native application là dạng ứng dụng được cài đặt trong thiết bị và được truy cập thông qua các biểu tượng trên màn hình Home Screen của thiết bị. Tùy theo nền tảng cụ thể mà các ứng dụng này có thể được cài đặt. Ví dụ như ứng dụng iOS thì cài đặt thông qua App Store của Apple, ứng dụng Android thì được cài đặt thông qua Google Play. Các dạng ứng dụng này được phát triển chuyên dụng cho một nền tảng xác định, chúng có thể tận dụng đầy đủ các đặc tính của phần cứng thiết bị; có thể sử dụng camera, GPS, gia tốc kế, la bàn, danh sách các contact… Ngoài ra có thể sử dụng hệ thống notification của thiết bị và có thể làm việc offline mà không cần phải có kết nối đến Internet. Ứng dụng Native được viết trên các ngôn ngữ đặc biệt hướng tới nền tảng di động đó, ví dụ Objective-C cho iOS, Java cho Android. Nói chung là các ứng dụng này có hiệu suất thực thi cao và có mức độ tin cậy cao. Tuy nhiên, kiểu ứng dụng này thì rất bất tiện do được phát triển bó buộc với một nền tảng, nếu muốn phát triển trên nền tảng khác thì nhà phát triển phải xây dựng một phiên bản khác và được mã hóa theo ngôn ngữ phát triển ứng dụng trên nền tảng đó. Đa số các dạng game đồ họa cao đều phát triển theo kiểu Native Application. Ví dụ như ứng dụng nổi tiếng Candy Crush có các phiên bản khác nhau chạy trên iOS, Android và Windows Phone. 6 BÀI 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG Hình 1.7: Ứng dụng Native 1.1.5 Mobile Web Application Ứng dụng Web không thật sự là ứng dụng, chúng giống như trang Web theo nhiều phương diện. Giao diện của chúng khá giống với Native Application, tuy nhiên lại chạy trên nền của trình duyệt và thường được viết bằng HTML5. Người dùng truy cập lần đầu tiên giống như việc truy cập trang Web bình thường: chuyển tới URL xác định và sau đó có chức năng cài đặt vào màn hình Home Screen bằng cách tạo bookmark đến trang đó. Dạng ứng dụng này thật sự được phổ biến khi HTML5 xuất hiện và các nhà phát triển nhận ra có thể tạo ra trang Web giống như ứng dụng Native và chạy trên trình duyệt. Cách thể hiện của Web Application cũng làm người dùng khó phân biệt với Native Application. Ví dụ như không xuất hiện các button và bar trong trình duyệt Safari (truy cập từ iPhone). Người dùng có thể kéo ngang để di chuyển qua phần khác của ứng dụng. Và do cơ chế caching của trình duyệt, có thể đọc được nội dung của trang tin offline. Các đặc tính cũng hỗ trợ trong HTML5, như GPS, gọi, camera. Tuy nhiên các tính năng này cũng không có nhiều ứng dụng cho đến thời điểm này sử dụng. Vẫn còn nhiều các tính năng Native mà HTML5 không truy cập được (tại thời điểm hiện tại) như: notification, chạy nền, gia tốc kế. Nói chung là vẫn còn đang tranh luận về việc có nên chọn Web app để phát triển cho các ứng dụng trên di động hay không. BÀI 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG 7 1.1.6 Hybrid Application Ứng dụng này là sự kết hợp giữa Native và Web, một phần của ứng dụng là dạng Native, một phần là dạng Web. Chính vì lý do này mà nhiều người nhầm lẫn là dạng Web Application. Tương tự như Native Application, dạng này triển khai trong kho ứng dụng và tận dụng các đặc tính của thiết bị. Giống như Web Application, dựa trên HTML nên được thể hiện trong trình duyệt, thực tế là trình duyệt được nhúng trong ứng dụng. Thông thường, các công ty xây dựng các ứng dụng Hybrid như là dạng wrapper của trang web đã có. Theo cách này, các ứng dụng sẽ có mặt trên kho ứng dụng mà không cần phải tốn quá nhiều công sức khi phải xây dựng ứng dụng khác. Ứng dụng hybrid cũng khá phổ biến do cho phép cross-platform. Các thành phần mã HTML có thể được dùng lại trong các nền tảng di động khác nhau, do đó làm giảm chi phí trong việc phát triển ứng dụng trên nhiều nền tảng khác nhau. Các công cụ như PhoneGap hay Sencha Touch cho phép nhà phát triển xây dựng các mã cross-platform, tận dụng sức mạnh của HTML. Hình 1.8: Một ứng dụng Hybrid trên hai nền tảng. 8 BÀI 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG 1.1.7 Chọn lựa giữa Native, Web hay Hybrid Mỗi dạng ứng dụng trong số ba kiểu trên đều có những ưu và khuyết riêng. Có thể khảo sát theo các tiêu chí sau: - Đặc tính của thiết bị: mặc dù ứng dụng Web có thể truy cập một số đặc tính của thiết bị nhưng chỉ hạn chế, trong khi đó ứng dụng Native và các thành phần Native trong ứng dụng Hybrid có thể truy cập đầy đủ các đặc tính của thiết bị như GPS, camera, gesture và notification. - Tốc độ thực thi: ứng dụng Native có tốc độ thực thi cao nhất. - Cài đặt: việc cài đặt một ứng dụng Native hay Hybrid là rào cản lớn cho người dùng, họ phải lên kho ứng dụng để tải ứng dụng về và cài đặt. Trong khi với Web Application thì đơn giản là bookmark lại trang Web trên màn hình Home Screen. - Duy trì ứng dụng: đối với ứng dụng Native thì việc duy trì không những khó cho người dùng mà còn khó cho người phát triển ứng dụng, đặc biệt khi họ phải đối mặt với nhiều phiên bản trên các nền tảng khác nhau. Các thay đổi sẽ phải đóng gói lại trong phiên bản mới và đưa lên kho ứng dụng. Trong khi đó việc duy trì ứng dụng Web hay Hybrid thì đơn giản như việc duy trì trang Web. - Giao diện người dùng: ứng dụng Native có ưu thế hơn hai ứng dụng kia về việc xây dựng giao diện người dùng. Nhìn chung, các loại ứng dụng đều có ưu và nhược, tùy theo yêu cầu cụ thể của ứng dụng mà nhà phát triển có thể chọn cho mình kiểu ứng dụng thích hợp nhất. BÀI 1: TỔNG QUAN VỀ LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG 9 TÓM TẮT Bài học giới thiệu tổng quan về thiết bị di động cá nhân, điển hình là điện thoại di động và ngày nay thường được trang bị cấu hình mạnh nên được gọi là điện thoại thông minh. Do thiết bị này hiện tại khá phổ biến nên việc phát triển ứng dụng trên thiết bị này được yêu cầu khá nhiều. Bài học giới thiệu các hệ điều hành dành cho thiết bị di động phổ biến hiện nay là Android, iOS và Windows Phone. Bài học cũng giới thiệu các dạng ứng dụng cơ bản trên thiết bị di động thông minh. Mỗi loại ứng dụng có ưu và khuyết điểm riêng, người lập trình cần phải phân biệt rõ để chọn lựa kiểu ứng dụng thích hợp cho yêu cầu nhất. BÀI TẬP Câu 1: Hãy cho biết các nền tảng cho thiết bị di động thông minh hiện nay? Với mỗi nền tảng hãy cho biết đặc điểm, ưu và khuyết điểm. Câu 2: Hãy cho biết đặc điểm của ứng dụng Native? Liệt kê 5 ứng dụng dạng này mà bạn biết? Câu 3: Hãy cho biết đặc điểm của ứng dụng Mobile Web? Liệt kê các ứng dụng loại này mà bạn biết? Câu 4: Hãy cho biết đặc điểm của ứng dụng Hybrid? Cho biết một số các ứng dụng loại này? Câu 5: Hãy cho biết các đặc điểm cơ bản của nền tảng iOS? Câu 6: Cho biết ngôn ngữ chính để phát triển ứng dụng trên nền iOS? Câu 7: Hãy cho biết các đặc điểm cơ bản của nền tảng Windows Phone? Câu 8: Cho biết ngôn ngữ và môi trường để phát triển ứng dụng trên Windows Phone? Câu 9: Hãy tìm hiểu các ngôn ngữ để phát triển ứng dụng Web? 10 BÀI 2: PHÁT TRIỂN ỨNG DỤNG TRÊN ANDROID BÀI 2: PHÁT TRIỂN ỨNG DỤNG TRÊN ANDROID Học xong bài này người học cần nắm được các nội dung sau. - Kiến thức cơ bản hệ điều hành Android. - Các thành phần chính trong kiến trúc của nền tảng Android. - Quy trình phát triển của ứng dụng Android. - Công cụ và môi trường để phát triển ứng dụng Android. - Các thành phần chính của một ứng dụng Android. 2.1 HỆ ĐIỀU HÀNH ANDROID 2.1.1 Đặc điểm cơ bản Android là hệ điều hành dựa trên nền tảng Linux và được thiết kế chuyên dành cho các thiết bị di động có màn hình cảm ứng như: điện thoại di động thông minh (smart phone), máy tính bảng (tablet) và thiết bị lai giữa smart phone – tablet (gọi là phablet). Ban đầu, Android được phát triển bởi Android, Inc., công ty này được Google hỗ trợ tài trợ về tài chính, và Google chính thức mua lại vào năm 2005. Hệ điều hành Android ra mắt vào năm 2007 cùng với việc thành lập liên minh thiết bị cầm tay mở (Open Handset Alliance), đây là hiệp hội gồm các công ty phần cứng, phần mềm, và viễn thông với mục tiêu đẩy mạnh các tiêu chuẩn mở dành cho các thiết bị di động. Chiếc điện thoại thông minh đầu tiên chạy Android được bán vào tháng 10 năm 2008. Android là hệ điều hành mã nguồn mở, Google phát hành mã nguồn theo giấy phép Apache. Chính vì mã nguồn mở cùng với giấy phép không có nhiều ràng buộc đã
- Xem thêm -

Tài liệu liên quan

thumb
Văn hóa anh mỹ...
200
20326
146