gpt4 book ai didi

android - 如何降低安卓手机App的CPU使用率?

转载 作者:行者123 更新时间:2023-11-29 15:31:21 24 4
gpt4 key购买 nike

我开发了一个自动调用应用程序。该应用程序会读取一个包含电话号码列表的文本文件并调用几秒钟,结束调用然后重复。

我的问题是该应用程序在 10 到 16 小时后不发送调用。我不知 Prop 体原因,但我猜问题出在 CPU 使用率上。我的应用程序的 CPU 使用率几乎达到 50%!如何降低 CPU 使用率?

部分源码如下:

if(r_count.compareTo("0")!=0) {
while(index < repeat_count) {
count = 1;
time_count = 2;

while(count < map.length) {
performDial(); //start call
reject(); //end call
finishActivity(1);
TimeDelay("60"); // wait for 60sec
count = count + 2;
time_count = time_count + 2;
onBackPressed(); // press back button for calling next number
showCallLog();
finishActivity(0);
}
index++;
}

这是 TimeDelay() 方法来源:

public void TimeDelay(String delayTime) {

saveTime = System.currentTimeMillis()/1000;
currentTime = 0;
dTime = Integer.parseInt(delayTime);

while(currentTime - saveTime < dTime) {
currentTime = System.currentTimeMillis()/1000;

}

}

TimeDelay() 在 while 循环中重复几次。

最佳答案

它使用 50% CPU 的原因是 Android 显然不会让它使用 100% CPU,而 TimeDelay() 中的循环通常会这样。 (否则你有两个 CPU,它实际上使用了一个 CPU 的 100%。)你正在做的叫做 busy wait。并且很明显为什么不断检查条件会占用大量 CPU。所以不要那样做。请改用 Thread.sleep()。然后,您的应用将在等待期间完全不使用 CPU。

此外,看在上帝的份上,为什么要传递一个字符串然后对其进行 parseInt,而不是首先传递一个 Integer? :-)

关于android - 如何降低安卓手机App的CPU使用率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6234271/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com