প্রশ্নটি আসলে কী বলে - আপনি কোনও ডিভাইস তৈরি, প্যাকেজ এবং মোতায়েনের জন্য কমান্ড লাইনের মাধ্যমে গ্রেডলুতে সরাসরি কোনও আদেশ দিতে পারেন?
প্রশ্নটি আসলে কী বলে - আপনি কোনও ডিভাইস তৈরি, প্যাকেজ এবং মোতায়েনের জন্য কমান্ড লাইনের মাধ্যমে গ্রেডলুতে সরাসরি কোনও আদেশ দিতে পারেন?
উত্তর:
$ gradle installDebug
এটি ডিবাগ বিল্ড এপিকে ডিভাইসে চাপ দেবে, তবে আপনাকে ম্যানুয়ালি অ্যাপ্লিকেশনটি শুরু করতে হবে।
যেহেতু আপনি গ্রেডল ব্যবহার করছেন তাই আপনি বিল্ড.গ্রাডলে আপনার নিজের কাজটি সহজেই যুক্ত করতে পারেন
task appStart(type: Exec, dependsOn: 'installDebug') {
// linux
commandLine 'adb', 'shell', 'am', 'start', '-n', 'com.example/.MyActivity'
// windows
// commandLine 'cmd', '/c', 'adb', 'shell', 'am', 'start', '-n', 'com.example/.MyActivity'
}
তারপরে আপনার প্রকল্পের মূলটিতে এটি কল করুন
$ gradle appStart
হালনাগাদ:
আপনি ব্যবহার করে থাকেন applicationIdSuffix ".debug"
, অ্যাড .debug
করতে শুধুমাত্র APPID কিন্তু কার্যকলাপ অক্ষত ছেড়ে:
'com.example.debug/com.example.MyActivity'
'com.your.packagename/.path.relative.to.your.packagename.MyActivity'
তার পরিবর্তে শেষ প্যারামিটারটি হওয়া উচিত 'com.example/.MyActivity'
।
1. প্রকল্প তৈরি করুন, ডিভাইসে উত্পন্ন এপিপি ইনস্টল করুন
# at the root dir of project
$ gradle installDebug
2. ডিভাইসে অ্যাপ খুলুন Open
$ adb shell am start -n yourpackagename/.activityname
alias arun="./gradlew installDebug && adb shell am start -n com.example.package/.LauncherActivity"
# পদক্ষেপ 2 কেবল পদক্ষেপ 1 যখন সাফল্য হয়
এক লাইনের বাক্য:
প্রোজেক্ট তৈরি করুন এবং জেনারেটেড এপিকে ইনস্টল করুন এবং ডিভাইসে অ্যাপ্লিকেশনটি খুলুন
$ ./gradlew installDebug && adb shell am start -n com.example/.activities.MainActivity
এটি সম্পাদন করার জন্য তিনটি আদেশ রয়েছে:
./gradlew assembleDebug #To build the project
adb install -r ./app/build/outputs/apk/app-debug.apk #To install it to the device
adb shell am start -n $PACKAGE/$PACKAGE.$ACTIVITY #To launch the application in the device
যেখানে $ প্যাকেজটি হ'ল ডেভলপমেন্ট প্যাকেজ এবং IV ACTIVITY হ'ল চালু করা ক্রিয়াকলাপ (লঞ্চার ক্রিয়াকলাপ)।
আমি অন্যান্য কয়েকটি বৈশিষ্ট্য সহ এটি করতে বাশ স্ক্রিপ্ট লিখছি ।
এটি করার আরও একটি নমনীয় উপায় হ'ল বানর ব্যবহার করে:
task runDebug (type: Exec, dependsOn: 'installDebug') {
commandLine android.getAdbExe().toString(), "shell",
"monkey",
"-p", "your.package.name.debugsuffix",
"-c", "android.intent.category.LAUNCHER", "1"
}
এই পদ্ধতির কিছু সুবিধা:
getAdbExe
পথে চলার জন্য অ্যাডাবির প্রয়োজন হয় না এবং এসডিকে ইনড পয়েন্ট থেকে অ্যাডবি সংস্করণ ব্যবহার করে local.properties
।monkey
টুল আপনি একটি লঞ্চার অভিপ্রায় পাঠাতে, যাতে আপনি আপনার কার্যকলাপের নাম জানতে প্রয়োজন হয় না পারেন।adb shell am start your.package.name.debugsuffix\.Activity
বিল্ড -> পুরানো ভার্শন আনইনস্টল করুন -> নতুন সংস্করণ ইনস্টল করুন -> অ্যাপ্লিকেশন চালান।
echo "Build application" && ./gradlew clean build &&
echo "Uninstall application" && adb uninstall [application package] &&
echo "Install application" && adb -d install app/build/outputs/apk/<build type>/[apk name].apk echo "Run application" &&
adb shell am start -n [application package]/.[application name]
অথবা আপনি যদি ডিবাগ প্রকারে অ্যাপ্লিকেশন ইনস্টল এবং চালাতে চান।
./gradlew installDebug && adb shell am start -n [application package]/.[application name]
আমি ডিভাইসে অ্যাপ্লিকেশনটি ইনস্টল করতে ও খুলতে সক্ষম হতে এই কাজটি লিখেছিলাম। যেহেতু আমার একাধিক buildTypes
এবং flavors
বিভিন্ন অ্যাপ্লিকেশন আইড রয়েছে তাই প্যাকেজের নামটি হার্ড কোড করা সম্ভব ছিল না। আমি পরিবর্তে এটি লিখেছি:
android.applicationVariants.all { variant ->
task "open${variant.name.capitalize()}" {
dependsOn "install${variant.name.capitalize()}"
doLast {
exec {
commandLine "adb shell monkey -p ${variant.applicationId} -c android.intent.category.LAUNCHER 1".split(" ")
}
}
}
}
এটি আপনাকে ইতিমধ্যে আপনার open{variant}
প্রতিটি install{variant}
কাজের জন্য দেবে ।
gradle tasks
বাক্সের কাজগুলি শেষ করতে সহায়তা করে - যার মধ্যে ইনস্টলিং রয়েছে (তবে নীচে বর্ণিত হিসাবে শুরু করা হয়নি)