উত্তর:
-s
ডিভাইসটি নির্দিষ্ট করতে কমান্ডের আগে বিকল্পটি ব্যবহার করুন , উদাহরণস্বরূপ:
adb -s 7f1c864e shell
Http://developer.android.com/tools/help/adb.html#directingcommands এও দেখুন
adb -e shell
বা adb emu <command>
। একাধিক এমুলেটর চলে গেলে তারা ব্যর্থ হবে এবং আপনাকে ফিরে যেতে হবে-s
-s
আগে বিকল্প ব্যবহার করতে হবে shell
। এটি খুব খারাপ ব্যবহারকারীর অভিজ্ঞতা যা আপনি অন্যভাবে এটি করতে পারবেন না ...
adb -d shell
(বা adb -e shell
)
আপনি যদি পুরো আইডি টাইপ করতে খুব অলস হন তবে এই কমান্ডটি বেশিরভাগ ক্ষেত্রে আপনাকে সহায়তা করবে।
Http://developer.android.com/tools/help/adb.html#comsssmary থেকে :
-d
- কেবল সংযুক্ত ইউএসবি ডিভাইসে অ্যাডবি কমান্ডটি পরিচালনা করুন । একাধিক ইউএসবি ডিভাইস সংযুক্ত থাকলে ত্রুটি ফিরে আসে Return
-e
- একমাত্র চলমান এমুলেটরটিতে একটি অ্যাডবি কমান্ডটি নির্দেশ করুন । যখন একাধিক এমুলেটর চলছে তখন একটি ত্রুটি ফিরে আসে।
-d
জন্য "ডিভাইস" এবং -e
জন্য "এমুলেটর" । এবং যদি আপনি ইতিমধ্যে এটি বের করে ফেলেছেন তবে নিজেকে পিছনে একটি থাপ্পড় দিন। ;)
অন্য বিকল্পটি হ'ল আপনি উইন্ডোজ ব্যবহার করছেন তা ধরে নিলে প্রাসঙ্গিক সিরিয়ালে পরিবেশের পরিবর্তনশীল ANDROID_SERIAL সেট করা হবে:
set ANDROID_SERIAL="7f1c864e"
echo %ANDROID_SERIAL%
"7f1c864e"
তারপরে আপনি adb.exe shell
কোনও সমস্যা ছাড়াই ব্যবহার করতে পারেন ।
set ANDROID_SERIAL=7f1c864e
, যেমন। উক্তি ব্যতীত.
export ANDROID_SERIAL=7f1c864e
।
2 টি অফলাইন ফোন দেখিয়ে 'একাধিক ডিভাইস' ত্রুটি দেখে আমি এই প্রশ্নটি পেয়েছি:
C:\Program Files (x86)\Android\android-sdk\android-tools>adb devices
List of devices attached
SH436WM01785 offline
SH436WM01785 offline
SH436WM01785 sideload
যদি আপনার কেবল একটি ডিভাইস সংযুক্ত থাকে তবে অফলাইন সংযোগগুলি থেকে মুক্তি পেতে নিম্নলিখিত কমান্ডগুলি চালান:
adb kill-server
adb devices
adb kill-server
অফলাইন এমুলেটরগুলির সাথে সমস্যার সমাধান করে
যখন একাধিক ডিভাইস সংযুক্ত থাকে তখন এই তালিকাটি আপনার মেনু প্রদর্শন করার জন্য বেশিরভাগ কাজ করবে:
$ adb $(android-select-device) shell
1) 02783201431feeee device 3) emulator-5554
2) 3832380FA5F30000 device 4) emulator-5556
Select the device to use, <Q> to quit:
টাইপিং এড়ানোর জন্য আপনি কেবলমাত্র একটি উপনাম তৈরি করতে পারেন যা এখানে বর্ণিত হিসাবে ডিভাইস নির্বাচন অন্তর্ভুক্ত করে ।
ব্যবহারকারী @janot
ইতিমধ্যে উপরে এটি উল্লেখ করেছেন, তবে সেরা সমাধানটি ফিল্টার করতে আমার কিছুটা সময় নিয়েছে।
দুটি ব্রড ইউজ কেস রয়েছে:
1) 2 হার্ডওয়্যার সংযুক্ত রয়েছে, প্রথমটি এমুলেটর এবং অন্যটি ডিভাইস।
সমাধান : adb -e shell....whatever-command
এমুলেটর এবং adb -d shell....whatever-command
ডিভাইসের জন্য।
২) ইউএসবি / এডিবি-ওয়াইফাইয়ের মাধ্যমে n সংখ্যক ডিভাইস সংযুক্ত (সমস্ত এমুলেটর বা ফোন / ট্যাবলেট):
সমাধান : adb devices
স্টেপ 1) রান করুন এটি আপনাকে বর্তমানে সংযুক্ত ডিভাইসের তালিকা দেবে (ইউএসবি বা অ্যাডবোরওয়াইফাইয়ের মাধ্যমে) পদক্ষেপ 2
এখন adb -s <device-id/IP-address> shell....whatever-command
কীভাবে চলুক তা চালানো যায় না আপনার কাছে অনেকগুলি ডিভাইস।
ওয়াইফাই এডিবিতে সংযুক্ত কোনও ডিভাইসে অ্যাপ্লিকেশন ডেটা সাফ করার উদাহরণ আমি কার্যকর করব:
adb -s 172.16.34.89:5555 shell pm clear com.package-id
আমার ইউএসবি সংযুক্ত ডিভাইসে সংযুক্ত অ্যাপ্লিকেশন ডেটা সাফ করার জন্য আমি কার্যকর করব:
adb -s 5210d21be2a5643d shell pm clear com.package-id
আপনার ইমুলেটরগুলির মধ্যে একটিতে একটি APK ইনস্টল করতে:
প্রথমে ডিভাইসের তালিকা পান:
-> adb devices
List of devices attached
25sdfsfb3801745eg device
emulator-0954 device
তারপরে -s
পতাকাটি সহ আপনার এমুলেটরটিতে APK ইনস্টল করুন :
-> adb -s "25sdfsfb3801745eg" install "C:\Users\joel.joel\Downloads\release.apk"
Performing Streamed Install
Success
আশা করি এটি কাউকে সাহায্য করবে!
সমস্ত সংযুক্ত ডিভাইসে অ্যাডবি কমান্ড চালানো
একটি ব্যাশ তৈরি করুন (অ্যাডবি +)
adb devices | while read line
do
if [ ! "$line" = "" ] && [ `echo $line | awk '{print $2}'` = "device" ]
then
device=`echo $line | awk '{print $1}'`
echo "$device $@ ..."
adb -s $device $@
fi
এটি দিয়ে ব্যবহার করা
adb + // + কমান্ড
উইন্ডোজের জন্য, একাধিক ডিভাইসে একটি ফাইল..একটি ইনস্টল করবেন তার দ্রুত 1 লাইনারের উদাহরণ এখানে
FOR /F "skip=1" %x IN ('adb devices') DO start adb -s %x install -r myandroidapp.apk
যদি আপনি এটি একটি ব্যাচ ফাইলে অন্তর্ভুক্ত করার পরিকল্পনা করে থাকেন তবে নীচের মত% x কে %% x দিয়ে প্রতিস্থাপন করুন
FOR /F "skip=1" %%x IN ('adb devices') DO start adb -s %%x install -r myandroidapp.apk
ডিভাইসগুলি (বা এমুলেটর) থেকে সিরিয়াল নির্বাচন করতে একটি বাশ (সরঞ্জাম.শ) তৈরি করুন:
clear;
echo "====================================================================================================";
echo " ADB DEVICES";
echo "====================================================================================================";
echo "";
adb_devices=( $(adb devices | grep -v devices | grep device | cut -f 1)#$(adb devices | grep -v devices | grep device | cut -f 2) );
if [ $((${#adb_devices[@]})) -eq "1" ] && [ "${adb_devices[0]}" == "#" ]
then
echo "No device found";
echo "";
echo "====================================================================================================";
device=""
// Call Main Menu function fxMenu;
else
read -p "$(
f=0
for dev in "${adb_devices[@]}"; do
nm="$(echo ${dev} | cut -f1 -d#)";
tp="$(echo ${dev} | cut -f2 -d#)";
echo " $((++f)). ${nm} [${tp}]";
done
echo "";
echo " 0. Quit"
echo "";
echo "====================================================================================================";
echo "";
echo ' Please select a device: '
)" selection
error="You think it's over just because I am dead. It's not over. The games have just begun.";
// Call Validation Numbers fxValidationNumberMenu ${#adb_devices[@]} ${selection} "${error}"
case "${selection}" in
0)
// Call Main Menu function fxMenu;
*)
device="$(echo ${adb_devices[$((selection-1))]} | cut -f1 -d#)";
// Call Main Menu function fxMenu;
esac
fi
তারপরে অন্য বিকল্পে adb -s
(গ্লোবাল অপশন -s প্রদত্ত সিরিয়াল নম্বর সহ ডিভাইস ব্যবহার করুন যা r ANDROID_SERIAL কে ওভাররাইড করে):
adb -s ${device} <command>
আমি এই কোডটি ম্যাকওএস টার্মিনালে পরীক্ষা করেছি, তবে আমি মনে করি এটি গিট ব্যাশ টার্মিনাল জুড়ে উইন্ডোতে ব্যবহার করা যেতে পারে।
.bash_profile
ফাইলটিতে পরিবেশগত ভেরিয়েবল এবং অ্যান্ড্রয়েড এসডিকে পাথগুলি কনফিগার করার বিষয়টিও মনে রাখবেন :
export ANDROID_HOME="/usr/local/opt/android-sdk/"
export PATH="$ANDROID_HOME/platform-tools:$PATH"
export PATH="$ANDROID_HOME/tools:$PATH"
fxMenu
এবং fxValidatonNumberMenu
কেবল রেফারেন্সের জন্য। আমি ত্রুটি কোডগুলি এড়ানোর জন্য এটি মন্তব্য করেছি। আপনি আমার সংগ্রহস্থলটিতে একটি সম্পূর্ণ বাস্তবায়ন দেখতে পাবেন: github.com/equiman/hardhatmac/blob/master/tools.sh
যে কোনও নির্দিষ্ট ডিভাইসে শেল চালানোর সর্বোত্তম উপায়টি হ'ল:
adb -s << emulator UDID >> shell
For Example:
adb -s emulator-5554 shell
100% কাজ করে
অনুগ্রহ করে এটিকে থামিয়ে দিন
আমি নিজের জন্য তৈরি একটি শেল স্ক্রিপ্ট এখানে:
#! /bin/sh
for device in `adb devices | awk '{print $1}'`; do
if [ ! "$device" = "" ] && [ ! "$device" = "List" ]
then
echo " "
echo "adb -s $device $@"
echo "------------------------------------------------------"
adb -s $device $@
fi
done
adb -s 192.168.56.101:5555 shell