Nhiệm vụ của hệ điều hành android

11 217 0
Nhiệm vụ của hệ điều hành android

Đ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

3. Nhiệm vụ của Hệ Điều Hành  Điều khiển và quản lý trực tiếp các phần cứng như bo mạch chủ, bo mạch đồ  họa và bo mạch âm thanh,  Thực hiện một số thao tác cơ bản trong máy tính như các thao tác đọc, viết tập  tin, quản lý hệ thống tập tin (file system) và các kho dữ liệu  Cung ứng một hệ thống giao diện sơ khai cho các ứng dụng thường là thơng  qua một hệ thống thư viện các hàm chuẩn để điều hành các phần cứng mà từ đó các ứng dụng có thể gọi tới  Cung ứng một hệ thống lệnh cơ bản để điều hành máy. Các lệnh này gọi là lệnh  hệ thống (system command)  Ngồi ra hệ điều hành, trong vài trường hợp, cũng cung cấp các dịch vụ cơ bản  cho các phần mềm ứng dụng thơng thường như chương trình duyệt  Web, chương trình soạn thảo văn bản Trong đó: Thực hiện một số thao tác cơ bản trong máy tính như các  thao tác đọc, viết tập tin, quản lý hệ thống tập tin (file  system) và các kho dữ liệu Những cách lưu trữ dữ liệu có sẵn mà Android cung cấp: Internal file storage: Lưu trữ các file riêng tư của ứng dụng (app­private files) trong hệ thống file của thiết bị External file storage: Lưu trữ file trên hệ thống file chia sẻ ra được bên ngồi Thường dùng cho các file mà người dùng được chia sẽ, chẳng hạn như hình  ảnh, video Shared Preferences: Lưu trữ dữ liệu ngun thủy bởi các cặp key­value Database: Lưu trữ các dữ liệu có cấu trúc trong cơ sở dữ liệu private Ngoại trư một số loại file trên External Storage, thì tất cả các cách lưu trữ này  dành cho dữ liệu riêng tư của ứng dụng ­ dữ liệu khơng thể truy cập tự nhiên  vào các ứng dụng khác. Nếu bạn muốn chia sẻ file với các ứng dụng khác bạn nên sử dụng FileProvider API Nếu bạn muốn chia sẻ dữ liệu cho ứng dụng khác sử dụng bạn có thể 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 các ứng dụng khác, bất kể các thức bạn đã lưu trữ dữ  liệu (mặc dù thường là database) 1. Internal storage Theo mặc định thì các files được lưu vào Internal Storage (bộ nhớ trong) sẽ là  private đối với ứng dụng của bạn, và các ứng dụng khác sẽ khơng kết nối  được (người dùng cũng khơng được trừ khi chúng có quyền truy cập root).  Điều này làm cho Internal Storage là một nơi lưu trữ dữ 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 một private directory trong hệ  thống file cho mỗi ứng dụng, nơi bạn có thể sắp xếp bất kì tệp nào mà ứng  dụng của bạn cần Khi người dùng gỡ cài đặt ứng dụng của bạn, các file  được lưu trữ trong Internal Storage được xóa bỏ. Bởi do hành vi này mà bạn  khơng nên dùng Internal Storage để lưu trữ dữ liệu mà người dùng dự kiến  muốn sử dụng độc lập với ứng dụng của bạn. Ví dụ ứng dụng của bạn cho  phép chụp ảnh, người dùng sẽ mong đơi sẽ sử dụng những bức ảnh đó sau  khi gỡ bỏ ứng dụng của bạn. Vì vậy bạn nên lưu các loại file đó ở External  Storage Internal cache file: Nếu bạn muốn lưu trữ một số dữ liệu tạm thời, thay vì duy trì lưu dữ liệu liên  tục, bạn nên sử dụng cache directory để lưu trữ dữ liệu. Mỗi ứng dụng có một  bộ nhớ cache riêng dành riêng cho các loại file này. Khi ứng dụng đang hoạt  động nhưng hệ thống thiếu bộ nhớ, Android có thể xố các file trong bộ nhớ  cache này để 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 các tệp này cho bạn. Bạn nên ln tự duy trì các file trong  bộ nhớ cache ở trong giới hạn khơng gian hợp lý được tiêu thụ, chẳng hạn  như 1MB. Khi người dùng gỡ các cài đặt của ứng dụng, các file này cũng bị  xóa 2. External storage Mọi thiết bị Android đều hỗ trợ khơng gian lưu trữ External Storage (bộ nhớ  ngồi) mà bạn có thể sử dụng để lưu file. Vùng nhớ này được gọi là External  (ngồi) là bởi vì nói khơng phải chắc chắn là một vùng nhớ có thể truy cập  được mà nó là một khơng gian lưu trữ. Là vùng nhớ mà người dùng có thể kết nối với máy tính, thậm chí có thể tháo lắp vật lý, ví dụ như các thẻ nhớ SD.  Các file trên External Storage có thể được đọc ở mọi nơi và có thể được  người dùng sửa đổi khi chúng cho phép như là một USB để có thể chuyển đổi  dữ liệu sang máy tính Vì vậy trước khi bạn cố gắng truy cập truy cập một file trong External Storage  trong ứng dụng của bạn, bạn nên kiểm tra tính khả dụng của các thu mục này  cũng như các file trong chúng Thơng thường, bạn nên sử dụng bộ nhớ ngồi cho dữ liệu mà có thể truy cập  vào các ứng dụng khác và vẫn còn lưu khi ứng dụng của bạn bị người dùng  gỡ cài đặt. Chăng hạn như những bức ảnh được chụp hoặc những file đã  được download xuống trước đó. Hệ thống sẽ cung cấp các thư mục pubic  chuẩn cho các loại file này, do đó người dùng có các vị trí cho photos,  ringtones, music,  Bạn cũng có thể lưu file vào External Storage trong thư mục dành riêng cho  ứng dụng của bạn mà hệ thống sẽ xóa khi người dùng gỡ cài đặt ứng dụng  này trên điện thoại. Đây có thể là giải pháp thay thế cho bộ nhớ trong nếu cần  thêm dung lượng, nhưng các file ở đây khơng đảm bảo có thể truy cập được  bởi vì người dùng có thể xóa, hay tháo thẻ nhớ SD. Và các file này có thể đọc  được mọi nơi, chúng chỉ sao lưu vào một nơi mà khơng được chia sẽ với các  ứng dụng khác 3. Shared Preferences Nếu bạn khơng lưu nhiều dữ liệu và dữ 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ữ này cho phép bạn đọc và ghi  các cặp key­value của các kiểu dữ liệu ngun thủy: booleans, floats, ints,  longs và strings Các cặp key­value này được ghi vào các tệp XML, ln tồn tại khi ứng dụng  được sử dụng và kể các khi ứng dụng bị kill. Bạn có thể chỉ định tên cho file  đó theo cách thủ cơng cho mỗi hành động để lưu trữ dữ liệu của bạn Tên Shared Preferences đơi khi gây ra một chút hiểu lầm bởi vì nó khơng phải  hồn tồn để lưu những tùy chọn của người dùng, chẳng hạn như nhạc  chng mà người dùng đã chọn. Bạn chỉ có thể dùng Shared Preferences để  lưu bất kì loại dữ liệu đơn giản nào, chẳng hạn như điểm số cao của người  dùng. Tuy nhiên nếu bạn muốn lưu tùy chon người dùng cho ứng dụng của  mình bạn có thể dùng PreferenceActivity 4. Databases Android cung cấp hỗ trợ đầy đủ cho SQLite Database. Bất kì cơ sở dữ liệu mà bạn tạo chỉ có thể truy cập được bởi ứng dụng của bạn. Tuy nhiên thay vì sử  dụng các SQLite API trực tiếp, thì hiện tại Android khuyến khích các  Developers tên tạo và tương tác với cơ sở dữ liệu của mình với Room  Databse, một component trong Android Architecture của gói Jetpack Room cung cấp một abstract class ánh xạ đối tượng cho phép truy cập cơ sở  dữ liệu nhanh chóng, tốc độ trong khi đã phát huy khai thác tồn bộ sức mạnh  của SQLite Database Mặc dù bạn có thể sử dụng với SQLite Database nhưng hiện thì đã xem như  tốn rất nhiều thời gian và cơng sức để sử dụng ^^: Các truy vấn cứng SQL thì khơng được Compiler time checking Khi cấu trúc cơ sở dữ liệu thay đổi thì bạn phải update một cách thủ  cơng. Q trình này gây tốn thời gian vã dễ bị lỗi Bạn phải viết nhiều mã để chuyển đổi giữa các truy vấn SQL và các đối  tượng dữ liệu java Thư viện Room sẽ giải quyết hết những vấn đề này trong khi cung cấp một lớp trừu tượng trên SQLite 5.Tổng kết Bài viết này đã liệt kê ra những cách lưu trữ dữ liệu mà Android cung cấp cho  ứng dụng. Ngồi ra cũng có thể lưu trữ dữ liệu bằng cách sử dụng Network  Connection. Để làm việc với internet thì có thể sử dụng các  gói java.net và android.net được cung cấp Cung ứng một hệ thống lệnh cơ bản để điều hành máy. Các  lệnh này gọi là lệnh hệ thống (system command) Trong Android có  cơng cụ dòng lệnh là:  - Những gói DSK Android được u cầu để phát triển ứng dụng Có thể cài đặt và cập nhật từng gói bằng Trình quản lý SDK của Android  Studio hoặc sdkmanager cơng cụ dòng lệnh Tất gói tải xuống thư mục SDK Android bạn, nơi bạn định vị sau: o Trong Android Studio, bấm vào File > Project Structure o Chọn SDK Location khung bên trái Đường dẫn hiển thị Android SDK location Cơng cụ SDK Android  Nằm trong: android_sdk/tools/bin/ Gói này độc lập với nền tảng và được u cầu cho dù bạn đang phát triển nền tảng  Android nào apkanalyzer Cung cấp cái nhìn sâu sắc về thành phần APK của bạn sau khi q trình xây  dựng hồn tất avdmanager Cho phép bạn tạo và quản lý Thiết bị ảo Android (AVD) từ dòng lệnh jobb Cho phép bạn xây dựng các tệp mở rộng APK được mã hóa và khơng được mã  hóa ở định dạng Opaque Binary Blob (OBB) lint Một cơng cụ qt mã có thể giúp bạn xác định và khắc phục các sự cố với chất  lượng cấu trúc của mã monkeyrunner Cung cấp giao diện dòng lệnh để chạy chương trình có thể cài đặt ứng dụng  Android hoặc gói thử nghiệm, chạy nó, gửi tổ hợp phím đến nó, chụp ảnh màn  hình và hơn thế nữa sdkmanager Cho phép bạn xem, cài đặt, cập nhật và gỡ cài đặt các gói cho SDK Android Gói này bao gồm các cơng cụ khác mà bạn khơng cần phải gọi từ dòng lệnh (chẳng  hạn như ProGuard để thu nhỏ mã và mã hóa )  Trong đó, Android Debug Bridge (adb) là một cơng cụ dòng lệnh linh hoạt cho phép  bạn giao tiếp với một thiết bị. Lệnh adb tạo điều kiện cho nhiều hành động của thiết bị,  chẳng hạn như cài đặt và gỡ lỗi ứng dụng và nó cung cấp quyền truy cập vào hệ vỏ  Unix mà bạn có thể sử dụng để chạy nhiều loại lệnh trên thiết bị. Đây là một chương  trình máy khách­máy chủ bao gồm ba thành phần:  Một khách hàng , sẽ gửi lệnh. Máy khách chạy trên máy phát triển của bạn. Bạn có thể gọi một máy khách từ thiết bị đầu cuối dòng lệnh bằng cách phát lệnh  adb  Một daemon (adbd) , chạy các lệnh trên thiết bị. Trình nền chạy như một q  trình nền trên mỗi thiết bị  Một máy chủ , quản lý giao tiếp giữa máy khách và daemon. Máy chủ chạy như  một q trình nền trên máy phát triển của bạn adbđược bao gồm trong gói Cơng cụ nền tảng SDK Android. Bạn có thể tải xuống gói  này với Trình quản lý SDK , cài đặt nó tại android_sdk/platform­tools/  Cơng cụ xây dựng SDK Android  Nằm trong:  android_sdk/build­tools/version/ Gói này là cần thiết để xây dựng ứng dụng Android. Hầu hết các cơng cụ ở đây được  gọi bởi các cơng cụ xây dựng và khơng dành cho bạn. Tuy nhiên, các cơng cụ dòng  lệnh sau có thể hữu ích: aapt2 Phân tích cú pháp, lập chỉ mục và biên dịch tài ngun Android thành định dạng nhị  phân được tối ưu hóa cho nền tảng Android và đóng gói các tài ngun được biên dịch  thành một đầu ra duy nhất apksigner Dấu hiệu APK và kiểm tra xem chữ ký APK sẽ được xác minh thành cơng trên tất cả các phiên bản nền tảng mà APK cụ thể hỗ trợ zipalign Tối ưu hóa các tệp APK bằng cách đảm bảo rằng tất cả dữ liệu khơng nén được bắt đầu bằng một căn chỉnh cụ thể liên quan đến phần bắt đầu của tệp Lưu ý: Bạn có thể có nhiều phiên bản cơng cụ xây dựng để xây dựng ứng dụng của mình cho các  phiên bản Android khác nhau Cơng cụ nền tảng SDK Android  Nằm trong: android_sdk/platform­tools/ Các cơng cụ này được cập nhật cho mọi phiên bản mới của nền tảng Android để hỗ trợ các tính năng mới (và đơi khi thường xun hơn để sửa chữa hoặc cải thiện các cơng  cụ) và mỗi bản cập nhật tương thích ngược với các phiên bản nền tảng cũ hơn adb Cầu gỡ lỗi Android (adb) là một cơng cụ đa năng cho phép bạn quản lý trạng thái của  một phiên bản giả lập hoặc thiết bị hỗ trợ Android. Bạn cũng có thể sử dụng nó để cài  đặt APK trên thiết bị etc1tool Một tiện ích dòng lệnh cho phép bạn mã hóa hình ảnh PNG thành chuẩn nén ETC1 và  giải mã hình ảnh nén ETC1 trở lại PNG fastboot Flash một thiết bị với nền tảng và hình ảnh hệ thống khác. Để biết hướng dẫn nhấp  nháy, hãy xem Hình ảnh gốc cho các thiết bị Nexus và Pixel  logcat Đây là một cơng cụ được gọi qua adb để xem nhật ký ứng dụng và hệ thống Trình giả lập Android  Nằm trong: android_sdk/emulator/ Gói này là bắt buộc để sử dụng Trình giả lập Android. Nó bao gồm những điều sau  đây : emulator Cơng cụ mơ phỏng thiết bị dựa trên QEMU mà bạn có thể sử dụng để gỡ lỗi và kiểm tra  các ứng dụng của mình trong mơi trường thời gian chạy Android thực tế mksdcard Giúp bạn tạo một hình ảnh đĩa mà bạn có thể sử dụng với trình giả lập, để mơ phỏng sự hiện diện của thẻ lưu trữ ngồi (chẳng hạn như thẻ SD) Lưu ý: Trước khi sửa đổi 25.3.0, các cơng cụ giả lập đã được bao gồm trong gói Cơng cụ SDK Jetifier   Jetifier đọc một thư viện sử dụng các lớp Thư viện hỗ trợ và xuất ra một thư viện tương đương  sử dụng các lớp AndroidX mới hơn Cung ứng một hệ thống giao diện sơ khai cho các ứng dụng  thường là thơng qua một hệ thống thư viện các hàm chuẩn  để điều hành các phần cứng mà từ đó các ứng dụng có thể  gọi tới Ứng dụng Android được viết bằng ngơn ngữ lập trình Java. Bộ cơng cụ SDK Android sẽ biên dịch mã của bạn—cùng với bất kỳ tệp dữ liệu và tài ngun nào—vào một APK:  một gói Android, đó là một tệp lưu trữ có hậu tố .apk. Một tệp APK chứa tất cả nội dung  của một ứng dụng Android và là tệp mà các thiết bị dựa trên nền tảng Android sử dụng  để cài đặt ứng dụng Sau khi được cài đặt lên một thiết bị, từng ứng dụng Android sẽ ở bên trong hộp cát  bảo mật của chính nó:  Hệ điều hành Android là một hệ thống Linux đa người dùng trong đó mỗi ứng dụng là một người dùng khác nhau  Theo mặc định, hệ thống gán cho từng ứng dụng một ID người dùng Linux  duy nhất (ID chỉ được sử dụng bởi hệ thống và khơng xác định đối với ứng  dụng). Hệ thống sẽ đặt quyền cho tất cả tệp trong một ứng dụng sao cho chỉ  ID người dùng được gán cho ứng dụng đó mới có thể truy cập chúng  Mỗi tiến trình có máy ảo (VM) riêng của mình, vì thế mã của một ứng dụng sẽ chạy độc lập với các ứng dụng khác  Theo mặc định, mọi ứng dụng chạy trong tiến trình Linux của chính nó.  Android khởi động tiến trình khi bất kỳ thành phần nào của ứng dụng cần  được thực thi, sau đó tắt tiến trình khi khơng còn cần nữa hoặc khi hệ thống  phải khơi phục bộ nhớ cho các ứng dụng khác Bằng cách này, hệ thống Android triển khai ngun tắc đăc quyền ít nhất. Cụ thể, theo  mặc định, mỗi ứng dụng chỉ có thể truy cập vào các thành phần mà nó cần để thực hiện cơng việc của mình và khơng hơn. Điều này tạo ra một mơi trường rất bảo mật mà  trong đó một ứng dụng khơng thể truy cập các bộ phận của hệ thống mà nó khơng  được cấp quyền Tuy nhiên, có nhiều cách để một ứng dụng chia sẻ dữ liệu với các ứng dụng khác và để một ứng dụng truy cập vào các dịch vụ của hệ thống:  Có thể sắp xếp để hai ứng dụng chia sẻ cùng ID người dùng Linux, trong  trường hợp đó chúng có thể truy cập các tệp của nhau. Để tiết kiệm tài  ngun của hệ thống, các ứng dụng có cùng ID người dùng cũng có thể sắp  xếp để chạy trong cùng tiến trình Linux và chia sẻ cùng VM (các ứng dụng  cũng phải được ký bằng cùng chứng chỉ)  Một ứng dụng có thể u cầu quyền truy cập dữ liệu của thiết bị chẳng hạn  như danh bạ của người dùng, tin nhắn SMS, thiết bị lưu trữ gắn được (thẻ  SD), máy ảnh, Bluetooth và nhiều nữa. Tất cả quyền ứng dụng đều phải  được cấp bởi người dùng tại thời điểm cài đặt ... Sau khi được cài đặt lên một thiết bị, từng ứng dụng Android sẽ ở bên trong hộp cát  bảo mật của chính nó:  Hệ điều hành Android là một hệ thống Linux đa người dùng trong đó mỗi ứng dụng là một người dùng khác nhau  Theo mặc định, hệ thống gán cho từng ứng dụng một ID người dùng Linux ... gói java.net và android. net được cung cấp Cung ứng một hệ thống lệnh cơ bản để điều hành máy. Các  lệnh này gọi là lệnh hệ thống (system command) Trong Android có  cơng cụ dòng lệnh là:  - Những gói DSK Android được u cầu để phát triển ứng dụng... một ứng dụng truy cập vào các dịch vụ của hệ thống:  Có thể sắp xếp để hai ứng dụng chia sẻ cùng ID người dùng Linux, trong  trường hợp đó chúng có thể truy cập các tệp của nhau. Để tiết kiệm tài  ngun của hệ thống, các ứng dụng có cùng ID người dùng cũng có thể sắp 

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

Từ khóa liên quan

Mục lục

  • Thực hiện một số thao tác cơ bản trong máy tính như các thao tác đọc, viết tập tin, quản lý hệ thống tập tin (file system) và các kho dữ liệu.

    • 1. Internal storage.

    • 2. External storage.

    • 3. Shared Preferences

    • 4. Databases

    • 5.Tổng kết.

    • Cung ứng một hệ thống lệnh cơ bản để điều hành máy. Các lệnh này gọi là lệnh hệ thống (system command).

      • Công cụ SDK Android

        • Trong đó, Android Debug Bridge (adb) là một công cụ dòng lệnh linh hoạt cho phép bạn giao tiếp với một thiết bị. Lệnh adb tạo điều kiện cho nhiều hành động của thiết bị, chẳng hạn như cài đặt và gỡ lỗi ứng dụng và nó cung cấp quyền truy cập vào hệ vỏ Unix mà bạn có thể sử dụng để chạy nhiều loại lệnh trên thiết bị. Đây là một chương trình máy khách-máy chủ bao gồm ba thành phần:

        • Công cụ xây dựng SDK Android

        • Công cụ nền tảng SDK Android

        • Trình giả lập Android

        • Jetifier

        • Cung ứng một hệ thống giao diện sơ khai cho các ứng dụng thường là thông qua một hệ thống thư viện các hàm chuẩn để điều hành các phần cứng mà từ đó các ứng dụng có thể gọi tới.

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan