1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lập trình di động android: Phần 1 - ThS. Bùi Trung Úy

89 11 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

Nội dung

Bài giảng Lập trình di động android: Phần 1 cung cấp cho người học những kiến thức như: Tổng quan về lập trình android; xây dựng ứng dụng android; lập trình giao diện android. Mời các bạn cùng tham khảo!

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC KIẾN TRÚC ĐÀ NẴNG BỘ MÔN CÔNG NGHỆ THÔNG TIN -    - BÀI GIẢNG LẬP TRÌNH DI ĐỘNG ANDROID ThS.Bùi Trung Úy ĐÀ NẴNG 08/2019 MỤC LỤC Bài giảng Lập Trình Di Động - Android Chương TỔNG QUAN VỀ LẬP TRÌNH ANDROID 1.1 Hệ điều hành Android 1.1.1 Android gì? 1.1.2 Các phiên Android 1.1.3 Các đặc trưng Android 1.2 Kiến trúc phân tầng Android (software stack) 11 1.3 Môi trường phát triển ứng dụng Android 13 1.3.1 Các công cụ thiết lập chung 13 1.3.2 Android Studio IDE 15 Chương XÂY DỰNG ỨNG DỤNG ANDROID 18 2.1 Cơ ứng dụng Android 18 2.1.1 Các thành phần ứng dụng 19 2.1.2 Tính tương thích thiết bị 20 2.2 Tạo ứng dụng đơn giản – HelloAndroid 21 2.2.1 Tạo dự án 21 2.2.2 Tổng quan cấu trúc dự án Android 25 2.3 Activity chế hoạt động 29 2.3.1 Activity gì? 29 2.3.2 Các trạng thái Activity 30 2.3.3 Vòng đời Activity (Activity Lifecycle) 31 2.4 Intent tương tác Activity 37 2.4.1 Intent gì? 37 2.4.2 Sử dụng đối tượng Intent 38 2.4.3 Truyền liệu Activity 39 2.4.4 Lấy kết trả từ Activity thông qua Intent 40 2.4.5 Bộ lọc Intent (Intent Filter) 41 2.5 Resource ứng dụng Android 42 2.5.1 Resource (tài nguyên) gì? 42 2.5.2 Các loại tài nguyên 43 2.5.3 Truy cập vào tài nguyên 45 Chương LẬP TRÌNH GIAO DIỆN ANDROID 47 3.1 Tổng quan giao diện Android 47 3.2 Phương pháp tạo giao diện 49 ThS Bùi Trung Úy Bài giảng Lập Trình Di Động - Android 3.2.1 Tạo view mã nguồn Java 49 3.2.2 Tạo view XML 55 3.2.3 Tạo view công cụ trực quan 56 3.3 Bố cục giao diện (Layout) 60 3.3.1 FrameLayout 60 3.3.2 Linear Layout 62 3.3.3 Relative Layout 64 3.3.4 TableLayout 66 3.4.5 ConstraintLayout 67 3.5 Xử lý kiện giao diện 72 3.6 Sử dụng View giao diện 77 3.6.1 Các view 77 3.6.2 Sử dụng hình ảnh Android 83 Chương FRAGMENT VÀ GIAO DIỆN NÂNG CAO 90 4.1 Android Fragment 90 4.1.1 Fragment gì? 90 4.1.2 Sử dụng Fragment 91 4.1.3 Vòng đời Fragment 93 4.2 Trình đơn (menu) hộp thoại (dialog) 105 4.2.1 Sử dụng trình đơn (menu) 105 4.2.2 Sử dụng hộp thoại (dialog) 107 4.3 Các điều khiển hiển thị dạng danh sách 109 4.3.1 Sử dụng ListView 109 4.3.2 Sử dụng SpinnerView 117 4.3.3 Sử dụng GridView 119 Chương QUẢN LÝ DỮ LIỆU TRONG ANDROID 121 5.1 Dữ liệu Assets 121 5.2 Dữ liệu SharedPreferences 122 5.3 Lưu trữ liệu nhớ SD 125 5.3.1 Sử dụng nhớ 125 5.2.2 Sử dụng nhớ 126 5.4 Sử dụng sở liệu SQLLite 128 ThS Bùi Trung Úy Bài giảng Lập Trình Di Động - Android Chương TỔNG QUAN VỀ LẬP TRÌNH ANDROID Trong chương này, tìm hiểu kiến thức hệ điều hành Android, trình phát triển trở thành tảng phổ biến nay; kiến trúc tổng quan tảng xây dựng hệ điều hành Android; cuối giới thiệu công cụ cần thiết môi trường để phát triển ứng dụng Android 1.1 Hệ điều hành Android 1.1.1 Android gì? Android hệ điều hành mã nguồn mở, miễn phí phát triển 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 Vào tháng 10/2003, cơng ty Android Inc thành lập Palo Alto, California Bốn người sáng lập Rich Miner, Nick Sears, Chris White Andy Rubin Vào thời điểm thành lập, ông Rubin nói Android Inc phát triển “thiết bị di động thơng minh hơn vị trí sở thích chủ sở hữu”, Android phát triển để cải thiện hệ điều hành máy ảnh số Nhóm nghiên cứu Android không nghĩ từ đầu việc tạo hệ điều hành phục vụ phần cốt lõi hệ thống di động hồn chỉnh Nhưng sau đó, thị trường máy ảnh kỹ thuật số giảm sút, Android Inc định chuyển sang hệ điều hành điện thoại di động Năm 2005, chương lớn lịch sử Android Google mua lại công ty gốc Ông Andy Rubin thành viên sáng lập khác tiếp tục phát triển hệ điều hành quyền chủ sở hữu họ Quyết định đưa để sử dụng Linux làm tảng cho hệ điều hành Android điều có nghĩa Android cung cấp miễn phí cho nhà sản xuất điện thoại di động bên thứ ba Google nhóm Android cảm thấy cơng ty kiếm tiền với dịch vụ khác sử dụng hệ điều hành, bao gồm ứng dụng Hệ điều hành Android thức mắt từ năm 2007 với tuyên bố thành lập Liên minh thiết bị cầm tay mở (OHA) - hiệp hội bao gồm nhiều cơng ty có Texas Instruments, Google, Intel, Qualcomm, Samsung Electronics, TMobile,… thành lập với mục đích phát triển chuẩn mở cho thiết bị di động Chiếc điện thoại Android bán HTC Dream phát hành vào năm 2008 Hình ảnh quen thuộc hệ điều hành Android giống kết hợp robot lõi màu xanh Irina Blok thiết kế Theo Blok, thiết kế cuối lấy cảm hứng từ việc nhìn vào biểu tượng nhà vệ sinh quen thuộc đại diện cho “đàn ông” “phụ nữ” ThS Bùi Trung Úy Bài giảng Lập Trình Di Động - Android Android có mã nguồn mở Google phát hành 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 công ty phần mềm điều chỉnh phân phối Android cách tự 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 Theo thống kê Gartner, Android chiếm 75% thị phần điện thoại thông minh toàn giới vào thời điểm quý 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, đến năm 2017 thị phần Android tăng lên 86,2% 1.1.2 Các phiên Android Sự đa dạng Android điều khơng thể bàn cãi, khơng dừng lại phổ cập cho smartphone hay tablet, mà từ Smart TV, tới xe hơi, hay đồng hồ thơng minh,… thấy có mặt tảng để giao tiếp cách trực tiếp với người dùng Dù vậy, để đạt thị phần ấn tượng vậy, Android phải trải qua thăng trầm suốt lich sử phát triển Android 1.0 phiên thương mại hệ sinh thái Android phát hành thức vào ngày 23/9/2008 sau q trình thử nghiệm kéo dài cài đặt điện thoại T-Mobile G1 (HTC Dream) Mặc dù phiên Android, Android 1.0 đặt móng mạnh mẽ tính hệ sinh thái mà thấy đa dạng tính tồn sử dụng ngày nay, bao gồm trình duyệt web, khả hỗ trợ hệ thống camera tích hợp thiết bị di động, đồng hóa dịch vụ Google Mail thơng qua ứng dụng Gmail, trình phát video ThS Bùi Trung Úy Bài giảng Lập Trình Di Động - Android YouTube, Google Maps, danh bạ Contacts, ứng dụng lịch Calendar có khả đồng hóa Android 1.5 Cupcake (phát hành tháng 4/2009) cập nhật lớn Android Cupcake thêm tiện ích cho hình chính, bàn phím ảo, quay video máy ảnh, chức chép dán vào trình duyệt web Android 2.0 Eclair (phát hành tháng 10/2009) hỗ trợ tài khoản Google, cho phép người dùng tìm kiếm nội dung theo từ khóa tin nhắn văn bản, đồng thời bổ sung hỗ trợ đa chạm máy ảnh cải tiến với đèn flash, zoom số Android 2.2 Froyo (phát hành tháng 5/2010) giới thiệu Flash Player 10.1, cho phép điện thoại phát video phát trực tuyến âm Máy ảnh flash tương thích Bluetooth giúp người dùng sử dụng điện thoại làm điểm phát sóng Wi-Fi (hotspot 3G/4G) Android 2.3 Gingerbread (phát hành tháng 12/2010), Android biết đến rộng rãi nhờ tính giao tiếp trường gần (NFC), cho phép điện thoại thông minh kết nối với thiết bị lân cận khác Android 2.3 cho phép gọi điện video máy ảnh mặt trước thêm trình quản lý tải xuống Android 3.0 Honeycomb (phát hành tháng 2/2011) cập nhật dành cho máy tính bảng, hỗ trợ đồ họa 3D, tab trình duyệt cạnh nhau, trò chuyện video với Google Talk, chia sẻ kết nối Bluetooth Android 4.0 Ice Cream Sandwich (phát hành tháng 10/2011) sáp nhập hệ điều hành điện thoại máy tính bảng ICS thêm tính nhận dạng khn mặt để mở khóa điện thoại, phản hồi văn bản, tự động trả lời gọi bị từ chối hiệu ứng video trực tiếp camera ThS Bùi Trung Úy Bài giảng Lập Trình Di Động - Android Android 4.1 Jelly Bean (phát hành tháng 7/2012) có hiệu suất nhanh hơn, mượt mà nhờ "Project Butter", cho phép người dùng tương tác nhiều hơn, thông báo mở rộng, trình duyệt Chrome mặc định Android 4.4 KitKat (phát hành tháng 7/2013) có thêm biểu tượng cảm xúc vào bàn phím Google, nhớ nhỏ để hỗ trợ điện thoại cấp thấp hơn, đồng thời cho phép người dùng in văn di chuyển với tính Google Cloud Print Android 5.0 Lollipop (phát hành tháng 6/2014) có giao diện phẳng Material Design, thơng báo xuất hình khóa Hệ điều hành có chế độ ưu tiên, hỗ trợ đa người dùng, ghim hình Android 6.0 Marshmallow (phát hành tháng 5/2015) bắt đầu có chế độ Doze để tiết kiệm pin Đồng thời bổ sung thêm hỗ trợ tích hợp cho đầu đọc vân tay, USB Type-C chế độ 4K cho ứng dụng Android 7.0 Nougat (phát hành tháng 8/2016) người dùng xóa tất ứng dụng lần nhấn, đồng thời điều chỉnh tông màu da biểu tượng cảm xúc hỗ trợ VR Android 8.0 Oreo (phát hành tháng 3/2017) bổ sung nhiều tác vụ ứng dụng ảnh Ngồi cịn mang đến trải nghiệm chép dán tốt hơn, cải thiện bảo mật quản lý pin tốt Android Pie 9.0 (phát hành tháng 8/2018) tập trung nâng cấp phần mềm giúp điện thoại Android hoạt động nhanh tiết kiệm pin Android Pie bổ sung cơng cụ trí tuệ nhân tạo (AI) vào ứng dụng lối tắt tiện lợi cho người dùng ThS Bùi Trung Úy 1.1.3 Các đặc trưng Android Bài giảng Lập Trình Di Động - Android Android Google phát triển 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 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ọ Sử dụng nhân Linux Android ban đầu xây dựng dựa nhân Linux phiên 2.6; kể từ Android 4.0 Ice Cream Sandwich 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 gồm thư viện tương thích với Java 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 ra, Android 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 hệ thống X-Window 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/C++ native SDL khác hỗ trợ cách sử dụng giao tiếp JNI Cơ chế quản lý nhớ Vì thiết bị Android chủ yếu chạy pin, nên Android thiết kế để quản lý nhớ (RAM) giảm tối đa tiêu thụ điện Khi ứng dụng Android khơng cịn sử dụng, hệ thống tự động ngưng nhớ - ứng dụng mặt kỹ thuật "mở", ứng dụng không tiêu thụ tài nguyên (như lượng pin hay lượng xử lý) nằm cần đến Cách làm có lợi kép vừa làm tăng khả phản hồi nói chung thiết bị Android, ứng dụng khơng thiết phải đóng mở lại từ đầu, vừa đảm bảo ứng dụng không làm tiêu hao lượng cách không cần thiết Android quản lý ứng dụng nhớ cách tự động: nhớ thấp, hệ thống hủy ứng dụng tiến trình không hoạt động thời gian dài, xếp theo thời điểm cuối mà chúng sử dụng (tức cũ bị tắt trước) Quá trình thiết kế suốt với người dùng, để người dùng không cần phải quản lý nhớ tự tay tắt ứng dụng Để trì mơi trường chức mutil-task, Android đặt giới hạn cứng kích thước heap cho ứng dụng Giới hạn kích thước heap xác thay đổi thiết bị dựa tổng RAM mà thiết bị có sẵn Nếu ứng dụng bạn đạt đến giới hạn sức chứa cố gắng để cấp phát nhớ hơn, nhận lỗi OutOfMemoryError ThS Bùi Trung Úy Tính bảo mật riêng tư Bài giảng Lập Trình Di Động - Android Các ứng dụng Android chạy "hộp cát" (sandbox), khu vực riêng tư với hệ thống không tiếp cận đến phần lại tài nguyên hệ thống, trừ người dùng trao quyền truy cập cách công khai cài đặt Trước cài đặt ứng dụng, Google Play hiển thị tất quyền mà ứng dụng đòi hỏi, chẳng hạn trị chơi cần kích hoạt rung lưu liệu vào thẻ nhớ SD, cần quyền đọc tin nhắn SMS tiếp cận danh bạ điện thoại Sau xem xét quyền này, người dùng chọn đồng ý từ chối, ứng dụng cài đặt người dùng đồng ý Máy ảo Dalvik (Android < 4.4 Kitkat) Java biết đến với hiệu "viết lần, chạy nơi" (write once, run anywhere) Tính hệ sinh thái Java có nhờ lớp máy ảo đứng lớp ứng dụng lớp hệ điều hành, gọi máy ảo Java – JVM (Java Virtual Machine) Máy ảo Java chạy ổn định đồng mơi trường máy tính cá nhân (JSE) máy chủ (JEE), nhiên môi trường di động (JME) máy ảo Java bị phân mảnh tương đối nhiều với gói (pakages), cấu hình (configurations) mẫu (profiles) khác Google chọn Java làm ngôn ngữ phát triển ứng dụng cho hệ điều hành Android, nhiên lại từ bỏ phiên Java di động (JME) lẫn máy ảo Java (JVM) để phát triển máy ảo riêng - máy ảo Dalvik tập thư viện Java chuẩn viết lại thu gọn Giải pháp máy ảo Dalvik đưa nhằm cân điểm: - Mỗi ứng dụng Android chạy tiến trình riêng, với thực thể (instance) máy ảo Dalvik riêng Dalvik thiết kế để hệ điều hành chạy nhiều thực thể máy ảo cách hiệu với file thực thi Dalvik (.dek file) thiết kế để tối ưu hóa sử dụng nhớ - Máy ảo Dalvik sử dụng nhân Linux cho việc liên quan đến lớp hệ thống quản lý tiểu trình (threading), quản lý nhớ cấp thấp, Ứng dụng Android phát triển ngơn ngữ Java, sau biên dịch thành dạng mã nhị phân (Java bytecode) Các file nhị phân *.class chuyển đổi thành file nhị phân dùng cho máy ảo Dalvik - dex (Dalvik EXecutable) trước ThS Bùi Trung Úy Bài giảng Lập Trình Di Động - Android cài lên thiết bị Các tập tin dex thiết kế để phù hợp với thiết bị hạn chế nhớ hiệu xử lý Dalvik phần mềm mã nguồn mở, ban đầu phát triển Dan Bornstein, đặt theo tên làng Dalvík ơng Eyjafjưrður, Iceland, q hương ông Máy ảo ART - Android Runtime (Android >= 4.4 Kitkat) Trong suốt trình phát triển, thành phần Android cập nhật hay chí thay đổi hồn tồn Tuy nhiên, có thứ quan trọng, máy ảo Dalvik dùng để chạy ứng dụng Android giữ nguyên gần so với ban đầu Chính nhờ Dalvik mà có app chạy smartphone, tablet, Smart TV, thiết bị nhúng, với nhiều loại CPU khác từ hãng khác Vấn đề với việc dịch chạy Dalvik tốc độ chậm! xuất thường làm cho hiệu ứng dụng Android thấp so với phần mềm dùng trực tiếp mã biên dịch sẵn Trong nhiều trường hợp, với CPU đại có sức mạnh xử lý tốt khác biệt không đáng kể Tuy nhiên, với phần mềm nặng thấy cách rõ rệt Android chậm phần Dalvik, việc bắt vi xử lí chạy lâu nguyên nhân khiến hệ thống tiêu thụ nhiều điện Đó lý mà Google phát triển giải pháp thay cho máy ảo Dalvik già cỗi - máy ảo Android Runtime (ART) Một phiên thử nghiệm ART nhúng Android 4.4 tìm thấy phần Settings > Developer Options > Select Runtime ThS Bùi Trung Úy 10 Bài giảng Lập Trình Di Động - Android btnChange.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { tvDemo.setText("Xin chào bạn!"); } }); Hoặc bạn sử dụng tương tự với “lớp ẩn danh” (anonymous class) sau: // -create an anonymous class to act as a button click listener View.OnClickListener btnListener = new View.OnClickListener() { public void onClick(View v) { tvDemo.setText("Xin chào bạn!"); } }; btnChange = (Button)findViewById(R.id.btnChange); btnChange.setOnClickListener(btnListener); Cách 3: Tạo hàm xử lý kiện thiết lập thuộc tính onClick đối tượng hàm vừa tạo: Cú pháp khai báo: public void (View v) { //Viết xử lý kiện } Ví dụ, bạn tạo thêm nút Exit với id btnExit, đăng ký xử lý kiện click cho nút Exit Khi người dùng click vào button này, ứng dụng bị đóng Tạo phương thức tên „exitAction‟ viết xử lý: package com.example.helloandroid; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { public static final String TAG ="HelloAndroid"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void exitAction(View v) { finish(); } } ThS Bùi Trung Úy 75 Bài giảng Lập Trình Di Động - Android Thiết lập thuộc tính onClick cho nút Exit hình thiết kế: Ngoài ra, kiện người dùng tương tác với ứng dụng xảy mức Activity, lớp Activity cung cấp phương thức tương ứng với hành động người dùng sau: onKeyDown – gọi phím nhấn xuống kiện chưa xử lý view activty onKeyUp – gọi phím nhả kiện chưa xử lý view activty onMenuItemSelected – gọi người dùng lựa chọn item menu mở Để bắt xử lý kiện này, ta thực ghi đè hàm xử lý kiện Activity dạng sau: @Override public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_DPAD_CENTER: Toast.makeText(this, "Center was clicked", Toast.LENGTH_LONG).show(); break; case KeyEvent.KEYCODE_DPAD_LEFT: Toast.makeText(this, "Left arrow was clicked", Toast.LENGTH_LONG).show(); break; case KeyEvent.KEYCODE_DPAD_RIGHT: Toast.makeText(this, "Right arrow was clicked", Toast.LENGTH_LONG).show(); break; case KeyEvent.KEYCODE_BACK: Toast.makeText(this, "Pressed Back Button", Toast.LENGTH_SHORT).show(); finish(); break; } return false; } ThS Bùi Trung Úy 76 Bài giảng Lập Trình Di Động - Android 3.6 Sử dụng View giao diện 3.6.1 Các view Phần mô tả số view thường dùng để tạo nên giao diện đồ họa cho ứng dụng Android, xét ví dụ ta có hình giao diện đây, giao diện gồm có số thành phần view bản: TextView Như tên gọi nó, TextView dùng để hiển thị đoạn văn (dạng chữ) lên hình Đây view đơn giản dùng nhiều Android

Ngày đăng: 23/02/2022, 10:19

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN