Sự khác biệt giữa ứng dụng hệ thống và ứng dụng người dùng là gì?


28

Khi tôi chơi xung quanh với các ROM khác nhau và Titanium Backup đã sử dụng, tôi thấy các ứng dụng được phân loại thành các ứng dụng hệ thống và người dùng. Một số nhà phát triển ROM nói rằng Titanium Backup chỉ nên được sử dụng cho các ứng dụng người dùng chứ không phải cho các ứng dụng hệ thống và khi tôi tiến hành gỡ cài đặt các ứng dụng hệ thống, TiBu cảnh báo tôi rằng ROM có thể không hoạt động chính xác.

Khác với thực tế là các ứng dụng người dùng có thể tải xuống thông qua Thị trường hoặc một số phương tiện khác, sự khác biệt chính giữa hai là gì?

Điều gì về các ứng dụng hệ thống làm cho chúng trở nên tích hợp hơn với chính hệ điều hành?

Câu trả lời:


20

/systemchỉ đọc mà không cần root nên nó ngăn chặn việc gỡ cài đặt các ứng dụng từ /system/app/system/priv-app. Các ứng dụng quan trọng được đặt ở đó để chúng không thể được gỡ cài đặt. Phần mềm bloatware mà họ không muốn cho phép bạn gỡ bỏ cũng được đặt ở đó. Danh mục ứng dụng sau có thể được gỡ bỏ nếu bạn đã root; trước đây, không quá nhiều.

/system/priv-appcũng cho phép các ứng dụng được cài đặt ở đó để sử dụng signatureOrSystemvà các quyền đặc quyền khác. Câu trả lời của Stephen có một số ví dụ.

Về lý do tại sao các ứng dụng có thể rất quan trọng, điều đó phụ thuộc vào ROM. Chẳng hạn, Sense của HTC phụ thuộc rất nhiều vào các ứng dụng tích hợp của họ từ những gì tôi nghe được. Họ chỉ đơn giản là không thiết kế giao diện người dùng của mình sao cho nó hoạt động tốt với các ứng dụng của bên thứ ba (hoặc không thành công nếu ứng dụng hệ thống bị thiếu). Các ứng dụng khác về cơ bản là một phần của HĐH Android nhưng Google đã mã hóa chúng thành các ứng dụng / dịch vụ (có thể vì lý do đóng gói và độ tin cậy).

Có thể tải xuống các bản cập nhật cho một số ứng dụng hệ thống thông qua Cửa hàng Play, chẳng hạn như Google Maps. Nếu nó không được cài đặt sẵn như một ứng dụng hệ thống trên thiết bị của bạn thì bạn có thể sử dụng Titanium để chuyển đổi nó từ ứng dụng người dùng sang ứng dụng hệ thống.


nó cũng có nghĩa là một ứng dụng hệ thống không thể bị giết bởi những kẻ giết người nhiệm vụ ?? hoặc họ sẽ tự động bắt đầu nếu bị giết ??
ashishsony

@ashishsony Các dịch vụ hệ thống thường tự động khởi động, vâng, nhưng (hầu hết?) ứng dụng / dịch vụ vẫn có thể bị hủy. Ví dụ tôi có thể tắt Trình duyệt trên thiết bị của mình. (Chèn lời khuyên thông thường về cách kẻ giết người làm nhiệm vụ là xấu.)
Matthew Đọc

Các ứng dụng hệ thống chính xác trên các Thiết bị HTC (ngay cả những ứng dụng như Dropbox, Facebook) được tích hợp quá sâu với Sense UI. Người ta phải kiềm chế để loại bỏ chúng; cũng không nên thực hiện chuyển đổi ứng dụng người dùng sang ứng dụng hệ thống trừ khi rất cần thiết vì trên một số ROM, chúng có thể không chấm dứt trong điều kiện bộ nhớ thấp.
Ashesh Kumar Singh

1
@ một điểm khác biệt về lập trình là ứng dụng hệ thống (private-app) nhận được phát sóng hệ thống thậm chí là Force_stop từ cài đặt ứng dụng, khi ứng dụng không phải là hệ thống (ứng dụng người dùng) không thể nhận bất kỳ chương trình phát sóng nào nếu buộc_stop từ cài đặt thiết bị.
Zala Janaksinh

22

Các câu trả lời khác là đúng, nhưng không chỉ ra một vài điểm khác biệt:

Quyền

Các ứng dụng hệ thống được cấp khả năng yêu cầu một số quyền chỉ dành cho hệ thống không bao giờ có sẵn cho các ứng dụng người dùng. Điều này không giống với quyền root / sudo / su.

Một ví dụ mà tôi biết và sử dụng hàng ngày là khả năng đặt lại bộ đếm thông báo cuộc gọi nhỡ. Tôi có Go Dialer, một công cụ thay thế cho trình quay số chứng khoán và ứng dụng liên hệ (cách bạn gọi điện thoại). Khi tôi bỏ lỡ một cuộc gọi, android cho tôi biết điều đó bằng một thông báo. Tuy nhiên, Go Dialer không được phép đặt lại bộ đếm này, mặc dù nó yêu cầu quyền đó khi bạn cài đặt ứng dụng. Android 2.2 trở về trước cho phép các ứng dụng người dùng đặt lại, nhưng đã cho phép quyền này chỉ là quyền truy cập hệ thống chỉ dành cho Android 2.3

Bằng cách di chuyển ứng dụng Go Dialer của tôi sang phân vùng hệ thống, nó được phép đặt lại bộ đếm này. Root không bắt buộc đối với ứng dụng (tất nhiên, ngoại trừ, để thực sự di chuyển ứng dụng sang phân vùng Hệ thống).

Một quyền khác của hệ thống là khả năng thiết lập vị trí gps hiện tại. Giờ đây, Android có một ưu tiên nơi bạn có thể cho phép các vị trí giả, do đó, bất kỳ ứng dụng giả mạo gps nào bạn cài đặt đều có thể khai báo vị trí gps. Nhưng nếu ứng dụng nằm trong phân vùng Hệ thống, các vị trí giả có thể bị tắt trong khi vẫn để ứng dụng giả mạo vị trí gps.

Cập nhật

Các ứng dụng hệ thống có thể được cập nhật giống như các ứng dụng người dùng, nhưng bản cập nhật không bao giờ được tích hợp vào rom gốc. Đó là, các ứng dụng hệ thống có khả năng duy nhất quay trở lại phiên bản tồn tại khi bản rom được cài đặt lần đầu tiên.

Di chuyển đến SD

Android cho phép người dùng di chuyển usercác ứng dụng từ bộ nhớ trong sang thẻ sd. Các ứng dụng hệ thống không thể được di chuyển và luôn chiếm một số không gian bên trong. Mặc dù vậy, hầu hết các thiết bị (tất cả?) Đều có ứng dụng người dùng nội bộ trên một phân vùng khác, do đó, việc gỡ cài đặt ứng dụng hệ thống sẽ không cung cấp cho bạn thêm không gian ứng dụng người dùng (ngoại trừ bộ nhớ cache dalvik bị xóa).

Bạn sẽ khôi phục một số dung lượng nếu bạn gỡ cài đặt mọi bản cập nhật cho ứng dụng hệ thống. Như đã lưu ý, các bản cập nhật không được tích hợp với rom và do đó được lưu trữ trong không gian người dùng. Các bản cập nhật cũng không được phép chuyển sang thẻ sd, nhưng nếu bị xóa, không gian người dùng sẽ được phục hồi.

Nó ảnh hưởng đến bạn như thế nào

Nếu bạn là người dùng Android bình thường, có thể bạn sẽ không gặp phải tình huống trong đó hệ thống và ứng dụng người dùng sẽ tạo ra sự khác biệt. Nếu bạn là người dùng nâng cao, bạn có thể đã root và do đó có thể thay đổi ứng dụng hệ thống thành người dùng (và ngược lại) nếu bạn gặp phải một trong những tình huống này.


1
Ý của bạn là "Điều này không giống với quyền root / su"? Tôi dường như nhớ lại điều đó sudosukhông giống nhau - ít nhất là trong Unix và Linux.
ChuongPham

Bạn nói đúng rằng su và sudo khác nhau trong * nix. Nhưng sudođược áp dụng nhiều hơn ở đây, bởi vì sudo đang yêu cầu quyền root, trong khi đó suchỉ đơn giản là yêu cầu Chuyển đổi người dùng. Để sử dụng su, bạn chỉ cần biết mật khẩu của tài khoản mà bạn đang chuyển sang; nếu bạn không chỉ định tài khoản, thì bạn đang yêu cầu trở thành root. Tuy nhiên, trong Android, không có mật khẩu gốc, cũng như bất kỳ tài khoản nào khác, do đó sungười dùng biết đến lệnh chạy trong thiết bị đầu cuối để có được quyền root.
Stephen Schrauger

Bằng mọi giá, tôi sẽ cập nhật câu trả lời để đưa vào su, vì đó là điều mà một số người dùng Android tương đương với root.
Stephen Schrauger

4

Ứng dụng hệ thống là ứng dụng được bao gồm trong hệ thống. Chúng được đặt trong thư mục / system / app.

Phần lớn trong số họ được yêu cầu để làm cho thiết bị chạy. Một ví dụ về một số trong số này là trình quay số, thiết lập tất cả các kết nối mạng và trình duyệt mà không có trình duyệt web trong ứng dụng nào hoạt động.


1
Trình quay số thiết lập kết nối mạng?
Matthew đọc

2
@MatthewRead Có - Nó nào! 'Trình quay số' thực tế là một hoạt động riêng biệt nằm trong ứng dụng trình quay số. Dialer.apk là ứng dụng thiết lập kết nối - nếu bạn muốn bằng chứng, hãy đóng băng các ứng dụng lưu trữ trình quay số và trình quay số, mạng sẽ không hoạt động.
Liam W

Điều đó khá kỳ lạ!
Matthew đọc

Android thật kỳ lạ!
Liam W

3

Tôi muốn thêm một cái gì đó trong các câu trả lời ở trên. Các ứng dụng hệ thống không thể bị xóa trong toàn bộ cài đặt gốc, không giống như các ứng dụng người dùng. Vì vậy, nếu bạn muốn xóa tất cả các tệp cá nhân của mình nhưng chúng quá nhiều để xóa một cách thuận tiện thì khôi phục cài đặt gốc chỉ thuận tiện nhất và bạn có các ứng dụng bạn muốn giữ, bạn có thể chuyển đổi các ứng dụng đó thành ứng dụng hệ thống để chúng giành chiến thắng Sẽ bị xóa trong quá trình khôi phục cài đặt gốc.


1
Mẹo thú vị! Tôi muốn chuyển nhạc của mình sang hệ thống ngay bây giờ lol
FreeSoftwareServers

2

Một tính năng khác của ứng dụng hệ thống là chúng sử dụng các thư viện riêng ( tệp libs Something.so ) từ thư mục thư viện hệ thống chung (thường là / system / lib hoặc / system / lib64 ) chứ không phải từ thư mục thư viện riêng-ứng dụng (ví dụ: / data /app/com.example.HelloJni/lib/arm ). Trước Android Nougat, các ứng dụng người dùng được tải miễn phí và sử dụng các thư viện gốc của hệ thống. Các hạn chế đã được áp đặt sau đó, xem https://developer.android.com/about/versions/nougat/android-7.0-changes.html#ndk .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.