Created
May 4, 2020 07:02
-
-
Save osfunapps/aee9c6cd584f8356f16b5501613a8b64 to your computer and use it in GitHub Desktop.
Will install an apk, take screen shots and a bunch of other things using Android's ADB
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
APK_VERSION_NUMBER=2 | |
APPS_ROOT_PATH="/Users/home/Desktop/stock_exchange/latest_work/appr_14_" | |
# Will initiate the adb cycle | |
start_adb_ss_cycle () { | |
# create ss dir | |
ss_dir="$1/ss" | |
mkdir ${ss_dir} | |
# save variables | |
package_name=$(basename "$1") # save the package name as variable | |
apk_file_path="$1/$APK_VERSION_NUMBER.apk" | |
# install apk: | |
echo "INFO: Installing apk ${package_name}" | |
adb install ${apk_file_path} | |
# enter: | |
echo "INFO: Install finished. Opening" | |
adb shell am start -n ${package_name}"/"${package_name}".main.MainActivity" | |
# fire a lot of ss try outs every a few millis | |
random_num=$((RANDOM % 10000)) | |
adb exec-out screencap -p > "${ss_dir}/ss1_${random_num}.png" | |
# wait a bit: | |
sleep 0.1 | |
random_num=$((RANDOM % 10000)) | |
adb exec-out screencap -p > "${ss_dir}/ss1_${random_num}.png" | |
# wait a bit: | |
sleep 0.1 | |
random_num=$((RANDOM % 10000)) | |
adb exec-out screencap -p > "${ss_dir}/ss1_${random_num}.png" | |
# wait a bit: | |
sleep 0.1 | |
random_num=$((RANDOM % 10000)) | |
adb exec-out screencap -p > "${ss_dir}/ss1_${random_num}.png" | |
# wait a bit: | |
sleep 0.1 | |
random_num=$((RANDOM % 10000)) | |
adb exec-out screencap -p > "${ss_dir}/ss1_${random_num}.png" | |
# wait a bit: | |
sleep 0.1 | |
random_num=$((RANDOM % 10000)) | |
adb exec-out screencap -p > "${ss_dir}/ss1_${random_num}.png" | |
# wait a bit: | |
sleep 0.1 | |
# wait a bit: | |
sleep 10 | |
# take main screen shot | |
adb exec-out screencap -p > "${ss_dir}/ss2.png" | |
# scroll down: | |
adb shell input swipe 500 1000 300 300 | |
# take second main screen shot: | |
adb exec-out screencap -p > "${ss_dir}/ss3.png" | |
# go to first stock | |
adb shell input keyevent 61 | |
# wait a bit: | |
sleep 1 | |
# click tab: | |
adb shell input keyevent 61 | |
# click enter: | |
adb shell input keyevent 66 | |
# wait 3 seconds | |
sleep 3 | |
# take first stock ss: | |
adb exec-out screencap -p > "${ss_dir}/ss4.png" | |
# click back. Go back to the list of stocks: | |
adb shell input keyevent 4 | |
# wait a bit | |
sleep 2 | |
# click tab (go to seconds stock): | |
adb shell input keyevent 61 | |
# click enter: | |
adb shell input keyevent 66 | |
# wait a bit to stock to load | |
sleep 3 | |
# take ss: | |
adb exec-out screencap -p > "${ss_dir}/ss5.png" | |
# uninstall: | |
adb uninstall ${package_name} | |
} | |
# will check if directory is empty | |
is_ss_created_successfully () { | |
ss_files_path="$1/ss/*" | |
ss_files=(${ss_files_path}) | |
ss_files_count=${#ss_files[@]} | |
if [[ "$ss_files_count" -gt 1 ]];then | |
return 0 | |
else | |
return 1 | |
fi | |
} | |
# set properties on startup | |
apps_dirs_list=(${APPS_ROOT_PATH}/*) | |
apps_dirs_count=${#apps_dirs_list[@]} | |
# create finished apps directory | |
apps_dir_parent="$(dirname "$APPS_ROOT_PATH")" | |
finished_apps_root_path="${apps_dir_parent}/apps_with_screen_shots" | |
if [[ ! -d "$finished_apps_root_path" ]]; then | |
mkdir ${finished_apps_root_path} | |
fi | |
# run on all of the apps in the parent apps directory | |
i=0 | |
while (($i<${apps_dirs_count})); do | |
curr_app_path=${apps_dirs_list[i]} | |
package_name=${curr_app_path##*/} | |
echo "****************************************************************************************" | |
echo "- INFO: Working on ${package_name}" | |
start_adb_ss_cycle ${curr_app_path} | |
if is_ss_created_successfully ${curr_app_path} | |
then | |
(( i++ )) | |
copy_location="${finished_apps_root_path}/${package_name}" | |
echo "INFO: $package_name screen shot creation completed. Copying dir to ${copy_location}" | |
mv -v ${curr_app_path} ${copy_location} | |
else | |
echo "- ATTENTION: screen shot creation failed on $curr_app_path. Tell me when to run again [run]" | |
read ans | |
echo "running again..." | |
fi | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment