অ্যান্ড্রয়েড এডিবি সরঞ্জাম ব্যবহার করে কীভাবে অ্যাপ্লিকেশন শুরু করবেন?


উত্তর:


629
adb shell
am start -n com.package.name/com.package.name.ActivityName

অথবা আপনি এটি সরাসরি ব্যবহার করতে পারেন:

adb shell am start -n com.package.name/com.package.name.ActivityName

আপনি আপনার অভিপ্রায়-ফিল্টারগুলি দ্বারা ফিল্টার হওয়ার জন্য ক্রিয়াগুলিও নির্দিষ্ট করতে পারেন:

am start -a com.example.ACTION_NAME -n com.package.name/com.package.name.ActivityName 

23
আপনাকে অনেক ধন্যবাদ, আমি এটি আরও দ্রুত function androidrun(){ ant clean debug adb shell am start -n $1/$1.MainActivity }এবং এর ব্যবহারের জন্য। / .Bash_profile এ শেল ফাংশন তৈরি করেছি androidrun com.example.test
আব্দুল্লাহডিয়া

3
adb shell amamকমান্ডটি পাস করার জন্য আপনাকে অন্যান্য বিকল্পের একটি তালিকা দেবে । আপনি ডেভেলপার.অ্যান্ড্রয়েড.
com

1
@ শুরনে আমি কীভাবে বিকল্প খুঁজে পেতে পারি?
এরিক্যং

21
ডিফল্ট ক্রিয়াকলাপটি চালানো কি সম্ভব, আমি কোন ক্রিয়াকলাপটি শুরু করব তা সুনির্দিষ্ট না করে?
অ্যান্ড্রয়েড বিকাশকারী

1
অ্যাপ্লিকেশন এবং ক্রিয়াকলাপ খুঁজতে আমার সমস্যা হয়েছিল। আমি প্রদর্শিত এই adb logcat | grep --line-buffered ActivityManager | grep --line-bufferedসমস্ত অ্যাপ্লিকেশনগুলির তালিকাতে এই পাইপ লাইনটি ব্যবহার করেছি ।
এট রিগ

299

এই পদ্ধতিটি অনুসরণ করে কেবল বানর সরঞ্জাম ব্যবহার করে প্যাকেজটির নাম নির্দিষ্ট করে অ্যাপ্লিকেশনটি চালানো সম্ভব :

adb shell monkey -p your.app.package.name -c android.intent.category.LAUNCHER 1

কমান্ডটি বানরের সরঞ্জাম ব্যবহার করে অ্যাপ চালাতে ব্যবহৃত হয় যা অ্যাপ্লিকেশনের জন্য এলোমেলো ইনপুট উত্পন্ন করে। কমান্ডের শেষ অংশটি পূর্ণসংখ্যা যা অ্যাপ্লিকেশনটির জন্য উত্পন্ন এলোমেলো ইনপুটগুলির সংখ্যা নির্দিষ্ট করে। এই ক্ষেত্রে নম্বরটি 1, যা বাস্তবে অ্যাপটি চালু করতে ব্যবহৃত হয় (আইকন ক্লিক)।


91
লঞ্চারটি ডিফল্ট। আপনি adb shell monkey -p your.app.package.name 1
এটিকে

3
প্যাকেজের নামের পরিবর্তে, APK ফাইলের নাম ব্যবহার করা কি সম্ভব? ধরুন আমার কাছে একটি এপিএইচ ফাইল রয়েছে এবং আমি এটি ইনস্টল ও চালাতে সক্ষম হতে চাই, এটি কি সম্ভব?
অ্যান্ড্রয়েড বিকাশকারী

1
আমি যদি ত্রুটি পাই তবে কী হবে: কোনও ক্রিয়াকলাপ চালানোর জন্য পাওয়া যায় নি। বাতিল ?
ইগোরগানাপলস্কি

3
@ আইগরগানাপলস্কি যদি কোনও ক্রিয়াকলাপ না পাওয়া যায় তবে এটি কোনও পরিষেবা অ্যাপ এবং এর কোনও ক্রিয়াকলাপ নেই।
m3nda

1
@IgorGanapolsky যদি তা না হয় একটি সেবা ব্যবহার adb shell am startservice com.some.package.name/.YourServiceSubClassNameএখানে দেখুন: stackoverflow.com/a/18703083/211292
ThomasW

122

অথবা, আপনি এটি ব্যবহার করতে পারেন:

adb shell am start -n com.package.name/.ActivityName

75
ক্রিয়াকলাপের নাম উল্লেখ না করে এটি করা কি সম্ভব, যাতে ডিফল্ট মূল ক্রিয়াকলাপটি শুরু হয়?
অ্যান্ড্রয়েড বিকাশকারী

5
@ অ্যান্ড্রয়েড ডেভেলপার নীচে ডিপোডেফি থেকে বানর কমান্ডটি দেখুন : ক্রিয়াকলাপের নাম নির্দিষ্ট করার দরকার নেই!
1111161171159459134

8
আমি যদি ক্রিয়াকলাপটি না জানি ?
ইগোরগানাপলস্কি

2
চালান ~ / অ্যান্ড্রয়েড-এসডিকে-লিনাক্স / বিল্ড-সরঞ্জামগুলি / 20.0.0 / অপ্ট ডাম্প ব্যাজিং yourapp.apk, যা নিম্নলিখিত এন্ট্রিটি তালিকাভুক্ত করবে: লঞ্চযোগ্য-ক্রিয়াকলাপ: নাম = 'com.company.android.package.YourLaunchableActivity'
JohnyTex

17
monkey -p com.package.name 1এর মাধ্যমেadb shell
ডেনিস ভাইটালি

60

লিনাক্স / ম্যাক ব্যবহারকারীরা নীচের মতো কিছু সহ একটি এপিপি চালানোর জন্য একটি স্ক্রিপ্ট তৈরি করতে পারেন:

এই 3 টি লাইন দিয়ে "adb-run.sh" নামে একটি ফাইল তৈরি করুন:

pkg=$(aapt dump badging $1|awk -F" " '/package/ {print $2}'|awk -F"'" '/name=/ {print $2}')
act=$(aapt dump badging $1|awk -F" " '/launchable-activity/ {print $2}'|awk -F"'" '/name=/ {print $2}')
adb shell am start -n $pkg/$act

তারপরে "chmod + x adb-run.sh" এটিকে এক্সিকিউটেবল করার জন্য।

এখন আপনি সহজভাবে করতে পারেন:

adb-run.sh myapp.apk

এখানে সুবিধাটি হ'ল আপনার প্যাকেজের নাম বা প্রবর্তনযোগ্য ক্রিয়াকলাপের নাম জানতে হবে না। একইভাবে, আপনি "adb-install.sh myapp.apk" তৈরি করতে পারেন

দ্রষ্টব্য: এটির প্রয়োজন আপনার পথটি খাপ খাইয়ে নেওয়া। আপনি এটি এসডিকে নতুন বিল্ড সরঞ্জাম ফোল্ডারের নীচে খুঁজে পেতে পারেন।


উইন্ডোজের জন্য আপনি সাইগউইন (অনির্ধারিত) দিয়ে চেষ্টা করতে পারেন
dljava

3
আপনার পোস্টটি আমাকে এডাব্লুকে দেখায়। আমি এগিয়ে গিয়েছিলাম এবং আপনার স্ক্রিপ্টটি আবার তৈরি করেছি। পেস্টবিন.com
কাইল

2
এটি কল্পিত। কেন এটি কোনও স্ট্যান্ডার্ড অ্যাডবি কমান্ড নয় তা আমরা কখনই জানতে পারি না।
জন Tyree

আপনি যদি adb-run.sh স্ক্রিপ্টে PATH সেট করে থাকেন তবে আপনার পথে ("অ্যান্ড্রয়েড" যতক্ষণ না) আপনার প্রয়োজন হবে না: PATH = $ (dirname $ (যা অ্যান্ড্রয়েড)) /। ./build-tools/20.0.0:$PATH
স্টিভ লেমকে


21

এছাড়াও, আমি আরও একটি বিষয় উল্লেখ করতে চাই।

আপনি যখন থেকে কোনও অ্যাপ্লিকেশন শুরু করবেন adb shell am, এটি স্বয়ংক্রিয়ভাবে FLAG_ACTIVITY_NEW_TASK পতাকা যুক্ত করে যা আচরণ পরিবর্তন করে। কোড দেখুন ।

উদাহরণস্বরূপ, আপনি যদি প্লে স্টোর ক্রিয়াকলাপটি চালু করেন তবে adb shell am' পিছনে ' বোতামটি (হার্ডওয়্যার ব্যাক বোতাম) টিপলে আপনি আপনার অ্যাপটি গ্রহণ করবেন না, পরিবর্তে যদি কিছু থাকে তবে আপনাকে পূর্ববর্তী প্লে স্টোর ক্রিয়াকলাপটি গ্রহণ করতে হবে (যদি প্লে স্টোর টাস্ক না থাকত) , তবে এটি আপনাকে আপনার অ্যাপ্লিকেশনটি নেবে)। FLAG_ACTIVITY_NEW_TASK ডকুমেন্টেশন বলেছেন:

আপনি এখন যে ক্রিয়াকলাপটি শুরু করছেন এর জন্য যদি কোনও কাজ ইতিমধ্যে চলমান থাকে তবে একটি নতুন ক্রিয়াকলাপ শুরু হবে না; পরিবর্তে, বর্তমান টাস্কটি কেবল সর্বশেষে থাকা রাষ্ট্রের সাথে পর্দার সামনে আনানো হবে

এর ফলে আমাকে কী ভুল হয়েছে তা জানতে কয়েক ঘন্টা ব্যয় করতে হয়েছিল।

সুতরাং, মনে রাখবেন যে adb shell am FLAG_ACTIVITY_NEW_TASK পতাকা যুক্ত করুন


1
এছাড়াও, উল্লেখ করা দরকার যে উক্ত পতাকাটি পরিষ্কার করার কোনও উপায় নেই, যা বিরক্তিকর
কেদার পরানজপে

16

অ্যাপ্লিকেশন প্রকারটি জেনে এবং ডেটা দিয়ে এটি খাওয়ানোর মাধ্যমে আমরা একটি অ্যাপ্লিকেশন শুরু করতে পারি:

adb shell am start -d "file:///sdcard/sample.3gp" -t "video/3gp" -a android.intent.action.VIEW

এই কমান্ডটি নমুনা.3 জিপি ফাইল খেলতে উপলভ্য ভিডিও প্লেয়ারগুলি প্রদর্শন করে


15

পদক্ষেপ 1: প্রথমে আপনার ডিভাইসে ইনস্টল থাকা অ্যাপ্লিকেশনগুলির সমস্ত প্যাকেজের নামটি ব্যবহার করে নিন:

adb shell pm list packages

পদক্ষেপ 2: আপনি সমস্ত প্যাকেজের নাম পাবেন, আপনি যে বিজ্ঞাপনটি শুরু করতে চান সেটি অনুলিপি করুন।

পদক্ষেপ 3: নীচের কমান্ডে আপনার পছন্দসই প্যাকেজটির নাম যুক্ত করুন।

adb shell monkey -p 'your package name' -v 500

উদাহরণস্বরূপ:
adb shell monkey -p com.estrongs.android.pop -v 500 এস এস এক্সপ্লোরার শুরু করা।


11
এটি আপনার অ্যাপ্লিকেশন আরম্ভ করবে এবং এতে 500 টি সিউডো-এলোমেলো ইভেন্ট পাঠাবে। সুতরাং '500' প্রতিস্থাপন করতে '1' ব্যবহার করা ভাল।
লিন

14

open / .bash_profile খুলুন এবং এই ব্যাশ ফাংশনগুলি ফাইলের শেষে যুক্ত করুন

function androidinstall(){
   adb install -r ./bin/$1.apk
}
function androidrun(){
   ant clean debug
   adb shell am start -n $1/$1.$2
}

তারপরে অ্যান্ড্রয়েড প্রকল্প ফোল্ডারটি খুলুন

androidinstall app-debug && androidrun com.example.app MainActivity

2
আপনি কি ব্যাখ্যা করতে app-debugপারেন?
JayQuerie.com

3
@ ট্র্যাভারসেনিয়র অ্যাপ-ডিবাগ এপিপি ফাইলের শিরোনাম, সাধারণত ডিবাগ মোডে উত্পন্ন এপিপি ফাইলটির শিরোনাম হয় "অ্যাপ্লিকেশন নাম-ডিবাগ.এপকে"
আব্দুল্লাহদিয়া

7

monkey --pct-syskeys 0 উন্নয়ন বোর্ডের জন্য

এই তর্ক ছাড়াই, অ্যাপ্লিকেশন কী / প্রদর্শন ছাড়াই কোনও উন্নয়ন বোর্ডে খুলবে না:

adb shell monkey --pct-syskeys 0 -p com.cirosantilli.android_cheat.textviewbold 1

এবং ত্রুটির সাথে ব্যর্থ:

SYS_KEYS has no physical keys but with factor 2.0%

হাইকিউ 960 এ পরীক্ষিত, অ্যান্ড্রয়েড হে এওএসপি।

শিখেছে: https://github.com/ARM-software/lisa/pull/408

এটিকে আরও জিজ্ঞাসা করা হয়েছিল: বানর পরীক্ষা: অ্যান্ড্রয়েড সিস্টেমে যদি শারীরিক কী না থাকে তবে কমান্ডের সাথে পরামিতিগুলি অন্তর্ভুক্ত করা দরকার


2
adb shell am start -n '<appPackageName>/.<appActitivityName>

উদা:

adb shell am start -n 'com.android.settings/.wifi.WifiStatusTest'

প্রতিটি অ্যাপ্লিকেশন প্যাকেজের সাথে সম্পর্কিত অ্যাপ্লিকেশন ক্রিয়াকলাপগুলির তালিকা জানতে আপনি APK-INFO অ্যাপ্লিকেশন ব্যবহার করতে পারেন


0

অ্যান্ড্রয়েড ফটো অ্যাপ্লিকেশন খোলার জন্য এবং প্যারামিটার হিসাবে খোলার জন্য নির্দিষ্ট চিত্র ফাইল সহ এটি ব্যবহার করে দেখুন।

adb shell am start -n com.google.android.apps.photos/.home.HomeActivity -d file:///mnt/user/0/primary/Pictures/Screenshots/Screenshot.png

এটি সর্বশেষ অ্যান্ড্রয়েডে কাজ করবে, আপনি কোনও নির্দিষ্ট অ্যাপ্লিকেশন দিচ্ছেন যার মাধ্যমে আপনি নিজের চিত্রটি খুলতে চান তাতে কোনও পপ আপ খুলতে কোনও অ্যাপ্লিকেশন নির্বাচন করতে আসবে না


আমার কাছে একটি প্লেয়ার অ্যাপ রয়েছে, যা ইউআরএল থেকে একটি ভিডিও স্ট্রিম করতে সক্ষম, আমি কীভাবে এই urlটিকে পরামিতি হিসাবে পাস করতে পারি এবং সেই url থেকে প্রবাহিত করতে পারি? ধরুন ইউটিউব থেকে কোনও ইউআরএল?
বিষ্ণু
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.