From 108644ea64c9b735ea94d8f2a5c77c1440475099 Mon Sep 17 00:00:00 2001 From: Wiwi Kuan Date: Sun, 10 May 2026 02:47:48 +0000 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 149 +----------------------------------------------------- 1 file changed, 1 insertion(+), 148 deletions(-) diff --git a/README.md b/README.md index 530f7cf..451a424 100644 --- a/README.md +++ b/README.md @@ -1,150 +1,3 @@ # Hoops — Android -一個籃球小遊戲的 Android 包裝。遊戲本體是純 HTML5 Canvas,這個 app 就是一層全螢幕 WebView 殼。 - -## 為什麼這樣做 - -- **沒有網路權限** — 遊戲完全離線,所有資源都打包在 `assets/` 裡。 -- **沒有第三方追蹤** — 沒有 Google Play Services、沒有 Analytics、沒有任何網路請求。 -- **沒有自定義 Activity 之外的東西** — 整個 app 就一個 `MainActivity.kt`,七十幾行。 -- **F-Droid 友好** — 純開源、無 proprietary 依賴、無外部資源。 - -## 專案結構 - -``` -hoops-android/ -├── app/ -│ ├── build.gradle.kts -│ └── src/main/ -│ ├── AndroidManifest.xml -│ ├── java/blog/wiwi/hoops/MainActivity.kt -│ ├── assets/index.html ← 整個遊戲在這裡 -│ └── res/ ← icon、主題、字串 -├── build.gradle.kts -├── settings.gradle.kts -└── gradle.properties -``` - -**最重要的是 `app/src/main/assets/index.html`**——這是整個遊戲。要改遊戲邏輯,改這個檔案就好,其他 Android 殼層的東西完全不用碰。 - -## 怎麼建置 - -### 第一次 - -1. 安裝 [Android Studio](https://developer.android.com/studio)(或裝 command-line 的 Android SDK) -2. 用 Android Studio 開啟 `hoops-android` 資料夾 -3. 等 Gradle sync 完(第一次會下載一些東西) -4. **產生 Gradle wrapper**——在專案根目錄跑: - ```bash - gradle wrapper --gradle-version 8.7 - ``` - 或在 Android Studio 裡點 `File → Sync Project with Gradle Files`,它會自己生成 `gradlew`、`gradlew.bat`、`gradle/wrapper/gradle-wrapper.jar`。 - -### 建置 debug APK(測試用) - -```bash -./gradlew assembleDebug -``` - -APK 會在 `app/build/outputs/apk/debug/app-debug.apk`,可以直接 adb install 到手機。 - -### 建置 release APK(要簽章) - -先產生 keystore: -```bash -keytool -genkey -v -keystore hoops-release.keystore \ - -alias hoops -keyalg RSA -keysize 2048 -validity 10000 -``` - -建一個 `keystore.properties`(**不要 commit 到 git**): -```properties -storeFile=../hoops-release.keystore -storePassword=你的密碼 -keyAlias=hoops -keyPassword=你的密碼 -``` - -修改 `app/build.gradle.kts`,加上 signing config(看註解的位置)。然後: -```bash -./gradlew assembleRelease -``` - -## 怎麼測 - -### 在電腦上先測網頁版 - -直接在瀏覽器打開 `app/src/main/assets/index.html`——它就是個獨立的 HTML 檔,可以直接跑。 -這是改遊戲邏輯時最快的迭代方式。 - -### 用 Android emulator 測 - -1. Android Studio → Device Manager → 建一個 Pixel 5 之類的 emulator -2. 點綠色 ▶ 跑 - -### 用實機測 - -1. 手機開「開發人員選項」→「USB 偵錯」 -2. USB 接電腦 -3. Android Studio 應該會看到裝置 -4. 點 ▶ 跑 - -## 上 F-Droid 的注意事項 - -F-Droid 會自己從你的 git repo 建置 APK,所以: - -1. **把整個專案推到公開 git repo**(GitHub、Codeberg 都行) -2. **打 git tag** 標版本,例如 `v1.0.0` -3. **送 metadata PR** 到 [fdroiddata](https://gitlab.com/fdroid/fdroiddata),告訴 F-Droid 怎麼建置你的 app - -metadata yml 大致長這樣: -```yaml -Categories: - - Games -License: MIT # 或你選的授權 -SourceCode: https://github.com/你/hoops-android -IssueTracker: https://github.com/你/hoops-android/issues - -AutoName: Hoops - -RepoType: git -Repo: https://github.com/你/hoops-android.git - -Builds: - - versionName: 1.0.0 - versionCode: 1 - commit: v1.0.0 - subdir: app - gradle: - - yes - -AutoUpdateMode: Version -UpdateCheckMode: Tags -CurrentVersion: 1.0.0 -CurrentVersionCode: 1 -``` - -完整文件: - -### F-Droid 會檢查的東西 - -- ❌ 不能依賴 Google Play Services / Firebase -- ❌ 不能有 proprietary 二進位依賴 -- ❌ 不能呼叫追蹤服務(Analytics、Crashlytics 等) -- ✅ 純 OSS 依賴 -- ✅ 從原始碼可重現建置 - -這個專案天生就符合所有條件——只用 androidx,沒有任何 proprietary 東西。 - -## 常見問題 - -**Q: 為什麼不直接做成 PWA?** -A: PWA 也是個好方案,但要上 F-Droid 必須是真正的 Android app。 - -**Q: 改了 `index.html` 怎麼快速看效果?** -A: 雙擊用瀏覽器開那個檔案,直接玩。要看 Android 上的效果再 build。 - -**Q: APK 大概多大?** -A: 約 2–4 MB。幾乎全部是 androidx 的 Kotlin 標準庫。`assets/index.html` 本身不到 30 KB。 - -**Q: 想加新遊戲模式怎麼辦?** -A: 改 `index.html`,重 build。Kotlin 那邊永遠不需要改。 +一個籃球小遊戲的 Android 包裝。遊戲本體是純 HTML5 Canvas,這個 app 就是一層全螢幕 WebView 殼。 \ No newline at end of file