Tài liệu về lập trình Android,Tài liệu về lập trình Android,Tài liệu về lập trình Android,Tài liệu về lập trình Android,Tài liệu về lập trình Android,Tài liệu về lập trình Android,Tài liệu về lập trình Android,Tài liệu về lập trình Android,Tài liệu về lập trình Android
TRUNG TÂM TIN HỌC - ĐẠI HỌC KHOA HỌC TỰ NHIÊN ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH CHƯƠNG TRÌNH ĐÀO TẠO LẬP TRÌNH VIÊN CHUYÊN NGHIỆP TRÊN THIẾT BỊ DI ĐỘNG TÀI LIỆU LẬP TRÌNH THIẾT BỊ DI ĐỘNG TRÊN ANDROID MODULE 02: KIẾN TRÚC VÀ XÂY DỰNG ỨNG DỤNG ANDROID Tháng 06/2015 Trung Tâm Tin Học Đại Học Khoa Học Tự Nhiên TP.HCM Bài TỔNG QUAN VỀ LẬP TRÌNH ANDROID VÀ MÔI TRƯỜNG PHÁT TRIỂN TỔNG QUAN ANDROID 1.1 Hệ điều hành Android - Năm 2003, Android Inc thành lập Andy Rubin, Rich Miner, Nick Sears Chris White California - Năm 2005, Google mua lại Android Inc bắt đầu nuôi ý tưởng tự sản xuất điện thoại di động - Năm 2007, tổ chức OHA (Open Handset Alliance) thành lập với 80 công ty lĩnh vực kỹ thuật điện tử bao gồm công ty chuyên phần cứng, phân phối thiết bị di động đến công ty phần mềm, sản xuất chất bán dẫn… Có thể kể đến số công ty tiếng Samsung, Motorola, LG, HTC, T-Mobile, Vodafone, ARM Qualcomm… - Năm 2008, Google mắt di động đồng thời open source SDK (Software Development Kit) phiên 1.0 - Năm 2010, Google khởi đầu dòng thiết bị Nexus với thiết bị HTC Nexus One - Năm 2013, mắt loạt thiết bị phiên GPE - Năm 2014, Google công báo Android Wear, hệ điều hành dành cho thiết bị đeo - Các phiên hệ điều hành Android: Hình 1.1 Các phiên hệ điều hành Android Tài liệu Lập trình thiết bị di động Android – Module |1 Trung Tâm Tin Học Đại Học Khoa Học Tự Nhiên TP.HCM Phiên API Thời gian phát hành Android 1.0 10/2008 Android 1.1 02/2009 Android 1.5 Cupcake 05/2009 Android 1.5 Donut 09/2009 Android 2.0 – Android 2.0.1 Eclair 5, 11/2009 - 12/2009 Android 2.1 Eclair 01/2010 Android 2.2 Froyo 06/2010 Đặc điểm bật Thanh thông báo kéo từ xuống, hình phong phú, tích hợp chặt chẽ với Gmail, giao diện đơn giản đẹp mắt thời Tải cài đặt cập nhật thiết bị, không cần kết nối với máy tính (phương thức Over The Air) Là Android Google gọi tên theo đồ ăn với chữ bắt đầu xếp theo thứ tự alphabet Với tính năng: bàn phím ảo, mở rộng khả cho widget – khả tùy biến giao diện Android đẩy mạnh, cải tiến clipboard, có khả quay phim, cho phép tải ảnh, video lên YouTube, truy cập danh bạ Google Talk,… Một vài điểm giao diện cải thiện, hỗ trợ mạng CDMA, hỗ trợ thành phần đồ họa độc lập với độ phân giải, tính Quick Search Box – tìm kiếm tất thứ hộp tìm kiếm, Android Market – hiển thị ứng dụng miễn phí trả phí hàng đầu Camera cải thiện, tích hợp trình xem ảnh tốt Hỗ trợ nhiều tài khoản người dùng, tính Quick Contact, cải tiến bàn phím ảo Trình duyệt mới: hỗ trợ HTML5, phát video chế độ toàn hình, hộp địa kết hợp với tìm kiếm, cho phép phóng to, thu nhỏ cách chạm tay vào hình Giao diện đẹp, sang trọng gọn gàng trước Hỗ trợ Live Wallpaper, chuyển giọng nói thành văn hình khóa Từ hình tăng lên thành hình Dãy nút kích hoạt nhanh chế độ gọi điện, web App Drawer xuất Khả hiển thị hình ảnh 3D Tính trạm phát Wifi xuất Hỗ trợ duyệt web với Flash Tính di chuyển phần ứng dụng từ nhớ máy sang thẻ nhớ Tài liệu Lập trình thiết bị di động Android – Module |2 Trung Tâm Tin Học Đại Học Khoa Học Tự Nhiên TP.HCM Android 2.3.3 – Android 2.3.7 Gingerbread 9, 10 11/2010 – 02/2011 Android 3.0 – Android 3.1 – Android 3.2 Honeycomb 11, 12, 13 02/2011 – 05/2011 – 06/2011 Android 4.0 – Android 4.0.3 Ice Cream Sandwich 14, 15 10/2011 – 12/2011 Android 4.1 – Jelly Bean 16 07/2012 Android 4.2 Jelly Bean 17 11/2012 Android 4.3 18 07/2013 Có hai chặn chọn văn Bàn phím cải thiện đẹp dễ sử dụng Xuất công cụ quản lý pin ứng dụng Hỗ trợ máy ảnh trước Cung cấp nhiều tính mới, tập trung vào việc phát triển game, đa phương tiện phương thức truyền thông Phiên dành riêng cho máy tính bảng Sử dụng màu đen màu xanh dương làm tông màu chủ đạo Homescreen widget thiết kế lại Không nút nhấn vật lý Cải thiện đa nhiệm – xuất nút Recent Apps giúp chuyển đổi ứng dụng dễ dàng nhanh chóng Thanh Action Bar xuất Phiên Android 3.1 3.2 sửa lỗi thêm vài tính thay đổi kích thước widget homescreen, hỗ trợ thẻ SD, Hỗ trợ font Roboto Hệ thống thông báo (Noitification) làm hoàn toàn, đẹp thuận tiện Bàn phím tiếp tục cải thiện Hệ điều hành dành cho smartphone cho máy tính bảng hợp làm Duyệt web nhanh hơn, tối ưu hóa hiệu suất hoạt động thiết bị, kéo dài thời gian dùng pin Màn hình Lockscreen - vòng trượt mở khóa dùng kích hoạt tính khác : mở khóa máy, sử dụng camera, kích hoạch Google Now (Android 4.0 có tính năng: mở khóa máy, sử dụng camera) Khả tìm kiếm giọng nói, kết trả thiết kế theo dạng thẻ đồ họa, thông minh hơn, trực quan Project butter giúp mang lại độ mượt mà chưa có cho Android Hỗ trợ Miracast - chuẩn chia sẻ nội dung số thông qua kết nối Wi-Fi , bàn phím nhập liệu cách vẽ đường nét từ kí tự đến kí tự khác, chế độ chụp ảnh toàn cảnh Photo Sphere Hỗ trợ nhiều tài khoản người dùng máy tính bảng Hỗ trợ kết nối Bluetooth Smart, API OpenGL Tài liệu Lập trình thiết bị di động Android – Module |3 Trung Tâm Tin Học Đại Học Khoa Học Tự Nhiên TP.HCM Jelly Bean Android 4.4 KitKat Android 4.4W KitKat Watch Android 5.0 Lollipop Android 5.1 Lollipop Android M (Chưa có tên thức) ES 3.0, bổ sung tính sử dụng Wi-Fi để định vị người dùng tắt kết nối Hỗ trợ tính Restricted Profile, Notification Access,… Hiệu suất cải tiến: RAM 512 MB chạy KitKat, hiệu cao gấp 1,6 lần phiên trước Giao diện nhìn chung làm phẳng Kết hợp dịch vụ tìm kiếm Google Search cho phép 19, dò tự động liên kết danh bạ có sẵn 10/2013 20 internet vào số điện thoại Gộp chung Text Messages Hangouts Bổ sung biểu tượng Emoji vào bàn phím mặc định Tính Screen Recording cho phép ghi hoạt động diễn hình thành đoạn video MP4 Hình ảnh phẳng hơn, nhiều màu sắc so với trước Xuất chức “T action”: tùy vào động tác lắc máy tương ứng với chức cụ thể Tính tự động trả lời điện thoại đưa 21, 10/2014 máy lên tai hay tự động giảm nhạc chuông 22 nhấc máy lên khỏi mặt bàn… Người dùng nhận trả lời thông báo bao gồm email, tin nhắn, gọi nhỡ hình khoá Tiết kiệm pin bảo mật Thiết kế lại quyền hạn ứng dụng Trang bị cho trình duyệt Chrome tính với tên gọi Chrome Custom Tabs, cho phép nhà phát triển chèn trực tiếp nội dung trang web đầy đủ Công bố ngày vào ứng dụng Cho phép mở trực tiếp nội dung 28/05/2015 ứng dụng liên quan Trang bị hệ thống toán di động, với tên gọi Android Pay Cải thiện độ ổn định, hiệu suất khả tiết kiệm pin Hỗ trợ cổng kết nối USB TypeC hệ Bảng 1-1 Các phiên hệ điều hành Android 1.2 Tại lập trình Android 1.2.1 Xu phát triển công nghệ di động - Theo nhận định nhiều chuyên gia công nghệ từ hãng công nghệ hàng đầu Microsoft, Google, IBM, … Ba xu hướng tất toàn cầu là: Social and Tài liệu Lập trình thiết bị di động Android – Module |4 Trung Tâm Tin Học Đại Học Khoa Học Tự Nhiên TP.HCM - - Security (mạng xã hội bảo mật), Mobility (công nghệ di động), Analytics Big Data (phân tích liệu lớn), Cloud (Điện toán đám mây) Trên giới: o Tháng 01/2014, trang WeAreSocial đưa báo cáo “Bối cảnh liệu toàn cầu” với số phát triển kinh ngạc Thế Giới Số Cụ thể số liệu thống kê WeAreSocial cho thấy: Số lượng đăng kí sử dụng di động hoạt động vào khoảng 93% dân số giới Tỉ lệ người kết nối Internet toàn cầu đạt 35%, tương đương 2,5 tỉ người Các kênh Mạng xã hội tiếp tục phát triển mạnh mẽ 12 tháng qua, đạt tỉ lệ thâm nhập người dùng 26% Hơn tỉ người khắp giới sở hữu điện thoại di động Hình 1.2 Bối cảnh liệu toàn cầu - Nguồn: WeAreSocial Tại Việt Nam: o Trong giai đoạn 2014 - 2016, xu hướng Mobile lượng người dùng Internet 3G tiếp tục tăng mạnh Các dịch vụ kết nối OTT truyền thông xã hội đóng góp 80% phương thức giao tiếp online, video online nội dung số mobile Điều góp phần đẩy mạnh xu hướng truyền thông số đa phương tiện, đa hình bùng nổ với độ phủ 50% dân số Việt Nam o Doanh thu điện thoại thông minh máy tính bảng vượt qua PC laptop Các doanh nghiệp hoạt động lĩnh vực sản xuất công nghệ cố gắng hướng tới dịch vụ “thanh toán di động, nội dung di động, dịch vụ xác định địa điểm hay khai thác liệu sử dụng người dùng thiết bị di động” Tài liệu Lập trình thiết bị di động Android – Module |5 Trung Tâm Tin Học Đại Học Khoa Học Tự Nhiên TP.HCM Hình 1.3 Chỉ số Internet di động Việt Nam năm 2014 - Nguồn: Theo thống kê Cục Thương mại điện tử công nghệ thông tin (VECITA), Bộ Công thương - Tỉ lệ truy cập Internet qua thiết bị di động: 36% tổng số dân Tỉ lệ truy cập Internet có tham gia mua sắm online 57% Một người Việt Nam truy cập Internet 5,6 giờ/ngày, 6,4 ngày/tuần - Tổng số thời gian 36 giờ/tuần Hình 1.4 Thống kê số người dùng smartphone Việt Nam năm 2014 - Nguồn: Theo thống kê Cục Thương mại điện tử công nghệ thông tin (VECITA), Bộ Công thương Tài liệu Lập trình thiết bị di động Android – Module |6 Trung Tâm Tin Học Đại Học Khoa Học Tự Nhiên TP.HCM Hình 1.5 Thống kê số điện thoại di động loại hình toán Việt Nam năm 2014 - Nguồn: Theo thống kê Cục Thương mại điện tử công nghệ thông tin (VECITA), Bộ Công thương 1.2.2 Thị trường thiết bị Android - Trong tất hệ điều hành dành cho di động nay, nói: Android mang lại cách mạng thật cho lập trình viên Nổi bật với tính mở, đơn giản mạnh mẽ, không tốn phí cho quyền đặc biệt cộng đồng lập trình viên vô lớn mạnh Android thật tảng mạnh mẽ cho phép lập trình viên, người chưa lập trình thiết bị di động tạo ứng dụng cách nhanh chóng dễ dàng Có thể nói Android dần mang lại phong cách thói quen sử dụng điện thoại người dùng - Kể từ bắt đầu thương mại hóa, ước tính ngày có khoảng 850 ngàn thiết bị Android kích hoạt Nhiều nghiên cứu phần lớn thiết bị smartphone xuất xưởng chạy hệ điều hành Android - Có tới 53 triệu thiết bị sử dụng mã nguồn mở Android (AOSP) bán ra, chiếm tới 11% tổng số smartphone quý 1/2014 Điều lần cho thấy, Android có địa vị vững thị trường smartphone - Công ty nghiên cứu thị trường Strategy Analytics công bố hôm 31/10/2014 cho biết, số lượng smartphone chạy Android bán phạm vi toàn cầu đạt 268 triệu chiếc, tăng mạnh so với thành tích 206 triệu kỳ năm ngoái Nếu xét thị phần, robot xanh đại gia công nghệ Google giữ 84% thị phần 1.2.3 Nhu cầu tuyển dụng lập trình viên Android - Với xu phát triển công nghệ di động nhanh mạnh nay, thị trường thiết bị Anroid chiếm vị trí cao không Việt Nam mà toàn giới, nhu cầu sử dụng ứng dụng cho thiết bị Android lớn Vì vậy, nhu cầu tuyển dụng lập trình viên Android lớn tăng nhanh Tài liệu Lập trình thiết bị di động Android – Module |7 Trung Tâm Tin Học Đại Học Khoa Học Tự Nhiên TP.HCM KIẾN TRÚC ANDROID - Có thể hiểu Android Software Stack bao gồm nhân Linux, tập thư viện C/C++ truy xuất tầng ứng dụng để sử dụng dịch vụ, quản lý thực thi quản lý ứng dụng Mỗi tầng có chức vai trò riêng biệt với nhau: o Linux kernel – lõi toàn hệ thống bao gồm điều khiển phần cứng, quản lý xử lý nhớ, bảo mật, kết nối mạng, quản lý lượng o Libraries – thực thi tầng nhân Linux, bao gồm thư viện lõi khác C/C++ libc SSL Có dạng sau: Thư viện hổ trợ phát tập tin đa truyền thông Bộ quản lý hiển thị Thư viện hổ trợ đồ họa OpenGL 2D 3D SQLite hổ trợ lưu trữ sở liệu SSL WebKit cho phép tương tác với trình duyệt bảo mật Internet - Android Run Time – điểm làm nên khác biệt thiết bị Android thiết bị Linux Bên thành phần bao gồm máy ảo Dalvik thư viện lõi Android Run Time tăng tốc độ cho ứng dụng làm cho tầng Application Framework kết nối đến o Core Libraries – hầu hết ứng dụng Android viết ngôn ngữ Java Dalvik máy ảo Java Các thư viện lõi Android cung cấp hầu hết chức có thư viện Java thư viện riêng biệt Android o Dalvik VM – dạng máy ảo cho phép tối ưu hóa để chạy nhiều tiến trình hiệu quả, dựa nhân Linux máy ảo cho phép quản lý tiểu trình quản lý nhớ bậc thấp - Application Framework – cung cấp lớp cho việc tạo ứng dụng Bên cạnh chứa lớp trừu tượng cho phép truy nhập phần cứng, quản lý giao diện người dùng tài nguyên ứng dụng - Application Layer – gồm ứng dụng tích hợp sẵn ứng dụng hãng thứ ba Tầng ứng dụng Android Run Time sử dụng lớp từ tầng Application Framework để thực thi ứng dụng Tài liệu Lập trình thiết bị di động Android – Module |8 Trung Tâm Tin Học Đại Học Khoa Học Tự Nhiên TP.HCM Hình 1.6 Kiến trúc Android MÔI TRƯỜNG PHÁT TRIỂN ỨNG DỤNG ANDROID 3.1 - - - Giới thiệu Java JDK, Android SDK, Android Studio Android SDK (Software Development Kit) JDK (Java Development Kit) hai công cụ cần thiết để lập trình nên ứng dụng Android Và tất nhiên bạn không muốn lập trình phần mềm soạn thảo văn công cụ lập trình IDE (Integrated development environment) hữu ích tiện lợi Eclipse xem công cụ hỗ trợ tốt việc lập trình ứng dụng Android Android SDK, JDK Eclipse có mặt số phiên hệ điều hành Windows, Mac OS Linux lập trình hệ điều hành mà quen sử dụng Thêm nữa, Android thực thi máy ảo Dalvik nên việc phát triển ứng dụng môi trường Android Studio Google thức phát hành phiên Android Studio 0.1 vào tháng 5/ 2013 (Phiên 1.2.1 – phát hành vào tháng 5/ 2015 phiên 1.3 công bố Google I/O 2015) Là công cụ lập trình dựa IntelliJ, cung cấp tính mạnh mẽ ADT như: o Hỗ trợ xây dựng dự án dạng Gradle o Hỗ trợ sửa lỗi nhanh tái sử dụng cấu trúc phương thức o Cung cấp công cụ kiểm tra tính khả dụng, khả họat động ứng dụng, tương thích tảng… o Hỗ trợ bảo mật mã nguồn đóng gói ứng dụng o Trình biên tập giao diện cung cấp tổng quan giao diện ứng dụng thành phần, cho phép tuỳ chỉnh nhiều cấu hình khác o Cho phép tương tác với Google Cloud Tài liệu Lập trình thiết bị di động Android – Module |9 Trung Tâm Tin Học Đại Học Khoa Học Tự Nhiên TP.HCM public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView txtContent = (TextView) findViewById(R.id.txtContent); TextView txtFileName = (TextView) findViewById(R.id.txtFileName); ImageView imgAssets = (ImageView) findViewById(R.id.imgAssets); AssetManager assetManager = getAssets(); // To get names of all files inside the "Files" folder try { String[] files = assetManager.list("Files"); for(int i=0; i