O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Módulo auxiliar de interação de dispositivo CTS

Para Android 11 ou superior, os módulos auxiliares de interação do dispositivo Compatibility Test Suite (CTS) permitem que você personalize como certos testes CTS interagem com a interface do usuário (IU) em um dispositivo específico. Isso significa que ações, como a substituição de um elemento de IU que não é coberto pelo Documento de Definição de Compatibilidade do Android (CDD) ou documentos da API, podem ser realizadas enquanto ainda passa o CTS.

Os OEMs que desejam personalizar a IU do Android durante o desenvolvimento do produto e precisam ser aprovados no CTS podem implementar módulos auxiliares. Se você usar a implementação padrão do Android, nenhum trabalho adicional será necessário.

Implementando módulos auxiliares

Requisitos para personalizar a IU

Verifique os módulos CDD ou Mainline para quaisquer requisitos de IU. Se a IU desejada for coberta pelos módulos CDD ou Mainline, essa IU não poderá ser personalizada.

Se os testes CTS que interagem com a IU desejada não usarem a estrutura auxiliar, essa IU não poderá ser personalizada. Trabalhe com o proprietário do teste para converter o módulo de teste antes que a IU possa ser alterada.

Caso contrário, você pode personalizar a IU.

Fluxo de trabalho de implementação

  1. Personalize a IU conforme necessário para seu produto específico.
  2. Designe os módulos auxiliares AOSP existentes como subclasses para os módulos de teste CTS que precisam interagir com a IU. Substitua as interações necessárias apropriadamente para a IU personalizada. As substituições variam dependendo do tipo de mudanças.
    • As subclasses de OEM estão em um pacote OEM, como com.[oem].cts.helpers .
    • Cada subclasse OEM é nomeada com um prefixo comum que a distingue da implementação AOSP, que tem o prefixo Default .
  3. Construa os auxiliares em um APK seguindo essas convenções do executor de teste.
    • Android.bp deve declarar android_test_helper_app com o mesmo nome do pacote contido.
    • AndroidManifest.xml para o APK deve declarar uma propriedade de metadados chamada interaction-helpers-prefix com o valor do prefixo de classe escolhido no marcador anterior.
    • O aplicativo deve depender de cts-helpers-core , cts-helpers-interfaces e com.android.cts.helpers.aosp . Se os ajudantes OEM implementarem totalmente todas as interfaces relevantes, então com.android.cts.helpers.aosp é opcional.
  4. Defina a propriedade ro.vendor.cts_interaction_helper_packages na imagem do dispositivo para incluir o nome do APK. Se você precisar separar suas implementações auxiliares em vários APKs, esta propriedade pode conter uma lista de pacotes separados por dois pontos.
  5. Certifique-se de que o APK está disponível no diretório testcases ao executar Tradefed for CTS. Se necessário, confirme se a classe de implementação do auxiliar esperada foi escolhida examinando as mensagens do logcat.
  6. Opcional, mas altamente recomendado: envie sua implementação auxiliar para AOSP ou disponibilize-a para testes de terceiros.

Exemplo de implementação auxiliar

Por exemplo, CtsPrintTestCases espera um auxiliar com a interface definida em ICtsPrintHelper . A implementação do AOSP é chamada com.android.cts.helpers.aosp.DefaultCtsPrintHelper .

Se você personalizar a IU de impressão, poderá criar com.oem.cts.helpers.OemCtsPrintHelper que subclasses DefaultCtsPrintHelper . android_test_helper_app em Android.bp é denominado com.oem.cts.helpers , que produz com.oem.cts.helpers.apk , e declara interaction-helpers-prefix como Oem em AndroidManifest.xml .

A propriedade do dispositivo ro.vendor.cts_interaction_helper_packages é definida como com.oem.cts.helpers .

Implementações de referência

As implementações de referência incluem interfaces em cts/libs/helpers e os helpers AOSP padrão em cts/helpers . A interface de nível superior está documentada em cts/libs/helpers/core/src/com/android/cts/helpers/ICtsDeviceInteractionHelper.java .

Para conectar o teste CTS a seus auxiliares, os proprietários de teste podem usar a definição @Rule documentada em cts/libs/helpers/core/src/com/android/cts/helpers/DeviceInteractionHelperRule.java .

Cada módulo CTS que usa a estrutura e seu comportamento auxiliar esperado é documentado em uma interface definida em cts/libs/helpers/core/src/com/android/cts/helpers .

Executando testes CTS

Testando sem ajudantes

Além de uma propriedade, a opção de testar sem auxiliares não existe em tempo de execução no dispositivo, mas opcionalmente modifica como os testes CTS interagem com o dispositivo. Se você precisa executar o CTS sem as implementações auxiliares, você tem duas opções:

  • Remova a propriedade ro.vendor.cts_interaction_helper_packages do dispositivo. Isso evita que os auxiliares sejam usados ​​inteiramente naquela construção.
  • Remova o APK auxiliar do diretório testcases antes de executar o CTS. Isso evita que os auxiliares sejam usados ​​por qualquer execução até que o APK seja restaurado para os testcases de testcases .

Você pode alterar as configurações padrão com argumentos Tradefed e o controle de propriedade ro.vendor.cts_interaction_helper_packages , de onde o APK auxiliar é carregado.

Consulte a seguir os valores esperados ou intervalos para cada uma das configurações disponíveis.

  • ro.vendor.cts_interaction_helper_packages é uma string separada por dois pontos contendo nomes de pacotes. Pode assumir qualquer valor que seja uma escolha de pacote válida para a implementação auxiliar do OEM.
  • cts-tradefed aceita um cts-tradefed device-interaction-helper:property-name que altera temporariamente a propriedade esperada para uma execução de teste, como --module-arg 'CtsPrintTestCases:{device-interaction-helper}property-name:debug.cts.hlp' . O valor do nome da propriedade pode ser qualquer propriedade que você definir no dispositivo. O valor da propriedade segue as mesmas restrições da propriedade ro.vendor.cts_interaction_helper_packages descrita acima.

Teste com personalizações

Por padrão, as implementações de referência passam CTS no Android de estoque. Verifique se as implementações do parceiro passam CTS com personalizações de IU. Execute quaisquer módulos CTS que cubram a IU ou recursos que você personalizou.

Certos módulos CTS ou auxiliares podem não oferecer suporte a algumas personalizações ainda.

  • Um módulo CTS que interage com a IU que você deseja personalizar pode não usar a estrutura auxiliar. Espera-se que os módulos CTS sejam convertidos para a estrutura auxiliar com base na demanda e nas prioridades do proprietário do teste. Solicitações de arquivo para conversão no início do processo para garantir que a conversão entre no cronograma, semelhante a solicitar alterações CTS para oferecer suporte aos seus recursos planejados.
  • As funções fornecidas por um auxiliar existente podem não abordar totalmente as personalizações que você deseja fazer. As funções auxiliares devem abstrair as dependências da IU. Se uma função auxiliar indiretamente tiver uma dependência de IU, isso pode ser tratado de forma semelhante aos bugs no CTS.