我想使用Windows命令行安装文件。首先,我想在编译所有.jar文件之后为不使用Eclipse的Android应用程序创建.apk文件而进行构建。
有谁知道在不使用Eclipse的情况下只能通过命令行来完成此工作。
我想使用Windows命令行安装文件。首先,我想在编译所有.jar文件之后为不使用Eclipse的Android应用程序创建.apk文件而进行构建。
有谁知道在不使用Eclipse的情况下只能通过命令行来完成此工作。
Answers:
您可以使用下面的代码从命令行安装应用程序
adb install example.apk
该apk安装在当前打开的模拟器的内部存储器中。
adb install -s example.apk
该APK安装在当前打开的模拟器的SD卡中。
您还可以将apk安装到adb的已连接设备列表中的特定设备。
adb -s emulator-5554 install myapp.apk
另请参阅adb帮助。
-d
以通过USB连接强制安装。我遇到了问题,并添加了解决此问题的方法。adb -d install myApp-release.apk
adb install -d
不强制使用USB。在adb的帮助下:(-d: allow version code downgrade)
adb install -r example.apk
安装/更新的应用程序。的-r
,如果它已经安装将更新的应用程序。
使用Android调试桥命令行工具,adb
例如:adb install filename.apk
。
一个很好的参考adb
是在这里
install [options] <PATH> Installs a package (specified by <PATH>) to the system.
Options:
-l: Install the package with forward lock.
-r: Reinstall an exisiting app, keeping its data.
-t: Allow test APKs to be installed.
-i <INSTALLER_PACKAGE_NAME>: Specify the installer package name.
-s: Install package on the shared mass storage (such as sdcard).
-f: Install package on the internal system memory.
-d: Allow version code downgrade.
uninstall [options] <PACKAGE> Removes a package from the system.
Options:
-k: Keep the data and cache directories around after package removal.
简单的方法是通过命令
adb install example.apk
如果要定位连接设备,则可以添加参数“ -d”
adb install -d example.apk
如果您连接了多个设备/仿真器,则会出现此错误
adb:错误:连接失败:多个设备/模拟器-等待设备-错误:多个设备/模拟器
为了避免您可以通过以下命令列出所有设备
adb devices
您将获得如下结果
C:\Windows\System32>adb devices
List of devices attached
a3b09hh3e device
emulator-5334 device
选择这些设备之一并将参数添加到adb命令中,如下所示:-s a3b09hh3e
adb -s a3b09a6e install example.apk
如果apk的路径较长且有空格,也可以作为提示,只需将其添加在双引号之间,例如
adb -s a3b09a6e install "c:\my apk location\here 123\example.apk"
像在Android Studio中一样,安装APK文件的命令如下所示。
1)推送您的应用程序:
adb push /pathOfApk/com.my.awesome.apk /data/local/tmp/com.my.awesome
哪里 com.my.awesome
你的包裹。
2)安装:
adb shell pm install -t -r "/data/local/tmp/com.my.awesome"
太简单了!
例如我的apk文件位置是:d:\ myapp.apk
运行cmd
导航到“平台工具”文件夹(在sdk文件夹中)
启动您的模拟器设备(假设它的名称是5556:MyDevice)
在cmd中键入以下代码:
adb -s emulator-5556安装d:\ myapp.apk
等待一会儿,它就完成了!
您可以使用adb命令行工具或gradle命令来执行此操作: 请参阅本指南。
设置命令行adb
export PATH=/Users/mayurik/Library/Android/sdk/platform-tools/adb:/Users/mayurik/Library/Android/sdk/tool
Gradle命令来构建和安装。
#Start Build Process
echo "\n\n\nStarting"
./gradlew clean
./gradlew build
./gradlew assembleDebug
#Install APK on device / emulator
echo "installDebug...\n"
./gradlew installDebug
您也可以使用卸载任何以前的版本
`./gradlew uninstallDebug`
您可以在设备/模拟器上启动主要活动,如下所示
#Launch Main Activity
adb shell am start -n "com.sample.androidbuildautomationsample/com.sample.androidbuildautomationsample.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
我在Windows机器上使用此脚本(将当前文件夹中的所有apk安装到所有可用设备中)
Write-Host "Listing APKs..."
$List_Apks = New-Object System.Collections.ArrayList
Get-ChildItem -Path .\ -Filter *.apk -File -Name| ForEach-Object {
$apk_filename = [System.IO.Path]::GetFileName($_)
$List_Apks+=$apk_filename
$apk_filename
}
Write-Host "Found apks "$List_Apks.Length
Write-Host ""
$raw_list = adb devices
$array_lines = $raw_list.Split("\n")
Write-Host "Listing devices "
$List_Device_Ids = New-Object System.Collections.ArrayList
1..($array_lines.Length-2) | foreach {
$device_id = $array_lines[$_].Split([char]0x9)[0]
$List_Device_Ids+=$device_id
$device_id
}
Write-Host "Found devices "$List_Device_Ids.Length
0..($List_Device_Ids.Length-1) | foreach {
$device_id = $List_Device_Ids[$_]
0..($List_Apks.Length-1) | foreach {
$apk_file_name = $List_Apks[$_]
Write-Host "Installing " $apk_file_name "->" $device_id
adb -s $device_id install -r $apk_file_name
}
}
Write-Host "Endo"
将此另存为install-apks.ps1
然后从powershell:
powershell -executionpolicy bypass -File .\install-apks.ps1