1. Trang chủ
  2. » Tất cả

Đồ án đề tài ứng dụng phát nhạc trên android (app nghe nhạc)

75 5 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

Thông tin cơ bản

Tiêu đề Ứng Dụng Phát Nhạc Trên Android (App Nghe Nhạc)
Tác giả Nguyễn Năng Hải Hà
Người hướng dẫn TS. Lê Văn Minh
Trường học Đại Học Đà Nẵng
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo cáo đồ án
Năm xuất bản 2021
Thành phố Đà Nẵng
Định dạng
Số trang 75
Dung lượng 1,46 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID (12)
    • 1.1 Giới thiệu chung về hệ điều hành Android (12)
    • 1.2 Máy ảo Dalvik trong Android (15)
    • 1.3 Kiến trúc của Android (17)
      • 1.3.1. Tầng hạt nhân Linux (Linux Kernel layer) (17)
      • 1.3.2. Tầng Library và android runtime (18)
      • 1.3.3. Tầng Application Framework (20)
      • 1.3.4. Tầng ứng dụng(application) (21)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT LẬP TRÌNH ỨNG DỤNG ANDROID (24)
    • 2.1/ Các thành phần trong Android Project (24)
      • 2.1.1/ Thành phần Manifest File (24)
      • 2.1.2/ Thành phần Layout XML Code (25)
      • 2.1.3/ Thành phần String (25)
      • 2.1.4/ Thành phần R.java (26)
      • 2.1.5/ Thành phần Java Source Code (26)
    • 2.2/ Các khối chính cấu thành nên ứng dụng của Android (26)
      • 2.2.1/ Activity (26)
      • 2.2.2/ Intents (28)
      • 2.2.3/ Services (29)
      • 2.2.4/ Content Providers (31)
      • 2.2.5/ Broadcast Receivers (32)
      • 2.2.6/ SQLite (32)
      • 2.2.7/ TELEPHONY (33)
    • 2.3/ Các thành phần giao diện trong ANDROID (34)
      • 2.3.1/ Views and Layouts (34)
      • 2.3.2/ Widgets (38)
      • 2.3.3/ Menu (48)
  • CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG (50)
    • 3.1/ Phân tích các chức năng của ứng dụng (50)
      • 3.1.1. Hiển thị danh sách bài hát (50)
      • 3.1.2. Chức năng tìm kiếm bài hát (50)
      • 3.1.3. Chức năng phát bài hát (50)
      • 3.1.4. Chức năng chuyển bài hát (50)
      • 3.1.5. Chức năng lùi bài hát (50)
      • 3.1.6. Chức năng phát ngẫu nhiên bài hát (51)
      • 3.1.7. Chức năng lặp lại bài hát (51)
      • 3.1.8. Các chức năng của Admin AppMusic (51)
    • 3.2/ Phân tích và đặc tả yêu cầu (51)
      • 3.2.1/ Biểu đồ use case (51)
    • 3.3/ Đặc tả các ca sử dụng (54)
      • 3.3.1/ Ca sử dụng thêm bài hát (54)
      • 3.3.2/ Ca sử dụng sửa bài hát (55)
      • 3.3.3/ Ca sử dụng xóa bài hát (56)
    • 3.4/ Biểu đồ các ca sử dụng (57)
  • Chương 4: THIẾT KẾ CƠ SỞ DỮ LIỆU (60)
    • 4.1/ Bảng dữ liệu Chủ Đề (60)
    • 4.2/ Bảng dữ liệu Playlist (60)
    • 4.3/ Bảng dữ liệu bài hát (61)
    • 4.4/ Bảng dữ liệu Thể Loại (62)
    • 4.5/ Bảng dữ liệu Quảng cáo (63)
    • 4.6/ Bảng dữ liệu Album (64)
  • Chương 5: Thiết kế ứng dụng AppMusic (65)

Nội dung

Lúcnày đã có hơn 60 thiết bị chạy nền tảng Android.Với Google, vì android hoàn toàn miễn phí, Google không thu tiền từnhững hãng sản xuất điện thoại, tuy không trực tiếp hưởng lợi từ and

Trang 1

ĐẠI HỌC ĐÀ NẴNG

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

VÀ TRUYỀN THÔNG VIỆT-HÀN

KHOA KỸ THUẬT MÁY TÍNH & ĐIỆN TỬ

Giảng viên hướng dẫn : TS.LÊ VĂN MINH

Sinh viên thực hiện : NGUYỄN NĂNG HẢI HÀ

Lớp : 19CE

Đà nẵng, 31 tháng 05 năm 2021

Trang 2

ĐẠI HỌC ĐÀ NẴNG

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

VÀ TRUYỀN THÔNG VIỆT-HÀN

KHOA KỸ THUẬT MÁY TÍNH & ĐIỆN TỬ

BÁO CÁO ĐỒ ÁN

ĐỀ TÀI

Ứng dụng phát nhạc trên android

(App nghe nhạc)

Giảng viên hướng dẫn : TS.LÊ VĂN MINH

Sinh viên thực hiện : NGUYỄN NĂNG HẢI HÀ

Lớp : 19CE

Đà Nẵng , 31 tháng 05 năm 2021

Trang 3

NHIỆM VỤ CỦA ĐỒ ÁN

Đề tài tập trung nghiên cứu về hệ điều hành Android với một số nội dungchính như sau:

- Giới thiệu tổng quan về hệ điều hành Android

- Nghiên cứu về kiến trúc của hệ điều hành Android

- Nghiên cứu về các khối chính tạo nên ứng dụng Android

- Tìm hiểu về eclipse và Android Project trong eclipse

- Nghiên cứu về các thành phần tạo nên giao diện của ứng dụng

- Tìm hiểu về các gói của Android đặc biệt tập trung vào gói android.media vàlớp MediaPlayer

- Xây dựng demo ứng dụng AppMusic

Trang 4

LỜI CẢM ƠN

Để có được thời gian viết đồ án và làm việc hiệu quả đầu tiên cho em xingửi lời cảm ơn chân thành đến Đại học Công Nghệ và Truyền Thông Việt – Hàn

Bộ môn Lập Trình Di Động đã tạo điều kiện tốt nhất cho em có thể hoàn thành tốtđợt báo cáo đồ án của mình

Bên cạnh đó, em xin cảm ơn sự hướng dẫn tận tình của thầy Lê Văn Minh

đã giúp đỡ em hoàn thành tốt đợt báo cáo đồ án tốt nghiệp này Thiếu sự giúp đỡcủa thầy chúng em không thể có được kết quả như ngày hôm nay

Trong quá trình làm đồ án, cũng như trong quá trình viết báo cáo, chúng emkhó tránh khỏi sai sót Rất mong các thầy, cô trong bộ môn và thầy giáo Lê VănMinh bỏ qua và chỉ dẫn thêm cho em

Chúng em xin chân thành cảm ơn!

Đà Nẵng, 31 tháng 05 năm 2021

Sinh viên

Nguyễn Năng Hải Hà

Trang 5

LỜI NÓI ĐẦU

Trong những năm gần đây, nền tảng công nghệ thông tin phát triển mạnh mẽcùng với đó là sự ra đời của các thiết bị di động như máy tính bảng, điện thoại,smartphone…ngày càng được ưa chuộng và sử dụng nhiều hơn Các ứngdụng giờđây không chỉ chạy được trên máy tính mà còn chạy được trên cả thiếtbị có hệ điềuhành nữa Và việc xây dựng các ứng dụng cho những thiết bị trên cũng được người

ta quan tâm nhiều hơn Các ứng dụng dựa trên nền tảng là hệ điều hành cho thiết bị

di động ngày càng đa dạng và phong phú hơn, đáp ứng được ngày càng nhiều cácyêu cầu thực tế của người dùng Mỗi thiết bị như thế đều chứa trong nó một hệđiều hành có khả năng chạy được ứng dụng như một máy tính Có thể nói hệ điềuhành là nền tảng còn các ứng dụng sẽ làm phong phú hơn cho nền tảng đó.Android OS là hệ điều hành trên điện thoại di động được phát triển bởi Google vàdựa trên nền tảng Linux Việc xây dựng ứng dụng cho điện thoại di động chạy hệđiều hành Android hiện nay đang rất mới và rất phát triển ở Việt Nam

Với sự hấp dẫn của các ứng dụng trong Android cùng với bản tính tò mòthích khám phá cái mới và sự khuyến khích của bạn bè và cô giáo hướng dẫn.Chúng em đã quyết định thực hiện đồ án “Xây dựng ứng dụng nghe nhạc trên nền

hệ điều hành Android” Nội dung đồ án của em gồm 4 chương:

Chương 1: Tổng quan về hệ điều hành Android Chương này trình bày về

lịch sử phát triển, ưu thế và kiến trúc của hệ điều hành Android

Chương 2: Cơ sở lý thuyết lập trình ứng dụng Android Chương này

trình bày cấu trúc của một project, các khối chính tạo nên ứng dụng và hệ thốngcác thành phần tạo giao diện ứng dụng Android

Chương 3: Phân tích và thiết kế hệ thống Chương này trình bày biểuđồ

Use Case và biểu đồ trình tự của ứng dụng nghe nhạc

Trang 6

Chương 4: Thiết kế cơ sở dữ liệu Từ những phân tích, thiết kế ở chương 3,

hệ thống các cơ sở dữ liệu được lập ra để lưu trữ các thông tin cần thiết cho việcthiết kế hệ thống Và cho ta thấy rõ được mối quan hệ của cơ sỡ dữ liệu lập ra

Chương 5: Thiết kế ứng dụng Chương này trình bày chi tiết về quy trình

thiết kế ứng dụng AppMusic trong eclipse

Trang 7

NHẬN XÉT

( Của giáo viên hướng dẫn )

………

………

………

………

………

………

………

………

……….……

………

………

……… ………

Đà Nẵng, ngày 31 tháng 05 năm 2021 Giáo viên hướng dẫn

TS Lê Văn Minh

Trang 8

MỤC LỤC

CHƯƠNG 1: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID 7

1.1 Giới thiệu chung về hệ điều hành Android 7

1.2 Máy ảo Dalvik trong Android 9

1.3 Kiến trúc của Android 10

1.3.1 Tầng hạt nhân Linux (Linux Kernel layer) 10

1.3.2 Tầng Library và android runtime 11

1.3.3 Tầng Application Framework: 12

1.3.4 Tầng ứng dụng(application) 13

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT LẬP TRÌNH ỨNG DỤNG ANDROID 15

2.1/ Các thành phần trong Android Project 15

2.1.1/ Thành phần Manifest File: 15

2.1.2/ Thành phần Layout XML Code 15

2.1.3/ Thành phần String: 16

2.1.4/ Thành phần R.java: 16

2.1.5/ Thành phần Java Source Code: 16

2.2/ Các khối chính cấu thành nên ứng dụng của Android: 16

2.2.1/ Activity: 16

2.2.2/ Intents: 18

2.2.3/ Services: 19

2.2.4/ Content Providers: 20

2.2.5/Broadcast Receivers: 20

2.2.6/ SQLite: 20

2.2.7/ TELEPHONY: 21

Trang 9

2.3.1/ Views and Layouts: 22

2.3.2/Widgets: 25

2.3.3/ Menu: 31

CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 33

3.1/ Phân tích các chức năng của ứng dụng: 33

3.1.1 Hiển thị danh sách bài hát: 33

3.1.2 Chức năng tìm kiếm bài hát: 33

3.1.3 Chức năng phát bài hát: 33

3.1.4 Chức năng chuyển bài hát: 33

3.1.5 Chức năng lùi bài hát: 33

3.1.6 Chức năng phát ngẫu nhiên bài hát: 33

3.1.7 Chức năng lặp lại bài hát: 33

3.1.8 Các chức năng của Admin AppMusic: 34

3.2/ Phân tích và đặc tả yêu cầu: 34

3.2.1/ Biểu đồ use case: 34

3.3/ Đặc tả các ca sử dụng: 37

3.3.1/ Ca sử dụng thêm bài hát: 37

3.3.2/ Ca sử dụng sửa bài hát: 37

3.3.3/ Ca sử dụng xóa bài hát: 38

3.4/ Biểu đồ các ca sử dụng: 39

Chương 4: THIẾT KẾ CƠ SỞ DỮ LIỆU 41

4.1/ Bảng dữ liệu Chủ Đề: 41

4.2/ Bảng dữ liệu Playlist: 41

4.3/ Bảng dữ liệu bài hát: 42

4.4/ Bảng dữ liệu Thể Loại: 43

4.5/ Bảng dữ liệu Quảng cáo: 43

4.6/ Bảng dữ liệu Album 44

Chương 5: Thiết kế ứng dụng AppMusic 45

5.1/ Giao diện của AppMusic: 45

Trang 10

5.2/ Chức năng nổi bật: 55

Trang 11

DANH SÁCH BIỂU ĐỒ

Biểu đồ 1: Biểu đồ use case mức tổng quát

Biểu đồ 2: Biểu đồ use case Admin

Biểu đồ 3: Biểu đồ use case Người dùng

Biểu đồ 4: Biểu đồ use case quản lý bài hát

Biểu đồ 5: Biểu đồ use case quản lý quảng cáo

Biểu đồ 6: Biểu đồ hoạt động cho thêm bài hát

Biểu đồ 7: Biểu đồ hoạt động cho sửa bài hát

Biểu đồ 8: Biểu đồ hoạt động của app

Hình 5.5: Giao diện lặp lại bài hát khi đang phát

Hình 5.6: Giao diện phát ngẫu nhiên một bài hát

Hình 5.7: Giao diện danh sách các Playlist

Hình 5.8: Giao diện danh sách tất cả Album

Hình 5.9: Giao diện danh sách các bài hát

Trang 12

CHƯƠNG 1: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID

1.1Giới thiệu chung về hệ điều hành Android

Android là một nền tảng mã nguồn mở toàn diện được thiết kế cho cácthiết bị di động Nó là sự liên minh giữa ông lớn Google và Open HandsetAlliance là các tập đoàn sản xuất thiết bị cầm tay nổi tiếng như Intel,SamSung,Toshiba….Với mục tiêu là “tăng tốc việc đổi mới trong di động vàcung cấp chongười tiêu dùng nhiều tiện ích phong phú, ít tốn kém.” VàAndroid chính là côngcụ để làm điều đó

Có thể nói Android là cuộc cách mạng trong không gian di động Lầnđầu tiên nó thực sự là một nền tảng mở, tách biệt phần cứng với phần mềmchạy trên nó Điều này cho phép số lượng lớn các thiết bị chạy nhiều ứngdụng tương tựnhau và tạo ra một hệ sinh thái phong phú và đa dạng cho cácnhà phát triển vàngười tiêu dùng

Android là một nền tảng toàn diện điều này có nghĩa là nó là một tậphợp các phần mềm hoàn chỉnh cho thiết bị di động Đối với các nhà pháttriển Android cung cấp các công cụ và các khung cơ bản cho việc phát triểncác ứngdụng một cách nhanh chóng và dễ dàng Thư viện Android SDK làtất cả nhữnggì mà cần dùng để bắt đầu phát triển với android; ngay cả khikhông có một điệnthoại thật sự Còn đối với người sử dụng, Android làmviệc một cách chính xáctrên bề mặt màn hình của điện thoại Thêm vào đóngười sử dụng cũng có thể tùychỉnh điện thoại theo cách riêng của họ Đốivới các nhà sản xuất Android là giải pháp hoàn chỉnh để chạy trên các thiết

bị của họ Khác với một số trình điềukhiển phần cứng cụ thể, Android cungcấp mọi thứ để thiết bị của họ làm việc

Android là một nền tảng mã nguồn mở, toàn bộ ngăn xếp từ các

Trang 13

khung cho đến các ứng dụng hoàn chỉnh là hoàn toàn mở Hơn thế nữaAndroid còn được chứngnhận là hệ điều hành thân thiện với người sử dụng.

Nó được cấp giấy phép bởiApache/MIT(giấy phép chứng nhận mã nguồn

mở thân thiện) nó có thể được mở rộng và phát triển với nhiều mục đíchkhác nhau mà không cần phải để ý đến bản quyền hay giấy phép sử dụng.Điều này đồng nghĩa với việc bạn có thể xem toàn bộ mã nguồn của nềntảng, có thể thêm bất kỳ những thiết kế bí mật của bạn và không đưa lạicộng đồng nếu không muốn

Android được thiết kế với mục đích xây dựng nền tảng cho thiết bị diđộng Khi thiết kế Android, nhóm phát triển đã xem xét để lường trước đượccác khả năng mà không thay đổi được đối với một thiết bị Chẳng hạn nhưcông suất của thiết bị là không thể thay đổi, cùng với hạn chế về bộ nhớ vàtốc độ xử lý đólà những ràng buộc trong việc thiết kế nền tảng di động đãđược đề cập đến trongsuốt thời gian thiết kế Android Android được thiết kế

để chạy trên tất cả các loạithiết bị cầm tay, Android không thực hiện bất kỳgiả định nào về kích thước củamàn hình cũng như độ phân giải hay chipsetcủa thiết bị

Trong lịch sử phát triển, ban đầu Android thuộc sở hữu của công tyAndroid Inc Được Google mua lại vào năm 2005 và bắt đầu xây dựngAndroid Platform Cuối năm 2007 liên minh Open Handset Alliance đượcthành lập baogồm các tập đoàn lớn và nổi bật như SamSung, LG, Toshiba…được công bố.Android chính thức trở thành mã nguồn mở Phiên bản SDKđầu tiên được phát hành vào tháng 11 năm 2007, hãng T-Mobile cũng công

bố chiếc điện thoại Android đầu tiên đó là chiếc T-Mobile G1, chiếcsmartphone đầu tiên dựa trên nền tảng Android Một vài ngày sau đó,Google tiếp tục công bố sự ra mắt phiên bản Android SDK releaseCandidate 1.0 Trong tháng 10 năm 2008 Google được cấp giấy phép mã

Trang 14

nguồn mở cho Android Platform Vào cuối năm 2008, Google cho phát hànhmột thiết bị cầm tay được gọi là Android Dev Phone 1 có thể chạy được cácứng dụng Android mà không bị ràng buộc vào các nhà cung cấp mạng điệnthoại di động Mục tiêu của thiết bị này là cho phép các nhà phát triển thựchiện các cuộc thí nghiệm trên một thiết bị thực có thể chạy hệ điều hànhAndroid mà không phải ký một bản hợp đồng nào Năm 2009 các thiết bịchạy trên nềntảng Android tăng lên Phiên bản mới của hệ điều hành đượcphát hành là:Cupcake (1.5), Donut(1.6), và Eclair(2.0 và 2.1) Lúc này đã cóhơn 20 thiết bị chạy hệ điều hành Android Trong năm 2010, Android là nềntảng tốt thứ 2 cho điện thoại Smartphone sau Blackberry Froyo (Android2.2) được phát hành Lúcnày đã có hơn 60 thiết bị chạy nền tảng Android.

Với Google, vì android hoàn toàn miễn phí, Google không thu tiền từnhững hãng sản xuất điện thoại, tuy không trực tiếp hưởng lợi từ androidnhưng bù lại, những dịch vụ của hãng như Google Search, Google Maps, nhờ cóandroid mà có thể dễ dàng xâm nhập nhanh vào thị trường di động vìmỗi chiếc điện thoại được sản xuất ra đều được tích hợp hàng loạt dịch vụcủa Google.Từ đó hãng có thể kiếm bội, chủ yếu là từ các nguồn quảng cáotrên các dịch vụ đó.Với các nhà phát triển ứng dụng (developers), việc hệđiều hành androidđược sử dụng phổ biến đồng nghĩa với việc họ có thể thoảimái phát triển ứngdụng trên nền android với sự tin tưởng là ứng dụng đó sẻ

có thể chạy được ngay trên nhiều dòng điện thoại của các hãng khác nhau.Họ ít phải quan tâm là đangphát triển cho điện thoại nào, phiên bản baonhiêu vì nền tảng android là chungcho nhiều dòng máy, máy ảo Java đãchịu trách nhiệm thực thi những ứng dụngphù hợp với mỗi dòng điện thoại

mà nó đang chạy Tất cả các chương trình ứng dụng được viết bằng ngônngữ Java kết hợp với XML nên có khả năng khả chuyển cao

Trang 15

Một số hãng sản xuất điện thoại có sử dụng hệ điều hành android tiêubiểu:

- HTC với các dòng Desire HD, Evo 4G, DROID ERIS, Desire

Z,Hero, Desire, Tattoo, Wildfire, Droid Incredible, Legend,

Magic,Google Nexus One, Dream, Aria, Paradise

- LG với các dòng GT540 Optimus, Optimus Chic E720,

OptimusOne P500, GW620, Optimus Z, Optimus Q, KH5200 1,GW880, C710Aloha

Andro SAMSUNG với các dòng máy I9000 Galaxy S, Galaxy Tab,

Epic4G, i5510, I5500 Galaxy 5, I7500 Galaxy, I5800

Galaxy 3,M110S Galaxy S, I6500U Galaxy, Galaxy Q, I5700

Galaxy Spica,I8520 Galaxy Beam, I909 Galaxy S

- SONY : XPERIA X10, XPERIA X10 mini, XPERIA X8

- Ngoài ra còn nhiều hãng điện thoại vừa và nhỏ khác nữa cũng

sửdụng hệ điều hành android trong sản phẩm của mình

Giống như bất kỳ phần mềm nào Android được cải thiện theo thờigian,điều này được phản ánh trong một số phiên bản của nó Các phiên bảnthay đổi theo thời gian bởi vì các bản vá lỗi hoặc bản cải tiến hiệu suất

1.2 Máy ảo Dalvik trong Android

Dalvik là mục đích xây dựng máy ảo được thiết kế đặc biệt choandroid,và phát triển bởi Dan Bornstein và nhóm của ông tại Google

Máy ảo Java được đã được thiết kế với một kích thước phù hợp vànhóm Dalvik cảm thấy rằng họ có thể làm công việc này tốt hơn trên cácthiết bị di động Họ đã nhìn ra các ràng buộc cụ thể trong môi trường diđộng là ít thay đổi trong tương lai gần Chẳng hạn như tuổi thọ của pin với

Trang 16

sức mạnh của bộ xử lý.Và Dalvik đã được xây dựng để giải quyết nhữngràng buộc đó.

Một tác dụng khác nữa của việc thay thế máy ảo Java bởi máy ảoDalvik đó là việc cấp giấy phép sử dụng Trong khi ngôn ngữ lập trình java,các công cụ trong java, thư viện của java đều là miễn phí thì máy ảo Java lạikhông phải như vậy Chính vì vấn đề phát sinh này mà vào năm 2005 khicông việc trên Dalvik đã được bắt đầu Ngày nay, có nhiều lựa chọn mãnguồn mở thay thế cho máy ảo Java của SUN như dự án Open JDK vàApache Harmony Bằng việc phát triển một mã nguồn mở đúng đắn và đượcchứng nhận là máy ảo thân thiện.Android cung cấp một nền tảng đầy đủ cáctính năng, được khuyến khích áp dụng cho nhiều loại thiết bị mà không cầnphải quan tâm về giấy phép sử dụng

Trong Java tệp tin nguồn Java được biên dịch thành mã Java byte sửdụng trình biên dịch Java, và sau đó chạy mã byte này trên máy ảo Java.Trong Android điều này lại khác, ta vẫn phải biên dịch tệp tin nguồn thành

mã byte Java sử dụng trình biên dịch của Java Nhưng tại cùng thời điểm đó

mã byte Java lại được biên dịch lại một lần nữa bởi trình biên dịch Dalvik đểtrở thành mã byte Dalvik Cuối cùng mã byte Dalvik được thực thi bởi máy

ảo Dalvik

Theo lý thuyết thì có thể viết các ứng dụng Android sử dụng bất kỳngôn ngữ nào mà có biên dịch thành mã byte Java.Chẳng hạn như Pythonhay Ruby

Một số lớp không đầy đủ của Java trong Android:

- Java Standard Edition: sử dụng để phát triển các ứng dụng cơ bảntrên máy tính

- Java Enterprise Edition (aka J2EE or JavaEE): sử dụng để phát triển

Trang 17

- Java Micro Edition (aka J2ME or JavaME): phát triển các ứng dụng

di động

Thư viện của Java trong Android gần giống như Java StandardEdition Sự khác biệt chủ yếu ở đây là Java sử dụng thư viện giao diện(AWT và Swing) đã được loại bỏ và thay thế bằng các thư viện Android cụthể Và như vậy Android’s Java cũng được thêm một vài tính năng mớitrong chuẩn Java trong khi nó hỗ trợ hầu hết các chức năng chuẩn của Java

1.3 Kiến trúc của Android

Hệ điều hành android có 4 tầng từ dưới lên trên là tầng hạt nhânLinux(Phiên bản 2.6), tầng Tầng Libraries & Android runtime , TầngApplicationFramework và trên cùng là tầng Application

1.3.1 Tầng hạt nhân Linux (Linux Kernel layer)

Hệ điều hành android được phát trển dựa trên hạt nhân linux, cụ thể làhạt nhân linux phiên bản 2.6, điều đó được thể hiện ở lớp dưới cùng này.Tất cả mọi hoạt động của điện thoại muốn thi hành được thì đều đượcthực hiện ở mức cấp thấp ở lớp này bao gồm quản lý bộ nhớ (memorymanagement), giao tiếp với phần cứng (driver model), thực hiện bảomật (security), quản lý tiến trình(process) Kernel Linux hoạt độngnhư một lớp trừu tượng hóa giữa phần cứng và phần còn lại của ngăn xếpcác phần mềm

Tuy được phát triển dựa vào nhân linux nhưng thực ra nhân linux đãđược nâng cấp và sửa đổi rất nhiều để phù hợp với tính chất của nhữngthiết bị cầm tay như hạn chế về bộ vi xử lý, dung lượng bộ nhớ, kíchthước màn hình, nhu cần kết nối mạng không dây

Tầng này có các thành phần chủ yếu :

Trang 18

- Display Driver : Điều khiển việc hiển thị lên màn hình cũng như thu nhận những điều khiển của người dùng lên màn hình

- Keypad driver : Điều khiển bàn phím

- Wifi Driver : Chịu trách nhiệm về việc thu phát sóng wifi

- Audio Driver : điều khiển các bộ thu phát âm thanh, giải mã các tínhhiệu dạng audio thành tín hiệu số và ngược lại

- Binder IPC Driver : Chịu trách nhiệm về việc kết nối và liên lạc với mạng vô tuyến như CDMA, GSM, 3G, 4G, E để đảm bảo nhữngchức năng truyền thông được thực hiện

- M-System Driver : Quản lý việc đọc ghi lên các thiết bị nhớ như thẻ SD, flash

- Power Madagement : Giám sát việc tiêu thụ điện năng

1.3.2 Tầng Library và android runtime

Android bao gồm một tập hợp các thư viện cơ bản mà cung cấp hầuhết các chức năng có sẵn trong các thư viện lõi của ngôn ngữ lập trình Java.Tất cả các ứng dụng Android đều chạy trong tiến trình riêng Máy ảo Dalvik

đã được viết để cho một thiết bị có thể chạy nhiều máy ảo hiệu quả Các VMDalvik thựcthi các tập tin thực thi Dalvik (dex) Định dạng được tối ưu hóacho bộ nhớ tối thiểu VM là dựa trên register-based, và chạy các lớp đã đượcbiên dịch bởi một trình biên dịch Java để chuyển đổi thành các định dạng

Trang 19

dex Các VM Dalvik dựavào nhân Linux cho các hức năng cơ bản như luồng

và quản lý bộ nhớ thấp

Tầng này có 2 thành phần là phần Libraríe và Android Runtime:

a Phần Libraries: phần này có nhiều thư viện được viết bằng C/C++đểcác phần mềm có thể sử dụng, các thư viện đó được tập hợp thành một sốnhóm như:

- Thư viện hệ thống (System C library) : thư viện dựa trên chuẩn C,được sử dụng chỉ bởi hệ điều hành

- Thư viện Media (Media Libraries) : Có nhiều codec để hỗ trợ việcphát và ghi các loại định dạng âm thanh, hình ảnh,video thông dụng

- Thư viện web (LibWebCore) : Đây là thành phần để xem nội dungtrên web, được sử dụng để xây dựng phần mềm duyệt web (AndroidBrowse) cũng như để các ứng dụng khác có thể nhúng vào Nó cực kỳ mạnh,

hỗ trợ được nhiều công nghệ mạnh mẽ như HTML5, JavaScript, CSS,DOM,AJAX

- Thư viện SQLite : Hệ cơ sở dữ liệu để các ứng dụng có thể sử dụng

b Phần Android runtime: phần này chứa các thư viện mà một chươngtrình viết bằng ngôn ngữ Java có thể hoạt động Phần này có 2 bộ phậntương tự như mô hình chạy Java trên máy tính thường Thứ nhất là các thưviện lõi (Core Library) , chứa các lớp như JAVA IO,Collections, FileAccess Thứ hai là một máy ảo java (DalvikVirtual Machine) Tại đây cácứng dụng viết bằng Java được chạy trên máy ảo Dalvik thay thế cho máy ảoJava VM của Sun

Trang 20

Nhà phát triển có thể truy cập vào các API cùng một khuôn khổ được

sử dụng bởi các ứng dụng lõi Các kiến trúc ứng dụng được thiết kế để đơngiản hóa việc sử dụng lại các thành phần; bất kỳ ứng dụng có thể xuất bảnkhả năng của mình và ứng dụng nào khác sau đó có thể sử dụng những khảnăng (có thể hạn chế bảo mật được thực thi bởi khuôn khổ) Cơ chế này chophép các thành phần tương tự sẽ được thay thế bởi người sử dụng

Giới thiệu một số thành phần của tầng này :

- Activity Manager : Quản lý các chu kỳ sống của một ứng dụng cũngnhư cung cấp công cụ điều khiển các Activity

- Telephony Manager : Cung cấp công cụ để thực hiện việc liên lạcnhư gọi điện thoại

- XMPP Service : Cung cấp công cụ để liên lạc trong thời gian thực

- Location Manager : Cho phép xác định vị trí của điện thoại thoạidựa vào hệ thống định vị toàn cầu GPS và GoogleMaps

- Window Manager : Quản lý việc xây dựng và hiển thị cácgiao diệnngười dùng cũng như tổ chức quản lý các giao diện giữa các ứng dụng

- Notification Manager : Quản lý việc hiển thị các thông báo(như báo

có tin nhắn, có e-mail mới )

Trang 21

- Resource Manager : Quản lý tài nguyên tĩnh của các ứng dụng baogồm các file hình ảnh, âm thanh, layout, string.(Những thành phần khôngđược viết bởi ngôn ngữ lập trình).

- Một tập hợp rất nhiều các View có khả năng kế thừa lẫn nhau dùng

để thiết kế phần giao diện ứng dụng như:gridview, tableview,linearlayout,…

- Một “Content Provider” cho phép các ứng dụng có thể truy xuất dữliệu từ các ứng dụng khác (chẳng hạn như Contacts)hoặc là chia sẻ dữ liệugiữa các ứng dụng đó

đồ (Map), quay phim chụp ảnh (camera)

- Các ứng dụng được cài thêm như các phần mềm chứngkhoán(Stock), các trò chơi (Game), từ điển

Các ứng dụng có các đặc điểm là:

- Viết bằng Java, phần mở rộng là apk

- Khi mỗi ứng dụng được chạy, nó có một phiên bản Virtual Machineđược dựng lên để phục vụ cho nó Nó có thể là một Active Program:Chương trình có giao diện với người sử dụng hoặc là một background:chương trình chạy nền hay là dịch vụ

Trang 22

- Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùngmột thời điểm, có thể có nhiều chương trình cùng chạy một lúc, tuy nhiên,với mỗi ứng dụng thì có duy nhất một thực thể (instance) được phép chạy

mà thôi Điều đó có tác dụng hạn chế sự lạm dụng tài nguyên, giúp hệ thốnghoạt động tốt hơn

- Các ứng dụng được gán số ID của người sử dụng nhằn phân địnhquyền hạn khi sử dụng tài nguyên, cấu hình phần cứng và hệ thống

- Android là một hệ điều hành có tính mở, khác với nhiều hệ điềuhành di động khác, android cho phép một ứng dụng của bên thứ ba đượcphép chạy nền Các ứng dụng đó chỉ có một hạn chế nhỏ đó là nó khôngđược phép sử dung quá 5~10% công suất CPU, điều đó nhằm để tránh độcquyền trong việc sử dụng CPU - Ứng dụng không có điểm vào cố định,không có phương thức main để bắt đầu

- Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trongcùngmột thời điểm, có thể có nhiều chương trình cùng chạy một lúc,tuynhiên, với mỗi ứng dụng thì có duy nhất một thực thể (instance)đượcphép chạy mà thôi Điều đó có tác dụng hạn chế sự lạm dụngtài nguyên,giúp hệ thống hoạt động tốt hơn - Các ứng dụng được gán số ID của người

sử dụng nhằn phân địnhquyền hạn khi sử dụng tài nguyên, cấu hình phầncứng và hệ thống.- Android là một hệ điều hành có tính mở, khác với nhiều

hệ điềuhành di động khác, android cho phép một ứng dụng của bên thứbađược phép chạy nền Các ứng dụng đó chỉ có một hạn chế nhỏ đólà nókhông được phép sử dung quá 5~10% công suất CPU, điều đónhằn để tránhđộc quyền trong việc sử dụng CPU - Ứng dụng không có điểm vào cố định,không có phương thức mainđể bắt đầu

Trang 23

Với kiến trúc như trên và được kế thừa các tính năng sẵn có của Linuxnhư: mã nguồn mở, tính di động, bảo mật, tính năng đa dạng và thư viện gốclấy từ cộng đồng mã nguồn mở Android đã khẳng định được vị thế của nótrong thị trường cung cấp nền tảng của các thiết bị di động.

Trang 24

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT LẬP TRÌNH ỨNG DỤNG

ANDROID

2.1 Các thành phần trong Android Project

Khi viết một ứng dụng Android dù đơn giản hay phức tạp thì Eclipseluôn tạo cho ta một khuôn mẫu được xác định trước bao gồm các thànhphần: tệp nguồn .java, tệp R.java, các tệp tin XML như main.xml,string.xml… và thànhphần Android Manifest.xml

Để tạo một Android Project trong giao diện Eclipse chọnFile→New→Android Project với:

- Tên project: là tên xây dựng từ Eclipse, nên là một từ, mỗi từ viếthoa chữ cái đầu và không có khoảng trắng giữa các từ chẳng hạn nhưHelloWorld

- Build Target: lựa chọn phiên bản Android để xây dựng ứng dụng

- Tên của ứng dụng: là tên của ứng dụng cần tạo Nó được viết tùy ý

sẽ chạy đầu tiên

Trang 25

Trong file Manifest bao giờ cũng có 3 thành phần chính đó là:application,permission và version.

2.1.2 Thành phần Layout XML Code

Layout XML định nghĩa cấu trúc hiển thị cho một giao diện ngườidùng, chẳng hạn như UI cho một hoạt động hoặc widget ứng dụng Có thể

khai báo Layout bằng hai cách:

o Khai báo phần tử UI trong XML Android cung cấp một kho từ vựngXML đơn giản, tương ứng với các lớp và lớp con Dạng xem, chẳnghạn như dành cho các widget và layout

o

Khởi tạo các phần tử bố trí vào thời gian chạy Ứng dụng của bạn cóthể tạo các đối tượng Dạng xem và Nhóm Dạng xem (và thao tác trêncác tính chất của nó) theo lập trình

o Khuôn khổ Android cho phép linh hoạt trong khi sử dụng một hoặc cảhai phương pháp này để khai báo và quản lý UI ứng dụng Ví dụ, cóthể khai báo các bố trí mặc định cho ứng dụng trong XML, bao gồmcác phần tử màn hình mà sẽ xuất hiện trong chúng hoặc tính chất củachúng Sau đó, có thể thêm mã trong ứng dụng để sửa đổi trạng tháicủa các đối tượng trên màn hình, bao gồm những đối tượng được khaibáo trong XML, vào thời gian chạy

2.1.3 Thành phần String:

String là một dạng resource khá cơ bản trong Android, chúng đơngiản chỉ là một chuỗi hoặc một danh sách nhiều chuỗi Nhiệm vụ cơ bản củastring là cung cấp text dựng sẵn cho các view, đó có thể là một nhãn củaTextView, nhãn của Button, hint cho EditText,…

Trang 26

2.1.5 Thành phần Java Source Code:

Trong lập trình Android, có một sự phân biệt rõ ràng giữa resource vàsource code Nếu như source code là Java code, thì resource là những filecòn lại không liên quan đến Java code đó, chẳng hạn như các file hình ảnh,

âm thanh, video, các file text, màu sắc,… và thậm chí là fileactivity_main.xml cũng chính là các resource mà chúng ta cần quan tâm

2.2 Các khối chính cấu thành nên ứng dụng của Android:

2.2.1 Activity:

Lớp Activity là thành phần quan trọng nhất của ứng dụng Android,cách mà chúng hoạt động tạo thành nền tảng cơ bản của mô hình lập trìnhứng dụng Android khởi chạy một ứng dụng thông thường bằng kích hoạtmột Activity tương ứng với vòng đời cụ thể của nó trong quá trình hoạtđộng

Thường một Activity cung cấp một của sổ, ở đó ứng dụng sẽ dựng cácthành phần UI (User Interface - giao diện người dùng) Mặc định cửa sổ này

là đầy màn hình thiết bị, nhưng có một vài trường hợp riêng sẽ nhỏ hơn vànổi phía trên cửa sổ khác

Trang 27

Hầu hết các ứng dụng đều sử dụng nhiều màn hình khác nhau, cónghĩa nó sẽ phải có nhiều Activity khác nhau Khi một Activity chỉ định làActivity chính, nó sẽ là màn hình đầu tiên khi khởi chạy ứng dụng MộtActivity này lại có thể gọi và kích hoạt một Activity khác Ví dụ mộtActivity hiện thị danh sách các ghi chú, nó gọi một Activity khác để xem nộidung chi tiết của ghi chú.

- onStart(): Được gọi ngay trước khi Activity hiển thị trên màn hình

- onResume(): Được gọi ngay khi Activity bắt đầu có thể tương tác vớingười dùng, và Activity nằm trên cùng trong danh sách các Activitycủa hệ thống Sau phương thức này là các chức năng của Activity hoạtđộng dựa trên tương tác của người dùng , cho đến khi có một nguyênnhân nào đó mà phương thức OnPause được gọi

- onPause(): Được gọi khi hệ thống sắp kích hoạt một Activity khác, nếubạn quá tải phương thức này, thường để lưu lại dự liệu thật nhanh để hệthống còn kích hoạt Activity khác Ngay sau phương thức này nó sẽ gọi

Trang 28

onResume() nếu Activity được kích hoạt lại ngay, hoặc gọi OnStop()nếu Activity bị ẩn đi.

- onStop(): Được gọi khi nó bị ẩn đi Sau phương thức này, Activity cóthể gọi onRestart() nếu nó được người dùng kích hoạt lại hoặc gọionDestroy() để hết thúc

- onDestroy(): gọi khi Activity bị hủy hoàn toàn (ví dụ gọi finish(), hoặcngười dùng kill Activity)

2.2.2 Intents:

Intent là một đối tượng message có thể sử dụng để request một hànhđộng từ một vài component trong ứng dụng

Intent có 2 loại chính là Explicit Intent và Implicit Intent:

- Explicit Intent: Hiểu đơn giản explicit intents là intent xác định rõ và

Nếu intent được gửi đó khớp với intent filter trong một componenthoặc một ứng dụng nào đó, thì ngay lập tức hệ thống sẽ khởi động thànhphần đó và cung cấp cho nó intent ban đầu đc gửi

Nếu nhiều intent filter tương thích thì hệ thống sẽ hiển thị hộp thoại

để người dùng có thể chọn ứng dụng nào sẽ sử dụng

Trang 29

Intent filter (bộ lọc intent) là một thẻ trong minifest nhằm xác địnhloại intent mà thành phần chứa intent filter đó muốn nhận.

Cấu trúc của một Intent:

Một đối tượng intent sẽ mang theo thông tin mà hệ thống android cần đểquyết định thành phần nào sẽ được start Và những thông tin đó bao gồm :

- Component Name, Action,Data,Category,Extra Flag

- Component name: Tên của component được start

- Action: Là một chuỗi xác định hành động chung để thực hiện (chẳnghạn như xem hoặc chọn)

- Data: Sử dụng một đối tượng Uri tham chiếu tới dữ liệu sẽ đc thựchiện một hành động nào đó Loại dữ liệu cung cấp thường được quyết địnhbởi action của intent

- Category: Một chuỗi chứa thông tin bổ sung về loại thành phần sẽ xử

lý intent.Để nhận đc các intent không tường minh thì bắt buộc ứng dụngphải khai báo category trong manifest

- Extra: Các cặp key-value mang thông tin bổ sung cần thiết để hoànthành hành động được yêu cầu

- Flag: Cờ được định nghĩa trong lớp Intent có chức năng như siêu dữliệu cho intent Cờ có thể ra lệnh hệ thống Android về cách khởi chạy mộthoạt động sẽ thuộc về tác vụ nào, và cách xử lý sau khi nó được khởi chạy

có thuộc về danh sách hoạt động gần đây hay không

2.2.3 Services:

Service là một trong 4 component lớn của Android Nó là một thànhphần hết sức quan trọng

Trang 30

Một Service là một thành phần (component) có thể thực hiện các hoạtđộng lâu dài trong background và nó không cung cấp một giao diện ngườidùng Một thành phần khác của ứng dụng có thể start nó, và nó tiếp tục chạytrong background ngay cả khi người dùng chuyển sang ứng dụng khác.Ngoài ra một thành phần có thể liên kết (bind) với một Service để tương tácvới Service đó, thậm chí là thực hiện truyền thông liên tiến trình IPC(interprocess communication - IPC bạn có thể hiểu là một hoạt động chia sẽ

dữ liệu qua nhiều tiến trình, thông thường sử dụng giao thức truyền thông và

nó phải có Client và Server) Ví dụ: một Service có thể thực hiện các giaodịch mạng, chơi nhạc, ra vào file I/O hoặc tương tác với một contentprovider, tất cả đều từ background

Service được chia làm 3 loại khác nhau:

2.2.3.1 Foreground Service:

Một Foreground Service thực hiện một số thao tác mà người dùng chú

ý, có thể thấy rõ ràng Ví dụ một ứng dụng nghe nhạc có thể chơi một bảnnhạc và control nó bằng Foreground Service Một điều bắt buộc làForeground Service phải hiện thị một Notification Foreground Service sẽtiếp tục chạy ngay cả khi người dùng không tương tác với ứng dụng

2.2.3.2 Background Service:

Một Background Service sẽ thực hiện các hoạt động mà không đượcngười dùng chú ý trực tiếp Ví dụ một ứng dụng sử dụng một service để thugom bộ nhớ chẳng hạn thì service là một Background Service, hoạt động màngười dùng không cần thiết phải để ý

Trang 31

2.2.3.3 Bound Service:

Một service được gọi là Bound khi một thành phần của ứng dụng ràngbuộc với nó bởi lời gọi bindService() Một Bound Service cung cấp một giaodiện Client - Server cho phép các thành phần tương tác với nó: gửi yêu cầu,nhận kết quả và thậm chí là IPC Một Bound Service chỉ chạy miễn là cómột thành phần ràng buộc với nó Có thể có nhiều thành phần ràng buộc vớiBound Service cùng lúc, nhưng khi tất cả tháo bỏ ràng buộc (unbound) thì

nó sẽ Destroy Trước đây Service thường được chia là Started Service vàBound Service

2.2.4 Content Providers:

Content provider là một thành phần để quản lý truy cập dữ liệu, nócung cấp các phương thức khác nhau để các ứng dụng có thể truy cập dữ liệu

từ một ứng dụng khác bằng cách sử dụng ContentResolver Content Provider

có thể giúp cho một ứng dụng quản lý quyền truy cập đến dữ liệu được lưubởi ứng dụng đó, hoặc các ứng dụng khác, và đó là một cách để ta có thểchia sẻ dữ liệu cho các ứng dụng khác nhau

Content Provider điều phối việc truy cập tới bỗ lưu trữ dữ liệu thôngqua các API và các component nó bao gồm:

- Chia sẻ dữ liệu từ ứng dụng của bán tới các ứng dụng khác

- Gửi dữ liệu sang widget

- Trả về một kết quả gợi ý khi search cho ứng dụng của bạn thông qua Seach Framework sử dụng SearchRecentSuggestionsProvider

- Đồng bộ dữ liệu của ứng dụng với server bằng cách sử dụng

AbstractThreadedSyncAdapter

- Tải dữ liệu lên UI sử dụng CursorLoader

Trang 32

Content Provider hoạt động rất giống với một cơ sở dữ liệu, bạn có thểtruy vấn, chỉnh sửa nội dung, cũng như là thêm xóa các nội dung sử dụngcác phương thức: insert(), update(), delete(), query().

2.2.5 Broadcast Receivers:

Broadcast Receiver là một trong 4 component lớn trong Android, vớimục đích là lắng nghe các sự kiện, trạng thái của hệ thống phát ra thông quaIntent nhờ đó mà các lập trình viên có thể xử lí được các sự kiện hệ thống ởbên trong ứng dụng của mình

Broadcast Receiver có thể hoạt động được cả khi ứng dụng bị tắt đi,nghĩa là ở background chính vì vậy nó thường được sử dụng với service

Có 2 cách đăng ký Broadcast Receivers: Đăng ký trong fileAndroidManifest hoặc Đăng ký trong file Java

SQLite có các ưu điểm sau:

- Tin cậy: các hoạt động transaction (chuyển giao) nội trong cơ sở dữ liệu được thực hiện trọn vẹn, không gây lỗi khi xảy ra sự cố phần cứng

- Tuân theo chuẩn SQL92 (chỉ có một vài đặc điểm không hỗ trợ)

- Không cần cài đặt cấu hình

Trang 33

- Kích thước chương trình gọn nhẹ, với cấu hình đầy đủ chỉ không đầy

-Tạo cuộc gọi trên thiết bị android

- Giám sát cuộc gọi đến và đi từ thiết bị

Tạo cuộc gọi:

Trong android để tạo cuộc gọi bạn có thể sử dụng intent với 2 action

là ACTION_DIAL và ACTION_CALL Cả 2 actino này đều sử dụng URIscheme sau Uri.parse("tel:" + phoneNumber)

ACTION_DIAL: chỉ sao chép phoneNumber và điền vào màn hìnhgọi điện chứ KHÔNG gọi trực tiếp

ACTION_CALL: sẽ gọi trực tiếp đến phoneNumber bạn truyền vào.ACTION_CALL yêu cầu bạn cần đăng ký quyền <uses-permissionandroid:name="android.permission.CALL_PHONE"/> trongAndroidManifest.xml

Giám sát cuộc gọi:

Một chiếc điện thoại có thể ở trong ba trạng thái sau:

o idle (rảnh rỗi) khi không được sử dụng

o ringing (đổ chuông) khi có một cuộc gọi đến

Trang 34

o off-hook (bắt máy) khi cuộc gọi được trả lời.

2.3 Các thành phần giao diện trong ANDROID:

2.3.1 Views and Layouts:

Trong Android, Layout được sử dụng để xác định giao diện người dùng (UI) cho một ứng dụng hoặc activity và nó bao gồm các thành phần UI

sẽ xuất hiện ở giao diện người dùng

Giao diện người dùng trong ứng dụng được tạo ra bởi các đối tượng View và ViewGroup Thông thường, các ứng dụng Android sẽ chứa một hoặc nhiều activity và mỗi activity là một màn hình của ứng dụng Các activity sẽ chứa nhiều UI component và các UI component đó là các instancecủa lớp con View và ViewGroup

View trong Android:

View là một lớp cơ sở của tất cả các UI component trong Android Ví dụ: lớp EditText được sử dụng để nhập đầu vào từ người dùng trong

Android, và là lớp con của View

Sau đây là một số lớp con phổ biến của View thường được sử dụng trong các ứng dụng Android

Trang 35

- Spinner

Ngoài ra trong Android còn nhiều lớp con của View nữa

ViewGroup trong Android:

ViewGroup là một lớp con của View và nó sẽ hoạt động như một lớp

cơ sở cho layouts và layouts parameters ViewGroup sẽ cung cấp một bộ chứa (container) vô hình để chứa các View hoặc ViewGroup khác và để xác định các thuộc tính layout

Sau đây là một số lớp con phổ biến của ViewGroup thường được sử dụng trong Android:

Lớp con của View và ViewGroup đều đóng vai trò quan trọng để tạo

ra layout trong ứng dụng Android

2.3.1.2 LinearLayout

Linear Layout trong Android là một view group mà căn chỉnh tất cả view con theo chiều ngang hoặc chiều dọc

Các thuộc tính của Linear Layout trong Android

Dưới đây là các thuộc tính quan trọng xác định cụ thể cho Linear Layout:

- android:id Đây là ID mà nhận diện duy nhất Layout

Trang 36

- android:baselineAligned Phải là một giá trị boolean hoặc "true" hoặc

"false" và ngăn Layout từ việc căn chỉnh các baseline của view con

- android:baselineAlignedChildIndex Khi một Linear Layout là một phần của Layout khác mà là baseline aligned, nó có thể xác định view con nào của nó là baseline align

- android:divider Đây là drawable để sử dụng như một vertical divider giữa các button Bạn sử dụng một giá trị màu trong dạng "#rgb",

"#argb", "#rrggbb", hoặc "#aarrggbb"

- android:gravity Xác định cách một đối tượng nên đặt nội dung của nó,trên cả hai tọa độ X và Y Giá trị có thể là top, bottom, left, right, center, center_vertical, center_horizontal

Các thuộc tính của TableLayout trong Android:

android:id Đây là ID mà nhận diện duy nhất Layout

android:collapseColumns Xác định chỉ mục của các cột (chỉ mục này bắt đầu từ 0) Các chỉ mục cột được phân biệt riêng rẽ bởi dấu phảy: 1, 2, 5

Trang 37

android:collapseColumns Chỉ mục (bắt đầu từ 0) của các cột để co lại Các chỉ mục cột được phân biệt riêng rẽ bởi dấu phảy: 1, 2, 5

android:stretchColumns Chỉ mục (bắt đầu từ 0) của các cột để kéo ra Các chỉ mục cột được phân biệt riêng rẽ bởi dấu phảy: 1, 2, 5

2.3.1.4 RelativeLayout:

RelativeLayout trong Android cho phép bạn xác định vị trí các view con trong mối quan hệ cân xứng với nhau Vị trí của mỗi view có thể được xác định tùy theo các phần tử an hem hoặc tùy theo phần tử cha

Thuộc tính của RelativeLayout trong Android:

- android:id Đây là ID mà nhận diện duy nhất Layout đó

- android:gravity Xác định cách một đối tượng nên đặt nội dung của nó trên cả hai tọa độ X và Y Giá trị có thể có là top, bottom, left, right, center, center_vertical, center_horizontal

- android:ignoreGravity Chỉ rằng View nào không bị tác động bởi thuộctính gravity

2.3.1.5 FrameLayout:

Frame Layout trong Android được thiết kế để tạo một khối khu vực trên màn hình để hiển thị một item Nói chung, FrameLayout nên được sử dụng để giữ một view con, bởi vì để tổ chức các view con với các kích cỡ khác nhau mà để chúng không chồng chéo lên nhau là khá khó

Thuộc tính của FrameLayout trong Android:

- android:id Đây là ID mà nhận diện duy nhất Layout

Ngày đăng: 06/04/2023, 04:31

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w