trying to launch emulator using shell script - android

I have created an emulator on my mac machine. When I try to launch the emulator manually from avd manager, I am successful. Also, if I launch the emulator on the command line by
emulator -avd nexus5_api21
the emulator starts. But when I write a small shell script to do the same, like
#!/bin/bash
echo "hello"
emulator -avd nexus5_api21
my emulator doesn't start. It complains, that it couldn't find the .ini file. But the same command works, when I do it separately by opening a terminal. I don't have to go to a specific location for running this command successfully.
I don't understand, what the difference between the command line and the shell script is.

You have an error in "shebang line" of your script. It should look like
#!/bin/bash
emulator -avd nexus5_api21
voila!
I would like to advice you to get familiar with shell scripting.

Related

Android Shell locksettings command from device terminal

Since Oreo there is this fancy locksettings command, that allows you to change the screenlock from adb shell. Now, if I try to run it on my PC everything is working. On my handheld the command will just get an "Aborted." back. Why is that and how can I run the locksettings command from my device?
here is the code for the locksettings command, maybe you can already tell by that:
# Script to start "locksettings" on the device
#
base=/system
export CLASSPATH=$base/framework/locksettings.jar
exec app_process $base/bin com.android.commands.locksettings.LockSettingsCmd "$#"
Download QUTE, a command panel. Start from the first command click and run it. About 10 to 15 commands ran will give enough control over the system. Only because most of the commands are going to fail, unable to run. Then the terminal will suggest you to STACK, for the command code to lock setting. Copy the code and paste it in the terminal. For there your settings should be locked.

Run ADB shell on OS X

I want to enter a simple adb shell command, so I navigated to ...\sdk\platform-tools\adb.exe, and opened it. However, I am unable to type in it!
What is the solution?
.exe files are executable files for the Windows OS. They will not work on OSX.
There is a program called Terminal that is installed in OSX that you can use to run the adb shell command. You must open up a Terminal and navigate to the directory that is shown in your screenshot, and then you can run the command
./adb shell and it should work.
Alternatively, you can use the Terminal in Android Studio to perform the same operation.
Here is how I change my directory to platform-tools on a mac terminal:
Search the finder for "platform-tools". Then right-click on it, and left-click on "get info". You'll see a little window pop up with all the info for that folder.
Copy the "where", which is the file path.
Then paste into your terminal like this:
cd /Users/[user-name]/Library/Android/sdk/platform-tools
Be sure to add /platform tools on after pasting the path to the folder.
Then hit return. Your terminal should then be pointed to that folder and you can invoke the adb commands by using "./adb [whatever command]".
Or you can invoke adb shell commands: for example let's say you want to enable Analytics Debug mode on an Android device. Use the following command:
adb shell setprop debug.firebase.analytics.app [your_package_name]

ADB will not run

I just installed the android SDK with eclipse, straight from google's webpage, but for some reason it won't run, even when I am in the correct directory. When I use 'ls' (crunchbang linux) it show's that the file is there, but when I try to run it, it returns no such file or directory. Any ideas?
type script in your command if you adb configured.
adb stop-server
adb start-server
adb devices

Batch file to run an Android app in emulator

compile.bat:
set PATH=%PATH%;H:\Source\Program\sdk\tools;
set PATH=%PATH%;H:\Source\Program\sdk\platform-tools;
cd sdk\tools
emulator -avd emulator2
adb wait-for-device
cd sdk\platform-tools
adb install -r SP.apk
Here is my batch file to run a .apk into an emulator. It is from a CD, my adviser wants to run my app in his computer using my CD. My SDK folder is also in the CD and is the same directory with my compile.bat. Is my setting of path correct? Also there is an error when I test the compile.bat from the cd, it says too many files specified; only take APK file and verifier file.
The adb install command also become like this adb install -r SP.apk apk P.apk T_ROOTPROJECT_NAME-debug.apk. I only want to install SP.apk in the emulator.
When I run the commands in cmd, not in a batch file it is working.
Also I want to know how to enable the camera in my laptop to the emulator. My app requires the camera to run.
Can someone help me please? I am begging you. I need this tomorrow its for my graduation. Thank you.

force android tests to run on different emulators from command line batch file

How can I run my android junit/robotium tests from the command line on every single emulator? I want to make sure my tests run on many android OS versions and many screen resolutions.
I'd like to write a batch file that runs from the windows command line to run my test suite over and over again on each emulator I have installed.
To run from the command line I can do this:
adb shell am instrument -w
com.myapp.client.test/android.test.InstrumentationTestRunner
but that just runs it on the default emulator. How can I force that command to run on all of the emulators I have setup?
Ideally, the batch file would looking something like:
launch emulator1
run tests
close emulator1
launch emulator2
run tests
close emulator2
...
I don't know how to do the launch and close part.
Thanks
EDIT: Found solutions. Below is my batch file
set PORTRAIT=medium
set LANDSCAPE=large
:: launch emulator
emulator -avd android2.2
:: wait for emulator to load
adb wait-for-device
:: install apps?
:: run tests in portrait
adb shell am instrument -w -e size %PORTRAIT% com.myapp.client.test/android.test.InstrumentationTestRunner
:: run tests in landscape
adb shell am instrument -w -e size %LANDSCAPE% com.myapp.client.test/android.test.InstrumentationTestRunner
:: pull screenshots
adb pull /sdcard/ c:\
:: close/kill emulator (android bug here, so must use windows taskkill)
taskkill /IM emulator-arm.exe
I would really recommend you looking to use something like Jenkins to handle this for you. You can use the android emulator plugin to build up a whole matrix of API versions/Screen size to have your tests run against.

Categories

Resources