1. Trang chủ
  2. » Thể loại khác

BÀI GIẢNG: PHÁT TRIỂN ỨNG DỤNG CHO THIẾT BỊ DI ĐỘNG. Học phần :Lập trình mobile Trình độ đào tạo : Đại học chính quy

20 2 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

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 1,18 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC MỎ ĐỊA CHẤT BÀI GIẢNG PHÁT TRIỂN ỨNG DỤNG CHO THIẾT BỊ DI ĐỘNG Tên học phần : Lập trình mobile Trình độ đào tạo : Đại học quy Dùng cho SV ngành : Công nghệ thông tin Người soạn : Hồ Thị Thảo Trang Hà Nội 11-2013 Phát triển ứng dụng cho thiết bị di động Hồ Thị Thảo Trang Mục lục Chương Những kiến thức thiết bị di động lập trình cho thiết bị di động 1.1 Các thiết bị di động .5 Phân loại thiết bị di động Các hệ điều hành thiết bị di động thông minh Xu hướng di động hóa 11 1.2 Tổng quan lập trình cho thiết bị di động 13 Chương Nhập mơn lập trình Android .15 2.1 Thiết bị Android - hệ điều hành máy ảo Dalvik 15 Giao diện ứng dụng 16 Phát triển 19 Bảo mật tính riêng tư 22 Máy ảo Dalvik .24 2.2 Lập trình cho thiết bị Android 28 Bộ phát triển phần mềm Android (Android SDK) 28 Môi trường phát triển 31 Hello Android (Android “Hello world”) .38 Chương Các Activity, Fragment Intent 50 3.1 Activity .50 Vòng đời Activity 50 Cửa sổ hộp thoại (Dialog) .53 3.2 Intent việc tương tác Activity .56 Sử dụng Intent .56 Giải “xung đột Intent” 58 Lấy kết trả từ Activity thông qua Intent .59 Truyền liệu Activity với Intent 62 Sử dụng Intent để gọi ứng dụng sẵn có hệ điều hành .63 Đối tượng Intent 66 3.3 Fragment 67 Thêm fragment thời gian thực thi (không khai báo layout): .71 Vòng đời Fragment 73 Tương tác fragment 75 Phát triển ứng dụng cho thiết bị di động Hồ Thị Thảo Trang Chương Giao diện người dùng ứng dụng Android 77 4.1 View ViewGroup 77 LinearLayout 78 AbsoluteLayout .83 TableLayout 83 RelativeLayout 84 FrameLayout 86 ScrollView .87 4.2 Bố cục giao diện thích nghi với hướng hình (ngang|dọc) 88 Neo view theo cạnh hình 89 Thay đổi kích thước vị trí 90 Điều khiển hướng hình 92 4.3 Sử dụng trình đơn (Menu) 93 Trình đơn .95 Trình đơn ngữ cảnh .96 4.4 Sử dụng tác vụ (Action Bar) 97 4.5 Xử lý kiện tương tác với thành phần đồ họa .100 Nạp chồng hàm xử lý kiện Activity 100 Đăng ký kiện cho View 101 Chương Thiết kế giao diện người dùng với View 102 5.1 Sử dụng View Android 102 TextView .102 Button ImageButton 102 EditText .103 CheckBox 103 RadioButton RadioGroup .103 ToggleButton .103 ProgressBar 106 5.2 TimePicker DatePicker .108 TimePicker 108 DatePicker 111 5.3 Hiển thị ảnh với ImageView Gallery 113 5.4 Sử dụng ListView để hiển thị danh sách dài 118 ListView 118 Phát triển ứng dụng cho thiết bị di động Hồ Thị Thảo Trang SpinnerView 121 5.5 Hiển thị nội dung trang web với WebView 123 Chương Lưu trữ liệu 127 6.1 Lưu trữ liệu cố định với shared preferences 127 6.2 Lưu trữ liệu với file nhớ nhớ 132 Làm việc với file nhớ 132 Làm việc với file nhớ 136 6.3 CSDL SQLite ứng dụng Android 137 Tạo lớp DBAdapter .137 Chương Lập trình mạng với Android .142 7.1 Sử dụng web services thông qua giao thức HTTP .142 7.2 Tải liệu nhị phân thông qua HTTP 144 7.3 Tải liệu dạng text thông qua HTTP 146 7.4 Web service với liệu XML 148 7.5 Web service với liệu JSON .152 Chương Google Play Store việc phân phối ứng dụng .156 8.1 Chuẩn bị ứng dụng trước phân phối 156 Đánh số phiên phần mềm .156 Chứng thực số cho ứng dụng Android 157 8.2 Phân phối ứng dụng 162 Sử dụng công cụ adb 162 Phân phối web server 162 Phân phối Google Play Store 163 Phát triển ứng dụng cho thiết bị di động Hồ Thị Thảo Trang Chương Những kiến thức thiết bị di động lập trình cho thiết bị di động 1.1 Các thiết bị di động Phân loại thiết bị di động Các thiết bị di động trải qua nhiều năm phát triển với nhiều loại thiết bị khác nhau, kể đến máy nhắn tin di động, điện thoại di động, thiết bị trợ giúp cá nhân (PDA, Palm ), điện thoại thơng minh, máy tính bảng Các thiết bị nghe nhìn khác máy ảnh, máy quay kỹ thuật số, máy nghe nhạc xếp vào "thiết bị di động" Tuy nhiên giáo trình bỏ qua thiết bị mang tính chất lịch sử (đã khơng cịn gần khơng cịn) thiết bị nghe nhìn mà đề cập đến loại thiết bị điện toán cầm tay phổ biến thị trường tiêu dùng Các thiết bị thường phân theo loại sau: Điện thoại di động (basic phone featured phones) - điện thoại di động với tính nghe, gọi, danh bạ số ứng dụng dựng sẵn đơn giản Các thiết bị thường có kích thước nhỏ, hình độ phân giải thấp, có khơng có bàn phím, pin dùng lâu, kết nối khả phát triển thêm phần mềm nhà phát triển (gần như) khơng có Điện thoại di động thơng minh (smart phones) - điện thoại trang bị cấu hình tốt hơn, chạy hệ điều hành thông minh với SDK cho phép lập trình viên phát triển đa dạng ứng dụng phục vụ mục đích sống Các thiết bị thường có kích thước hình lớn nhiều so với featured phones, cấu hình phần cứng (CPU, RAM, GPU, camera ) cao, đa dạng kết nối (Wifi, Bluetooth, 3G/4G, GPS, Glonass, NFC ), có khơng nhiều loại cảm biến (cảm biến gia tốc, la bàn, cảm biến tiệm cận, cảm biến ánh sáng, quay hồi chuyển ) Với ngần trang bị, dù thường trang bị thỏi pin lớn featured phones, thời lượng pin điện thoại thông thường hạn chế so với featured phones Máy tính bảng - thiết bị thơng minh, tương tự smart phones có kích thước hình lớn nhiều (thơng thường từ 7"-13"), có khơng có hỗ trợ khe cắm SIM-card (phục vụ việc nhắn tin, gọi điện truy cập internet qua WiFi/3G) Điện thoại thơng minh lai máy tính bảng (phablet) - loại thiết bị lai smartphone máy tính bảng, tính smart phone, trang bị hình cỡ lớn smart phone thơng thường nhỏ kích thước phổ biến hình tablet Màn hình phablet thường có kích thước 5.0"-6.9" Trong lập trình, phablet thường xếp gộp chung vào smart phones Do khả lập trình điện thoại hạn chế (thường phải làm việc với lớp thấp hơn, khơng có công cụ phát triển tiện dụng) nên điện thoại chiếm thị phần chủ yếu, nội dung giáo trình "Phát triển ứng dụng di động" tập trung nhắm đến thiết bị thông minh (điện thoại thơng minh, máy tính bảng điện thoại lai) Về mặt phần mềm, thiết bị tương đương, giáo trình gọi "Lập trình cho điện thoại thơng minh" Phát triển ứng dụng cho thiết bị di động Hồ Thị Thảo Trang Biểu đồ thể tỷ lệ thị phần Smart Phones Featured Phones năm gần đây, liệu khảo sát tập người trưởng thành Hoa Kỳ (theo số liệu PewSearchCenter, tháng năm 2013): Các hệ điều hành thiết bị di động thông minh Các hệ điều hành thiết bị di động đại tổng hợp nhiều tính máy tính cá nhân truyền thống hỗ trợ tính đặc trưng cho thiết bị di động hình cảm ứng, sóng di động (GSM/CDMA), 3G/4G, Bluetooth, WiFi, GPS, Glonass, chụp ảnh, quay phim, nhận dạng giọng nói, ghi âm, trình chơi nhạc, NFC, phát hồng ngoại Những hệ điều hành di động phổ biến gồm có: Android Android hệ điều hành miễn phí, mã nguồn mở, phát triển "gã khổng lồ" Google Android dựa tảng Linux thiết kế dành cho thiết bị di động có hình cảm ứng điện thoại thơng minh máy tính bảng Ban đầu, Android phát triển Tổng công ty Android, với hỗ trợ tài từ Google sau Google mua lại vào năm 2005 Android mắt vào năm 2007 với tuyên bố thành lập Liên minh thiết bị cầm tay mở: hiệp hội gồm công ty phần cứng, phần mềm, viễn thông với mục tiêu đẩy mạnh tiêu chuẩn mở cho thiết bị di động Chiếc điện thoại chạy Android bán vào tháng 10 năm 2008 Android có mã nguồn mở Google phát hành mã nguồn theo Giấy phép Apache Chính mã nguồn mở với giấy phép khơng có nhiều ràng buộc cho phép nhà phát triển thiết bị, mạng di động lập trình viên nhiệt huyết điều chỉnh phân phối Android Phát triển ứng dụng cho thiết bị di động Hồ Thị Thảo Trang cách tự Ngồi ra, Android cịn có cộng đồng lập trình viên đơng đảo chun viết ứng dụng để mở rộng chức thiết bị, loại ngơn ngữ lập trình Java có sửa đổi Vào tháng 10 năm 2012, có khoảng 700.000 ứng dụng Android, số lượt tải ứng dụng từ Google Play, cửa hàng ứng dụng Android, ước tính khoảng 25 tỷ lượt Những yếu tố giúp Android trở thành tảng điện thoại thông minh phổ biến giới, vượt qua Symbian vào quý năm 2010, công ty công nghệ lựa chọn họ cần hệ điều hành khơng nặng nề, có khả tinh chỉnh, giá rẻ chạy thiết bị cơng nghệ cao thay tạo dựng từ đầu Kết thiết kế để chạy điện thoại máy tính bảng, Android xuất TV, máy chơi game thiết bị điện tử khác Bản chất mở Android khích lệ đội ngũ đơng đảo lập trình viên người đam mê sử dụng mã nguồn mở để tạo dự án cộng đồng quản lý Những dự án bổ sung tính cao cấp cho người dùng thích tìm tịi đưa Android vào thiết bị ban đầu chạy hệ điều hành khác Android chiếm 75% thị phần điện thoại thơng minh tồn giới vào thời điểm q năm 2012, với tổng cộng 500 triệu thiết bị kích hoạt 1,3 triệu lượt kích hoạt ngày Sự thành công hệ điều hành khiến trở thành mục tiêu vụ kiện liên quan đến phát minh, góp mặt gọi "cuộc chiến điện thoại thông minh" công ty công nghệ iOS iOS hệ điều hành thiết bị di động Apple Ban đầu hệ điều hành phát triển để chạy iPhone (gọi iPhone OS), sau mở rộng để chạy thiết bị Apple iPod touch, iPad Apple TV Ngày 31 tháng 5, 2011, App Store Apple chứa khoảng 500 000 ứng dụng iOS, tải tổng cộng khoảng 15 tỷ lần Trong quý năm 2010, có khoảng 26% điện thoại thơng minh chạy hệ điều hành iOS, sau hệ điều hành Android Google Symbian Nokia Giao diện người dùng iOS dựa sở thao tác tay Người dùng tương tác với hệ điều hành thông qua nhiều động tác tay hình cảm ứng thiết bị Apple Phiên là: 6.1.4 (ra ngày 2/5/2013) dành riêng cho iPhone 6.1.3 (ra ngày 19/3/2013) cho thiết bị iOS lại Blackberry BlackBerry OS tảng phần mềm tư hữu RIM (Research In Motion) phát triển cho dòng sản phẩm cầm tay BlackBerry BlackBerry OS cung cấp khả đa nhiệm, thiết kế cho thiết bị sử dụng phương pháp nhập đặc biệt, thường trackball hình cảm ứng Hệ điều hành hỗ trợ MIDP 1.0 WAP 1.2 Các phiên trước cho phép đồng hóa khơng dây thư điện tử lịch với Microsoft Exchange Server , với Lotus Domino Phiên OS hỗ trợ MIDP 2.0, có khả kích hoạt khơng dây hồn tồn đồng thư điện tử, lịch, công việc, ghi danh bạ với Exchange, khả hỗ trợ Novell GroupWise, Lotus Notes kết hợp với BlackBerry Enterprise Server Phát triển ứng dụng cho thiết bị di động Hồ Thị Thảo Trang Các cập nhật cho BlackBerry OS có nhà mạng cung cấp thơng qua dịch vụ BlackBerry OTASL Các bên thứ ba phát triển ứng dụng dùng API tư hữu BlackBerry, ứng dụng sử dụng chức giới hạn cần phải chứng thực trước cài đặt Việc chứng thực xác nhận tác giả chương trình, khơng bảo đảm tính an tồn bảo mật ứng dụng BlackBerry 10 Là hệ hệ điều hành BlackBerry OS, phát triển BlackBerry Limited (Research In Motion đổi tên), dành cho điện thoại lẫn máy tính bảng Thiết bị gần sử dụng hệ điều hành smartphone cao cấp BlackBerry Q10 Windows phone Windows Phone hệ điều hành Microsoft dành cho smartphone kế tục tảng Windows Mobile, chúng khơng tương thích với Khác với Windows Mobile, Windows Phone tập trung vào phát triển Marketplace - nới nhà phát triển cung cấp sản phẩm (miễn phí có phí) tới người dùng Windows Phone bán vào tháng 10 năm 2010 đầu năm 2011 Châu Á Phiên tài Windows Phone Microsoft phát triển Windows Phone Apollo Plus, tương lai cịn có Windows Blue (hay Windows 9) giúp tương thích với hệ điều hành Windows máy tính Với Windows Phone , Microsoft phát triển giao diện người dùng mang tên Modern (trước tên Metro) tích hợp khả liên kết với phần cứng phần mềm hãng thứ ba cách dễ dàng Ngày 11 tháng năm 2011, trước mặt báo giới, CEO Microsoft Steve Balmer CEO Nokia Stephen Elop công bố trở thành đối tác nhau, đồng nghĩa với việc Windows Phone trở thành hệ điều hành Nokia, thay Symbian già cỗi Sự kiện đánh dấu mốc quan trọng chiến với Android iOS, ví "cuộc đua ngựa" Theo đó, cơng ty hợp tác với Microsoft việc sản xuất điện thoại Windows Phone (hiện Windows Phone 8) Nokia hứa hẹn sẽ:      Tập trung vào Windows Phone 7/8 Đưa thiết kế mới, bổ sung gói ngơn ngữ phổ biến chúng nhiều cho người tiêu dùng thông qua thiết kế phần cứng, nhiều phân khúc giá thị trường Hợp tác lĩnh vực marketing, phát triển phần mềm cho điện thoại di động Bing trở thành tảng tìm kiếm thiết bị dịch vụ Nokia Kho ứng dụng riêng Nokia tích hợp chung với Marketplace Ngồi hệ điều hành trên, thị trường cịn có thiết bị chạy hệ điều hành khác với thị phần không đáng kể như: Bada (của Samsung), BlackBerry Tablet OS (cho máy tính bảng BlackBerry PlayBook), GridOS (do Fusion Garage phát triển dựa Android), Linux, Brew (của Qualcomm), webOS (của Palm, sau HP mua lại, lại bán lại cho LG hồi tháng năm 2013), Tizen (do Samsung Intel phối hợp hỗ trợ, dựa LiMo - Linux for Mobile), Windows RT (của Microsoft cho thiết bị sử dụng chip kiến trúc ARM) Phát triển ứng dụng cho thiết bị di động Hồ Thị Thảo Trang Một số tổ chức, công ty nỗ lực phát triển hệ điều hành di động mới, nhắc đến nhiều số kể đến: Aliyun OS Aliyun OS đời tháng năm 2011, hệ điều hành dựa Linux, phát triển AliClound, công ty Alibaba Group, Trung Quốc Ý tưởng chung hệ điều hành Aliyun "đám mây hóa" tính thiết bị di động (clound functionality) Theo Google Aliyun phát triển từ hệ điều hành mã nguồn mở Android mình, Alibaba phủ nhận điều này, nhiên hệ điều hành chạy hầu hết ứng dụng Android Trên chợ ứng dụng Aliyun chí cịn chứa nhiều ứng dụng Android vi phạm quyền Thiết bị chạy hệ điều hành điện thoại K-Touch W700 FireFox OS Là hệ điều hành cho điện thoại di động máy tính bảng, phát triển Linux, phát triển tổ chức phi lợi nhuận Mozilla Foundation (tổ chức làm trình duyệt FireFox tiếng) Được thiết kế để cung cấp hệ thống toàn diện cho thiết bị di động, sử dụng công nghệ mở phổ biến HTML5, Javascript, web API với khả truy cập trực tiếp vào phần cứng thiết bị, FireFox OS nhắm đến cạnh tranh với ông lớn khác Apple's iOS, Google's Android, Microsoft's Windows Phone, hệ điều hành xuất Ubuntu Touch OS FireFox OS giới thiệu tháng năm 2012 vài điện thoại chạy Android, kit Raspberry Pi vào năm 2013 Tháng năm 2013, triển lãm thiết bị điện tử tiêu dùng quốc tế CES 2013, hãng ZTE xác nhận sản xuất điện thoại chạy hệ điều hành đến tháng năm 2013, Telefónica thức giới thiệu điện thoại thương mại chạy FireFox OS Tây Ban Nha: điện thoại ZTE Open Ubuntu Touch OS Là giao diện di động hệ điều hành mã nguồn mở tiếng - Ubuntu Canonical Ltd., thiết kế dành cho thiết bị di động với hình cám ứng điện thoại thơng minh máy tính bảng Điểm mạnh Ubuntu Touch việc dựa công nghệ lõi hệ điều hành Ubuntu cho máy tính, giúp ứng dụng dành cho Ubuntu Ubuntu Touch chạy lẫn mà không cần phát triển lại phiên riêng Ngoài thiết bị chạy Ubuntu Touch biến thành Ubuntu cho máy tính với đầy đủ tính máy tính cá nhân kết nối vào hình ngồi kết nối qua đế (dock) Với phổ biến hệ điều hành Ubuntu khả tương thích Ubuntu Touch, trở thành hệ điều hành phổ biến tương lai Bảng thể tương quan thị phần hệ điều hành di động thông minh phổ biến từ năm 2012-2013, theo số liệu ngày 16/05/2013 IDC Worldwide Quarterly Mobile Phone Tracker, May 2013 (đơn vị: triệu thiết bị) HĐH Số lượng Q1- Thị phần Q1- Số lượng Q1- Thị phần Q12013 2013 2012 2012 Tỷ lệ tăng trưởng Phát triển ứng dụng cho thiết bị di động Android Hồ Thị Thảo Trang 162.1 75.0% 90.3 59.1% 79.5% 37.4 17.3% 35.1 23.0% 6.6% Windows Phone 7.0 3.2% 3.0 2.0% 133.3% BlackBerry OS 6.3 2.9% 9.7 6.4% -35.1% Linux 2.1 1.0% 3.6 2.4% -41.7% Symbian 1.2 0.6% 10.4 6.8% -88.5% Others 0.1 0.0% 0.6 0.4% -83.3% 216.2 100.0% 152.7 100.0% 41.6% iOS Total Biểu đồ cho thấy thay đổi sản lượng thị phần hệ điều hành di động từ năm 2007 đến (nguồn wikipedia.org) 10 Phát triển ứng dụng cho thiết bị di động Hồ Thị Thảo Trang Xu hướng di động hóa 11 Phát triển ứng dụng cho thiết bị di động Exabytes/month Hồ Thị Thảo Trang Tốc độ tăng trưởng Mobile Data Internet 12.00 10.8 EB 10.00 8.00 6.9 EB 6.00 4.2 EB 4.00 2.4 EB 2.00 0.60 EB 1.3 EB 0.00 2011 2012 2013 2014 2015 2016 Theo số liệu thống kê Cisco – Mobile Global, 2012 EB = million terabytes = billion gigabytes Tại Việt Nam: • Thuê bao di động: 120 triệu • Thuê bao 3G: 20 triệu • Tỷ lệ người dùng smartphone: 21% 12 Phát triển ứng dụng cho thiết bị di động Hồ Thị Thảo Trang Thói quen sử dụng thiết bị truy cập Internet Cimigo netcitizens report 2012 1.2 Tổng quan lập trình cho thiết bị di động Người lập trình ứng dụng cho thiết bị di động truyền thống luôn phải nhớ đầu nguyên tắc "tiết kiệm tối đa tài nguyên" thiết bị, dùng cách để tơi ưu hóa độ phức tạp tnhs toán lượng nhớ cần sử dụng Tuy nhiên với phát triển nhanh chóng phần cứng, thiết bị di động đại thường có cấu hình tốt, với chip xử lý mạnh mẽ, nhớ (RAM) lớn, khiến việc lập trình cho thiết bị di dộng trở nên dễ dàng hết Các kit phát triển hãng sản xuất hệ điều hành di động hành thường làm suốt hầu hết tác vụ liên quan đến quản lý nhớ, quản lý tiến trình Lập trình viên quan tâm đến việc tối ưu hóa sử dụng tài nguyên tập trung vào việc "lập trình", phát triển tính cho ứng dụng lập trình cho máy tính cá nhân Tuy nhiên, đặc trưng di động thiết bị đem đến nhiều vấn đề mà người lập trình cần phải quan tâm như: kết nối mạng thiết bị di động thường không ổn định (tùy thuộc vào vị trí, tốc độ di truyển, hạ tầng mạng…), việc quản lý tài nguyên để tối ưu hóa lượng điện tiêu thụ (tiết kiệm pin) Ngồi việc việc phân mảnh (quá nhiều loại thiết bị, nhiều kích thước độ phân dải hình, nhiều cấu hình phần cứng khác ) thiết bị di động khiến việc kiểm thử ứng dụng khó khăn Ngoài hãng phát triển hệ điều hành di động làm kit phát triển (SDK) mơi trường phát triển tích hợp (IDE) thuận tiện cho việc viết code, biên dịch, gỡ rỗi, kiểm thử xuất phần mềm So với máy tính cá nhân, thiết bị di động đại trang bị thêm nhiều tính giúp việc tương tác với người dùng trở nên thuận tiện (màn hình cảm ứng đa điểm, tương tác giọng nói, cử ), loại kết nối đa dạng (NFC, GPS, 3G, 4G, bluetooth, IR ), cảm biến phong phú giúp trải nghiệm đa dạng (cảm biến ánh sáng, cảm biến tiệm cận, la bàn, cám biến chuyển động, gia tốc kế ) Người lập trình, tùy thuộc vào ứng dụng cụ thể, sử dụng đến tính đặc trưng để đem đến cho người dùng trải nghiệm tốt thiết bị di động Xét theo thị phần thị trường, hệ điều hành phổ biến cho thiết bị Google's Android, Apple's iOS Microsoft's Windows Phone Mỗi ứng dụng thành công thường phát triển cho hệ Mỗi hệ có chợ ứng dụng hãng (Google có Google Play Store, Apple có Apple AppStore, Microsoft có Windows Phone Store) 13 Phát triển ứng dụng cho thiết bị di động Hồ Thị Thảo Trang với nhiều khách hàng tiềm năng, giúp người phát triển xuất ứng dụng miễn phí phí với chi phí định Bảng liệt kê hệ điều hành với ngơn ngữ IDE phổ biến HĐH Ngơn ngữ lập trình IDE Android Java IBM's Eclipse với Google's ADT plugins iOS Objective-C Apple' Xcode Windows Phone C# Microsoft's Visual Studio cho Windows phone Ngoài việc phát triển ứng dụng cho hệ điều hành kể trên, lập trình viên lựa chọn thư viện lập trình đa nền, để phát triển ứng dụng, phổ biến ứng dụng đa ứng dụng viết ngôn ngữ web (HTML, CSS & Javascript) Trình duyệt web thiết bị di động đương thời có đầy đủ tính lẫn hiệu năng chạy tốt ứng dụng web đại, ứng dụng web đặt máy chủ đóng gói thành native app (ứng dụng cho hệ điều hành) qua số công cụ đóng gói hãng thứ ba Cơng cụ đóng gói ứng dụng Web cho thiết bị di động phổ biến PhoneGap, phát triển Nitobi, sau Adobe mua lại PhoneGap cho phép lập trình viên phát triển ứng dụng di động sử dụng ngôn ngữ web phổ biến (HTML5, CSS3 Javascript), với tính bổ sung, cho phép ứng dụng truy cập vào lớp phần cứng thiết bị gia tốc kế, máy ảnh, GPS đóng gói thành ứng dụng cho nhiều hệ điều hành khác nhau, bao gồm Android, iOS, Blackberry, BlackBerry 10, Windows Phone, Windows 8, Tizen, Bada Tuy nhiên, nhược điểm ứng dụng loại có hiệu suất thấp (chạy khơng "mượt mà" ứng dụng native) không đồng với tất trình duyệt web di động (có thể chạy hiển thị khác hệ điều hành với trình duyệt khác nhau) Việc chọn hệ điều hành/thư viện để phát triển tùy thuộc vào nhiều yếu tố khác mục đích ứng dụng, đối tượng sử dụng, tiềm hệ điều hành, yêu cầu kỹ thuật cụ thể thói quen kỹ lập trình viên Trong khn khổ có hạn, giáo trình tập trung sâu vào việc phát triển ứng dụng cho hệ điều hành di động phổ biến - Google's Android 14 Phát triển ứng dụng cho thiết bị di động Hồ Thị Thảo Trang Chương Nhập môn lập trình Android 2.1 Thiết bị Android - hệ điều hành máy ảo Dalvik Ngày tháng 11 năm 2007, Liên minh thiết bị cầm tay mở (Open Handset Alliance), hiệp hội bao gồm nhiều công ty có Texas Instruments, Tập đồn Broadcom, Google, HTC, Intel, LG, Tập đoàn Marvell Technology, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel T-Mobile thành lập với mục đích phát triển tiêu chuẩn mở cho thiết bị di động Cùng ngày, Android mắt với vai trò sản phẩm Liên minh, tảng thiết bị di động xây dựng nhân Linux phiên 2.6 Chiếc điện thoại chạy Android bán HTC Dream, phát hành ngày 22 tháng 10 năm 2008 Biểu trưng hệ điều hành Android rôbốt màu xanh hãng thiết kế Irina Blok California vẽ Từ năm 2008, Android trải qua nhiều lần cập nhật để cải tiến hệ điều hành, bổ sung tính sửa lỗi lần phát hành trước Mỗi nâng cấp đặt tên theo thứ tự bảng chữ cái, theo tên ăn tráng miệng; ví dụ phiên 1.5 Cupcake (bánh lan nhỏ có kem) tiếp nối phiên 1.6 Donut (bánh vòng) Phiên 4.3 Jelly Bean (kẹo dẻo) Vào năm 2010, Google mắt loạt thiết bị Nexus—một dịng sản phẩm bao gồm điện thoại thơng minh máy tính bảng chạy hệ điều hành Android, đối tác phần cứng sản xuất HTC hợp tác với Google điện thoại thông minh Nexus đầu tiên, Nexus One Kể từ nhiều thiết bị gia nhập vào dòng sản phẩm này, điện thoại Nexus máy tính bảng Nexus 10, LG Samsung sản xuất Google xem điện thoại máy tính bảng Nexus thiết bị Android chủ lực mình, với tính phần cứng phần mềm Android Bảng thể tỷ lệ sử dụng phiên Android tính đến ngày 01/08/2013 Phiên Tên mã Ngày phát hành Phiên API Tỷ lệ 4.3 Jelly Bean July 24, 2013 18 0.0% 4.2.x Jelly Bean November 13, 2012 17 6.5% 4.1.x Jelly Bean July 9, 2012 16 34.0% 4.0.3–4.0.4 Ice Cream Sandwich December 16, 2011 15 22.5% 3.2 Honeycomb July 15, 2011 13 0.1% 3.1 Honeycomb May 10, 2011 12 0.0% 2.3.3–2.3.7 Gingerbread February 9, 2011 10 33.0% 2.3–2.3.2 Gingerbread December 6, 2010 0.1% 2.2 Froyo May 20, 2010 2.5% 2.0–2.1 Eclair October 26, 2009 1.2% 1.6 Donut September 15, 2009 0.1% 1.5 Cupcake April 30, 2009 0% 15 Phát triển ứng dụng cho thiết bị di động Hồ Thị Thảo Trang Giao diện ứng dụng Giao diện Giao diện người dùng Android dựa nguyên tắc tác động trực tiếp, sử dụng cảm ứng chạm tương tự động tác đời thực vuốt, chạm, kéo dãn thu lại để xử lý đối tượng hình Sự phản ứng với tác động người dùng diễn gần lập tức, nhằm tạo giao diện cảm ứng mượt mà, thường dùng tính rung thiết bị để tạo phản hồi rung cho người dùng Những thiết bị phần cứng bên gia tốc kế, quay hồi chuyển cảm biến khoảng cách số ứng dụng sử dụng để phản hồi số hành động khác người dùng, ví dụ điều chỉnh hình từ chế độ hiển thị dọc sang chế độ hiển thị ngang tùy theo vị trí thiết bị, cho phép người dùng lái xe đua xoay thiết bị, giống điều khiển vô-lăng Các thiết bị Android sau khởi động hiển thị hình chính, điểm khởi đầu với thơng tin thiết bị, tương tự khái niệm desktop (bàn làm việc) máy tính để bàn Màn hính Android thường gồm nhiều biểu tượng (icon) tiện ích (widget); biểu tượng ứng dụng mở ứng dụng tương ứng, cịn tiện ích hiển thị nội dung sống động, cập nhật tự động dự báo thời tiết, hộp thư người dùng, mẩu tin thời hình Màn hình gồm nhiều trang xem cách vuốt trước sau, giao diện hình Android tùy chỉnh mức cao, cho phép người dùng tự đặt hình dáng hành vi thiết bị theo sở thích Những ứng dụng hãng thứ ba có Google Play kho ứng dụng khác cho phép người dùng thay đổi "chủ đề" hình chính, chí bắt chước hình dáng hệ điều hành khác Windows Phone chẳng hạn Phần lớn nhà sản xuất, số nhà mạng, thực thay đổi hình dáng hành vi thiết bị Android họ để phân biệt với hãng cạnh tranh 16 Phát triển ứng dụng cho thiết bị di động Hồ Thị Thảo Trang Hình Màn hình với biểu tượng (icon) tiện ích (widget) Ở phía hình trạng thái, hiển thị thơng tin thiết bị tình trạng kết nối Thanh trạng thái "kéo" xuống để xem hình thơng báo gồm thơng tin quan trọng cập nhật ứng dụng, email hay tin nhắn SMS nhận, mà không làm gián đoạn khiến người dùng cảm thấy bất tiện Trong phiên đời đầu, người dùng nhấn vào thơng báo để mở ứng dụng tương ứng, sau thông tin cập nhật bổ sung theo tính năng, có khả gọi ngược lại có gọi nhỡ mà khơng cần phải mở ứng dụng gọi điện Thông báo nằm người dùng đọc xóa 17 Phát triển ứng dụng cho thiết bị di động Hồ Thị Thảo Trang Hình Thanh trạng thái "kéo" xuống với thông báo bên Một điểm mạnh hệ điều hành Android cho phép người dụng chạy nhiều ứng dụng lúc (đa nhiệm - multi-tasking) Việc chuyển qua chuyển lại ứng dụng thực cách dễ dàng cách bấm giữ phím Home để hiển thị danh sách ứng dụng chạy Hình Danh sách ứng dụng chạy thiêt bị (đa nhiệm) Ứng dụng Android có lượng ứng dụng bên thứ ba ngày nhiều, chọn lọc đặt cửa hàng ứng dụng Google Play hay Amazon Appstore để người dùng lấy về, cách tải xuống cài đặt tập tin APK từ trang web khác Các ứng dụng Cửa hàng Play cho phép người dùng duyệt, tải cập nhật ứng dụng Google nhà phát triển thứ ba phát hành Cửa hàng Play cài đặt sẵn thiết bị thỏa mãn điều kiện tương thích Google Ứng dụng tự động lọc danh sách ứng dụng tương thích với thiết bị người dùng, nhà phát triển giới hạn ứng dụng họ dành cho nhà mạng cố định quốc gia cố định lý kinh doanh Nếu người dùng mua ứng dụng mà họ cảm thấy khơng thích, họ hồn trả tiền sau 15 phút kể từ lúc tải về, vài nhà mạng cịn có khả mua giúp ứng dụng Google Play, sau tính tiền vào hóa đơn sử dụng hàng tháng người dùng Tính đến tháng năm 2013, có 975.000 ứng dụng dành cho Android cửa hàng Google Play, số lượng ứng dụng tải từ Cửa hàng Play ước tính đạt gần 30 tỷ 18 Phát triển ứng dụng cho thiết bị di động Hồ Thị Thảo Trang Hình Giao diện cửa hàng Play điện thoại Google Nexus Các ứng dụng cho Android phát triển ngôn ngữ Java sử dụng Bộ phát triển phần mềm Android (SDK) SDK bao gồm đầy đủ công cụ dùng để phát triển, gồm có cơng cụ gỡ lỗi, thư viện phần mềm, giả lập điện thoại dựa QEMU, tài liệu hướng dẫn, mã nguồn mẫu, hướng dẫn bước Môi trường phát triển tích hợp (IDE) hỗ trợ thức Eclipse sử dụng phần bổ sung Android Development Tools (ADT) Các cơng cụ phát triển khác có sẵn, gồm có Bộ phát triển gốc dành cho ứng dụng phần mở rộng viết C C++, Google App Inventor, môi trường đồ họa cho nhà lập trình bắt đầu, nhiều tảng ứng dụng web di động đa tảng phong phú Phát triển Android Google tự phát triển riêng thay đổi cập nhật hồn thiện, mã nguồn cơng khai Mã nguồn này, không sửa đổi, chạy 19 Phát triển ứng dụng cho thiết bị di động Hồ Thị Thảo Trang số thiết bị, thường thiết bị thuộc dịng Nexus Có nhiều thiết bị có chứa thành phần giữ quyền nhà sản xuất đặt vào thiết bị Android họ Hạt nhân Linux Android có hạt nhân dựa nhân Linux phiên 2.6, kể từ Android 4.0 Ice Cream Sandwich (bánh kẹp kem) trở sau, phiên 3.x, với middleware, thư viện API viết C, phần mềm ứng dụng chạy tảng ứng dụng gồm thư viện tương thích với Java dựa Apache Harmony Android sử dụng máy ảo Dalvik với trình biên dịch động để chạy 'mã dex' (Dalvik Executable) Dalvik, thường biên dịch sang Java bytecode Nền tảng phần cứng Android kiến trúc ARM Người ta hỗ trợ x86 thông qua dự án Android x86 (chip Intel Atom), Google TV sử dụng phiên x86 đặc biệt Android Nhân Linux dùng cho Android Google thực nhiều thay đổi kiến trúc so với nhân Linux gốc Android khơng có sẵn X Window System không hỗ trợ thư viện GNU chuẩn, nên việc chuyển ứng dụng thư viện Linux có sẵn sang Android khó khăn Các ứng dụng C đơn giản SDL hỗ trợ cách chèn đoạn shim Java sử dụng tương tự JNI, người ta chuyển Jagged Alliance sang Android Một số tính Google đóng góp ngược vào nhân Linux, đáng ý tính quản lý nguồn điện có tên wakelock, bị người lập trình cho nhân từ chối họ cảm thấy Google khơng có định tiếp tục bảo trì đoạn mã họ viết Google thơng báo vào tháng năm 2010 họ thuê hai nhân viên để làm việc với cộng đồng nhân Linux, Greg Kroah-Hartman, người bảo trì nhân Linux nhánh ổn định, nói vào tháng 12 năm 2010 ơng ta lo ngại Google khơng cịn muốn đưa thay đổi vào Linux dịng Một số lập trình viên Android Google tỏ ý "nhóm Android thấy chán với quy trình đó," nhóm họ khơng có nhiều người có nhiều việc khẩn cấp cần làm với Android Vào tháng năm 2011, Linus Torvalds phát biểu "rốt Android Linux trở lại với nhân chung, điều khơng xảy năm nữa" Vào tháng 12 năm 2011, Greg Kroah-Hartman thơng báo kích hoạt Dự án Dịng Android, nhắm tới việc đưa số driver, vá tính Android ngược vào nhân Linux, Linux 3.3 Linux đưa tính autosleep (tự nghỉ hoạt động) wakelocks vào nhân 3.5, sau nhiều nỗ lực phối trộn trước Tương tác thực Linux dịng cho phép hai chế độ nghỉ: nhớ (dạng nghỉ truyền thống mà Android sử dụng), đĩa (là ngủ đơng máy tính để bàn) Việc trộn hoàn tất kể từ nhân 3.8, Google cơng khai kho mã nguồn có đoạn thử nghiệm đưa Android lại nhân 3.8 Bộ lưu trữ flash thiết bị Android chia thành nhiều phân vùng, "/system" dành cho hệ điều hành "/data" dành cho liệu người dùng cài đặt ứng dụng Khác với phân phối Linux cho máy tính để bàn, người sở hữu thiết bị Android không trao quyền truy cập root vào hệ điều hành phân vùng nhạy cảm /system thiêt lập đọc Tuy nhiên, quyền truy cập root chiếm cách tận dụng lỗ 20

Ngày đăng: 16/03/2022, 23:56

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w