1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Phần mềm miễn phí giúp ôn thi sát hạch luật, lý thuyết lái xe ô tô, phiên bản dành cho điện thoại android

54 14 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Định dạng
Số trang 54
Dung lượng 26,76 MB

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

Nội dung

Với giao điện đẹp, thân thiện, hướng tới người dùng, phần mềm đã đáp ứng các yêu cầu của người dùng một cách nhanh chóng, chính xác, hiệu quả, đồng thời rất đễ sử dụng.. Hệ điều hành an

Trang 1

_ LY THUYET LAI XE O TO,

PHIEN BAN DANH CHQ.DIEN THOAI ANDROID

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TPHCM

BAO CAO TONG KET

ĐÈ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN

PHAN MEM MIEN PHI GIUP ON THI SAT HACH LUAT,

LÝ THUYÉT LÁI XE Ô TÔ, PHIÊN BẢN DÀNH CHO ĐIỆN THOẠI

Trang 3

Muc luc

Danh mục bảng .- G1 HH TH HH HC HH crkt 3 Danh mục những từ Viết tắt tt HH HT HT HT crerrrererreea 3

lô Sa 1 4311324 6 Phân I: Đặt vân đỀ - LH nung TH HC ng 7

1 Tình hình nghiên cứu trong và ngoài nước: . -s=c< c5 7

2 _ Oi turgng mghidn CUUe oo ee sec eseeeccessesecscsesecsesecsescsecscsscscscescscsceseaeerens 7

3 Những vấn đề còn tồn tại: 2 5s tk EEEEEEESEEEEEESErrerrcree 7

Phần II: Gidi quyét van dé o c.ccceccsccessccesessesessecsecseseesecstsscsucsessesssscsneaseseareaves 8

1 Mục đích mghi€m aru cccccccsssccssscecseeeeceesececsssnsecesecsesesssssessanerens 8

2 Phương pháp nghiên CỨU 5G 2 Ăn HH kg key 8 3 Nội dung nghiên cứu - -SS TH TH TH nung cư ưy 8

1 Hệ điều hành android: - - s+s+k+sEEk£EEESEE+EEEkrkrrrrererrees 8

2 Ung dung thi sat hach giấy phép Iai xe: oo cece esessesteeeeeeeeeees 35

4 Ket qua dat dure: ccccccccccscsssssscssssssessvsvsscessecacseescersesesarsucecatacsecseseeas 48

1 Nắm các kiến thức hệ điều hành android: -ssss+zzevzec- 48

2 Viết ứng dụng hoàn chỉnh: phần mềm sát hạch giấy phép lái xe ô tô 1020072200) 0/1 nố ốốốeẮ.- 48

3 Hiệu quả kinh tế: 2-5222 + cxetEvkrkrkekerkrkerkreee 49 Phần mềm nhỏ gọn trên chiếc điện thoại giúp người dùng tiết kiệm thời gian và tiền bạc, tận dụng thời gian tối đa để học luật mọi lúc, mọi nơi ngay cả trong thời

2 c0 -.d (V€(Œ(LŒŒ-)) 49 Phan III: Kết luận và đề nghị 2-52 S23 EEEEEEEEEEEEEEEEEErerrererrrrees 50

A"“.‹.) 6 50

cãi co ớẽớốớớớớ ớớớ ẽAa An ah 50

Trang 4

Danh muc hinh

Hình 1 Chu kỳ sống cita tmg dung Android .ccescssescsssessssesessssessessecssseeesseesesees 11

Hình 2 Activity stack ccecccccssscscsessssescsessssssecscssscsesessescssscscssscavevsvavscacavseesesess 12

Hinh 3 Chu ki s6ng cita Activity c c.cccccccscscessssessssesssessescssecsssecsevessveesneseseceseseess 12

FU 4 TET cccccscsessswsssassavnzeencravsecortorensuqnenenssatentensnsenegensnsensassstatecsenssnansrtanneaneseass 15

Hình 5 Các Action được dựng sẵn 2 - + HE E111 crke 16

Hình 6 Chu trình sống của một Service -2 s2 xxvEktvEEkrtrkerrrkrrrrrcer 19

Hình 7 Kiến trúc Android -cc-:: tt crtEEkktrttrrrrrirrrirtrrea 20

Hình 9 Các thành phần giao diện - 2s 212 22x EEEEEE1122112E1E7Eerrrvee 29

Hình 10 Bố trí các widget sử dụng LinearLayOut s se vx++exxevrxerrrxee 30 Tinh, 1 1 Erame layout sạsaresserverpuuonnsotttutbrgE0iiiSdENDS00000130190S28G024VS83013g37g0300g881g00030g16048 30 Hình 12 RelativeLayout sewed SEESESE5515185S75E151ESV55381 181588 18x vE nến ga nen 31 Hinh 13 1 )0)/)0)/0 T8 nn - 4 32

si 0 5P ¿2 Tố 33 Hình 15 Cơ sở dữ liệu - - +7 St + n2 HH 112111111111, 38 Hình 16 Màn hình chính - - - 5 + tt HH 1111111111111 110110111 11x 38

Hình 17 Giao diện ôn thi lý thuyết lái xe ô tô .22-©2cccceecrkerrrerrrcee 39

Hình 18 giao diện câu hỏi ôn thi . 555 + + 2 1811111111111 erree 39 Hình 19 giao diện search theo câu hỏi thi c cv tt n nh neo 40 Hình 20 Màn hình search theo nội dung câu hỏi .- 5-5555 ccscsccS2 40 Hình 21 Giao diện két qua search theo nội dung câu hỏi - 2 41 Hinh 22 Dialog khi click chọn ôn thi c2 4 nhàn nh nen grei 41 Hinh 23: Gia: Gin Ui, ccsssssceasssavesovsvensenvewseessszesveasiecteysesseasscesseesseneererunervennesovevesnes 42 Hinh 24 Giao dién kết quả thí (khi click vào két thc) cccccssssssccsssssssssssesssseeeece 42

Hình 25 Màn hình đáp án (khi click vao dap An) scsssssssssssessscssscsecseseees 4

2

Trang 5

Hình 26 Dialog chọn lịch sử đã thi ccenerrerrrrrrrrrrrrrrrr 44

Hình 27 Màn hình lịch sử thì 5c 5cc2Extrtrtrrrrrrrrrrrrrrrrrrrrrrrrirrrrriie 44 Hình 28 Màn hình các loại biển báo cccccenrreeeerrrrrrrrrrrtre 45

Hình 29 Màn hình biển báo cấm . - c2 45 Hình 30 Màn hình biển báo nguy hiểm 5 cscnieerrrrieriirrrrirrirre 46

Hình 31 Màn hình biển báo hiệu lệnh -555-55ccttrrerrrrrtrtrtirrrrrrrie 46

Hình 32 Màn hình biển báo chỉ dẫn 5-55 55+2cserterrrerrrtrirrrriirrrrrrrr 47

Hinh 33 Man hinh cdc me0 thi eeceeeseeecsseceeneseeeeeeeeeeeseessenseesssesneesasensensenseenegs 47

Danh muc bang

Bảng 1 Các thuộc tính của đối tượng Ẩriltefilsonsesssonoernannnsironnrntermaseeeesreeslki 15

2 ADT Android Development Tools — Céng

cu phat trién Android

3 API Application Programming Interface

— Giao điện lập trình ứng dụng

4 CSDL Cơ sở dữ liệu

6 SDK Software Development Kit - Phat

trién phan mém

7 XML eXtensible Markup Language - Ng6n

ngữ Đánh dâu Mở rộng

Trang 6

BO GIAO DUC VA DAO TAO

TRUONG DH SU PHAM KY THUAT TPHCM

THONG TIN KET QUA NGHIEN CUU CUA DE TAI

1 Thong tin chung:

- Tén dé tai: Phan mém giúp ôn thi sát hạch luật, lý thuyết lái xe ôt ô, phiên bản dành

cho điện thoại Android

- Sinh viên thực hiện: Cao Nguyên Ngọc MSSV: 10110228

- Dân tộc: Kinh

- Lớp: 10110CC Khoa: Đào Tạo Chất Lượng Cao

- Năm thứ: 4/4 Số năm đào tạo: 4

- Sinh viên thực hiện: Bùi Hạ My MSSV: 10110214

-Dântộc: Kinh

- Lớp: 10110CC Khoa: Đào Tạo Chất Lượng Cao

- Năm thứ: 4/4 Số năm đào tạo: 4

- Người hướng dẫn: Thạc Sĩ Nguyễn Minh Đạo

2 Mục tiêu đề tài:

Tìm hiểu hệ điều hành android, phần mềm giúp ôn thi sát hạch luật, lý thuyết lái xe ô

tô phiên bản đành cho điện thoại di động Android

3 Tính mới và sáng tạo:

Phần mềm nhỏ gọn, dễ sử dụng Ngoài những chức năng ôn thi, thi, xem các loại biển báo giúp người dùng học luật, còn có những mẹo giúp người dùng dễ nhớ đáp án hơn,

xem lại lịch sử mình da thi để điều chỉnh việc học phù hợp

4 Kết quả nghiên cứu:

Nắm các kiến thức hệ điều hành android, Viết ứng dụng hoàn chỉnh: phần mềm sát hạch giấy phép lái xe ô tô hạng B1, B2, C, D, E, F

5 Đóng góp về mặt giáo dục và đào tạo, kinh tế - xã hội, an ninh, quốc phòng và

khả năng áp dụng cúa đề tài:

Phần mềm nhỏ gọn trên chiếc điện thoại giúp người dùng học luật lệ mọi lúc mọi nơi,

hiểu hơn về luật lệ giao thông góp phần an toàn khi ham gia giao thông Phần mềm có

4

Trang 7

thé áp dụng ở các trung tâm học và thi lai xe, img dung cho tất cả mọi người tiếp cận tốt

và hiệu quả với luật lệ giao thông

6 Công bố khoa học của SV từ kết quả nghiên cứu của đề tài (ehỉ rõ tên tạp chí nếu

có) hoặc nhận xét, đánh giá của cơ sở đã áp dụng các kết quả nghiên cứu (nếu có):

Ngày tháng năm

SV chịu trách nhiệm chính thực hiện đề tài (ki, ho va tén)

Nhận xét của người hướng dẫn về những đóng góp khoa học của SV thực hiện đề tài (phần này do người hướng dan ghi):

Ngày tháng năm

(kí tên và đóng dấu) (ki, ho và tên)

Trang 8

Tom tat dé tai

Phần mềm ôn thi sát hạch luật, lý thuyết lái xe ô tô là công cụ hữu ích cho các bạn muốn học luật cũng như ôn thi lay bang lái xe ô tô Với giao điện đẹp, thân thiện,

hướng tới người dùng, phần mềm đã đáp ứng các yêu cầu của người dùng một cách

nhanh chóng, chính xác, hiệu quả, đồng thời rất đễ sử dụng

Sau một thời gian nghiên cứu và phát triển, em đã xây dựng hoàn chỉnh phần mềm

ôn thi sát hạch luật, lý thuyết lái xe ô tô với các chức năng cơ bản sau:

- Chế độ ôn thi cho phép xem toàn bộ 450 câu hỏi Đầy đủ dữ liệu 450 câu hỏi sát hạch lý thuyết lái xe và sa hình Tìm kiếm câu hỏi bằng cách gõ nội dung cần tìm

- Chế độ làm bài thi với các bộ đề được sinh ngẫu nhiên cho các hạng BI, B2, C, D,E,F Xem lịch sử thị

- Xem kết quả và đáp án sau khi làm xong bài thi

- Xem các dạng trong danh sách biển báo giao thông: biển cấm, biển báo nguy

hiểm, biên hiệu lệnh, biển báo chỉ dẫn

- Xem các mẹo giúp người dùng đễ nhớ, dé dàng chọn đáp án nhất

Trang 9

Phan I: Dat van dé

i Tình hình nghiên cứu trong và ngoài nước:

Điện thoại di động nỗi bậc lên như một phương tiện liên lạc hữu ích nhất, tiện lợi

nhất, đặc biệt đối với những người sống và làm việc trong các đô thị Hiện nay trên

thế giới, điện thoại di động không phát triển không ngừng và nhanh chóng cả về

công nghệ lẫn tính năng, ứng dụng Riêng ở Việt Nam, thị trường điện thoại di

động đã và đang phát triển mạnh mẽ với số lượng người sử dụng đông đảo, hơn

hắn các thiết bi đi động cá nhân khác

Bên cạnh đó, nhu cầu thi lay bằng lái xe ô tô sẽ trở nên rất phố biến và cần thiết

Vì vậy, một ứng dụng phần mềm miễn phí giúp ôn thi sát hạch luật, lý thuyết lái

xe ô tô, phiên bản dành cho điện thoại di động Android được người dùng chờ đợi

và ủng hộ

2 Đối tương nghiên cứu:

- Nghiên cứu hệ điều hành android về nhiều phương diện: hình thức, cấu trúc bên

ngoài, bên trong

- Nghiên cứu cách viết ứng dụng chạy trên hệ điều hành android -

3 Những vẫn đề còn tồn tai:

Hiện nay các thiết bị điện thoại đi động phát triển rất mạnh mẽ Nhu cau thi bang

lái xe ô tô của người dân cũng không còn là vấn đề xa vời vì nhiều người đã có thé săm cho mình những chiếc ô tô giá hợp túi tiền cũng như đối với những người dùng việc lái xe để mưu sinh Tuy nhiên cùng với nhịp sống hiện đại thì không phải lúc

nào họ cũng có thể cầm theo rất nhiều tài liệu, đề thi sẽ rất bất tiện mà không hiệu

quả Cuộc sống ngày càng trở nên hiện đại nên họ cần những ứng dụng phần mềm

ngay trên chính chiếc điện thoại di động nhỏ gọn Tuy nhiên trên mạng cũng có

phiên bản cả cũ cả mới lẫn lộn, của nhiều tác g1ả khác nhau nên cực kì khó khăn

cho người sử dụng tìm kiếm và tải về thì không sử dụng được Android là hệ điều

hành trên điện thoại đi động (và hiện nay là cả trên một số đầu phát HD, HD Player,

TV) phát triển bởi Google và dựa trên nền tảng Linux Android được xây dựng để

£

cho phép các nhà phát triển để tạo ra các ứng dụng di động hấp dẫn Tuy nhiên số

7

Trang 10

lượng phần mềm thi lái xe rất ít và hạn chế đặc biệt trên điện thoại đi động trên hệ

điều hành Android thì càng hiếm

Phân II: Giải quyêt vần đề

1 Muc đích nghiên cứu

Tìm hiểu sâu hệ điều hành android - một hệ điều hành đi động mã nguồn mở, miễn

phí, mạnh mẽ và được ưa chuộng cao trên thế giới

phần mềm giúp ôn thi sát hạch luật, lý thuyết lái xe ô tô phiên bản dành cho điện thoại di động Android Phần mềm bao gồm đầy đủ dữ liệu 450 câu hỏi sát hạch lý thuyết lái xe, luật giao thông đường bộ cho các hạng B1, B2, C, D, E, F vô cùng hữu ích cho các bạn muốn ôn thi lay bằng lái xe ô tô, giấy phép lái xe -

2 Phương pháp nghiên cứu

Thu thập từ nguồn tài liệu: Thu thập các nguồn tài liệu trong ngành, ngoài ngành,

nội bộ, trên mạng Cấp tài liệu: Tài liệu cấp I (Tài liệu sơ cấp), Tài liệu cấp II, II (Tài liệu thứ cấp) Tiến hành phân tích tài liệu tìm được kết hợp với kiến thức

đã có

Sau đó tổng hợp tài liệu đã nghiên cứu: chỉnh lý tài liệu, sắp xếp lại tài liệu cùng

với sự hỗ trợ của thầy hướng dẫn

Tìm hiểu lý thuyết lái xe ô tô, đặc biệt là 450 câu hỏi thi sát hạch

Viết ứng dụng thực tiễn đề ứng dụng các kiến thức đã tìm hiểu

sâu Nôi dung nghiên cứu

1 Hệ điều hành android:

Giới thiêu ứng dụng Android

11 — Giới thiệu chung về hệ điều hành android:

Android là một hệ điều hành đi động dựa trên nền tảng linux phiên bản 2.6 đành cho các dòng điện thoại SmartPhone Đầu tiên được ra đời bởi công ty liên hợp

Android, sau đó được Google mua lại và phát triển từ năm 2005 và trở thành một

hệ điều hành di động mã nguồn mở, miễn phí, mạnh mẽ và được ưa chuộng cao

trên thế giới

Hệ điều hành Android một hệ điều hành rất mạnh, có bảo mật cao, hỗ trợ được nhiều công nghệ tiên tiến như 3G, GPS, EDGE, Wifi, NFC tương thích với nhiều

8

Trang 11

phan cứng, hỗ trợ nhiều loại bộ nhập đữ liệu như keyboard, touch và trackball Android là hệ điều hành di động nên có khả năng kết nối cao với các mạng không

dây Hỗ trợ công nghệ OpenGL nên có khả năng chơi các phương tiện media, hoạt

hình cũng như trình điễn các khả năng đề họa khác cực tốt, là tiền đề để phát triển

các ứng đụng có giao diện phức tạp chăng hạn như là các trò chơi

Android liên tục được phát triển, mỗi bản cập nhật từ google là mỗi lần Android

được tối ưu hóa đề hoạt động tốt hơn, nhanh và én dinh hon, hỗ trợ thêm công nghệ

mới Chăng hạn như theo một đánh giá thì Android phiên bản 2.2 hoạt động nhanh hơn bản 2.1 tới 450% Hiện nay, phiên bản mới nhất 4.4 phát hành 2013 và đang

tiếp tục được cập nhật

Năm 2008, hệ điều hành Android đã chính thức mở toàn bộ mã nguồn, điều đó cho

phép các hãng điện thoại có thể đem mã nguồn về tùy chỉnh, thiết kế lại sao cho phù hợp với mỗi mẫu mã điện thoại của họ và điều quan trọng nữa là hệ điều hành

mở này hoàn toàn miễn phí, không phải trả tiền nên giúp họ tiết kiệm khá lớn chỉ phí phát triển hệ điều hành Những điều đó là cực kỳ tốt không chỉ đối với các hãng

sản xuất điện thoại nhỏ mà ngay cả với những hãng lớn như Samsung, HTC 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ừ Android như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áo trên các dịch vụ đó

Với các nhà phát triển ứng đụng, 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ải mái phát triển ứng dụ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 dong dién thoại của các hãng khác nhau Họ ít phải quan tâm là đang phát triển cho điện thoại nào, phiên bản bao nhiêu vì nền tảng Android là chung cho nhiều dòng máy, máy ảo Java đã chịu trách nhiệm thực thi những ứng dụng phù 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ôn ngữ Java kết hợp với XML nên có khả năng khả chuyển cao Giới thiệu ứng dụng Android: Các thành phần của ứng dụng Android

Các thành phần chính của một ứng dụng Android gồm:

9

Trang 12

1) Activity

Hiểu một cách đơn giản thì Activity là một màn hình của 1 ứng dụng Mỗi một màn hình là một lớp mở rộng của lớp Activity Khi khởi động 1 ứng dụng Android nào đó thì bao giờ cũng có một main Activity được gọi, hiển thị màn hình giao diện chính của ứng dụng cho phép người dùng tương tác và từ đó mở ra các màn hình khác

2) Services

Thanh phan chay an trong Android Service sir dung đề thực hiện những công việc

mà không cần hiển thị xuyên suốt cho người dùng thấy như hẹn giờ, theo dõi các cập nhật của ứng dụng, đưa ra các cảnh báo (Notification)

đó

5) Broadcast Receiver

Thanh phan thu nhận các Intent bên ngoài gửi tới

Ví dụ: bạn viết 1 chương trình thay thế cho phần gọi điện mặc định của Android, khi đó bạn cần 1 Broadcast Receiver để nhận biết các Intent là các cuộc gọi tới

6) Notification

10

Trang 13

Đưa ra các cảnh báo mà không làm cho các Activity phải ngừng hoạt động Đây là một kỹ thuật được ưa chuộng để tạo một chú ý người đùng từ bên trong một Service

hoặc một Broadcast Receiver Ví dụ khi người dùng đang nhận một tin nhắn hoặc đang nhận cuộc gọi, chúng sẽ gửi đến họ một tín hiệu bằng đèn, tạo một âm thanh

hoặc hiển thị một biểu tượng nào đó

Vòng đời của ứng dụng Android

Một sự khác thường và là đặc tính cơ bản của Android là thời gian sống của tiễn

trình ứng dụng không được điều khiên trực tiếp bởi chính nó Thay vào đó, nó được

xác định bởi hệ thống qua sự kết hợp của việc theo dõi:

= Nhimg phan cia img dụng mà hệ thống biết là đang chạy

# Độ ưu tiên của các thành phần ứng dụng

" Ứng dụng chiếm lĩnh bao nhiêu vùng nhớ của hệ thống

Một tiến trình của một ứng dụng Android được tao ra và còn chạy cho đến khi người sử dụng hủy hoàn toàn hay khi hệ thống cần lấy lại bộ nhớ mà nó chiếm giữ

để cung cấp cho các ứng dụng khác có độ ưu tiên cao hơn

Các thành phần ứng đụng có một chu kỳ sống, tức là mỗi thành phân từ lúc bắt đầu khởi tạo và đến thời điểm kết thúc Giữa đó, đôi lúc chúng có thể là active hoặc

inactive, hoặc là trong trường hợp activie nó có thé visible hoặc invisible

Chu kỳ sống một tring dung Android

Start Active/Inactive End

Nếu người dùng nhắn nút Back thì activity kết tiếp của stack sẽ đi duyễn lên và trở thanh active Activity

11

Trang 14

Ế SN co JRE eee 3

Activity mdi | T Nút nhắn Back được nhắn

được khởi tạo Hoặc Activity đang chạy được đóng

Hinh 3 Chu ki song ciia Activity

Mot Activity cé 3 chu ky chinh sau:

= Active hoặc rumning: khi Activity đang được chạy và hiển thị trên màn hình, Activity này tập trung vào những thao tác của người dùng trên ứng dụng

* Paused: Activity dang duoc tạm dừng, tuy bị khi mất focus đo có một Activity

khác với màn hình không che hết Activity bị tạm đừng nằm ở trên, vì thế người

dùng vẫn có thể trông thấy nó Một Activity tạm đừng là còn sống nhưng có thể bị

kết thúc bởi hệ thống trong trường hợp thiếu vùng nhớ

12

Trang 15

® Stopped: nếu nó hoàn toàn bao phủ bởi Activity khác Nó vẫn còn các trạng thái

và thông tin thành viên trong nó Người dùng không thấy nó và thường bị loại bỏ trong trường hợp hệ thống cần vùng nhớ cho tác vụ khác

k< Các phương thức trong chu kỳ sống của một Activity:

Phương thức: onCreate()

- Được gọi khi activity lần đầu tiên được tạo

- Ở đây bạn làm tất cả các cài đặt tĩnh tạo các view, kết nối dữ liệu đến list và

- Được gọi trước khi một activity visible với người dùng

- Theo sau bởi onResume() nếu activity đến trạng thái foreground hoặc onStop()

né nó trở nên ân

Phương thức: onResumc()

- Được gọi trước khi activity bắt đầu tương tác với người dùng

- Tai thoi diém nay activity ở trên dinh của stack activity

- Luôn theo sau bởi onPause()

Phương thức: onPauseQ

- Được gọi khi hệ thống đang resuming activity khác

- Phương thức này là điển hình việc giữ lại không đổi dữ liệu

13

Trang 16

- Nó nên được điển ra một cách nhanh chóng bởi vì activity kế tiếp sẽ không được resumed ngay cho đến khi nó trở lại

- Theo sau bởi onResume nếu activity trở về từ ở trước, hoặc bởi onStop nều nó trở nên vIsibÌle với người dùng

- Trạng thái của activity có thê bị giết bởi hệ thống

Phương thức: onStopQ

- Được gọi khi activity không thuộc tầm nhìn của người dùng

- Nó có thê điễn ra bởi vì nó đang bị hủy, hoặc bởi vì activity khác vữa được

- Được gọi trước khi activity bị hủy

- Đó là lần gọi cuối cùng mà activity này được nhận

- Nó được gọi khác bởi vì activity đang hoàn thành, hoặc bởi vì hệ thống tạm thởi

bị hủy điệt để tiết kiệm vùng nhớ

- Bạn có thê phân biệt giữa 2 kịch bản với phương isFinshingQ

Intent

e Khai niện Intent:

Intent là một cấu trúc đữ liệu mô tả cách thức, đối tượng thực hiện của một Activity

Nó là cầu nối giữa các Activity: ứng dụng Android thường bao gồm nhiều Activity, mỗi Activity hoạt động độc lập với nhau và thực hiện những công việc khác nhau Intent chính là người đưa thư, giúp cac Activity cé thể triệu gọi cũng như truyền các dữ liệu cần thiết tới một Activity khác Điều này cũng giống như việc đi chuyển qua lại giữa các Forms trong lập trình Windows Form

14

Trang 17

ee ~ Activity A Intent: action+data Z7 AdMVB `.” OO re,

(Setprofile picture pis!) =} So 1/7 (pick up one pis!)

(Intent: code + result) :

Hinh 4 Intent

Intent về cơ bản là một cấu trúc đữ liệu, được mô tả trong lớp android.content.Intent

e Các thuộc tính của một đối tượng Intent:

Bảng 1 Các thuộc tính của đối tượng Intent

action Action cé thé do Android định nghĩa san (built-in

standard action) hoặc do người lập trình tự định

data Dir ligu mà Activity được gọi sẽ xử lý

catelogy Thông tin về nhóm của action

ị Định đạng kiểu dữ liệu (chuân MIME), thường được

tự động xác định

Chỉ định cụ thê lớp sẽ thực thi Activity Khi được xác

component định, các thuộc tính khác trở thành không bất buộc

e Các Action được định nghĩa sẵn:

Dưới đây là những hằng String đã được định nghĩa sẵn trong lớp Intent Đi kèm

với nó là các Activity hay Application được xây dựng sẵn sẽ được triệu gọi mỗi

khi Intent tương ứng được gửi (tất nhiên khi được cung cap dung data)

15

Trang 18

Vi dụ: Gọi tới một số điện thoại:

Intent diallntent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:123456")); startActivity(diallntent);

: ‘Built-in Standard Actions

ACTION MAIN ACTION ANSWER

ACTION VIEW ACTION INSERT

ACTION ATTACH DATA ACTION DELETE

ACTION EDI ACTION RUN

ACTION PICK ACTION SYNC

ACTION CHOOSER ACTION PICK ACTIVITY

ACTION GET CONTENT ACTION SEARCH

ACTION DIAL ACTION WEB SEARCH

ACTION CALL | ACTION FACTORY TEST

ACTION SEND ACTION SENDTO

=" Built-in Standard Broadcast Actions.)

ACTION TIME TICK ACTION PACKAGE RESTARTED

ACTION TIME CHANGED ACTION PACKAGE DATA CLEARED

ACTION TIMEZONE CHANGED ACTION UID REMOVED

ACTION BOOT COMPLETED ACTION BATTERY CHANGED

ACTION PACKAGE ADDED ACTION POWER CONNECTED

ACTION PACKAGE CHANGED ACTION POWER DISCONNECTED

ACTION PACKAGE REMOVED ACTION SHUTDOWN

Hình 5 Các Action được dựng sẵn

Content Provider và Dri

Trong hệ thống Android tất cả các tài nguyên như Contact, SMS, đều được lưu trir vao CSDL SQLite của hệ thống Cũng như các CSDL khác, CSDL mà hệ thống Android sử dụng để lưu trữ thông tin cũng cho phép chúng ta truy vấn dữ liệu như một CSDL thông thường Tuy nhiên, trong hệ thống đó chúng ta không cần phải

thao tác bằng lệnh SQL nhiều dé truy xuất dữ liệu mà thay vào đó Android đã được

trang bị một API cho phép người lập trình có thể dễ đàng truy xuất dữ liệu Đó gọi

là ContentProvider ContentProvider cung cấp cho chúng ta một đối tượng con trỏ

giúp chúng ta có thể dễ dàng lấy được bất cứ đữ liệu lưu trữ nào chỉ cần cung cấp

một đường dẫn đúng đến dữ liệu đó Đường dẫn này còn được gọi là Uri

content: //com.example.transportationprovider/trains/122

Tao mot Uri:

Uri uri = Uri.parse(“content://com.android.contacts/contacts”);

Cấu trúc gồm có 4 phần chính như sau:

w Phần A: Đây là tiền tố chỉ ra dữ liệu được điều khiển bởi Content Provider và nó

không bao giờ thay đồi

16

Trang 19

= Phan B: Phan này chỉ đến nơi lưu trữ đữ liệu Cũng giống như cấu trúc của một

số điện thoại thì cái này có thể hình dung nó như là mã quốc gia hoặc cũng có thể

coi nó như là tên của CSDL

= Phan C: phan nay chi ra loại đữ liệu Chẳng hạn như, đữ liệu contact, dữ liệu

SM§S, Phần này có thê coi nó như là tên của một table

» Phần D: phần này chỉ đến đúng vị trí của dữ liệu, có thể coi phần này như là ID

của row trong table hoặc một dữ liệu nào đó dùng để truy van

Ví dụ: Uri chỉ đến contact thứ 0 trong CSDL là: content://contacts/people/0

Để có thê thực hiện truy vấn đến vùng đữ liệu được chỉ ra bởi mét Uri ta cần có 2

đối tượng con trỏ được cung cấp bởi Activity đó là: Cursor và ContentResolver

Đề lấy được 2 đối tượng này thì trong Activity sử dụng hàm

getContentResolverQ; - trả về đối tượng ContentResolver

getContentResolver().query(Ủrni uri); - trả về đối tượng Cursor

Background Service

Service là một trong 4 thành phần chính trong một ứng dụng Android (Activity,

Service, BroadcastReceiver, ContentProvider) thành phần này chạy trong hậu

trường và làm những công việc không cần tới giao diện như chơi nhạc, download,

xử lí tính toán, 1¬

Một Service có thể được sử dụng theo 2 cách:

“ Nó có thê được bắt đầu và được cho phép hoạt động cho đến khi một người nào

đó dừng nó lại hoặc nó tự ngắt Ở chế độ này, nó được bắt đầu bằng cách gọi

Context.startService() và dừng bằng lệnh Context.stopService() Nó có thé tu ngat

bang lénh Service.stopSelf() hoac Service.stopSelfResult() Chi cần một lệnh

stopService() dé ngimg Service lại cho dù lệnh startService() được gọi ra bao nhiêu

^

lân

“ Service có thê được vận hành bằng việc sử dụng một Interface mà nó định nghĩa

Người dùng thiết lập một đường truyền tới đối tượng Service và sử đụng đường

kết nối đó đề thâm nhập vào Service Kết nối này được thiết lập bằng cách gọi lệnh

Context.bindService() và được đóng lại bằng cách gọi lệnh

Context.unbindService() Nhiều người dùng có thé kết nối tới cùng một Service

F—————————-—_BBSÖ

SKC 005711

Trang 20

Nếu Service vẫn chưa được khởi chạy, lệnh bindService() có thé thy ý khởi chạy

Hai chế độ này không tách biệt hoàn toàn, có thể kết nối với một Service mà nó đã được bắt đầu với lệnh startService() Ví dụ, một Service nghe nhạc ở chế độ nền

có thê được bắt đầu bằng cách gọi lệnh startService() cùng với một đối tượng Intent

mà định dạng được âm nhac dé choi Chỉ sau đó, có thể là khi người sử đụng muốn kiểm soát trình chơi nhạc hoặc biết thêm thông tin về bài hát hiện tại đang chơi, thì

sẽ có một Activity tạo lập một đường truyền tới Service bằng cách gọi

bindService() Trong trường hợp như thế này, stopService() sẽ không thực sự ngừng Service cho đến khi liên kết cuối cùng được đóng lại

Giống như một Activity, một Service cũng có các phương thức chu kỳ sống mà ta

có thể cài đặt để kiểm soát những sự thay đổi trong trạng thái của nó Service chỉ

có 3 phương thức được gọi đến trong chu trình sống là:

void onCreate()

void onStart(Intent intent)

void onDestroy()

Các phương thức kết nối và hủy kết nỗi đến một Service:

IBinder onBind(Intent intent)

boolean onUnbind(Intent intent)

void onRebind(Intent intent)

18

Trang 21

Service is Service is Started by created by

Hình 6 Chu trình sống của một Service

Hệ điều hành Android có 4 tầng từ đưới lên trên là tầng hạt nhân Linux (Phiên bản

2.6), tang Tang Libraries & Android runtime , Tang Application Framework va trên cùng là tầng Application[2]

19

Trang 22

Hinh 7 Kién tric Android

Tang hat nhan Linux (Linux Kernel layer):

Hệ điều hành Android được phát triể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 được thực hiện ở mức cấp thấp ở lớp này bao gồm quản lý bộ nhớ (memory management), giao tiếp với phần cứng (driver model), thực hiện bảo mật (security), quản lý tiến trình (process)[3]

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ững thiết bị cầm tay như

hạn chế về bộ vi xử lý, dung lượng bộ nhớ, kích thước màn hình, nhu cần kết nối

mạng không đây

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

> 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 đùng lên màn hình (di chuyên, cảm ứng )

> Camera Driver : Điều kiến hoạt động của camera, nhận luông đữ liệu từ camera trả vê

> Bluetooth Driver : Diéu khién thiết bị phát và thu sóng Bluetooth

20

Trang 23

> USB driver : Quản lý hoạt động của các cổng giao tiép USB

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

> Wifi Driver : Chịu trách nhiệm về việc thu phat song wifi

> Audio Driver : điều khiển các bộ thu phát âm thanh, giải mã các tính hiệu

đạng audio thành tín hiệu số và ngược lại

> Binder IPC Driver : Chiu trach 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ững chứ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

Tang Library va Android runtime: Phần này có 2 thành phần là phần Library và Android Runtime

Tầng 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ư[4] :

> 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 mã đề hỗ trợ việc phá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) : Day là thành phần đề xem nội dung trên web, được sử dụng để xây dựng phan mềm duyệt web (Android Browse) 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

21

Trang 24

Tang Android runtime:

Phần này chứa các thư viện mà một chương trình viết bằng ngôn ngữ Java có thé hoạt động Phần này có 2 bộ phận tươ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 10, Collections, File Access Thir hai 14 m6t may ao java (Dalvik Virtual Machine) [5] Mặc dù cũng được viết từ ngôn ngữ Java nhưng một ứng dụng Java của hệ điều hành Android không được chạy bằng JRE của Sun (nay là Oracle) (TVM) mà là chạy băng máy ảo Dalvik do Google phát triển

Tang Application Framework

Tầng này xây dựng bộ công cụ, các phần tử ở mức cao te các lập trình viên có thể nhanh chóng xây dựng ứng dụng Nó được viết bằng Java, có khả năng sử dụng chung dé tiét kiém tai nguyén[6]

Đây là một nền tàng mở, điều đó có 2 điều lợi:

- Với các hãng sản xuất điện thoại : Có thể tùy biến để phù hợp với cấu hình điện thoại mà họ sản xuất cũng như để có nhiều mẫu mã, style (phong cách) hợp thị hiếu người dùng Vì thế nên tuy cùng chung nên tảng Android mà điện thoại của

Google có thể khác hắn với Motorola, HTC, T-Mobile, Samsung

- Với lập trình viên : Cho phép lập trình viên có thể sử dụng các API ở tầng trên

mà không cần phải hiểu rõ cấu trúc bên dưới, tạo điều kiện cho lập trình viên tự do sáng tạo bởi vì chỉ cần quan tâm đến nội dung mà ứng dụng họ làm việc Một tập

hợp API rất hữu ích được xây dựng sẵn như hệ thông định vị, các dịch vụ chạy

nên, liên lạc giữa các ứng dụng, các thành phân giao diện cập cao

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

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

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

thoại

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

22

Trang 25

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

o Window Manager : Quan ly viéc xây dựng và hiển thị các giao diện người dùng cũng như tô chức quản lý các giao điện giữa các ứng dụng

oNotication Manager : Quan ly viéc hiển thị các thông báo (như báo có tin nhắn,

có e-mail mdi )

o Resource Manager : Quan ly tai nguyén tinh cua cac img dung bao gồ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)

Tang Application:

Đây là lớp ứng dụng giao tiếp với người dùng, bao gồm các ứng dụng như :

Các ứng dụng cơ bản, được cài đặt đi liền với hệ điều hành là gọi điện(phone),

quản lý danh bạ(Contacts), duyệt web (Browser), nhắn tin (SMS), lịch làm việc (Calendar), doc e-mail (Email-Client), ban đồ (Map), quay phim chụp ảnh (camera) [7]

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

(Game), từ điền

Các chương trình có các đặc điểm là :

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

> Khi m6i tmg dung duc chay, n6 co mot phién bar Virtual Machine duoc

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ụ

> Android là hệ điều hành đa nhiệm, điều đó có nghĩa là trong cùng mộ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ống hoạt động tốt hơn

23

Trang 26

> Các ứng dụng được gán số ID của người sử dung nhăn phân định quyề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ều hành đi

độ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

dau

1.3 Hé thống tập tin trên hệ điều hành:

Trong phạm vi một bài tìm hiểu về hệ điều hành, em chỉ xin tìm hiểu rõ một vẫn

đề của hệ điều hành Android đó là vấn để quản lý hệ thống tập tin Phần này có điểm thuận lợi dé tìm hiểu đó là vì được phát triển từ nhân linux nên hệ thống tập tin trên Android cực kỳ giống hệ thống tập tin trên linux như là về cách tổ chức,

những quyền hạn của người sử dụng lên file

1.4.1 Tỗng quan về hệ thống file trên Android

Trong Android, các file được tổ chức thành các thư mục, theo mô hình phân cấp Tham chiếu đến một file bằng tên và đường dẫn Các câu lệnh thao tác file cho phép thực hiện các chức năng như dịch chuyền, sao chép toàn bộ thư mục cùng với các thư mục con chứa trong nó

Có thể sử dụng các ký tự, đấu gạch đưới, chữ số, dau cham va dau phay đề đặt tên file Không được bắt đầu một tên file bằng dầu chấm hay chữ số Những ký tự khác như ‘/’, ‘2’, **°, là ký tự đặc biệt được đành riêng cho hệ thống Chiều dài của tên

file có thể tới 256 ký tự Trong hệ điều hành Android có sự phân biệt tên file chữ

hoa và chữ thường, điều đó có nghĩa là trong cùng 1 thư mục có thể tồn tại những file có tên là File, FILE, file và chúng là những file khác nhau

Tất cả các file trong Android có chung cấu trúc vật lý là chuỗi các byte (byte stream) Cấu trúc thống nhất này cho phép Android áp dụng khái niệm file cho mọi thành phần đữ liệu trong hệ thống Thư mục cũng như các thiết bị được xem như

file Chính việc xem mọi thứ như các file cho phép Android quản lý và chuyên đổi

dữ liệu một cách dễ dàng Một thư mục chứa các thông tin về thư mục, được tổ chức theo một định dạng đặc biệt Các thành phần được xem như các file, chúng

24

Trang 27

được phân biệt dựa trên kiéu file: ordinary file, directory file, character device file,

va block device file

1.4.2Cac kiéu file trén Android "

Trong nhiều hệ điều hành như window, người ta phân biệt rõ file (tập tin) và folder (hay đirectory : thư mục) là 2 thành phần khác hẳn nhau Tuy nhiên trên hệ điều

hành Android (cũng như linux) thì coi đirectory cũng là file và nó là một loại file đặc biệt

1.4.3Tổ chức quyền sở hữu và quyền hạn trên file

Tương tự trên hệ thống linux, trên hệ điều hành Android, một file có thể liên kết

với một người sử dụng và một nhóm người sử dụng Sự liên kết đó là một tập hợp các quyền hạn truy cập bao gồm quyền được phép đọc (read), duoc phép ghi (write)

va duoc phép thuc thi (execute)

Cụ thể như sau: Một file sẽ có những quyền hạn tương ứng với 9 ký tự theo mẫu sau : Với ký tự r w x nghĩa là có quyền tương ứng với ký tự viết tắt đó, - nghĩa là không có quyền hạn đó

3 ký tự đầu tiên là quyền hạn chủ nhân file

3 ký tự giữa là quyền hạn của nhóm tài khoản sở hữu file

3 ký tự cuối là quyền hạn của những người không thuộc nhóm sở hữu file

Ví dụ : Một file có dãy ký tự biểu diễn quyền hạn là rwxr-xr— thì điều đó có nghĩa

3 ky tu đầu là rwx : Chủ nhân có thể đọc, ghi và thực thi file

3 ký tự tiếp theo lả r-x thi nhóm tải khoản sở hữu file có quyển đọc vả thực thi ñle chứ không có quyền ghi, chỉnh sửa file

3 ký tự cuối là r nghĩa là những người không sở hữu file chỉ được phép đọc mà

không thể chỉnh sửa hay thực thi file

Trên hệ thống Android, để biết xem được quyền hạn đó, ta có thể sử dụng câu lệnh

Is -1 -d Vi du : Is -1 -d /mnt/sdcard/ NgocMy dé xem quyền hạn của file /mnt/sdcard/NgocMy thi co thể trả về kết quả như sau:

d -rwxr-x system sdcard rw_ 2014-5-29 21:00 NgocMy

Thì những thông tin có thể lấy về là :

25

Ngày đăng: 27/11/2021, 09:07

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[4] Android http://vi.wikipedia.org/wiki/Android Link
[5] Kiến trúc hệ điều hành Android http://tech.blog.framgia.com/vn/?p=]452 50 Link
[6] Tầng hạt nhân Linux http://tech.blog.framgia.com/vn/?p=1452 Link
[7] Tầng Library http://tech.blog. framgia.com/vn/?p=1452 Link
[8] Phan Android runtime http://tech.blog.framgia.com/vn/?p=1452 Link
[9] Tang Application Framework http://tech.blog.framgia.com/vn/?p=1452 Link
[10] Tang Application http://tech.blog.framgia.com/vn/?p=1452 Link
[11] SQLite https://sites.google.com/site/mobionteam/discussion/sqlite Link
[12] Hệ điều hành android http://www.vietnamandroid.com/gioi-thieu Link
[1] The Definitive Guide to SQLite, Tac gid: Grant Allen, Mike Owens Khác
[2] Android for Work Productivity for Professionals, Tac gia: Marziah Karch Khác
[3] Pro Android 4, Tac gia: Satya Komatineni, Dave MacLean Khác

TỪ KHÓA LIÊN QUAN

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