-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathsetup-android.sh
More file actions
153 lines (132 loc) · 5.06 KB
/
setup-android.sh
File metadata and controls
153 lines (132 loc) · 5.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#!/bin/bash
# Address Book App - Android Setup for Linux
# This script sets up everything needed to run the app on a physical Android phone
set -e
echo "=========================================="
echo "Address Book App - Android Setup for Linux"
echo "=========================================="
echo ""
# Colors for output
GREEN='\033[0;32m'
BLUE='\033[0;34m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
# Step 1: Check Java
echo -e "${BLUE}Step 1: Checking Java Installation...${NC}"
if command -v java &> /dev/null; then
java_version=$(java -version 2>&1 | grep "openjdk version" | awk '{print $3}' | tr -d '"')
echo -e "${GREEN}✓ Java is installed: $java_version${NC}"
else
echo -e "${YELLOW}✗ Java is NOT installed${NC}"
echo "Installing Java..."
sudo apt update
sudo apt install -y openjdk-17-jdk
fi
# Step 2: Create Android SDK directory
echo ""
echo -e "${BLUE}Step 2: Setting up Android SDK directory...${NC}"
mkdir -p $HOME/Android/Sdk
mkdir -p $HOME/Android/cmdline-tools
echo -e "${GREEN}✓ Android SDK directory created${NC}"
# Step 3: Check if cmdline-tools are already downloaded
echo ""
echo -e "${BLUE}Step 3: Downloading Android SDK Command-line Tools...${NC}"
if [ ! -f "$HOME/Android/cmdline-tools.zip" ]; then
echo "Downloading (this may take 5-10 minutes)..."
cd $HOME/Android
wget -q https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -O cmdline-tools.zip
echo -e "${GREEN}✓ Download complete${NC}"
else
echo -e "${GREEN}✓ cmdline-tools.zip already downloaded${NC}"
fi
# Step 4: Extract command-line tools
echo ""
echo -e "${BLUE}Step 4: Extracting Android SDK tools...${NC}"
if [ -f "$HOME/Android/cmdline-tools.zip" ]; then
cd $HOME/Android/cmdline-tools
unzip -q $HOME/Android/cmdline-tools.zip
# The zip file contains a 'cmdline-tools' directory, move it to the correct location
if [ -d "cmdline-tools" ]; then
mv cmdline-tools/* . || true
rmdir cmdline-tools || true
fi
echo -e "${GREEN}✓ Tools extracted${NC}"
fi
# Step 5: Set environment variables
echo ""
echo -e "${BLUE}Step 5: Setting environment variables...${NC}"
# Check if already set
if grep -q "ANDROID_HOME" ~/.bashrc; then
echo -e "${GREEN}✓ Environment variables already set${NC}"
else
cat >> ~/.bashrc << 'EOF'
# Android SDK
export ANDROID_HOME=$HOME/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
# Java
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
EOF
echo -e "${GREEN}✓ Environment variables added to ~/.bashrc${NC}"
echo "Run: source ~/.bashrc"
fi
# Step 6: Source the variables
source ~/.bashrc
# Step 7: Download SDK components using sdkmanager
echo ""
echo -e "${BLUE}Step 6: Installing Android SDK components...${NC}"
echo "This may take 10-15 minutes. NativeScript will display progress."
# Make sure sdkmanager is executable
chmod +x $HOME/Android/cmdline-tools/bin/sdkmanager
# Install the necessary Android SDK components
echo "Installing Android platforms..."
yes | $HOME/Android/cmdline-tools/bin/sdkmanager --sdk_root=$ANDROID_HOME "platforms;android-33" 2>/dev/null || echo "Platform installation in progress..."
echo "Installing Android build-tools..."
yes | $HOME/Android/cmdline-tools/bin/sdkmanager --sdk_root=$ANDROID_HOME "build-tools;33.0.0" 2>/dev/null || echo "Build-tools installation in progress..."
echo "Installing platform-tools..."
yes | $HOME/Android/cmdline-tools/bin/sdkmanager --sdk_root=$ANDROID_HOME "platform-tools" 2>/dev/null || echo "Platform-tools installation in progress..."
echo -e "${GREEN}✓ SDK components installed${NC}"
# Step 8: Verify setup
echo ""
echo -e "${BLUE}Step 7: Verifying setup...${NC}"
source ~/.bashrc
if [ -n "$ANDROID_HOME" ]; then
echo -e "${GREEN}✓ ANDROID_HOME is set: $ANDROID_HOME${NC}"
else
echo -e "${YELLOW}⚠ ANDROID_HOME not set. Run: source ~/.bashrc${NC}"
fi
if command -v adb &> /dev/null; then
echo -e "${GREEN}✓ adb is available${NC}"
else
echo -e "${YELLOW}⚠ adb not found. It will be used from ANDROID_HOME${NC}"
fi
# Step 9: Instructions for physical phone
echo ""
echo "=========================================="
echo -e "${GREEN}Setup Complete!${NC}"
echo "=========================================="
echo ""
echo -e "${BLUE}Next steps to run the app on your phone:${NC}"
echo ""
echo "1. On your Android phone:"
echo " - Go to Settings → About Phone"
echo " - Tap 'Build Number' 7 times to enable Developer Options"
echo " - Go back to Settings → Developer Options"
echo " - Enable 'USB Debugging'"
echo ""
echo "2. Connect your phone to your computer via USB cable"
echo ""
echo "3. Accept the USB debugging permission prompt on your phone"
echo ""
echo "4. Verify connection:"
echo " $ adb devices"
echo ""
echo "5. Run the Address Book app:"
echo " $ cd /media/volumeD/AddressBookNative"
echo " $ npm run android"
echo ""
echo "The app will build and install automatically on your phone!"
echo ""
echo "=========================================="