Shadowsocks for Android - Deploy & Usage Guide
1. Prerequisites
Development Environment
- JDK 11+ - Required for Android development
- Android SDK - Complete Android development environment
- Android NDK - Native Development Kit for C/C++ components
- Rust - For native components
- Install Rust using
rustup
- Add Android targets:
rustup target add armv7-linux-androideabi aarch64-linux-android i686-linux-android x86_64-linux-android
Runtime Requirements
- Android 7.0 (API level 23) or higher
- Chrome OS (for Chrome OS compatibility)
Optional Tools
- Android Studio - Recommended for development
- Git - For cloning the repository
2. Installation
Clone the Repository
git clone --recurse-submodules https://github.com/shadowsocks/shadowsocks-android.git
cd shadowsocks-android
Update Submodules (if needed)
git submodule update --init --recursive
Install Dependencies
- Install Android Studio and Android SDK
- Install Android NDK through Android Studio SDK Manager
- Install Rust and add Android targets as mentioned in prerequisites
3. Configuration
Environment Setup
- No specific environment variables required for basic usage
- API keys are not needed for the client application
Build Configuration
- The project uses standard Android build system
- No additional configuration files needed for basic build
4. Build & Run
Using Android Studio
- Open the project in Android Studio
- Sync Gradle files
- Select build variant (debug/release)
- Click "Run" to build and deploy to connected device/emulator
Using Gradle (Command Line)
# Build debug version
./gradlew assembleDebug
# Build release version
./gradlew assembleRelease
# Install to connected device
./gradlew installDebug
Build Verification
5. Deployment
Distribution Options
Google Play Store
Direct APK Distribution
Android TV Version
Build Variants
- Debug: For development and testing
- Release: For production deployment
- TV: For Android TV devices
6. Troubleshooting
Common Build Issues
Missing Submodules
# If build fails due to missing submodules
git submodule update --init --recursive
Rust Target Issues
# If Rust targets are missing
rustup target add armv7-linux-androideabi aarch64-linux-android i686-linux-android x86_64-linux-android
Gradle Sync Issues
- Ensure Android SDK and NDK paths are correctly configured in Android Studio
- Clean and rebuild project if Gradle sync fails
Runtime Issues
Connection Problems
- Verify server configuration
- Check network permissions
- Ensure proper routing rules are configured
Performance Issues
- Check device compatibility (API 23+)
- Monitor battery usage
- Verify proper background service operation
Development Issues
Code Quality
Testing
- Use Android Studio's built-in testing tools
- Test on multiple API levels (23+)
- Verify functionality on both mobile and TV variants
License Compliance