Điều gì quyết định chính sách quản lý năng lượng trong Android?


7

Tôi mới tiếp cận với thế giới Điện thoại thông minh và Android và có một vài nghi ngờ:

Những mô-đun nào (và SW hoặc FW?) Quyết định các chính sách cung cấp năng lượng cho bất kỳ thành phần nào của Điện thoại thông minh yêu cầu nó?

hơn nữa

Các mô-đun quản lý năng lượng trên Điện thoại thông minh có được triển khai trong HĐH Android hoặc trong một số chương trình cơ sở chuyên dụng đặc biệt không?

Rõ ràng quản lý năng lượng cũng phải hoạt động nếu hệ điều hành chưa được tải, nhưng ai chịu trách nhiệm về nó?

Và ở mức độ nào tôi có thể sửa đổi quản lý năng lượng với một ứng dụng chạy bên trong HĐH?

(Tôi hy vọng những câu hỏi này không phải là Off-Topic, trong trường hợp bạn có thể vui lòng hướng dẫn tôi đến trang web Stack-Exchange chính xác không?)

Câu trả lời:


3

Quản lý năng lượng được xác định bởi các thống đốc thiết lập tốc độ xung nhịp CPU theo mức độ sử dụng. Mỗi tốc độ đồng hồ hoạt động ở một điện áp nhất định và điện áp thấp hơn có nghĩa là ít năng lượng hơn. Nếu bạn có quyền truy cập root, bạn có thể thay đổi bộ điều chỉnh và tốc độ xung nhịp CPU được phép. Ngoài ra còn có trạng thái ngủ mà CPU sẽ nhập khi màn hình tắt và không có gì hoạt động ở chế độ nền. Có thể có các chức năng sạc pin không thể bị rối, nhưng mọi thứ khác có thể được thay đổi ngay cả điện áp cpu và dsp.


If you have root access you can change the governor and the allowed CPU clock speeds: vì vậy bạn đang nói rằng một quy trình đơn giản có quyền root có thể quyết định làm chậm CPU và thay đổi điện áp dsp? Khi bạn có thời gian, bạn có thể vui lòng cung cấp một câu trả lời có cấu trúc hơn một chút không? Thks trước, tôi thực sự cần sự giúp đỡ của bạn!
Matteo

Bạn phải viết một chuỗi vào / sys / thiết bị / hệ thống / cpu / cpu0 / cpufreq / scaling_gocateor. Nhưng nếu bạn cài đặt một bản rom tùy chỉnh, sẽ có một ứng dụng dễ dàng được cung cấp.
daithib8

1
Các ứng dụng như SetCPU yêu cầu root và cho phép bạn thay đổi tốc độ đồng hồ / thống đốc. forum.xda-developers.com/showthread.php?t=505419
NoBugs

@ daithib8 - Tôi cũng đã cung cấp câu trả lời, bạn nghĩ gì về nó? Bạn có biết nếu tôi hiểu đúng không?
Matteo

@NoBugs - Tôi cũng đã cung cấp câu trả lời, bạn nghĩ gì về nó? Bạn có biết nếu tôi hiểu đúng không?
Matteo

1

Lướt qua các diễn đàn và trang web tôi tìm ra câu trả lời sau đây cho những nghi ngờ của tôi. Tôi không hoàn toàn hài lòng nhưng nó giúp hiểu thêm.

Quản lý năng lượng của mọi thiết bị phụ thuộc vào một số suspend/ resumechính sách được triển khai trong phần sụn điều khiển thiết bị cụ thể đó.

Điều này phụ thuộc rất nhiều vào thiết bị: cách thức và thời điểm mỗi thiết bị tắt (tạm dừng) và thức dậy (sơ yếu lý lịch) phụ thuộc vào thông số kỹ thuật CTNH, bạn phải đọc các bảng dữ liệu để hiểu các đăng ký cụ thể phải được thao tác để tạm dừng / tiếp tục thiết bị.

Bạn có thể kiểm soát nội dung này thông qua phần mềm trong trình điều khiển của thiết bị, bên trong mã nguồn của kernel, bằng cách truy cập một số chức năng trong biểu mẫu <something>_suspend<something>_resume.

Ví dụ: Từ mã nguồn của kernel của trình giả lập "cá vàng":

trong tệp drivers/video/goldfishfb.c(trình điều khiển chịu trách nhiệm cho bộ đệm khung)

#ifdef CONFIG_ANDROID_POWER
static void goldfish_fb_early_suspend(android_early_suspend_t *h)
{
    struct goldfish_fb *fb = container_of(h, struct goldfish_fb, early_suspend);
    writel(1, fb->reg_base + FB_SET_BLANK);
}

static void goldfish_fb_late_resume(android_early_suspend_t *h)
{
    struct goldfish_fb *fb = container_of(h, struct goldfish_fb, early_suspend);
    writel(0, fb->reg_base + FB_SET_BLANK);
}
#endif

Vì vậy, early_suspendghi 1 trong thanh ghi FB_SET_BLANKđể tắt màn hình hoặc 0 để bật lại.

Vì vậy, dường như đối với tôi, một quá trình trong môi trường thực thi ứng dụng cần truy cập và làm hỏng trình điều khiển thiết bị để thao túng việc quản lý năng lượng độc hại của thiết bị.


1
Nghe có vẻ thú vị. Bạn đang nghi ngờ một virus giữ cho thiết bị của bạn hoạt động? Các ứng dụng có thể giữ wifi và màn hình và bàn phím từ phía Java, xem developer.android.com/reference/android/os/PowerManager.html
NoBugs

@NoBugs - Tôi không nghi ngờ bất kỳ vi-rút nào, nhưng có lẽ tôi sẽ thích viết một cái; D ... đùa thôi! Liên kết thật tuyệt..thks
Matteo
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.