adbが直接GCをサポートしない別の解決方法について


性能の特定項目を行う必要があり、adbコマンドでインタフェース操作を繰り返した後GCを完了し、メモリ情報を取得することが望ましい.難点は、adbでオブジェクトを回収し、資料を探しても直接的な方法がないことを発見し、別の方法を考えたことだ.原理は、アプリケーションのソースコードの任意の位置にactivityを新規作成し、onCreateメソッドでSystemを実行することである.gc()は、finish()を実行します.最後にadb amコマンドでこのactivityを起動するだけでいいです.
新しいactivity、コード:
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        System.gc();
        finish();
    }

manifestでactivityを宣言するときにexporedプロパティを追加すると、追加しないと権限が不足する可能性があります.
<activity  android:exported="true" android:name="com.xxx.launcher.GcActivity" android:label="@string/title_activity_gc"></activity>

最後にadb shell am start-n com.xxx.xxx/.xxxxはテストのactivityを起動し、GCを実行します.