উত্তর:
সম্পাদনা করুন: আমি এই পোস্টটি লেখার অনেক পরে এবং এটি উত্তর হিসাবে স্বীকৃত হওয়ার পরে, am force-stop
আদেশটি অ্যান্ড্রয়েড দল দ্বারা প্রয়োগ করা হয়েছিল , যেমন এই উত্তরে উল্লিখিত হয়েছে ।
বিকল্পভাবে: যেহেতু আপনি প্রতিটি পরীক্ষার জন্য "ক্লিন স্লেট" চাওয়ার কথা উল্লেখ করেছেন কেবল অ্যাপটি থামিয়ে দেওয়ার পরিবর্তে, আপনি ব্যবহার করতে পারবেন adb shell pm clear com.my.app.package
যা অ্যাপ্লিকেশন প্রক্রিয়াটি বন্ধ করে দেবে এবং সেই অ্যাপ্লিকেশনটির জন্য সঞ্চিত সমস্ত ডেটা সাফ করবে ।
আপনি যদি লিনাক্সে থাকেন:
adb shell ps | grep com.myapp | awk '{print $2}' | xargs adb shell kill
এটি কেবলমাত্র ডিভাইস / ইমুলেটরগুলির জন্য কাজ করবে যেখানে শেল চালানোর সাথে সাথে আপনার তত্ক্ষণাত রুট হবে। এটি সম্ভবত su
আগে কল করার জন্য সামান্য পরিশ্রুত করা যেতে পারে ।
অন্যথায়, আপনি এটি করতে পারেন (ম্যানুয়ালি, বা আমি স্ক্রিপ্টযুক্ত মনে করি):
pc $ adb -d shell
android $ su
android # ps
android # kill <process id from ps output>
অ্যাপটি বন্ধ করার পরিষ্কার উপায় হ'ল:
adb shell am force-stop com.my.app.package
এইভাবে আপনাকে প্রক্রিয়া আইডিটি বের করতে হবে না।
force-stop
কমান্ডের অস্তিত্বের আগে আমি আমার উত্তর উপরে লিখেছিলাম । আমি আমার উত্তর আপডেট করেছি এটির প্রতি নির্দেশ করতে।
Android 9.0 API Level 28
, অ্যাপটি অ্যাপ্লিকেশন সম্পর্কিত পাওয়া সত্ত্বেও সাম্প্রতিক অ্যাপগুলিতে এখনও প্রদর্শিত হবে PID
। আপনি কীভাবে পুরোপুরি অ্যাপ্লিকেশন থেকে এমনকি সম্পূর্ণরূপে অ্যাপটি বন্ধ করবেন তা জানেন ?
প্রথমে অ্যাপটিকে পটভূমিতে রাখুন (ডিভাইসের হোম বোতাম টিপুন)
তারপরে .... টার্মিনালে ....
adb shell am kill com.your.package
আপনি ডিভাইস কনসোল থেকে নিম্নলিখিতটি ব্যবহার করতে পারেন: pm disable com.my.app.package
এটি এটি হত্যা করবে। তারপরে ব্যবহার করুন pm enable com.my.app.package
যাতে আপনি এটি আবার চালু করতে পারেন।
adb shell
, তারপর su
প্রথমে চালানো ।
আপনার যদি অ্যাপ্লিকেশন প্যাকেজে অ্যাক্সেস থাকে তবে আপনি -r বিকল্পের সাহায্যে ইনস্টল করতে পারেন এবং এটি বর্তমানে পার্শ্ব প্রতিক্রিয়া হিসাবে চলতে থাকলে প্রক্রিয়াটি হারাবে। এটার মত:
adb -d install -r MyApp.apk ; adb -d shell am start -a android.intent.action.MAIN -n com.MyCompany.MyApp/.MyActivity
-R বিকল্পটি বর্তমানে অ্যাপের সাথে সম্পর্কিত ডেটা সংরক্ষণ করে। তবে, আপনি যদি উল্লেখ করেন যে আপনি যদি একটি ক্লিন স্লেট চান তবে আপনি সম্ভবত এই বিকল্পটি ব্যবহার করতে চাইবেন না।
আপনি যদি কোনও শিকড়বিহীন ডিভাইস এবং / অথবা আপনার APK তে পরিষেবাগুলি লক্ষ্য করে থাকেন যা আপনি পাশাপাশি থামাতে চান না, অন্য সমাধানগুলি কাজ করবে না।
এই সমস্যাটি সমাধান করার জন্য, আমি এটি বন্ধ করার জন্য আমার ক্রিয়াকলাপে যুক্ত করেছি এমন একটি সম্প্রচার বার্তা রিসিভারের অবলম্বন করেছি।
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));
}
}
এইভাবে, আপনি আপনার ক্রিয়াকলাপ বন্ধ করতে এই অ্যাডবি কমান্ডটি জারি করতে পারেন:
adb shell am broadcast -a com.example.TestActivity.STOP
adb shell killall -9 com.your.package.name
ম্যাক "বাধ্যতামূলক অ্যাক্সেস নিয়ন্ত্রণ" অনুসারে আপনার কাছে সম্ভবত প্রক্রিয়াটি মেরে ফেলার অনুমতি রয়েছে যা মূল দ্বারা শুরু হয়নি not
আনন্দ কর!
গ্রহণে ডিডিএমএসের দৃষ্টিকোণে যান এবং ডিভাইস ট্যাবে আপনি যে প্রক্রিয়াটি হত্যা করতে চান তার অধীনে যে প্রক্রিয়াটি আপনি হত্যা করতে চান তাতে ক্লিক করুন। তারপরে আপনাকে কেবল স্টপ বোতাম টিপতে হবে এবং এটি প্রক্রিয়াটি হারাতে হবে।
কমান্ড লাইন সরঞ্জাম থেকে আপনি এটি কীভাবে করবেন তা আমি নিশ্চিত নই তবে অবশ্যই একটি উপায় থাকতে হবে। হতে পারে আপনি এটি এডিবি শেলের মাধ্যমে করেন ...
pkill NAMEofAPP
অমূলযুক্ত মার্শমালো, টার্মাক্স এবং টার্মিনাল এমুলেটর।