# a3270 An Android TN3270 terminal emulator based on `lib3270j` / `j3270`, built with Jetpack Compose and ported using AI. ## Repositories - **a3270 (Android App)**: https://git.hugfreevikings.wtf/rudi/a3270 - **j3270 (Desktop App & `lib3270j` Core Library)**: https://git.hugfreevikings.wtf/rudi/j3270 `a3270` relies on the shared 3270 protocol library (`lib3270j`) provided by the `j3270` repository. ## CI/CD & Automated Builds Automated CI/CD is configured using Gitea Actions (`.gitea/workflows/build.yml`). On every push to `main` or pull request, the workflow automatically: 1. Clones `a3270` and `j3270` (`lib3270j`). 2. Configures JDK 21 and the Android SDK. 3. Builds the debug APK (`a3270-debug.apk`). 4. Uploads the resulting APK as a downloadable workflow artifact (`a3270-debug`). You can download pre-built APKs directly from the **Actions** tab of the repository on Gitea. ## Prerequisites - **Java Development Kit (JDK)**: JDK 17 or JDK 21 - **Android SDK**: Android SDK with API 34 platforms and build-tools installed (`ANDROID_HOME` or `ANDROID_SDK_ROOT` set) ## Setup & Building ### 1. Clone Repositories Side-by-Side For the easiest setup, clone both `j3270` and `a3270` into the same parent folder: ```bash git clone https://git.hugfreevikings.wtf/rudi/j3270.git git clone https://git.hugfreevikings.wtf/rudi/a3270.git cd a3270 ``` > **Note:** If `j3270` is located in another directory, specify its location via the `J3270_DIR` environment variable: > ```bash > export J3270_DIR=/path/to/j3270 > ``` > or via Gradle property: > ```bash > ./gradlew assembleDebug -Pj3270Dir=/path/to/j3270 > ``` ### 2. Build the Debug APK You can build using the helper script: ```bash ./build.sh ``` Or directly with Gradle Wrapper: ```bash ./gradlew assembleDebug ``` The compiled APK will be generated at: ``` build/outputs/apk/debug/a3270-debug.apk ``` ## Deployment / Installation To install the debug APK onto a connected Android device or emulator via `adb`: ```bash adb install -r build/outputs/apk/debug/a3270-debug.apk ``` ## Contributing Contributions are welcome! I have contributed no code to this project, it was entirely written by LLMs with my guidance only. ## Acknowledgements - [j3270](https://git.hugfreevikings.wtf/rudi/j3270) - [x3270](https://x3270.miraheze.org/wiki/Main_Page) - [Antigravity](https://antigravity.google) - Claude Opus 4.6 - Gemini 3.1 Pro (High) - Gemini 3.7 Flash (High)