I want to install a file using the Windows command line. First I want to build after compiling all the .jar files to create an .apk file for an Android application without using Eclipse.
Does anyone know how this can be done without the use of Eclipse & only by making use of command line.
214 Answers
You can use the code below to install application from command line
adb install example.apk this apk is installed in the internal memory of current opened emulator.
adb install -s example.apk this apk is installed in the sd-card of current opened emulator.
You can also install an apk to specific device in connected device list to the adb.
adb -s emulator-5554 install myapp.apk Refer also to adb help for other options.
10You can build on the command line with ant. See this guide.
Then, you can install it by using adb on the command line.
adb install -r MyApp.apk The -r flag is to replace the existing application.
Use the Android Debug Bridge command line tool adb eg: adb install filename.apk.
A good reference for adb is Here
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. 1You can install an apk to a specific device/emulator by entering the device/emulator identifier before the keyword 'install' and then the path to the apk. Note that the -s switch, if any, after the 'install' keyword signifies installing to the sd card. Example:
adb -s emulator-5554 install myapp.apk The simple way to do that is by command
adb install example.apk and if you want to target connect device you can add parameter " -d "
adb install -d example.apk if you have more than one device/emulator connected you will get this error
adb: error: connect failed: more than one device/emulator - waiting for device - error: more than one device/emulator
to avoid that you can list all devices by below command
adb devices you will get results like below
C:\Windows\System32>adb devices List of devices attached a3b09hh3e device emulator-5334 device chose one of these devices and add parameter to adb command as " -s a3b09hh3e " as below
adb -s a3b09a6e install example.apk also as a hint if the path of the apk long and have a spaces, just add it between double quotes like
adb -s a3b09a6e install "c:\my apk location\here 123\example.apk" Commands for install APK files like it does in Android Studio you can see below.
1) To push your app:
adb push /pathOfApk/com.my.awesome.apk /data/local/tmp/com.my.awesome where com.my.awesome is your package.
2) To install:
adb shell pm install -t -r "/data/local/tmp/com.my.awesome" 1- Press Win+R > cmd
- Navigate to platform-tools\ in the android-sdk windows folder
- Type adb
- now follow the steps writte by Mohit Kanada (ensure that you mention the entire path of the .apk file for eg. d:\android-apps\test.apk)
It is so easy!
for example my apk file location is: d:\myapp.apk
run cmd
navigate to "platform-tools" folder(in the sdk folder)
start your emulator device(let's say its name is 5556:MyDevice)
type this code in the cmd:
adb -s emulator-5556 install d:\myapp.apk
Wait for a while and it's DONE!!
1Open Terminal in Android Studio
You might see
C:\Users\nikhil\AppData\Local\Android\Sdk\platform-tools> copy and paste your apk which you want to install on above path inside platform-tools. In my case app-qa-debug.apk I kept inside platform-tools folder.
install command
adb install app-qa-debug.apk so in the terminal you could see something
C:\Users\nikhil\AppData\Local\Android\Sdk\platform-tools>adb install app-qa-debug.apk post-installation you could get the message as
Performing Streamed
Install Success
To install a debug (test) apk, use -t:
Run Build-Make Project
Look for the last generated apk in the app folder.
Example:
adb install -t C:\code\BackupRestore\app\build\outputs\apk\debug\app-debug.apk You're likely here because you want to build it too!
Build
gradlew (On Windows gradlew.bat)
Then Install
adb install -r exampleApp.apk (The -r makes it replace the existing copy, add an -s if installing on an emulator)
Bonus
I set up an alias in my ~/.bash_profile
alias bi="gradlew && adb install -r exampleApp.apk" (Short for Build and Install)
You can do this by using adb command line tools OR gradle commands: See this Guide.
Setup command line adb
export PATH=/Users/mayurik/Library/Android/sdk/platform-tools/adb:/Users/mayurik/Library/Android/sdk/tool Gradle commands to build and install.
#Start Build Process echo "\n\n\nStarting" ./gradlew clean ./gradlew build ./gradlew assembleDebug #Install APK on device / emulator echo "installDebug...\n" ./gradlew installDebug You can also uninstall any previous versions using
`./gradlew uninstallDebug` You can launch your main activity on device/emulator like below
#Launch Main Activity adb shell am start -n "" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER I use this script on my windows machine ( insall all apks in current folder to all available devices )
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" Save this as install-apks.ps1
Then from the powershell :
powershell -executionpolicy bypass -File .\install-apks.ps1 For people who wants to load apk from Linux system with React native application running on it. I have given the path in which the android application resides as well. So that those who need to find the apk file can go to view it.
adb -s 434eeads install android/app/build/outputs/apk/debug/app-debug.apk For reinstalling the android app on phone
adb -s 434eeads install -r android/app/build/outputs/apk/debug/app-debug.apk -s -> source/serialNumber
r -> Re-install path + file name : android/app/build/outputs/apk/debug/app-debug.apk
It is for react native applications.