O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

CTS para Instant Apps

Os Instant Apps são um recurso fundamental de 10, portanto, é essencial que funcionem corretamente. Os Instant Apps são instalados implicitamente, portanto, têm um conjunto restrito de recursos e são executados em uma caixa de proteção de segurança mais restritiva. Devido à natureza generalizada dessas restrições, qualquer parte do sistema corre o risco de não funcionar corretamente com os Instant Apps. Um subconjunto de teste CTS é criado para garantir que os comportamentos permitidos pelos Instant Apps estejam funcionando. A ideia principal é minimizar o crescimento do tamanho do CTS, isolando o conjunto mínimo de testes para a porta. CTS executado no modo Instant Apps significa instalar o APK de teste como um Instant App e executar os testes.

Restrições de aplicativos instantâneos

Os Instant Apps não são instalados pelo usuário, portanto, são executados em uma sandbox restrita com as seguintes restrições:

  • Pode ter apenas certas permissões.
  • Não consigo ver outros aplicativos, a menos que esses aplicativos estejam marcados como visíveis para Instant Apps.
  • Pode acessar apenas algumas configurações do sistema.
  • Pode acessar apenas algumas propriedades do sistema.
  • Não é possível expor serviços / provedores.
  • Pode receber e enviar com regras especiais para transmissões.

Além disso, os Instant Apps devem permitir que a nova caixa de proteção de segurança adicione mais restrições. Essa ampla gama de comportamentos especiais em torno dos Instant Apps cruza toda a plataforma, portanto, deve haver uma maneira de validar que os Instant Apps funcionem conforme o esperado para todos os dispositivos no ecossistema.

Testes em execução no modo Instant Apps

Nem todos os módulos CTS têm testes aplicáveis ​​a Instant Apps. Se a funcionalidade testada pelo módulo tiver interação com o servidor do sistema, esses testes devem ser executados no modo Instant App. Por exemplo, os testes OpenGL não estão interagindo com o servidor do sistema e, portanto, não há necessidade de executá-los no modo Instant App enquanto os testes de acessibilidade interagem com o servidor do sistema, mas é necessário executá-los no modo Instant App.

Além de identificar quais módulos são aplicáveis, os usuários precisam determinar quais testes nesses módulos são relevantes. Por exemplo, testar comportamentos específicos de serviço para uma arquitetura conectável (por exemplo, AccessibilityService) não é aplicável para o modo Instant App, já que Instant Apps não podem expor serviços a outros aplicativos (incluindo a plataforma), enquanto os testes de validação de comportamentos do lado do aplicativo são aplicável para o modo Instant Apps. Outro exemplo é um teste que valida comportamentos por trás de uma permissão que um Instant App não pode conter não são relevantes no modo Instant App. Há um conjunto de testes que se aplicam apenas aos Instant Apps que validam as regras sobre como eles se comportam, por exemplo, não expor serviços ou não ver outros aplicativos. Normalmente, eles já estão escritos e não requerem transferência.

Falhas de teste no modo instantâneo

Se o teste está falhando porque valida a funcionalidade que os Instant Apps não podem acessar, ele não é aplicável no modo Instant App. Marcar o teste a ser executado apenas em modo Full App anotando-o com @AppModeFull . Você pode aplicar esta anotação ao nível da classe para excluir todos os testes nela.

Se o teste falhar porque algumas funcionalidades acessíveis a instantâneo Apps está quebrado, envie um erro .

Solução de problemas

Se o teste falhar com Falha ao instalar MyCtsModule.apk no dispositivo. Motivo: '-116', olhar para mensagens PackageManager sobre logcat. Por exemplo, se ele diz que não pode substituir completa App Instant App: your_app, então adb desinstalar o aplicativo pela primeira vez.