![Page 1: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/1.jpg)
Ths. Lương Trần Hy Hiến
Khoa Công Nghệ Thông Tin
Trường Đại học Sư phạm TP.HCM1
![Page 2: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/2.jpg)
1. Tổng quan Android
2. Tạo ứng dụng đầu tiên
3. Cập nhật Android API
4. Cài đặt và sử dụng Android Virtual Device (AVD)
5. Các thành phần ứng dụng
6. Cơ chế hoạt động
7. Activity và độ ưu tiên ứng dụng
2
![Page 3: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/3.jpg)
3
![Page 4: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/4.jpg)
Lịch sử phát triển
Năm 2003, Android Inc. được thành lập bởi Andy Rubin, Rich Miner, Nick Sears và Chris White tại California.
Năm 2005, Google sở hữu Android cùng với các vị trí quản lý.
Năm 2007, OHA (Open Handset Alliance) được thành lập bởi Google cùng với nhiều nhà sản xuất thiết bị phần cứng, thiết bị không dây và vi xử lý. Công bố nền tảng phát triển Android.
Năm 2008, thiết bị HTC Dream là phiên bản thế hệ đầu tiên hoạt động với hệ điều hành Android 1.0.
Năm 2010, Google khởi đầu dòng thiết bị Nexus với thiết bị đầu tiên của HTC là Nexus One.
Năm 2013, ra mắt loạt thiết bị phiên bản GPE.
Năm 2014, Google công báo Android Wear, hệ điều hành dành cho các thiết bị đeo được.
4
![Page 5: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/5.jpg)
Các phiên bản hệ điều hành
5
![Page 6: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/6.jpg)
Các phiên bản hệ điều hành
6
![Page 7: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/7.jpg)
Các phiên bản hệ điều hành
Phiên bản 1.x:▪ Android 1.0 (API 1)
▪ Android 1.1 (API 2)
▪ Android 1.5 Cupcake (API 3)
▪ Android 1.6 Donut (API 4)
Phiên bản 2.x:▪ Android 2.0 Eclair (API 5) – Android 2.0.1 (API 6) – Android 2.1 (API 7)
▪ Android 2.2 – 2.2.3 Froyo (API 8)
▪ Android 2.3 – 2.3.2 Gingerbread (API 9)
▪ Android 2.3.3 – 2.3.7 Gingerbread (API 10)
Phiên bản 3.x:▪ Android 3.0 Honeycomb (API 11)
▪ Android 3.1 Honeycomb (API 12)
▪ Android 3.2 Honeycomb (API 13)
7
![Page 8: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/8.jpg)
Các phiên bản hệ điều hành
Phiên bản 4.x:
▪ Android 4.0 – 4.0.2 Ice Cream Sandwich (API 14)
▪ Android 4.0.3 – 4.0.4 Ice Cream Sandwich (API 15)
▪ Android 4.1 Jelly Bean (API 16)
▪ Android 4.2 Jelly Bean (API 17)
▪ Android 4.3 Jelly Bean (API 18)
▪ Android 4.4 Kit Kat (API 19)
8
![Page 9: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/9.jpg)
Các phiên bản hệ điều hành
Phiên bản 5.x:
▪ Android 5.0 Lollipop (API 21)
▪ Android 5.1 Lollipop (API 22)
Phiên bản Android “M”
▪ Android 6.0 Marshmallow (API 23)
Phiên bản Android “N”
▪ Android 7.0 Nougat (API 24)
9
![Page 10: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/10.jpg)
Các phiên bản hệ điều hành
Phiên bản 8.0 Android “O” (API 26)
▪ Android 8.1 Oreo (API 27)
10
![Page 11: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/11.jpg)
Xu thế phát triển công nghệ di động
11
![Page 12: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/12.jpg)
Thị trường thiết bị Android
12
![Page 13: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/13.jpg)
Nguồn: http://gs.statcounter.com/os-market-share/mobile/worldwide
13
75%
20%
5%
Mobile Operating System Market Share Worldwide - February 2018
Android
iOS
Others
![Page 14: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/14.jpg)
1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6,
từ phiên bản 4.0 sử dụng Linux nhân 3.x. Android bao gồm 3 thành phần chính:
Middleware
Các thư viện và API viết bằng C
Các ứng dụng thực thi viết bằng Java Sử dụng máy ảo Dalvik để biên dịch mã .dex (Dalvik
Excuteable) sang Java bytecode.
14
![Page 15: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/15.jpg)
15
![Page 16: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/16.jpg)
Có thể sử dụng các ngôn ngữ lập trình:
Java
C/C++
JNI
XML
Render Script
Kotlin
16
![Page 17: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/17.jpg)
17
![Page 18: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/18.jpg)
http://www.oracle.com/technetwork/java/javase/downloads
/jre8-downloads-2133155.html
http://developer.android.com/intl/vi/sdk/index.html
18
![Page 19: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/19.jpg)
Android Studio là công cụ lập trình dựa trên nền IntelliJ, cung cấp các
tính năng mạnh mẽ hơn ADT, bao gồm:
Hỗ trợ xây dựng dự án dạng Gradle.
Hỗ trợ sửa lỗi nhanh và tái sử dụng cấu trúc phương thức
Cung cấp các công cụ kiểm tra tính khả dụng, khả năng họat động
của ứng dụng, tương thích nền tảng…
Hỗ trợ bảo mật mã nguồn và đóng gói ứng dụng.
Trình biên tập giao diện cung cấp tổng quan giao diện ứng dụng và
các thành phần, cho phép tuỳ chỉnh trên nhiều cấu hình khác nhau.
Cho phép tương tác với nền Google Cloud.
19
![Page 20: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/20.jpg)
Faster emulator
GenyMotion
20
Settings
![Page 21: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/21.jpg)
Yêu cầu hệ thống dành cho Windows:
Microsoft® Windows® 8/7/Vista/2003 (32 or 64-bit).
2 GB RAM trở lên, nên 4GB.
Dung lượng ổ đĩa ứng còn trống ít nhất 400 MB.
Ít nhất 1 GB cho Android SDK, emulator system images và caches.
Độ phân giảm tối thiểu 1280 x 800.
Java Development Kit (JDK) 7 trở lên.
Tùy chọn thêm cho accelerated emulator: hỗ trợ bộ xử lý Intel® với
các phiên bản: Intel® VT-x, Intel® EM64T (Intel® 64), và tính
năng Execute Disable (XD) Bit.
21
![Page 22: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/22.jpg)
1. Tổng quan Android
2. Tạo ứng dụng đầu tiên
• Khởi tạo dự án
• Cấu trúc dự án
• AndroidManifest
3. Cập nhật Android API
4. Cài đặt và sử dụng Android Virtual Device (AVD)
5. Các thành phần ứng dụng
6. Cơ chế hoạt động
7. Activity và độ ưu tiên ứng dụng
22
![Page 23: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/23.jpg)
Khởi chạy Android Studio, xuất hiện màn hình “Welcome to Android Studio” →
chọn Start a new Android Studio project để tạo dự án Android Studio
Đặt tên cho ứng dụng và tên domain
Chọn thiết bị (device) mà bạn muốn phát triển ứng dụng
Chú ý: Minimum SDK là phiên bản thấp nhất được chỉ định để chạy ứng
dụng và một số các phương thức API sẽ được gọi bổ sung trong phần thư
viện hỗ trợ.
Chọn Blank Activity và nhấn Next.
Nhập thông tin của Activity → Finish
23
![Page 24: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/24.jpg)
24
![Page 25: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/25.jpg)
Cấu trúc dự án có thể chia thành phần sau:
Phần 1: thanh công cụ này rất tiện lợi. Nó giúp chúng ta thao tác nhanhcác chức năng thường dùng khi lập trình
Phần 2: là phần dành cho cấu trúc hệ thống của ứng dụng. Cấu trúc dựán có thể chia thành phần sau:
▪ Thư mục:
▪ src: Thư mục này chứa các file mã nguồn .java cho dự án của bạn.
▪ gen: Thư mục này chứa file R.java - 1 file được trình biên dịch sinh ra có khảnăng tham chiếu tới tất cả các tài nguyên trong dự án. Bạn không nên chỉnh sửafile này.
▪ bin: Thư mục này chứa các file *.apk (Android Package file) được build bởi ADT.
▪ res/drawable-hdpi: Đây là thư mục chứa các đối tượng drawble được thiết kếdành cho các màn hình có độ phân giải cao.
▪ res/layout: Đây là thư mục chứa các file layout cho việc thiết kế giao diện.
▪ res/values: Đây là thư mục dành cho các file XML khác chứa 1 tập hợp các tàinguyên, ví dụ như: các định nghĩa về strings, colors.
25
![Page 26: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/26.jpg)
Cấu trúc dự án có thể chia thành phần sau:
Phần 2: là phần dành cho cấu trúc hệthống của ứng dụng. Cấu trúc dự án cóthể chia thành phần sau:
▪ Tập tin:
▪ AndroidManifest.xml: chứa thông tin càiđặt ứng dụng.
▪ Ngoài ra còn có thư mục assets chứa tấtcả các tập tin không biên dịch như: âmthanh, hình ảnh, tập tin CSDL của ứngdụng…
26
![Page 27: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/27.jpg)
Cấu trúc dự án có thể chia thành phần sau:
Phần 3: là nơi hiển thị các điều khiển (control) mà Android hỗ trợ, chophép bạn kéo thả trực tiếp vào phần 4 (Giao diện thiết bị) để thiết kế.
27
![Page 28: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/28.jpg)
Cấu trúc dự án có thể chia thành phần sau:
Phần 4: là vùng giao diện thiết bị, cho phép các điều khiển (control) kéothả vào đây. Chúng 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ỉnh điều khiển, lựa chọn loại thiết bịhiển thị, ...
Phần 5: Khi màn hình của bạn có nhiều điều khiển (control) thì phần 5này rất cần thiết. Nó hiển thị giao diện theo dạng cấu trúc cây nên bạndễ dàng quan sát và lựa chọn điều khiển khi chúng bị chồng lập trêngiao diện.
28
![Page 29: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/29.jpg)
Cấu trúc dự án có thể chia thành phần sau:
Phần 6: cho phép thiết lập trạng thái hay thuộc tính cho các điều khiểntrên giao diện.
29
![Page 30: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/30.jpg)
Vai trò của tập tin AndroidManifest.xml:
Lưu trữ thông tin tên gói ứng dụng, tồn tại duy nhất một tên gói cho mỗi ứng dụng.
▪ Ví dụ: com.htsi.myfirstapp
Cho biết ứng dụng sử dụng các thành phần nào, mỗi thành phần được khai trong một cặp thẻ.
▪ Ví dụ: <activity>….</activity>
Định nghĩa tiến trình quản lý các thành phần ứng dụng.
Định nghĩa các quyền sử dụng API và truy xuất ứng dụng khác.
Qui định các yêu cầu khi được ứng dụng khác truy xuất.
Khai báo cấp độ API tối thiểu xây dựng ứng dụng.
Khai báo các thư viện có liên quan.
30
![Page 31: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/31.jpg)
31
<manifest xmlns:android="..."
package="edu.utep.cs.cs4390.helloworld"
android:versionCode="1"
android:versionName="1.0">
<application
androd:icon="@drawable/launch_icon"
android:label="@string/app_name">
<activity android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.categry.LAUNCHER"/>
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="17"/>
</manifest>
![Page 32: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/32.jpg)
Sử dụng công cụ SDK Manager
32
![Page 33: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/33.jpg)
Tạo máy ảo:
Khởi chạy Android Virtual Device Manager (AVD Manager).
Chọn thiết bị muốn tạo.
Chọn phiên bản hệ điều hành muốn tạo.
Nhấn Finish để hoàn thành tạo máy ảo.
Chọn máy ảo vừa tạo Start.
Chú ý các thông số:
- Device Name: tên thiết ảo cần tạo (thường đặt tên theo phiên bản).
- Device Type: loại thiết bị muốn tạo, có các lựa chọn: Phone/ Tablet, AndroidWear, Android TV.
- Screen: độ rộng và độ phân giải cho màn hình.
- Memory: bộ nhớ thiết bị.
33
![Page 34: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/34.jpg)
Activity
View
Service
Broadcast Receiver
Intent
Content Provider
Notification
34
![Page 35: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/35.jpg)
Trong ứng dụng Android, Activity đóng vai trò là một
màn hình, nơi người dùng có thể tương tác với ứng
dụng, ví dụ: chụp hình, xem bản đồ, gửi mail…
Một ứng dụng có thể có một hoặc nhiều Activity, Activity
được khởi chạy đầu tiên khi ứng dụng hoạt động được
gọi là “MainActivity”.
Activity có thể hiển thị ở chế toàn màn hình, hoặc ở
dạng cửa sổ với một kích thước nhất định.
Các Activity có thể gọi đến các Activity khác, Activity
được gọi sẽ nhận được tương tác ở thời điểm đó.
35
![Page 36: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/36.jpg)
View được sử dụng để tạo ra các điều khiển trên màn hình cho
phép nhận các tương tác từ người dùng cũng như hiển thị các
thông tin cần thiết.
View bao gồm hai dạng:
View: các điều khiển đơn lẻ
ViewGroup: tập hợp nhiều điều khiển
đơn lẻ
36
![Page 37: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/37.jpg)
Service được sử dụng để thực thi các tác vụ cần nhiều
thời gian, thực hiện ở chế độ ngầm và thường không
cần giao diện hiển thị.
Service có thể được khởi chạy và hoạt động xuyên suốt
ngay cả khi ứng dụng không hoạt động.
Một số tác vụ cần thực hiện bằng Service:
Trình diễn các tập tin đa truyền thông như nhạc,
phim…
Kết nối và thực hiện tải các nội dung thông qua
Internet
Truy xuất đọc ghi tập tin
37
![Page 38: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/38.jpg)
Thành phần ứng dụng cho phép truyền tải các thông
báo trên phạm vi toàn hệ thống. Không có giao diện
nhưng có thể thực hiện thông báo qua thanh trạng thái.
Broadcast Receiver truyền thông báo ở hai dạng:
Hệ thống: các thông báo được truyền trực tiếp từ hệ
thống như: tắt màn hình, pin yếu, thay đổi kết nối…
Ứng dụng: xây dựng các truyền thông báo đến các
thành phần trong ứng dụng như: khởi động Service,
tải nội dung đến ứng dụng…
38
![Page 39: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/39.jpg)
Intent là đối tượng mang thông điệp, cho phép tạo ra
các yêu cầu hành động giữa các thành phần trong ứng
dụng, hoặc giữa các ứng dụng với nhau.
Được sử dụng nhiều trong 3 trường hợp sau:
Khởi động Activity
Khởi động Service
Chuyển phát thông tin cho Broadcast Receiver
39
![Page 40: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/40.jpg)
Content Provider xây dựng cách thức truy xuất tập hợp
các dữ liệu ứng dụng, dữ liệu có thể lưu trữ ở nhiều
dạng như: SQLite, tập tin, tài nguyên Web hoặc bất kì
thư mục lưu trữ nào.
Có thể sử dụng Content Provider để xây dựng các ứng
dụng sử dụng chung nguồn tài nguyên hoặc sử dung
riêng.
Trong Android, một số Content Provider được xây dựng
sẵn:
Danh bạ
Tài nguyên đa truyền thông
Lịch40
![Page 41: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/41.jpg)
Notification được xây dựng cho mục đích gửi các thông
báo đến người dùng thông qua thanh trạng thái.
Giao diện Notification không thuộc giao diện ứng dụng,
nhưng có thể tuỳ chỉnh giao diện Notification thông qua
các phương thức có sẵn.
41
![Page 42: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/42.jpg)
Ứng dụng Android và cơ chế hoạt động
Đóng gói và thực thi ứng dụng
Tính tương thích thiết bị
42
![Page 43: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/43.jpg)
Ứng dụng Android được viết bằng ngôn ngữ Java và biên dịch, đóng gói
cùng các tập tin tài nguyên thành tập tin *.apk.
Cài đặt trên thiết bị theo đường dẫn data/app/<Tên đóng gói>, được chứa
trong Sandbox và được hiểu:
Mỗi ứng dụng là một dạng “người dùng” khác nhau.
Mỗi ứng dụng được cấp một ID, do đó chỉ duy nhất ứng dụng mới có
thể truy xuất các tập tin liên quan đến ứng dụng đó.
Ứng dụng thực thi riêng biệt trên từng máy ảo.
Tiến trình Linux được cấp phát khi bất cứ thành phần ứng dụng được
gọi thực thi, và thu hồi khi chấm dứt hoạt động.
Các ứng dụng có cùng ID và chứng chỉ (Cerfiticate) có thể truy xuất tài
nguyên của nhau, hoặc xin quyền nếu truy xuất hệ thống.
43
Sẽ có bài giới thiệu cụ thể Submit App lên Google Play
![Page 44: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/44.jpg)
Tính tương thích ứng dụng với thiết bị bao gồm:
Trang bị tính năng của thiết bị
Phiên bản hệ điều hành
Kích thước màn hình
44
![Page 45: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/45.jpg)
Trang bị tính năng của thiết bị:
Mỗi tính năng phần cứng và phần mềm trên thiết bị
Android được cung cấp một ID, qui định thiết bị đó có
được trang bị tính năng đó hay không.
▪ Ví dụ:
▪ FEATURE_SENSOR_COMPASS: tính năng la bàn
▪ FEATURE_APP_WIDGET: tính năng gắn Widget
45
![Page 46: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/46.jpg)
Phiên bản hệ điều hành:
Mỗi phiên bản kế tiếp được bổ sung hoặc lược bỏ các
hàm API, cần thực thi khai báo các thông tin phiên
bản để sử dụng đầy đủ các tính năng cho ứng dụng.
▪ Ví dụ:
▪ Android ICS 4.0: bổ sung API cho Calendar
▪ Android Kit Kat 4.4: bổ sung API cho WirelessPrint
46
![Page 47: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/47.jpg)
Kích thước màn hình:
Ứng dụng Android cần tương thích với nhiều kích cỡ
thiết bị, được phân chia thành hai thuộc tính:
▪ Kích thước vật lý màn hình.
▪ Độ phân giải (mật độ điểm ảnh)
47
![Page 48: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/48.jpg)
Activity và độ ưu tiên ứng dụng
Xây dựng Activity
Quản lý trạng thái Activity
Độ ưu tiên trong ứng dụng
48
![Page 49: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/49.jpg)
Thực hiện tạo Activity cho ứng dụng:
Tạo mới lớp kế thừa từ lớp Activity
Thực thi các hàm quản lý trạng thái Activity
Xây dựng giao diện trong tài nguyên res/layout
Khai báo Activity trong tập tin AndroidManifest.xml
49
![Page 50: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/50.jpg)
Activity bao gồm ba trạng thái:
Resumed: đang trong trạng thái nhận tương tác.
Paused: không thể tương tác nhưng vẫn được thấy bởi người dùng.
Stopped: thực hiện chạy ở chế độ ngầm.
Thực hiện gọi các hàm quản lý trạng thái:
onStart
onRestart
onCreate
onPause
onResume
onStop
onDestroys
50
![Page 51: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/51.jpg)
Sơ đồ trạng thái
51
![Page 52: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/52.jpg)
Sơ đồ trạng thái
52
![Page 53: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/53.jpg)
onCreate()Được gọi khi Activity được khởi tạo. Dùng để khởi tạo
giao diện, các thành phần hiển thị.
onResume()
Được gọi khi Activity lại được trở lại trạng thái hoạt động,
tức là người dùng thao tác và nó đang hiện hữu.
Sử dụng để khỏi tạo các trường, đăng ký các listener, gán
với services.
onPause()
Được gọi khi Activity quay về “hậu cung”, luôn luôn được
gọi trước khi Activity không còn được nhìn thấy nữa.
Thường được sử dụng khi lưu dữ liệu, giải phóng tài
nguyên. VD: Bỏ đăng ký listener, receiver, gỡ bỏ services.
onStop()
Được gọi khi Activity không còn hiện hữu. Các tác vụ liên
quan đến CPU, database nên được gọi trong khâu này.
Từ API 11, phương thức này luôn được đảm bảo gọi ra.
53
![Page 54: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/54.jpg)
54
![Page 55: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/55.jpg)
Cơ chế quản lý bộ nhớ:
• Android quản lý các Ứng dụng dựa trên độ ưu tiên.
• Nếu hai ứng dụng có cùng trạng thái thì ứng dụng
nào đã chạy lâu hơn sẽ có độ ưu tiên thấp hơn.
• Nếu ứng dụng đang chạy một Service hay Content
Provider do một ứng dụng khác hổ trợ thì sẽ có cùng
độ ưu tiên với ứng dụng đó.
• Các ứng dụng sẽ bị đóng mà không có sự báo trước.
55
![Page 56: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/56.jpg)
Độ ưu tiên:
56
![Page 57: Ths. Lương Trần Hy Hiến Khoa Công Nghệ Thông …...1.2.1 Cấu tạo Android được hình thành dựa trên nền tảng Linux nhân 2.6, từ phiên bản 4.0 sử dụng](https://reader033.vdocuments.pub/reader033/viewer/2022041505/5e247cb55dc93824ef61e95b/html5/thumbnails/57.jpg)
57