Jawaban:
Sunting: Lama setelah saya menulis posting ini dan diterima sebagai jawabannya, am force-stop
perintah itu diterapkan oleh tim Android, sebagaimana disebutkan dalam jawaban ini .
Sebagai alternatif: Daripada hanya menghentikan aplikasi, karena Anda menyebutkan menginginkan "pembersihan" untuk setiap uji coba, Anda dapat menggunakan adb shell pm clear com.my.app.package
, yang akan menghentikan proses aplikasi dan menghapus semua data yang disimpan untuk aplikasi itu.
Jika Anda menggunakan Linux:
adb shell ps | grep com.myapp | awk '{print $2}' | xargs adb shell kill
Itu hanya akan bekerja untuk perangkat / emulator di mana Anda memiliki root segera setelah menjalankan shell. Itu mungkin bisa sedikit disempurnakan untuk menelepon su
sebelumnya.
Jika tidak, Anda dapat melakukannya (secara manual, atau saya kira dituliskan):
pc $ adb -d shell
android $ su
android # ps
android # kill <process id from ps output>
Cara bersih menghentikan aplikasi adalah:
adb shell am force-stop com.my.app.package
Dengan cara ini Anda tidak perlu mencari tahu ID proses.
force-stop
ada perintah. Saya memperbarui jawaban saya untuk menunjukkan yang ini.
Android 9.0 API Level 28
, aplikasi masih ditampilkan di Aplikasi Terbaru meskipun PID
ditemukan mengenai aplikasi. Apakah Anda tahu cara menghentikan aplikasi sepenuhnya yang artinya bahkan dari aplikasi latar belakang?
Pertama, letakkan aplikasi di latar belakang (tekan tombol beranda perangkat)
Kemudian .... di terminal ....
adb shell am kill com.your.package
Anda dapat menggunakan yang berikut dari konsol perangkat: pm disable com.my.app.package
yang akan membunuhnya. Kemudian gunakan pm enable com.my.app.package
sehingga Anda dapat meluncurkannya kembali.
adb shell
, lalu jalankan su
terlebih dahulu.
Jika Anda memiliki akses ke paket aplikasi, maka Anda dapat menginstal dengan opsi -r dan itu akan mematikan proses jika saat ini berjalan sebagai efek samping. Seperti ini:
adb -d install -r MyApp.apk ; adb -d shell am start -a android.intent.action.MAIN -n com.MyCompany.MyApp/.MyActivity
Opsi -r menyimpan data yang saat ini terkait dengan aplikasi. Namun, jika Anda ingin yang bersih seperti yang Anda sebutkan, Anda mungkin tidak ingin menggunakan opsi itu.
Jika Anda menargetkan perangkat yang tidak di-rooting dan / atau memiliki layanan di APK yang tidak ingin Anda hentikan juga, solusi lain tidak akan berfungsi.
Untuk mengatasi masalah ini, saya telah beralih ke penerima pesan siaran yang saya tambahkan ke aktivitas saya untuk menghentikannya.
public class TestActivity extends Activity {
private static final String STOP_COMMAND = "com.example.TestActivity.STOP";
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
TestActivity.this.finish();
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//other stuff...
registerReceiver(broadcastReceiver, new IntentFilter(STOP_COMMAND));
}
}
Dengan begitu, Anda dapat mengeluarkan perintah adb ini untuk menghentikan aktivitas Anda:
adb shell am broadcast -a com.example.TestActivity.STOP
Jika semua yang Anda cari adalah membunuh paket
pkill package_name
harus bekerja
adb shell killall -9 com.your.package.name
menurut MAC "kontrol akses wajib" Anda mungkin memiliki izin untuk mematikan proses yang tidak dimulai oleh root
Selamat bersenang-senang!
Dalam gerhana pergi ke perspektif DDMS dan di tab perangkat klik proses Anda ingin membunuh di bawah perangkat yang ingin Anda matikan. Anda kemudian hanya perlu menekan tombol stop dan itu harus mematikan proses.
Saya tidak yakin bagaimana Anda akan melakukan ini dari alat baris perintah tetapi harus ada cara. Mungkin Anda melakukannya melalui adb shell ...
pkill NAMEofAPP
Emarsh marshmallow, termux & terminal tidak berakar.