背景
在进行应用响应速度问题分析时,会遇到GC导致CPU负载升高的情况。在手机整体内存状况良好时,可以手动触发应用GC回收内存后再进行响应速度的测试,排除负载干扰,进一步定位问题产生的原因。
解决方法
在App代码中进行System.gc()调用
如果拥有App的代码可以在App的代码中通过广播的形式进行显示GC
public class GCReceiver extends BroadcastReceiver {
private static final String TAG = "GCReceiver";
private static final String ACTION_GC = "com.test.ACTION_GC";
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.i(TAG, "onReceive: " + action);
if (ACTION_GC.equals(action)) {
System.gc();
}
}
}
<receiver
android:name="com.tomes.GCReceiver">
<intent-filter>
<action android:name="com.test.ACTION_GC" />
&l

当分析应用响应速度问题遇到GC导致CPU负载升高时,可通过手动触发GC来排除干扰。方法包括在App代码中调用System.gc(),使用Android Studio的Profile工具,或者通过adb命令触发GC。kill -10信号能触发GC,因为它是Linux中的SIGCONT信号,用于继续暂停的任务。
最低0.47元/天 解锁文章
618

被折叠的 条评论
为什么被折叠?



