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

Aperta
#25 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
15/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Attiva
Stack tecnologico
go
Ambito
cli, desktop

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

要做什么

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

  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)。
  • 实例没开机时,提示要先开机,或者帮用户开机。
Lingua principale
Go
Stelle
0
Fork
1
Merge medio
2h 42m
PR unite (30g)
13

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di ModAVD/ModAVDManager

Tutte le issue di ModAVD/ModAVDManager

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.