Làm thế nào để đóng băng một ứng dụng hoạt động kỹ thuật?


22

Các ứng dụng như Link2SD và Titanium Backup có thể "đóng băng" các ứng dụng khác, đó là vô hiệu hóa chúng mà không cần xóa chúng. Những ứng dụng này làm gì để đạt được điều này?

Câu trả lời:


28

Titanium Backup, vv chỉ sử dụng tích hợp sẵn Package Manager (pm)để đóng băng một ứng dụng. pmcó một tính năng để ngăn các ứng dụng chạy và xuất hiện trong Trình khởi chạy. Để sử dụng nó, Titanium Backup, vv thực hiện lệnh sau:

pm vô hiệu hóa {pack_name}

Bạn có thể tự đóng băng các ứng dụng mà không cần sử dụng ứng dụng tủ đông chuyên dụng. Chỉ cần sử dụng lệnh trên trong Terminal Emulator hoặc ADB Shell.

Ví dụ: nếu bạn muốn đóng băng Stock Web Browser, hãy mở Terminal Emulatorvà chuyển sang root bằng sulệnh. Sau đó, thực hiện # pm disable com.android.browser.
Nó sẽ trở lại #Package com.android.browser new state: disabled. Làm xong!
Khởi động lại Trình khởi chạy của bạn (một số thiết bị có thể yêu cầu khởi động lại) để xem biểu tượng ứng dụng đã biến mất.

Để rã đông ứng dụng, chỉ cần thay thế disablebằng enablelệnh.


Đây có giống như các lệnh kill -STOP, kill -CONT được mô tả ở đây không? linuxpoison.blogspot.com/2007/11/ trên
NoBugs

@NoBugs Khởi động lại thiết bị của bạn. Một số thiết bị cần điều này để vô hiệu hóa hoàn toàn một ứng dụng. Và vâng, đây không phải là lệnh giết.
Android Quesito

Đúng. Đôi khi pm disablechỉ nói "bị giết", sau đó quá trình bắt đầu lại ngay lập tức. giết -STOP pid là tốt hơn. Bạn có thể thấy cái nào được dừng lại, ở psđầu ra.
NoBugs

13

Tôi tìm thấy cách làm pm disableviệc:

Nếu bạn chạy cat /system/bin/pm, nó sẽ cho:

# Script to start "pm" on the device, which has a very rudimentary
# shell.
#
base=/system
export CLASSPATH=$base/framework/pm.jar
exec app_process $base/bin com.android.commands.pm.Pm "$@"

Vì vậy, rõ ràng nó giống như Trình quản lý gói mà chúng tôi sử dụng từ Java, nó đang gọi nó - chỉ trong một ngữ cảnh gốc mà không ứng dụng người dùng nào có thể truy cập trực tiếp.

Bạn CÓ THỂ kiểm tra nếu một cái gì đó bị đóng băng, sử dụng

getPackageManager().getApplicationEnabledSetting( the package name ) ==
        getPackageManager().COMPONENT_ENABLED_STATE_DISABLED)

-4

Trong các hệ thống Unix, các tệp có 3 ủy quyền: đọc, viết và thực thi.

(Dành cho 3 loại người: chủ sở hữu của tệp [thường là người tạo ra nó], một nhóm người và mọi người khác, nhưng nó không nằm ngoài chủ đề).

Nếu bạn loại bỏ ủy quyền thực thi của tệp, nó không thể được khởi chạy (thực thi) nữa.


Xin chào dralpuop. Các ứng dụng Android không phải là nhị phân, vì vậy việc thêm hoặc xóa quyền thực thi sẽ không có sự khác biệt nào đối với việc thực thi của chúng.
Firelord

Android là Unix hệ thống 5, trong đó (ví dụ) các kịch bản shell không phải là nhị phân, nhưng việc thêm hoặc xóa quyền thực thi MAKES là một sự khác biệt.
dralpuop

Một tập lệnh shell có thể được thực thi mà không cần thiết lập bit thực thi bằng cách chuyển trực tiếp nó làm đối số cho một intepreter, do đó, nó không tạo ra sự khác biệt cho các tập lệnh shell hoặc cho các ứng dụng. Bằng cách này, câu hỏi và câu hỏi là về các ứng dụng Ứng dụng Android, không phải về các tập lệnh shell.
Firelord

1
Hãy thử nguồn này để biết các ứng dụng được chạy trong Android như thế nào. github.com/dogriffiths/HeadFirstAndroid/wiki/ Kẻ
Firelord
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.