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

Aberta
#25 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
15/100
Tipo de issue
Funcionalidade
Clareza
Precisa de esclarecimento
Status de atividade
Ativa
Stack de tecnologia
go
Domínio
cli, desktop

Direção de pesquisa

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.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

要做什么

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

  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)。
  • 实例没开机时,提示要先开机,或者帮用户开机。
Linguagem predominante
Go
Estrelas
0
Forks
1
Merge médio
2h 42min
PRs com merge (30d)
13

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de ModAVD/ModAVDManager

Todas as issues de ModAVD/ModAVDManager

Issues semelhantes

Mais issues de Go

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.