CƠ SỞ LÝ THUYẾT
Giới thiệu về android
Android là hệ điều hành mã nguồn mở dựa trên nền tảng Linux, được thiết kế cho thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng Ban đầu phát triển bởi công ty Android với sự hỗ trợ tài chính từ Google, sau đó Google đã mua lại công ty này và tiếp tục nâng cấp Android thành một nền tảng mạnh mẽ hơn.
- Android có khả năng tuỳ biến cao, cho phép tùy ý chỉnh sửa mà không có sự can thiệp hay ràng buộc pháp lý từ Google
- Android xuất hiện trên rất nhiều mẫu thiết bị từ phân khúc bình dân đến cao cấp, mang đến nhiều lựa chọn cho người dụng
- Kho ứng dụng Google Play Store đồ sộ, nhiều ứng hữu ích
- Giao diện thân thiện, dễ sử dụng.
- Do tính chất mã nguồn mở nên Android luôn có nguy cơ tiềm ẩn cao bị dính virus hoặc các phần mềm độc hại
Android đang gặp phải tình trạng phân mảnh nghiêm trọng do sự hiện diện trên nhiều thiết bị khác nhau, điều này tạo ra không ít khó khăn cho các nhà phát triển trong quá trình xây dựng ứng dụng mới.
Không phải tất cả các thiết bị đều được hỗ trợ cập nhật phiên bản Android mới, vì vậy người dùng thường phải mua thiết bị mới để trải nghiệm những tính năng mới nhất.
- Linux Kernel : Đây là lớp thấp nhất, nhiệm vụ của nó là xử lý tiếp nhận các thiết bị ngoại vi như: bàn phím, camera, màn hình, wifi,
- Libraries: Chứa các thư viện gốc như WebKit, OpenGL, FreeType, SQLite, Media, v.v., Thư viện WebKit chịu trách nhiệm hỗ trợ trình duyệt, SQLite dành cho cơ sở dữ liệu,
- Android Runtime: Trong Android Runtime, có các thư viện lõi và DVM (Máy ảo
Dalvik là môi trường thực thi chịu trách nhiệm chạy ứng dụng Android, tương tự như JVM nhưng được tối ưu hóa cho thiết bị di động Nó tiêu thụ ít bộ nhớ hơn và mang lại hiệu suất nhanh hơn, giúp cải thiện trải nghiệm người dùng trên các thiết bị di động.
- Application Framework: Android framework bao gồm các API của Android như UI
(Giao diện người dùng), điện thoại, tài nguyên, địa điểm,
- Applications: Ứng dụng chạy trên các Android framework Ví dụ: cài đặt, trò chơi, trình duyệt.
Lịch sử phát triển
Tháng 7 năm 2005 Google mua lại Android Inc, một công ty nhỏ được thành lập từ năm
Năm 2003, trụ sở của Android được đặt tại Palo Alto, California, Mỹ, và thông tin về các hoạt động của họ lúc bấy giờ rất hạn chế, chủ yếu xoay quanh việc phát triển phần mềm cho điện thoại di động Điều này đã dẫn đến nhiều tin đồn về khả năng Google có ý định gia nhập thị trường điện thoại di động.
Tháng 9 năm 2007, tờ nformationWeek đăng tải một nghiên cứu của Evalueserve cho biết Google đã nộp một số đơn xin cấp bằng sáng chế trong lĩnh vực điện thoại di động
Ngày 9 tháng 12 năm 2008 thêm 14 thành viên mới gia nhập dự án Android được công bố, gồm có ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp và Vodafone Group Plc
Kể từ khi ra mắt thiết bị đầu tiên sử dụng hệ điều hành Android, HTC Dream (T-Mobile G1), nền tảng này đã có những bước tiến vượt bậc Trong suốt thời gian qua, người dùng đã chứng kiến sự ra đời của nhiều phiên bản Android, giúp hệ điều hành này trở thành một nền tảng di động mạnh mẽ và đa dạng như hiện nay.
2.2.1 Điểm khởi đầu của android
Kỷ nguyên Android bắt đầu vào ngày 22/10/2008 với sự ra mắt của T-Mobile G1 tại Mỹ, mặc dù thiếu nhiều tính năng cơ bản như bàn phím ảo hay cảm ứng đa điểm Phiên bản đầu tiên này đã đặt nền tảng cho những đặc điểm nhận dạng của Android hiện nay Ngay từ đầu, Android đã tích hợp hệ thống thông báo hữu ích, cho phép người dùng nhanh chóng xem tin nhắn và cuộc gọi nhỡ, với tất cả thông báo được tập hợp trong một danh sách duy nhất Màn hình chính của Android nổi bật với độ tùy biến cao, cho phép người dùng thay đổi hình nền, đặt icon và sử dụng widget, giúp truy cập nhanh chóng vào các tính năng và thông tin cập nhật G1 cũng mang lại trải nghiệm Gmail tốt nhất thời điểm đó nhờ vào việc khắc phục các vấn đề về giao thức Giao diện Android 1.0 được thiết kế bởi The Astonishing Tribe (TAT), với sự xuất hiện của widget đồng hồ đơn giản nhưng đẹp mắt, tạo dấu ấn cho Android trước khi TAT chuyển sang phát triển cho BlackBerry OS.
Android Studio
Google cung cấp Android Studio, một công cụ phát triển ứng dụng Android dựa trên nền tảng IntelliJ IDEA Android Studio, với nền tảng IntelliJ IDEA, là một IDE hàng đầu cho Java hiện nay.
Android Studio sẽ là môi trường phát triển ứng dụng tốt nhất cho Android
Yêu cầu phần cứng máy tính
- 4 GB RAM (Tốt nhất là 8GB)
- 400 MB hard disk space + ít nhất 1GB cho Android SDK, emulator system images và caches
- Độ phân giải tối thiếu 1280 x 800
- Vào đường dẫn: "http://developer.android.com/sdk/index.html"
- Để download bản mới nhất và tiến hành cài đặt click như hình:
- Khi cài đặt chú ý chọn cả SDK và trình giả lập thiết bị android ảo như hình:
Hình 2: Cài đặt Android studio
- Tiếp tục chọn next và agree cho đến khi hoàn tất.
- Đây là màng hình khởi động.
-Các bước cài đặt thiết bị ảo trong android studio
Máy ảo Android (AVD) là công cụ thiết yếu cho lập trình ứng dụng trên hệ điều hành Android, cho phép người dùng thử nghiệm ứng dụng trực tiếp trên máy tính Để cài đặt máy ảo này, bạn chỉ cần mở Android Studio và nhấp vào nút AVD Manager.
Cửa sổ AVD Manager sẽ xuất hiện:
In the AVD Manager window, we currently have an existing virtual device To create an additional virtual device, simply click on the "Create Virtual Device" button located at the bottom left corner.
Hình 5: Giao diện tạo máy ảo Ở đây có sẵn các mẫu điện thoại, ta chọn mẫu mà mình muốn, ví dụ chọn
Nexus 5 Chọn xong bấm "Next" để tiếp tục:
Hình 6: Chọn mẫu máy ảo Ở đây các ta chọn phiên bản hệ điều hành muốn cài sau đó ấn Next để tiếp tục:
Trong cửa sổ tiếp theo, người dùng có thể tùy chỉnh cấu hình máy ảo, bao gồm các thiết lập như độ phân giải, CPU, và hướng máy (nằm ngang hoặc dọc) Để thực hiện các tùy chỉnh nâng cao hơn, hãy nhấn vào nút "Show Advanced Setting" ở góc dưới bên trái.
Hình 8: Chỉnh cấu hình máy ảo
Kéo xuống dưới để tùy chỉnh RAM, bộ nhớ trong và thẻ nhớ Sau khi hoàn tất các tùy chỉnh theo ý muốn, nhấn "Finish" để tạo máy ảo và chờ một chút để Android Studio lưu thông tin máy ảo Khi quá trình lưu hoàn tất, bạn sẽ thấy kết quả.
Hình 9: Tạo máy ảo thành công
2.3.2 Cấu trúc dự án android studio a Tạo mới một project
- Application Name: Tên ứng dụng muốn đặt
- Company Domain: Tên domain công ty, thường được dùng để kết hợp với tên Application để tạo thành Package (chú ý viết thường hết và có ít nhất 1 dấu chấm)
- Package name: Nó sẽ tự động nối ngược
Sau đó nhấp Next để tiếp tục. b Cài đặt một project
Hộp thoại cài đặt dự án cho phép người dùng chọn thiết bị ứng dụng sẽ hỗ trợ, bao gồm điện thoại, máy tính bảng, TV và thiết bị đeo Ngoài ra, mục Minimum SDK quy định phiên bản Android tối thiểu cần thiết để ứng dụng hoạt động.
Hiện nay bản API14 Android 4.0 (IceCreamSandwich) vẫn đứng đầu về số lương thiết bị sử dụng chiếm tới hơn 90%) nên thường lựa chọn
Màn hình này hiển thị cho phép chọn loại Activity mặc định.
Hình 12: Các loại Activity Chon Blank Activity rồi bấm Next:
Hình 13: Đặt tên Activity -Activity Name: Tên class Activity (java) để ta viết mã lệnh
-Layout Name: Tên file XML làm giao diện cho Activity Name
-Title: Tiêu đề hiển thị khi kích hoạt Activity trên thiết bị
-Menu Resource Name: Tên file xml để tạo menu cho phần mềm
Sau khi cấu hình xong, bấm Finish, Màn hình Build Gradle project hiển thị:
Hình 14: Đang tiến hành tạo Activity Khi build xong mặc định có màn hình dưới đây:
Hình 15: Tạo Activity thành công c Màn hình làm việc của dự án android studio
Theo mặc định Android Studio hiển thị các files trong project theo góc nhìn Android Góc nhìn này Android Studio sẽ tổ chức các files theo 3 module
- manifests: chứa file AndroidManifest.xml
Mở Project mặc định activity_main.xml sẽ được chọn ta có màn hình như sau:
Hình 16: activity_main.xml Ở trên tạm thời chia làm 6 vùng làm việc mà lập trình viên thường tương tác - Vùng 1
Là nơi cấu trúc hệ thống thông tin của Ứng dụng, Ta có thể thay đổi cấu trúc hiển thị (thường để mặc định là Android)
Hình 17: Cấu trúc hệ thống
Màn hình ở chế độ Android:
Hình 18: Sau khi chọn Android
Ta có thể thấy AndroidManifest.xml nằm ở đây File này vô cùng quan trọng trong việc cấu hình ứng dụng
drawable: chứa các file hình ảnh và xml trong ứng dụng
layout: chứa các giao diện màn hình được thiết kế dưới dạng xml
values: chứa các file lưu giá trị màu sắc, kích thước, chuỗi,
Khu vực này rất quan trọng cho những người mới bắt đầu lập trình, vì nó hiển thị các Control mà Android hỗ trợ, cho phép người dùng kéo và thả trực tiếp vào giao diện.
3 (Giao Diện Thiết Bị) để thiết kế.
Hình 19: Các control của Android Ở vùng số 2 này nó có 2 tab: Design và Text ở góc trái dưới cùng
Tab Design là tab mà ta đang nhìn và thao tác với nó (cho phép thiết kế giao diện bằng cách kéo thả)
Hình 20: Thiết kế giao diện bằng cách kéo thả
Là vùng giao diện thiết bị, cho phép các Control kéo thả vào đây và đồng thời cho ta hiểu chính control
Hình 21: Giao diện thiết bị
Vùng 3 ta có thể chọn cách hiển thị theo nằm ngang nằm đứng, phóng to thu nhỏ, căn chỉ control, lựa chọn loại thiết bị hiển thị….
Khi màn hình chứa nhiều điều khiển, vùng 4 trở nên hữu ích vì nó cho phép hiển thị giao diện theo cấu trúc cây Điều này giúp người dùng dễ dàng quan sát và lựa chọn các điều khiển, đặc biệt khi chúng bị chồng chéo trong vùng 3.
Hình 22: Các control hiển thị theo dạng cấu trúc cây
Vùng này rất quan trọng, đây là vùng cho phép thiết lập trạng thái hay thuộc tính cho các Control trên giao diện.
Hình 23: Thuộc tính và trạng thái của các control
Là vùng các chức năng quan trọng thường dùng trong Android Studio
Chạy ứng dụng và Debug ứng dụng:
Quản lý máy ảo (AVD Manager)
Hình 25: Giao diện quản lý máy ảo
Quản lý Android SDK Manager (thường dùng để cập nhật)
Hình 26: Quản lý Android SDK Manager
Quản lý Android Device Manager
Hình 27: Quản lý Android Device Manager
2.3.3 Tạo giao diện chương trình trong android studio a Giới thiệu android Layout
Layout là phần chứa các control trên giao diện, với mỗi layout có cách sắp xếp control khác nhau Do đó, việc chọn layout phù hợp cho từng cấu trúc giao diện là rất quan trọng Dưới đây là một số layout cơ bản để hỗ trợ trong việc thiết kế giao diện.
FrameLayout là loại layout cơ bản, thường được sử dụng khi thiết kế giao diện nâng cao Khi kéo các control vào FrameLayout, chúng sẽ tự động nằm ở vị trí góc trên bên trái và có thể bị đè lên nhau, với control sau chồng lên control trước Để căn giữa các control, bạn cần sử dụng thuộc tính android:layout_gravity="center" Dưới đây là đoạn XML tham khảo để hiểu rõ hơn về FrameLayout.
Layout này hỗ trợ việc thiết kế giao diện theo hai hướng: từ trái qua phải hoặc từ trên xuống dưới Để xác định chiều cho các control trong layout, chúng ta sử dụng thuộc tính orientation.
Android:orientation="horizontal" : Xếp các control từ trái sang phải
Android:orientation="vertical" : Xếp các control từ trên xuống dưới
Sử dụng LinearLayout cho những giao diện có độ phức tạp vừa phải mang lại hiệu quả cao và thuận tiện trong thiết kế, đồng thời dễ dàng bảo trì ứng dụng trong tương lai.
Sau đây là đoạn XML demo cách sử dụng layout này:
Hình 29: Giao diện LinearLayout theo hàng Theo hàng:
Hình 30: Giao diện LinearLayout theo cột
RelativeLayout cho phép sắp xếp các control dựa trên vị trí tương đối của chúng với nhau và với control chứa Khi làm việc với các layout phức tạp và nhiều giao diện nhỏ, RelativeLayout là lựa chọn tối ưu Một số lưu ý cần nhớ khi sử dụng layout này.
Các control đều có id riêng, việc đặt tên id phải rõ rang dễ hiểu
Các control đƣợc sắp xếp dựa vào id của các control khác
Các control có sự ràng buộc và tương tác với nhau nên khi thay đổi một
Ta có thể tham khảo đoạn XML demo sau để hình dung dễ hơn:
Hình 31: Giao diện RelativeLayout b Giới thiệu một số android View cơ bản
- TextView: là view sử dụng để hiển thị text màn hình TextView đƣợc định nghĩa bởi thẻ trong xml
- EditText: là view dùng để lấy giá trị từ người dùng nhập vào EditText đƣợc định nghĩa bởi thẻ trong xml
- ImageView: là một view sử dụng rất nhiều trong ứng dụng android,
ImageView sử dụng để hiển thị hình ảnh
Button là một thành phần quan trọng trong Android, thường được sử dụng cùng với EditText và TextView Chức năng chính của Button là thực hiện một nhiệm vụ cụ thể khi người dùng nhấn vào nó thông qua phương thức onClick.
- ListView: đƣợc tạo từ một danh sách các ListItem ListItem là một dòng
ListView là một thành phần giao diện cho phép hiển thị dữ liệu dưới dạng các mục riêng lẻ, gọi là ListItem Mỗi dữ liệu chỉ được trình bày qua ListItem, tạo thành một nhóm cuộn các mục trong ListView Ngoài ra, ListView cũng hỗ trợ việc bắt và xử lý các sự kiện trên giao diện người dùng.
Các kiểu lập trình trong android
3.1 Lựa chọn ngôn ngữ, môi trường ứng dụng:
Ngôn ngữ lựa chọn: Java.
Môi trường hỗ trợ làm việc: Android Studio.
Hình 32: Giao diện đăng nhập Đăng nhập Google
Khi ấn vào biểu tượng Google:
TÍCH PHẦN MỀM
Lựa chọn ngôn ngữ, môi trường ứng dụng
Ngôn ngữ lựa chọn: Java.
Môi trường hỗ trợ làm việc: Android Studio.
Hình 32: Giao diện đăng nhập Đăng nhập Google
Khi ấn vào biểu tượng Google:
Hình 33: Đăng nhập bằng Google
Khi đăng nhập thành công:
Hình 34: Đăng nhập Google thành công