游戏中心:管理器下载安装包,装进实例

Offen
#25 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
15/100
Issue-Typ
Feature
Klarheit
Muss geklärt werden
Aktivitätsstatus
Aktiv
Tech-Stack
go
Bereich
cli, desktop

Rechercherichtung

The two existing download paths are in internal/components and internal/update, and issue #23 plans to merge them, so read that plan first. The install step reuses the existing modavd install <i> <apk> command and the manager's Install APK action. Choosing the download library (Gopeed or the merged code) and the game-list format are open decisions, so settle them before writing code. Done means the first-step acceptance criteria in the issue hold: one download shared across instances, hash checks, resume after interruption, and Windows manual proxy support.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

要做什么

在管理器里加一个游戏中心:选一款游戏,管理器把安装包下载到宿主,再装进选中的实例。分两步:

  1. 下载和安装;
  2. 已装游戏的更新。

这条只管游戏中心自己的下载。游戏运行时自己发起的资源和增量更新下载,仍然在实例里由游戏自己下,另见 ModAVD/ModAVD#54。

已经定的(11-02 讨论)

  • 下载放在管理器,不放在实例里。
    • 多台实例共用宿主上的同一份安装包,不用每台各下一次。
    • 安装走现有的路径(modavd install <i> <apk>、管理器里的「安装 APK」)。装的时候实例本来就要开着,所以「下载在宿主、装要开机」不算额外的限制。
  • 下载工具不用 aria2。

还要定的

  1. 下载用哪份代码。
    • 讨论里倾向 Gopeed:核心是 Go 写的,可以作为库嵌进来;许可证 GPL-3.0,和本仓库的 AGPL-3.0 能合用。XDM 是 Kotlin 写的独立程序,嵌不进来。
    • 管理器里已经有两套下载代码(internal/components、internal/update),#23 要把它们收成一份,已经有断点续传、超时、重定向上限、代理。
    • 选之前比一下:多连接、断点续传、代理(照 #23 的规则)、依赖和包的体积。一个安装包一般几百 MB 到几 GB,单连接如果已经能跑满带宽,就用 #23 收好的那份。
  2. 实例里要不要放一个小程序接管理器的指令。
    • 放:游戏中心在实例里也有入口和下载进度,用起来更像普通手机。
    • 不放:只靠 adb,少一个要维护、要随镜像更新的东西。
    • 第一步用不到,先不放。
  3. 安装包从哪来、名单怎么维护。 讨论没涉及:每款游戏的下载地址、版本号、哈希放在哪,谁来更新。也有人希望能下海外游戏,名单要能放这类游戏。
  4. 更新怎么做(第二步)。 应用市场常见的「省流量更新」(增量包),可能是厂商专门提供给应用市场的,没有的话只能整包更新。做第二步前先查清楚。

验收(第一步)

  • 在管理器里选一款游戏:下载到宿主,核对大小和哈希,再装进一台或几台实例。
  • 同时装到几台实例时只下载一次。
  • 下载中途关掉管理器或断网,再开能续传,不从头下。
  • 只设了 Windows 手动代理的电脑也能下(规则同 #23)。
  • 实例没开机时,提示要先开机,或者帮用户开机。
Vorherrschende Sprache
Go
Sterne
0
Forks
1
Ø Merge
2 Std. 42 Min.
Gemergte PRs (30 T.)
13

Entwicklungsumgebung

Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus ModAVD/ModAVDManager

Alle Issues in ModAVD/ModAVDManager

Ähnliche Issues

Weitere Issues zu Go

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.