Contoh proyek Android dengan pengujian berulang yang dijalankan di dalam emulator

06 Mei 2020 [Android, Java, Programming, Tech]

Saya telah menghabiskan beberapa hari terakhir melawan baris perintah Android untuk menyiapkan proyek sederhana yang dapat menjalankan pengujian otomatis di dalam emulator dengan andal dan berulang.

Agar pengujian dapat diandalkan dan independen dari apa pun di mesin saya, saya ingin menyimpan file Android SDK dan AVD di direktori lokal.

Untuk melakukan hal ini saya harus mendefinisikan banyak variabel lingkungan yang saling terkait, dan membungkus alat dalam skrip yang memastikan alat tersebut berjalan dengan tanda dan pengaturan yang tepat.

Hasil akhir dari pekerjaan ini ada di sini: gitlab.com/andybalaam/android-skeleton

Anda memerlukan semua skrip utilitas yang disertakan dalam repo tersebut agar dapat berfungsi, namun beberapa hal penting meliputi:

Variabel lingkungan yang saya sumber di setiap skrip, skrip/jalur:

PROJECT_ROOT=$(dirname $(dirname $(realpath ${BASH_SOURCE[${#BASH_SOURCE[@]} - 1]})))
export ANDROID_SDK_ROOT="${PROJECT_ROOT}/android_sdk"
export ANDROID_SDK_HOME="${ANDROID_SDK_ROOT}"
export ANDROID_EMULATOR_HOME="${ANDROID_SDK_ROOT}/emulator-home"
export ANDROID_AVD_HOME="${ANDROID_EMULATOR_HOME}/avd"

Pembuatan file local.properties yang memberi tahu Gradle dan Android Studio di mana SDK berada, dengan menjalankan sesuatu seperti ini:

echo "# File created automatically - changes will be overwritten!" > local.properties
echo "sdk.dir=${ANDROID_SDK_ROOT}" >> local.properties

Skrip pembungkus untuk alat Android misalnya skrip/sdkmanager:

#!/bin/bash

set -e set -u

source scripts/paths

"${ANDROID_SDK_ROOT}/tools/bin/sdkmanager"
"--sdk_root=${ANDROID_SDK_ROOT}"
"$@"

Pembungkus untuk avdmanager sangat menarik karena sepertinya kita perlu mengganti tempat yang dianggap direktori alat agar dapat berfungsi dengan baik – skrip/avdmanager:

#!/bin/bash

set -e set -u

source scripts/paths

AVDMANAGER_OPTS="-Dcom.android.sdkmanager.toolsdir=${ANDROID_SDK_ROOT}/tools/bin/"
"${ANDROID_SDK_ROOT}/tools/bin/avdmanager" "$@"

Skrip instalasi yang harus dijalankan satu kali sebelum menggunakan skrip proyek/install-android-tools:

#!/bin/bash

set -e set -u set -x

source scripts/paths

mkdir -p "${ANDROID_SDK_ROOT}" mkdir -p "${ANDROID_AVD_HOME}" mkdir -p "${ANDROID_EMULATOR_HOME}"

cd "${ANDROID_SDK_ROOT}" test -f commandlinetools-.zip ||
wget -q ' unzip -q -u commandlinetools-
.zip cd ..

./scripts/sdkmanager --update

yes | ./scripts/sdkmanager --install 'emulator' 'platform-tools'

./scripts/sdkmanager --install 'platforms;android-21' ./scripts/sdkmanager --install 'platforms;android-29'

yes | ./scripts/sdkmanager --install 'system-images;android-21;default;x86_64' yes | ./scripts/sdkmanager --install 'system-images;android-29;default;x86_64'

echo no | ./scripts/avdmanager -v
create avd
-f
-n "avd-21"
-k "system-images;android-21;default;x86_64"
-p ${ANDROID_SDK_ROOT}/avds/avd-21 echo no | ./scripts/avdmanager -v
create avd
-f
-n "avd-29"
-k "system-images;android-29;default;x86_64"
-p ${ANDROID_SDK_ROOT}/avds/avd-29

Silakan berkontribusi pada proyek ini jika Anda tahu cara yang lebih mudah untuk melakukan hal ini.

News
Berita Teknologi
Berita Olahraga
Sports news
sports
Motivation
football prediction
technology
Berita Technologi
Berita Terkini
Tempat Wisata
News Flash
Football
Gaming
Game News
Gamers
Jasa Artikel
Jasa Backlink
Agen234
Agen234
Agen234
Resep
Download Film

A gaming center is a dedicated space where people come together to play video games, whether on PCs, consoles, or arcade machines. These centers can offer a range of services, from casual gaming sessions to competitive tournaments.