問題真的在說 - 你能通過命令行直接發佈任何命令到gradlew來構建,打包並部署到設備嗎?你能通過命令行通過Gradle部署到設備嗎
回答
1.構建項目,對設備
$ adb shell am start -n yourpackagename/.activityname
alias arun =「gradle installDebug; adb shell am start -n com.example.app/.activity.MainActivity」 –
我無法在gradle中選擇installDebug。沒有合適的任務。它是否被重命名? –
@JonasGröger它似乎已被重命名爲installDefaultFlavorDebug – durka42
安裝APK產生到設備
# at the root dir of project
$ gradle installDebug
2.打開應用程序由於使用的搖籃,你可以簡單的添加自己的任務在build.gradle
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'
一號線的句子:
構建項目&安裝生成APK &打開應用在設備
$ ./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
,其中$ PACKAGE是開發包,$ ACTIVITY是要啓動的活動(啓動器活動)。
我一直在寫一個bash script to do this,以及其他一些功能。
task appStart(type: Exec, dependsOn: 'installDebug') {
commandLine android.adbExe, 'shell', 'am', 'start', '-n', 'com.example/.MyActivity'
}
運行的最佳解決方案 – Orgatres
更靈活的方式來做到這一點是通過使用猴子:
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
中指出的sdk的adb版本。monkey
工具允許您發送啓動器意圖,因此您不需要知道您的活動的名稱。
我寫了這個任務,以便能夠安裝並打開設備上的應用程序。由於我有多個buildTypes
和flavors
以及不同的應用程序ID,所以對軟件包名稱進行硬編碼是不可行的。所以我寫了像這樣代替:
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}
任務。
- 1. 你能通過命令在linux中重命名shell會話嗎?
- 2. 如何通過MsBuild命令行部署CLR存儲過程?
- 3. 通過命令行將戰爭部署到weblogic的問題
- 4. 通過命令行將戰爭部署到websphere
- 5. 通過寫入DataOutputStream通過藍牙向設備發送命令
- 6. 可能通過Dreamweaver CS5部署WAR嗎?
- 7. 通過命令行
- 8. 通過命令行
- 9. 通過命令行
- 10. 通過命令行
- 11. 通過命令行
- 12. 通過命令行
- 13. 通過命令行
- 14. 通過命令行將IPA推送到設備(在xcodebuild之後)?
- 15. 在MacOSX上通過命令行連接到藍牙設備(iPhone)
- 16. 發現通過命令行連接到計算機的設備?
- 17. 通過命令行通過WebDeploy部署失敗,由於無效操作
- 18. 你能通過Android設備切換Roku的音量嗎?
- 19. 通過命令行部署SQL Server數據庫項目(SSDT)
- 20. 通過命令行在Jboss 7.0.1中部署戰爭
- 21. 如何通過命令行配置本地部署和遠程?
- 22. 從cloud66移開和部署通過命令行
- 23. Android的 - 簡單部署(通過命令行)
- 24. 通過命令行部署應用程序客戶端(asadmin)
- 25. 通過命令行構建Visual Studio部署項目(.vdproj)
- 26. 通過HDMI通過命令行發送CEC命令
- 27. 未能通過Android設備
- 28. xcodebuild - 通過命令行設置證書
- 29. 通過命令行設置CURLOPT_FRESH_CONNECT
- 30. APNS只能通過命令行工作
'gradle tasks'有助於查看開箱即用的任務 - 其中包括安裝(但不是如下所述啓動) – Dori
命令行不是IDE特定的,.i.e。這種方式可以從Android Studio或基於Eclipse的IDE工作 –