Chức năng của hệ điều hành android ( phương pháp 2)

22 27 0
  • Loading ...
1/22 trang

Thông tin tài liệu

Ngày đăng: 22/10/2019, 12:29

2 Ch ứ c n ăng c H ệĐi ều Hành Chúng ta có th ểchia ch ứ c n ăng c h ệđi ều hành theo b ốn m ục nh sau: • Qu ản lý q trình (process management) • Qu ản lý b ộnh ớ(memory management) • Qu ản lý h ệth ống l u tr ữ • Giao ti ếp v ới ng ườ i dùng (user interaction) Trong : 1.Qu ản lý ti ến trình (process management): - - Là m ột module ch ức n ăng dùng để qu ản lý t h ợp file ti ến trình h ệ th ống th ực hi ện ch ức n ăng nhi ệm v ụ khác Tùy thu ộc vào ý ngh ĩa s d ụng ti ến trình có th ể x lý t ự động theo lịch trình ho ặc th ực hi ện tr ực ti ếp theo yêu c ầu Cho phép ng ười qu ản trị qu ản lý x lý t ất c ả tác động c ti ến trình đối v ới h ệ th ống V ậy v ới Android, H ệ Đi ều Hành qu ản lý ti ến trình nh th ế nào? H ệ th ống phân c ấp Th ứ bậc c process Android chia thành c ấp theo m ức độ quan trọng t cao đến th ấp: Foreground process (t ạm dịch: ti ến trình n ổi b ật) : Đây process dùng để ch ạy ứng d ụng (app) b ạn dùng Nh ững process khác c ũng có th ể xem foreground chúng có liên h ệ tr ức ti ếp v ới process “x lý” app ch ạy T ại m ột th ời ểm c ũng ch ỉ có vài foreground process mà thơi Visible process (t ạm dịch: ti ến trình nhìn th được) : Visible process không liên quan đến app ch ạy nh ưng có tác động đến nh ững th ể hi ện hình Ví d ụ, foreground process có tính n ăng “trong su ốt” (transparent) nh ững ứng d ụng hi ển th ị đằng sau visible process D ễ th nh ất cài theme h ỗ tr ợ kh ả n ăng “làm m ờ” ứng dụng “ghim” ứng dụng lên hình Service process (t ạm dịch: ti ến trình d ịch v ụ) : Tiến trình d ạng khơng liên quan đến b ất kì ứng d ụng c ả ch ạy “d ưới” ch ạy Chúng th ực hi ện công vi ệc m ột cách âm th ầm nh ch nh ạc hay t ải t ập tin Ví d ụ b ạn nghe nh ạc mu ốn chuy ển sang ch game, b ạn m game c ũng lúc process phát nh ạc tr thành service process, v ẫn ti ếp tục chơi nhạc bạn làm việc khác Background process (t ạm dịch: ti ến trình n ền) : Background process không xu ất hi ện, c ũng khơng th ực hi ện vai trò d ễ nh ận (nh ch nh ạc), chúng không ảnh h ưởng đến tr ải nghi ệm s d ụng T ại m ột th ời ểm, có r ất nhi ều background process ch ạy b ạn có th ể xem chúng nh ững ứng d ụng “t ạm d ừng” Background process v ẫn s d ụng RAM, cho phép b ạn nhanh chóng chuy ển đổi tr l ại nh ưng không s d ụng thêm tài nguyên phần c ứng khác Ví d ụ dùng Chrome b ấm phím Home, Chrome trở thành background process mở lại Chrome, c ũng l ập t ức m lại tab xem Empty process (t ạm dịch: ti ến trình r ỗng) : Tiến trình khơng tiêu tốn tài nguyên n ữa Chúng đượ c gi ữ l ại nh ằm m ục đích t ạo b ộ nh đệm cho lần khởi động sau hệ thống tùy ý lo ại b ỏ chúng Service process phát nhạc Một ví d ụ tổng quát s ẽ giúp b ạn hình dung d ễ h ơn: Angry Birds foreground process b ạn “b ắn heo” Ng ừng ch m Gmail, Angry Birds trở thành background process Gmail thành foreground process Kiểm tra xong email trở lại Angry Birds, trò ch hi ện l ại bạn chơi Trong khoảng thời gian đó, Angry Birds trì RAM, nh đệm ln tình tr ạng s ẵn sàng khơi ph ục Tính t ự động quản lý ti ến trình c Android Android có khả quản lý process cách t ự động, b ạn khơng cần cài đặt ứng dụng “quản lý ứng dụng” Khi cần nhiều tài nguyên, Android tự động xóa process quan tr ọng nhất, bắt đầu t empty background process Khi c ần nhi ều tài nguyên lúc chơi game nặng, hệ thống t ự động loại bỏ thêm service process Chơi game n ặng, nh ạc c b ạn s ẽ t ự t ắt, t ập tin t ải v ề t ự động dừng Trong đa số trường hợp, bạn không cần lo lượng RAM c máy Nhi ều ng ười lo máy RAM “ đổ th ừa” cho h ệ th ống không Cơ chế quản lý thông minh Android t ự động l ưu gi ữ ứng dụng liệu khác RAM cho bạn trải nghi ệm t ốt có th ể Dĩ nhiên, linh hoạt có điểm yếu N ếu ứng d ụng l ập trình khơng tốt, service process tiếp tục s dụng tài nguyên CPU RAM khiến máy nóng lên tụt pin nhanh chóng V ề m ặt k ĩ thu ật, tình trạng gọi “memory leaked” (rò rỉ nhớ) Một số ứng dụng lập trình đặt icon thông báo notification nh avast!, TrustGo Antivirus hay… Advanced Task Killer N ếu b ạn c ố t icon này, ứng d ụng “ch ống l ại” B ằng cách gi ữ icon thông báo, chúng cho biết khơng phải background process để kh ỏi b ị h ệ thống loại bỏ cần tài nguyên avast! “chống lệnh” t icon Ứng d ụng Android có th ể t ự đáp ứng s ự ki ện Các lập trình viên cho ứng dụng c quy ền t ự kh ởi động hệ thống hay ch ạy m ột dịch v ụ ng ầm Ứng d ụng có th ể t ự kh ởi động b ởi nhiều loại “sự kiện” khác nhau: m máy, ch ụp ảnh, thay đổi mạng Khả cho phép ứng dụng làm việc mà không c ần tiêu t ốn tài nguyên “chạy nền” (background process) Ví d ụ Facebook Messenger biết b ạn m wifi để t ự nh ận tin nh ắn “Quyền đặc biệt” ứng dụng Có thể nói, cách trình bày đơn gi ản d ễ hi ểu nh ất cho vi ệc Androi quản lí tiến trình dành cho đối tượng nh ững người không chuyên sâu v ề m ảng ki ến th ức mà v ẫn mu ốn n ắm rõ cách v ận hành hệ điều hành Còn chúng ta, nh ững sinh viên h ọc chuyên sâu v ề Công ngh ệ thơng tin vi ệc Android qu ản lí ti ến trình có th ể hi ểu theo m ột cách tr ừu t ượng nh sau: Theo mặc định, tất thành phần ứng dụng chạy tiến trình hầu hết ứng dụng không thay đổi điều Android có th ể quy ết định t m ột ti ến trình t ại m ột th ời ểm đó, bơ ̣ nhớ thấp theo yêu cầu tiến trình khác ph ục v ụ ng ười dùng tức h ơn Các thành ph ần ứng d ụng ch ạy ti ến trình b ị t b ỏ sau bị hủy Tiến trình đượ c khởi độ ng lại cho thành ph ần lại có việc cho chúng thực Khi quy ết đị nh b ỏ nh ững ti ến trình nào, h ệ th ống Android s ẽ cân nh ắc t ầm quan trọng t ươ ng đố i so v ới ng ườ i dùng Ví d ụ, h ệ th ống s ẵn sàng h ơn tắt ti ến trình l ưu tr ữ ho ạt độ ng khơng hi ển th ị hình, so với tiến trình lưu trữ hoạt độ ng hi ển thị Vì th ế, quy ết đị nh việc có chấm dứt tiến trình hay khơng phụ thuộc vào tr ạng thái c thành ph ần ch ạy ti ến trình Các quy t ắc đượ c s d ụng để định chấm dứt tiến trình trình bày bên d ưới Vòng đờ i ti ến trình Hệ thống Android c ố g ắng trì m ột ti ến trình ứng d ụng lâu nh ất có th ể, cuối cần loại bỏ ti ến trình c ũ để lấy l ại bơ ̣ nh cho tiến trình quan trọng Để xác đị nh gi ữ l ại nh ững ti ến trình loại bỏ tiến trình nào, hệ thống đặ t t ừng ti ến trình vào "phân cấp tầm quan trọng" dựa thành ph ần ch ạy tiến trình trạng thái thành phần Nh ững ti ến trình có tầm quan trọng thấp bị loại bỏ trướ c, đế n tiến trình có t ầm quan trọng th ấp th ứ hai, c ứ th ế ti ếp t ục, mi ễn c ần thi ết để khơi phục tài nguyên hệ thống Có năm cấp phân cấp tầm quan trọng Danh sách sau trình bày loại tiến trình khác theo thứ tự tầm quan trọng (ti ến trình th ứ nh ất quan trọng đượ c tắt b ỏ sau cùng): Ti ến trình ti ền c ảnh M ột ti ến trình đượ c yêu c ầu cho vi ệc mà ng ười dùng th ực hi ện M ột ti ến trình đượ c coi ti ền c ảnh n ếu b ất k ỳ ều sau đúng: o Nó l ưu tr ữ m ột Activity mà ng ười dùng t ương tác v ới (ph ương pháp c Activity, onResume(), đượ c g ọi) o Nó l ưu tr ữ m ột Service g ắn k ết v ới ho ạt độ ng mà ng ười dùng t ương tác v ới o Nó l ưu tr ữ m ột Service ch ạy "trong ti ền c ảnh"—mà d ịch v ụ g ọi startForeground() o Nó l ưu tr ữ m ột Service mà th ực thi m ột l ệnh g ọi l ại c vòng đờ i c (onCreate(), onStart(), ho ặc onDestroy()) o Nó l ưu tr ữ m ột BroadcastReceiver mà th ực thi ph ương pháp onReceive() c Nhìn chung, t ại b ất k ỳ th ời ểm xác đị nh c ũng ch ỉ t ồn t ại m ột vài ti ến trình ti ền c ảnh Chúng ch ỉ b ị t b ỏ nh m ột gi ải pháp cu ối —n ếu bộ nh th ấp t ới m ức chúng đề u không th ể ti ếp t ục ch ạy Nhìn chung, t ại th ời ểm đó, thi ết b ị đạt t ới tr ạng thái phân trang b ộ nh ớ, th ế vi ệc t b ỏ m ột s ố ti ến trình ti ền c ảnh b bu ộc để đảm b ảo giao di ện ng ười dùng có ph ản h ồi Ti ến trình hi ển th ị M ột ti ến trình mà khơng có b ất k ỳ thành ph ần ti ền c ảnh nào, nh ưng v ẫn có th ể ảnh h ưởng t ới n ội dung mà ng ười dùng nhìn th hình M ột ti ến trình đượ c coi hi ển th ị n ếu m ột hai ều ki ện sau đúng: o Nó l ưu tr ữ m ột Activity mà không n ằm ti ền c ảnh, nh ưng v ẫn hi ển th ị v ới ng ười dùng (ph ương pháp onPause() c g ọi) Đi ều có th ể x ảy ra, ví d ụ, n ếu ho ạt động ti ền c ảnh b đầ u m ột h ộp tho ại, cho phép ho ạt độ ng tr ước nhìn th phía sau o Nó l ưu tr ữ m ột Service g ắn k ết v ới m ột ho ạt động hi ển th ị (ho ặc ti ền c ảnh) M ột ti ến trình ti ền c ảnh đượ c coi c ực k ỳ quan tr ọng s ẽ không b ị t b ỏ tr làm v ậy b bu ộc để gi ữ cho t ất c ả ti ến trình ti ền c ảnh chạy Ti ến trình d ịch v ụ M ột ti ến trình mà ch ạy m ột d ịch v ụ đượ c b đầ u b ằng phương pháp startService() không r vào m ột hai th ể lo ại cao h ơn M ặc dù ti ến trình d ịch v ụ không tr ực ti ếp g ắn v ới b ất k ỳ th ứ mà ng ười dùng th ấy, chúng th ường làm nh ững vi ệc mà ng ười dùng quan tâm đế n (ch ẳng h ạn nh phát nh ạc ch ạy ng ầm ho ặc t ải xu ống d ữ li ệu m ạng), th ế h ệ th ống v ẫn gi ữ chúng ch ạy tr khơng có đủ b ộ nh để trì chúng v ới t ất c ả ti ến trình ti ền c ảnh hi ển th ị Ti ến trình n ền M ột ti ến trình l ưu tr ữ m ột ho ạt độ ng mà hi ện t ại không hi ển th ị v ới ng ười dùng (ph ương pháp onStop() c ho ạt độ ng đượ c g ọi) Nh ững ti ến trình khơng có tác độ ng tr ực ti ếp t ới tr ải nghi ệm ng ười dùng, h ệ th ống có th ể b ỏ chúng vào b ất c ứ lúc để l l ại b ộ nh cho m ột ti ến trình ti ền c ảnh, hi ển th ị ho ặc d ịch v ụ Th ường có nhi ều ti ến trình ng ầm ch ạy, th ế chúng đượ c gi ữ m ột danh sách LRU (ít s d ụng g ần nh ất) để đả m b ảo r ằng ti ến trình v ới ho ạt độ ng mà ng ười dùng nhìn th g ần nh ất ti ến trình cu ối s ẽ b ị t b ỏ N ếu m ột ho ạt độ ng tri ển khai ph ương pháp vòng đờ i c cách, l ưu tr ạng thái hi ện t ại c nó, vi ệc t b ỏ ti ến trình c ho ạt độ ng s ẽ khơng có ảnh h ưởng có th ể th đượ c t ới tr ải nghi ệm ng ười dùng, ng ười dùng ều h ướng l ại ho ạt độ ng đó, ho ạt độ ng s ẽ khơi ph ục t ất c ả tr ạng thái hi ển th ị c Xem tài li ệu Ho ạt độ ng để bi ết thông tin v ề vi ệc l ưu khôi ph ục trạng thái Ti ến trình tr ống M ột ti ến trình mà không gi ữ b ất k ỳ thành ph ần ứng d ụng hi ện ho ạt Lý nh ất để gi ữ cho ki ểu ti ến trình ho ạt độ ng nh ằm m ục đích l ưu b ộ nh ẩn, để c ải thi ện th ời gian kh ởi độ ng vào l ần t ới thành ph ần c ần ch ạy H ệ th ống th ường t b ỏ nh ững ti ến trình để cân b ằng tài nguyên t th ể c h ệ th ống gi ữa b ộ đệ m ẩn ti ến trình b ộ đệ m ẩn nhân liên quan Android x ếp h ạng m ột ti ến trình m ức cao nh ất mà có th ể, d ựa vào t ầm quan tr ọng c thành ph ần ho ạt độ ng ti ến trình Ví d ụ, n ếu m ột ti ến trình l ưu gi ữ m ột d ịch v ụ ho ạt độ ng hi ển th ị, ti ến trình s ẽ x ếp h ạng ti ến trình hi ển th ị ch ứ không ph ải ti ến trình d ịch v ụ Ngồi ra, x ếp h ạng c m ột ti ến trình có th ể t ăng b ởi ti ến trình khác ph ụ thu ộc vào nó—m ột ti ến trình mà ph ục v ụ m ột ti ến trình khác khơng th ể b ị x ếp th ấp h ơn ti ến trình mà ph ục v ụ Ví d ụ, n ếu m ột trình cung c ấp n ội dung ti ến trình A ph ục v ụ m ột máy khách ti ến trình B, ho ặc n ếu m ột d ịch v ụ ti ến trình A đượ c g ắn k ết v ới m ột thành ph ần ti ến trình B, nh ất ti ến trình A s ẽ ln đượ c coi quan tr ọng nh ti ến trình B Do m ột ti ến trình ch ạy m ột d ịch v ụ đượ c x ếp h ạng cao h ơn m ột ti ến trình có ho ạt độ ng n ền, m ột ho ạt độ ng mà kh ởi độ ng m ột thao tác nh ấp gi ữ có th ể làm t ốt vi ệc kh ởi độ ng m ột dịch v ụ cho thao tác đó, thay ch ỉ t ạo m ột lu ồng trình th ực hi ện—nh ất thao tác s ẽ có th ể di ễn lâu h ơn ho ạt độ ng Ví d ụ, m ột ho ạt độ ng mà t ải m ột ảnh lên m ột trang web nên b đầ u m ột d ịch v ụ để th ực hi ện vi ệc t ải lên cho vi ệc t ải lên có th ể ti ếp t ục ch ạy ng ầm c ả ng ười dùng r ời kh ỏi ho ạt độ ng Vi ệc s d ụng m ột d ịch v ụ s ẽ b ảo đả m r ằng thao tác nh ất s ẽ có m ức ưu tiên nh "ti ến trình d ịch v ụ", không ph ụ thu ộc vào ều x ảy v ới ho ạt động Đây c ũng lý hàm nh ận qu ảng bá nên s d ụng d ịch v ụ thay ch ỉ đư a thao tác t ốn th ời gian vào m ột lu ồng 2.Qu ản lý b ộ nh (memory management): • Theo vi.wikipedia.org Qu ản lý b ộ nh (ti ếng Anh: memory management) vi ệc ều hành b ộ nh máy tính c ấp b ậc h ệ th ống M ục đích quan tr ọng c vi ệc qu ản lý b ộ nh cung c ấp nh ững cách th ức để c ấp phát độ ng ô nh cho ch ương trình đượ c yêu c ầu gi ải phóng nh không c ần dùng n ữa Đây vi ệc r ất quan tr ọng đối v ới b ất k ỳ h ệ th ống máy tính cao c ấp s ẽ có nhi ều cơng vi ệc ti ến hành m ọi th ời ểm • Trong vi ệc qu ản lý b ộ nh ấy, có lo ại b ộ nh c ần qu ản lí, là: - Quản lý nhớ thật - Quản lý nhớ ảo:  Quản lý nhớ ảo phân trang  Quản lý nhớ ảo phân đo ạn  Quản lý nhớ ảo phân trang phân đo ạn  Quản lý nhớ CPU Intel: Với mục tiêu phải tương thích ng ược với CPU đời c ũ hơn, CPU 80x86 (x>=3) cung c ấp c ch ế qu ản lý b ộ nhớ : real mode : có CPU 8088, CPU đượ c dùng để xây dựng máy IBM PC Đây c ch ế qu ản lý b ộ nhớ thật dùng kỹ thuật phân đoạn (segmentation) protected mode : có CPU 80286 Đây c ch ế quản lý nhớ ảo dùng kỹ thuật phân đoạn (segmentation) 386 enchanced mode : thêm vào cho CPU từ 80386 tr lên Đây c ch ế qu ản lý b ộ nh t h ợp v ừa phân đoạn vừa phân trang Chúng ta khái quát xong vi ệc Qu ản lý b ộ nh H ệ Đi ều Hành nói chung; V ậy v ới H ệ Đi ều Hành riêng bi ệt nh Android vi ệc qu ản lý b ộ nh di ễn nh th ế nào? Qu ản lý b ộ nh c ứng d ụng Android Performance, thứ vô quan trọng ứng dụng Android, ảnh hưởng trực tiếp đến cảm quan ng ười dùng, đặc biệt v ới ứng dụng quy mô lớn Hôm đến v ới nhập mơn v ề performance, quản lý nhớ ứng dụng Android Random-access memory (RAM) nguồn tài nguyên quý giá môi trườ ng phát tri ển ph ần m ềm nào, có giá tr ị h ơn m ột hệ điều hành di độ ng, nơi nhớ vật lý thườ ng đượ c hạn chế M ặc dù máy ảo Dalvik Android thông thường thực việc thu gom rác thải, điều không cho phép bạn bỏ qua nơi bạn cấp phát hay giải phóng nhớ Để cho b ộ thu rác l lại b ộ nh t ứng d ụng, b ạn c ần tránh v ấn đề memory leak giải phóng b ất k ỳ m ột Refernce object t ại th ời ểm thích hợp Với phần lớn ứng dụng, gom rác Dalvik s lý phần l ại: hệ thống đòi cấp phát nhớ object tươ ng ứng ròi kh ỏi ph ạm vi active thread ứng dụng Cách để quản lý nhớ ứng dụng Android Android không cung cấp không gian trao đổi nhớ, nh ưng s dụng paging memory-mapping (mmapping) để quản lý nhớ Nghĩa b ất k ỳ b ộ nh b ạn s ửa đổi cho dù b ằng cách c ấp phát đối t ượng m ới ho ặc động đến trang mmapped -v ẫn th ường trú nhớ RAM paged Vì vậy, cách để hồn tồn giải phóng nhớ từ ứng dụng bạn để phát hành đối t ượng quan h ệ b ạn có th ể n ắm gi ữ, làm cho b ộ nh có th ể giải phóng Đó với m ột ngoại lệ: tập tin mmapped mà không s ửa đổi, ch ẳng h ạn nh mã s ố, có th ể đượ c paged RAM hệ thống muốn sử dụng nhớ nơi khác Chia sẻ nhớ Để làm phù hợp tất thứ cần nhớ RAM, Android c ố g ắng để chia s ẻ trang b ộ nh RAM quy trình Nó có th ể làm cách sau: o M ỗi m ột ti ến trình ứng d ụng đượ c chia t m ột ti ến trình có s ẵn có tên Zygote Ti ến trình Zygote b đầ u khi h ệ th ống kh ởi độ ng load mã framework resource chung (gi ống nh activity theme) Để b đầ u m ột ứng d ụng ti ến trình m ới, h ệ th ống chia ti ến trình Zygote ra, sau load ch ạy code c ứng d ụng m ột ti ến trình m ới Đi ều cho phép h ầu h ết trang b ộ nh RAM c ấp phát cho code framework resource có th ể chia s ẻ cho t ất c ả ti ến trình app o H ầu h ết d ữ li ệu t ĩnh đượ c ánh x vào m ột ti ến trình Đi ều khơng cho phép m ột d ữ li ệu đượ c chia s ẻ gi ữa ti ến trình mà cho phép đượ c paged c ần thi ết o Ở nhi ều n ơi, Android chia s ẻ RAM động qua trình s d ụng phân b ổ m ột cách rõ ràng vùng b ộ nh chia s ẻ (ho ặc v ới ashmem ho ặc gralloc) Ví d ụ, b ề m ặt c ửa s ổ s d ụng b ộ nh gi ữa ứng d ụng hình compositor chia s ẻ, b ộ đệm tr ỏ s d ụng b ộ nh gi ữa nhà cung c ấp n ội dung khách hàng chia s ẻ Cấp phát đòi nhớ sau điều cách Android cấp phát thu hồi nhớ app: o Dalvik heap cho m ỗi trình đượ c h ạn ch ế đế n m ột ph ạm vi b ộ nh ảo nh ất Đi ều xác đị nh kích th ước heap h ợp lý, có th ể phát tri ển nh c ần ph ải (nh ưng ch ỉ đế n m ột gi ới h ạn mà h ệ th ống đị nh ngh ĩa cho m ỗi ứng d ụng) o Kích th ước h ợp lý c heap không gi ống nh s ố l ượng b ộ nh v ật lý đượ c s d ụng b ởi Khi ki ểm tra heap c ứng d ụng, Android tính m ột giá tr ị g ọi t ỉ l ệ Set Kích th ước (PSS), chi ếm c ả trang dirty clean đượ c chia s ẻ v ới trình khác, nh ưng t s ố t ỷ l ệ thu ận v ới s ố ứng d ụng đượ c chia s ẻ RAM (PSS) t s ố nh ững h ệ th ống coi b ộ nh v ật lý c b ạn o Các heap Dalvik khơng thu g ọn kích th ước v ật lý c heap, có ngh ĩa r ằng Android không ch ống phân m ảnh heap để d ồn l ại khơng gian Android có th ể thu nh ỏ kích th ước heap h ợp lý có khơng gian ch ưa s d ụng vào cu ối heap Nh ưng ều ngh ĩa b ộ nh v ật lý đượ c s d ụng b ởi heap không th ể co l ại Sau thu gom rác th ải, Dalvik d ẫn heap tìm trang khơng s d ụng, sau tr ả l ại nh ững trang v ề kernel s d ụng madvise C ải t ạo b ộ nh t phân b ổ nh ỏ có th ể có hi ệu qu ả trang s d ụng cho m ột phân b ổ nh ỏ v ẫn có th ể đượ c chia s ẻ v ới nh ững trang khác mà ch ưa gi ải phóng Hạn chế nhớ ứng dụng Để trì mơi trường chức mutil-task, Android đặt gi ới hạn c ứng v ề kích th ước heap cho m ỗi ứng d ụng Gi ới h ạn kích th ước heap xác thay đổi thiết bị dựa tổng RAM mà thi ết bị có s ẵn N ếu ứng d ụng c b ạn đạt đến gi ới h ạn s ức ch ứa c c ố g ắng để c ấp phát b ộ nh h ơn, s ẽ nh ận đượ c m ột OutOfMemoryError Trong số trường hợp, bạn muốn truy vấn hệ thống để xác định xác khơng gian heap b ạn có s ẵn thi ết bị tại, để xác định có liệu an toàn để giữ nh cache B ạn có th ể truy v ấn h ệ th ống cho s ố b ằng cách g ọi getMemoryClass () Nó trả số nguyên cho biết số lượng MB có s ẵn cho heap c ứng d ụng c b ạn Chuyển ứng dụng Thay sử dụng khơng gian trao đổi người dùng chuyển đổi gi ữa ứng dụng, Android giữ quy trình mà khơng lưu trữ trước ( "người dùng nhìn thấy") thành phần ứng dụng cache LRU (least-recently used) Ví dụ, người dùng m m ột ứng d ụng, m ột ti ến trình đượ c t ạo cho nó, nh ưng người dùng rời khỏi ứng dụng, q trình khơng Hệ thống giúp q trình lưu trữ, người dùng sau trở lại ứng dụng, tiến trình sử dụng lại cho ứng dụng chuyển đổi nhanh N ếu ứng d ụng c b ạn có m ột ti ến trình trình l ưu tr ữ v ẫn nh r ằng hi ện t ại khơng c ần, k ể c ả ng ười dùng khơng s d ụng nó, làm hạn chế hiệu suất tổng thể hệ thống Vì vậy, hệ th ống ch ạy chậm nhớ, kill quy trình nhớ cache LRU b đầu v ới trình s d ụng nh ất, nh ưng c ũng đưa số xem xét quy trình có nhiều nhớ chun sâu 3.Quản lý hệ thống lưu trữ ( Hệ thống tập tin / Hệ thống File): • Trong điện tốn, hệ thống file (hay hệ thống tập tin, tiếng Anh filesystem) kiểm soát cách lưu trữ truy xuất liệu Khơng có hệ thống file, thơng tin lưu phương tiện lưu trữ khối liệu lớn mà khơng có cách để bi ết n m ột ph ần thông tin d ừng l ại ph ần ti ếp theo b đầu B ằng cách tách d ữ li ệu thành t ừng m ảnh đặt tên cho m ỗi m ảnh, thông tin d ễ dàng phân tách xác định Lấy tên từ cách đặt tên cho hệ thống thông tin gi ấy, m ỗi nhóm d ữ li ệu g ọi "file" Cấu trúc quy t ắc logic s d ụng để qu ản lý nhóm thơng tin tên c chúng gọi "hệ thống file” ( Theo vi.wikipedia.org ) V ậy v ới Androi H ệ ều hành l ưu tr ữ File Data nh nh th ế nào? Mình giới thiệu cho bạn cách lưu trữ liệu có sẵn mà Android cung cấp: Internal file storage: Lưu trữ file riêng tư ứng dụng (appprivate files) hệ thống file thiết bị External file storage: Lưu trữ file hệ thống file chia sẻ bên Thường dùng cho file mà người dùng chia sẽ, chẳng hạn hình ảnh, video Shared Preferences: Lưu trữ liệu nguyên thủy cặp keyvalue Database: Lưu trữ liệu có cấu trúc sở liệu private Ngoại trư số loại file External Storage, tất cách lưu trữ dành cho liệu riêng tư ứng dụng - liệu truy cập tự nhiên vào ứng dụng khác Nếu bạn muốn chia sẻ file với ứng dụng khác bạn nên sử dụng FileProvider API Nếu bạn muốn chia sẻ liệu cho ứng dụng khác sử dụng bạn dùng Content Provider Content Provider đưa cho bạn tồn quyền kiểm sốt quyền read/write có sẵn cho ứng dụng khác, thức bạn lưu trữ liệu (mặc dù thường database) Internal storage Theo mặc định files lưu vào Internal Storage (bộ nhớ trong) private ứng dụng bạn, ứng dụng khác không kết nối (người dùng không trừ chúng có quyền truy cập root) Điều làm cho Internal Storage nơi lưu trữ liệu tốt mà người dùng không cần truy cập trực tiếp Hệ thống cung cấp private directory hệ thống file cho ứng dụng, nơi bạn xếp tệp mà ứng dụng bạn cần Khi người dùng gỡ cài đặt ứng dụng bạn, file lưu trữ Internal Storage xóa bỏ Bởi hành vi mà bạn không nên dùng Internal Storage để lưu trữ liệu mà người dùng dự kiến muốn sử dụng độc lập với ứng dụng bạn Ví dụ ứng dụng bạn cho phép chụp ảnh, người dùng mong đơi sử dụng ảnh sau gỡ bỏ ứng dụng bạn Vì bạn nên lưu loại file External Storage Internal cache file: Nếu bạn muốn lưu trữ số liệu tạm thời, thay trì lưu liệu liên tục, bạn nên sử dụng cache directory để lưu trữ liệu Mỗi ứng dụng có nhớ cache riêng dành riêng cho loại file Khi ứng dụng hoạt động hệ thống thiếu nhớ, Android xố file nhớ cache để khôi phục dung lượng Tuy nhiên bạn không nên dự vào hệ thống để dọn dẹp tệp cho bạn Bạn nên ln tự trì file nhớ cache giới hạn không gian hợp lý tiêu thụ, chẳng hạn 1MB Khi người dùng gỡ cài đặt ứng dụng, file bị xóa External storage Mọi thiết bị Android hỗ trợ không gian lưu trữ External Storage (bộ nhớ ngồi) mà bạn sử dụng để lưu file Vùng nhớ gọi External (ngồi) nói khơng phải chắn vùng nhớ truy cập mà không gian lưu trữ Là vùng nhớ mà người dùng kết nối với máy tính, chí tháo lắp vật lý, ví dụ thẻ nhớ SD Các file External Storage đọc nơi người dùng sửa đổi chúng cho phép USB để chuyển đổi liệu sang máy tính Vì trước bạn cố gắng truy cập truy cập file External Storage ứng dụng bạn, bạn nên kiểm tra tính khả dụng thu mục file chúng Thơng thường, bạn nên sử dụng nhớ ngồi cho liệu mà truy cập vào ứng dụng khác lưu ứng dụng bạn bị người dùng gỡ cài đặt Chăng hạn ảnh chụp file download xuống trước Hệ thống cung cấp thư mục pubic chuẩn cho loại file này, người dùng có vị trí cho photos, ringtones, music, Bạn lưu file vào External Storage thư mục dành riêng cho ứng dụng bạn mà hệ thống xóa người dùng gỡ cài đặt ứng dụng điện thoại Đây giải pháp thay cho nhớ cần thêm dung lượng, file khơng đảm bảo truy cập người dùng xóa, hay tháo thẻ nhớ SD Và file đọc nơi, chúng lưu vào nơi mà không chia với ứng dụng khác Shared Preferences Nếu bạn không lưu nhiều liệu liệu khơng u cầu cấu trúc, bạn nên sử dụng Shared Preferences Loại lưu trữ cho phép bạn đọc ghi cặp key-value kiểu liệu nguyên thủy: booleans, floats, ints, longs strings Các cặp key-value ghi vào tệp XML, tồn ứng dụng sử dụng kể ứng dụng bị kill Bạn định tên cho file theo cách thủ cơng cho hành động để lưu trữ liệu bạn Tên Shared Preferences gây chút hiểu lầm khơng phải hồn tồn để lưu tùy chọn người dùng, chẳng hạn nhạc chng mà người dùng chọn Bạn dùng Shared Preferences để lưu loại liệu đơn giản nào, chẳng hạn điểm số cao người dùng Tuy nhiên bạn muốn lưu tùy chon người dùng cho ứng dụng bạn dùng PreferenceActivity 4 Databases Android cung cấp hỗ trợ đầy đủ cho SQLite Database Bất kì sở liệu mà bạn tạo truy cập ứng dụng bạn Tuy nhiên thay sử dụng SQLite API trực tiếp, Android khuyến khích Developers tên tạo tương tác với sở liệu với Room Databse, component Android Architecture gói Jetpack Room cung cấp abstract class ánh xạ đối tượng cho phép truy cập sở liệu nhanh chóng, tốc độ phát huy khai thác toàn sức mạnh SQLite Database Mặc dù bạn sử dụng với SQLite Database xem tốn nhiều thời gian công sức để sử dụng ^^: Các truy vấn cứng SQL khơng Compiler time checking Khi cấu trúc sở liệu thay đổi bạn phải update cách thủ cơng Quá trình gây tốn thời gian vã dễ bị lỗi Bạn phải viết nhiều mã để chuyển đổi truy vấn SQL đối tượng liệu java Thư viện Room giải hết vấn đề cung cấp lớp trừu tượng SQLite 5.Tổng kết Bài viết liệt kê cách lưu trữ liệu mà Android cung cấp cho ứng dụng Ngoài bạn lưu trữ liệu cách sử dụng Network Connection Để làm việc với internet bạn sử dụng gói java.net android.net cung cấp 4.Giao tiếp với người dung (User Interaction): Thiết kế tương tác Eg (IxD) nhánh thiết kế trải nghiệm người dùng, chiếu sáng mối quan hệ người máy móc họ sử dụng Mặc dù thiết kế tương tác có tảng vững lý thuyết, thực tiễn phương pháp thiết kế giao diện người dùng truyền th ống, trọng tâm xác định đối thoại phức tạp xảy người thiết bị tương tác thuộc nhiều loại - từ máy tính đến thiết bị liên lạc di động đến thiết bị • Thiết kế tương tác nhằm xác định tạo điều kiện cho tương tác người sản phẩm dịch vụ Nó tập trung vào khả để tạo khuyến khích hành vi tạo điều kiện trao đổi gi ữa người Luke Classicalbledky (lấy tháng năm 2011) trích dẫn định ngh ĩa Hiệp hội Thiết kế Tương tác (IxDA): • - - Nói chung, có hai ý nghĩa khái niệm này, xu ất phát từ truyền thống trí tuệ khác ngày h ội tụ thực tiễn nghiên cứu [ ] Một cách giải thích xem thi ết k ế tương tác môn học thiết kế, phân biệt tập Thiết kế tương tác xác định cấu trúc hành vi sản phẩm dịch vụ tương tác tương tác người dùng với sản phẩm dịch vụ Thiết kế tương tác tốt truyền đạt hiệu hệ thống Tương tác chức hệ thống, xác định hành vi truyền đạt phản hồi hệ thống với tương tác người dùng, cho thấy quy trình cơng việc đơn giản phức tạp, thông báo cho người dùng thay đổi trạng thái hệ thống ngăn ngừa lỗi người dùng Thiết kế tương tác dựa hiểu biết người dùng thực (mục tiêu, nhiệm vụ, kinh nghiệm, nhu cầu mong muốn) cân nhu cầu với mục tiêu kinh doanh khả cơng nghệ trung vào v ật li ệu thi ết k ế k ỹ thu ật s ố: ph ần m ềm, ện t vi ễn thơng Gi ải thích khác v ề thi ết k ế t ương tác xem nh phần m r ộng c t ương tác gi ữa ng ười máy tính (HCI), m ột l ĩnh v ực b ngu ồn t tâm lý h ọc th ực nghiệm khoa h ọc máy tính truy tìm ngu ồn g ốc c đến thập niên 1970 ... ( Hệ thống tập tin / Hệ thống File): • Trong điện tốn, hệ thống file (hay hệ thống tập tin, tiếng Anh filesystem) kiểm soát cách lưu trữ truy xuất liệu Khơng có hệ thống file, thơng tin lưu phương. .. startForeground() o Nó l ưu tr ữ m ột Service mà th ực thi m ột l ệnh g ọi l ại c vòng đờ i c (onCreate(), onStart(), ho ặc onDestroy()) o Nó l ưu tr ữ m ột BroadcastReceiver mà th ực thi ph ương pháp. .. trúc hành vi sản phẩm dịch vụ tương tác tương tác người dùng với sản phẩm dịch vụ Thiết kế tương tác tốt truyền đạt hiệu hệ thống Tương tác chức hệ thống, xác định hành vi truyền đạt phản hồi hệ
- Xem thêm -

Xem thêm: Chức năng của hệ điều hành android ( phương pháp 2), Chức năng của hệ điều hành android ( phương pháp 2), Quản lý tiến trình (process management):, Quản lý bộ nhớ (memory management):, Quản lý hệ thống lưu trữ ( Hệ thống tập tin / Hệ thống File):

Gợi ý tài liệu liên quan cho bạn