Android là một hệ điều hành họ Linux được thiết kế để chạy trên các thiết bị di động như smartphone, máy tính bảng, smart TV, đồng hồ thông minh, nhà thông minh… Ngôn ngữ lập trình Android là một ngôn ngữ được phát triển từ Java.
Android được bắt đầu phát triển vào năm 2003 bởi một công ty ở California, sau đó công ty này được mua lại bởi Google. Từ đó Google phát triển “Dự án Android mã nguồn mở” nhằm phát triển hệ điều hành này. Android có tốc độ phát triển rất nhanh, hầu như các bản cập nhật đều được phát hành đều đặn. Mỗi phiên bản của Android lấy tên từ một loại đồ ăn ngọt, như Donut (bánh rán), Gingerbread (bánh gừng), Jelly Bean (kẹo ngọt)… Các lập trình viên Android có thể đăng các ứng dụng mà họ viết ra lên cửa hàng ứng dụng của Google có tên là Google Play và người dùng có thể tải về cài đặt và sử dụng.
Kiến trúc của hệ điều hành Android
Android được phát triển dựa trên Linux, tầng đầu tiên của kiến trúc Android. Bộ lõi của Linux chịu trách nhiệm xử lý các công việc liên quan đến quản lý tiến trình, quản lý bộ nhớ, driver, mạng…v.v
Tầng tiếp theo nằm phía trên bộ lõi của Linux là các thư viện cơ bản và bộ thư viện Android (tiếng Anh là Android runtime). Các thư viện này được viết bằng C/C++ có nhiệm vụ cung cấp các dịch vụ như lưu trữ dữ liệu, hiển thị giao diện, xử lý đa phương tiện, duyệt web… Bộ thư viện Android lại bao gồm 2 phần là máy ảo Dalvik và các thư viện Java. Dalvik là một máy ảo có nhiệm vụ chạy các chương trình viết bằng Java trên nền Android, Dalvik khác với máy ảo Java thông thường là JVM (Java Virtual Machine).
Tầng tiếp theo là application framework, đây là một tập các hàm API cung cấp các dịch vụ cho ứng dụng Android. Các hàm API này chịu trách nhiệm xử lý các tác vụ cấp cao như quản lý Activity, quản lý Notification, quản lý Resource, hiển thị View, quản lý Package… chúng ta sẽ làm việc chủ yếu với tầng này. Không những thế Android còn cung cấp sẵn một số ứng dụng thường dùng để lập trình viên có thể sử dụng hoặc tích hợp vào chương trình của mình như trình duyệt web, SMS, lịch, bản đồ, danh sách điện thoại liên lạc…v.v.
Một số khái niệm
Một chương trình Android được nén trong một file có đuôi mở rộng là .apk.
Mỗi chương trình Android chạy trong một môi trường ảo của riêng chúng.
Một Activity một thành phần trong một ứng dụng Android chịu trách nhiệm quản lý các hành động xảy ra trên một “màn hình”, ví dụ như hiển thị một màn hình, xử lý sự kiện nhấp button…v.v một Activity được kế thừa từ lớp Activity.
Service là các chương trình chạy ngầm bên dưới hệ điều hành, thường không tương tác trực tiếp với người dùng, kế thừa từ lớp Service.
Content Provider là các chương trình quản lý nội dung có nhiệm vụ truy xuất dữ liệu được lưu trong file, cơ sở dữ liệu SQLite hoặc lưu trên web. Được viết từ lớp ContentProvider.
Broadcast Receiver là các chương trình quản lý các thông báo từ hệ điều hành hoặc ứng dụng, được kế thừa từ lớp BroadcastReceiver.
Các thông báo được gửi đi là một đối tượng Intent,
đối tượng này lưu thông tin về các hành động được thực hiện, thường thì Intent
được dùng để thực hiện các công việc như chuyển đổi qua lại giữa các Activity.
Một View
là một lớp hiển thị giao diện người dùng, lớp này có nhiệm vụ vẽ giao diện và xử lý sự kiện. Từ lớp View gốc, các lớp Widget được tạo ra kế thừa từ lớp view có nhiệm vụ hiển thị các thành phần giao diện cụ thể hơn như button, check box… Ngoài lớp View
còn có lớp ViewGroup
tập hợp nhiều View lại để hiển thị theo một trật tự nào đó.
Mỗi ứng dụng Android đều phải có một file tên là AndroidManifest.xml
trong thư mục gốc. File này cung cấp các thông tin về ứng dụng.
Cài đặt Android
Trước tiên chúng ta phải cài JDK trong máy đã, phần này bạn tự cài, ở đây phiên bản JDK mà mình sử dụng là phiên bản 1.8.0_77.
Tiếp theo chúng ta tải và cài bộ Android SDK tại địa chỉ http://developer.android.com/sdk/index.html#downloads. Ở đây phiên bản SDK mà mình sử dụng là phiên bản r24.4.1. Lưu ý trên website download có cả phần tải Android Studio, đây là một chương trình hỗ trợ phát triển ứng dụng Android một cách nhanh chóng nhưng cũng rất nặng (cả về dung lượng lẫn cấu hình), còn riêng Android SDK chỉ nặng khoảng 144 MB. Bạn cũng có thể cài Android Studio nếu muốn, ở đây mình chỉ cài bộ SDK.
Sau khi cài xong chúng ta nên thiết lập đường dẫn đến 2 thư mục tools/ và platform-tools/ trong thư mục cài đặt SDK vào biến môi trường PATH
bằng cách vào: Computer → System Properties → Advanced System Properties → Enviroment Variables, một hộp thoại hiện lên, chúng ta tìm đến biến Path trong phần System Variables và thêm vào dấu chấm phẩy “;”, sau đó là đường dẫn đến thư mục tools/ rồi thêm một dấu chấm phẩy nữa, theo sau là đường dẫn đến thư mục platform-tools/.
Sau đó chúng ta có thể chạy SDK Manager.exe (hoặc lệnh android
trong Command Line – cmd nếu bạn có thiết lập biến PATH)
để mở trình Android SDK Manager lên. Đây là trình quản lý các phiên bản SDK cho từng phiên bản hệ điều hành và một số công cụ thường dùng. Thường thì chúng ta sẽ cài một số phiên bản API mới nhất thôi chứ không cài hết vì chúng có dung lượng rất nặng.
Android AVD
Để chạy các ứng dụng Android thì bạn phải có một chiếc máy Android như smartphone hay tablet để chạy, nhưng nếu không có thì bạn phải dùng máy ảo. Android AVD là trình quản lý máy ảo, cho phép chúng ta tạo các thiết bị Android ảo chạy trên máy tính.
Để chạy trình AVD thì chúng ta chạy file AVD Manager.exe hoặc lệnh android avd
trong Command Prompt.
Sau đó bạn bấm vào nút Create để tiến hành tạo máy ảo, bạn chọn tên và các cấu hình cần thiết. Nếu bạn không rành về các thông số như thế nào thì có thể thiết lập theo hình trên.
Sau đó AVD sẽ liệt kê chiếc máy ảo mà chúng ta vừa tạo, chúng ta có thể bấm Start để chạy chiếc máy ảo trên.
Một lựa chọn thay thế khác là bạn có thể sử dụng máy ảo Genymotion vì máy ảo mặc định của Google chiếm rất nhiều tài nguyên và mất rất nhiều thời gian để khởi động. Tuy nhiên nếu được thì chúng ta nên kiếm một chiếc máy Android thật để sử dụng thì sẽ tốt hơn.