2010-09-07 48 views
31

Để tạo thông báo tôi cần biết về cách tạo pin yếu và bộ nhớ thấp bị gián đoạn theo lập trình. Có thể bất kỳ một trong những xin vui lòng cung cấp đề xuất của bạn.Tôi nhận thức được ý định.Mô phỏng pin yếu và bộ nhớ thấp trong Android

+0

Bạn cần phải ghi đè 'onTrimMemory (int mức) 'trong mã của bạn để xử lý sự kiện bộ nhớ. –

+0

Bộ nhớ thấp https://play.google.com/store/apps/details?id=me.empirical.android.application.fillmemory – kreker

Trả lời

4

Trên Android Emulator bạn có thể set the power status by connecting to the Emulator console and using the power command.

As far bộ nhớ thấp đi, bạn chỉ cần phải chắc chắn rằng ứng dụng của bạn có thể xử lý bị giết mà không báo trước khi nó ở chế độ nền. Kiểm tra đây là một trong số ít trường hợp thực sự gọi cho Trình quản lý tác vụ trên Android hoặc nếu bạn đang chạy Android 2.2, bạn có thể giết ứng dụng thông qua Cài đặt.

There are ways of reducing the memory available to applications nhưng tôi nghĩ chúng không cần thiết.

+1

Xin chào Dave Webb, tôi muốn làm điều đó theo chương trình để hiển thị cảnh báo pin yếu mặc dù nó không phải là. – user395494

+0

Hi Dave Webb, Trong trình giả lập của nó ok. Nhưng làm thế nào tôi có thể làm tương tự trong thiết bị thực ..? – user395494

+0

Không có cách nào làm cho điện thoại hiển thị cảnh báo pin yếu khi pin yếu. –

4

Bạn có thể sử dụng menu trình mô phỏng là shown on my blog posting. Chỉ cần telnet để localhost trên cổng giả lập của bạn (mặc định là 5554) và sau đó gõ trợ giúp. Làm theo hướng dẫn từ đó!

4

Để mô phỏng cảnh báo pin thấp, hãy thử lệnh này trong cách trả lời của Frank:

power capacity 10 // It will set the battery level into 10% 

Đối với bộ nhớ thấp:

ulimit -Sv 15000 //The current memory limit will set to 15000 Kb 
+0

tôi đang chạy ứng dụng trong thiết bị và trong chế độ xem DDMS, tôi có thể thấy trình xem bộ nhớ heap và tôi thấy bộ nhớ heap được phân bổ là 18,2 MB. Sử dụng lệnh của bạn tôi đặt bộ nhớ hiện tại là 1500. Vậy tại sao ứng dụng không bị lỗi hoặc cấp phát bộ nhớ không giảm? – Prem

+2

@Prem, Sau 'telnet' thành 'localhost 5554', tôi đang thử lệnh 'ulimit'. Nhưng luôn luôn nó trả về lỗi 'KO: lệnh không xác định, hãy thử' trợ giúp ''. Tôi đang sử dụng hệ điều hành Win7. Hãy giúp tôi. –

+0

** ulimit ** là lệnh adb? –

27

bộ nhớ thấp cũng có thể được mô phỏng bằng Background process limit dưới nhà phát triển thiết bị tùy chọn.

Đi tới Settings > Developer options. Trong phần app, hãy thay đổi Background process limit thành Không có quy trình nền

Hoạt động của bạn sẽ bị giết mỗi lần bạn chuyển sang ứng dụng khác. Hữu ích để kiểm tra trạng thái tiết kiệm và phục hồi trạng thái.

+4

Đáng buồn là điều này không đúng. Đây là [giải thích tuyệt vời] (http://android.stackexchange.com/a/62393) chính xác tùy chọn này là gì. –

+0

Tôi có một ứng dụng với các dịch vụ bg và thông báo đẩy được bật, ứng dụng sẽ không bị giết như đối với các ứng dụng khác. –

23

Để kích hoạt callbacks onTrimMemory của bạn:

adb shell pm gửi-cắt-bộ nhớ

ví dụ adb shell am send-trim-memory com.example.app MODERATE

+3

Hoàn hảo. Tôi cũng thích 'RUNNING_CRITICAL' để có hiệu ứng đầy đủ. –

+7

Lỗi: không rõ lệnh 'gửi-cắt-bộ nhớ' –

+3

@MaksimDmitriev Tôi nhận được lỗi đó khi sử dụng thiết bị vật lý, nhưng nó hoạt động cho tôi trên trình mô phỏng –

3

có, api này kích hoạt cùng một cuộc gọi lại bạn sẽ nhận được nếu bạn đăng ký ngữ cảnh cho ComponentCallback2, cụ thể là ComponentCallback2#onTrimMemory điều này không được đề cập ở đây, vì vậy tôi nghĩ Tôi sẽ nói rõ. Cú pháp của lệnh này là: am send-trim-memory [--user <USER_ID>] <PROCESS> [HIDDEN|RUNNING_MODERATE|BACKGROUND|RUNNING_LOW|MODERATE|RUNNING_CRITICAL|COMPLETE] Lưu ý: lệnh này chỉ có sẵn trên các thiết bị chạy Marshmallow +

+0

Rất đúng. Tôi chỉ có thể làm việc này trên các thiết bị chạy Marshmallow trở lên. – Demitrian

Các vấn đề liên quan