O Android 14 se prepara para tornar a experiência ainda melhor para usuários de lojas de aplicativos de terceiros graças a novas APIs.
O Google Play é de longe a loja de aplicativos mais popular entre os usuários do Android, mas alguns podem argumentar que ela não conquistou seu primeiro lugar de maneira justa. O Google foi examinado por agências reguladoras e órgãos legislativos em todo o mundo por causa de como mantém o domínio da loja de aplicativos e não há sinais de que essa pressão diminuirá a qualquer momento breve. Talvez seja por isso que o Google está tomando a iniciativa de introduzir novos recursos em Androide 14 que melhoram a experiência dos usuários de lojas de aplicativos de terceiros.
A maioria das lojas de aplicativos de terceiros no Android não é realmente competitiva com o Google Play, e não apenas por causa da seleção de aplicativos. Embora as lojas de aplicativos pré-instaladas sempre tenham a capacidade de fazer atualizações automáticas de aplicativos, as lojas de aplicativos de terceiros só recentemente puderam fazer atualizações autônomas. Google adicionado
uma API no Android 12 que permite que lojas de aplicativos de terceiros atualizem aplicativos sem a necessidade de ação do usuário, reduzindo o atrito de usando uma loja de aplicativos de terceiros.No entanto, isso ainda deixou as lojas de aplicativos de terceiros em grande desvantagem quando se trata de funcionalidade, porque eles não podiam saber facilmente quando seria seguro realmente fazer uma atualização automática. É isso que o Google está tentando resolver no Android 14 com uma nova API que permite que lojas de aplicativos de terceiros realizem “atualizações suaves”.
Atualizações suaves
O Android 14 adicionou uma nova API que permite que lojas de aplicativos de terceiros verifiquem se certas condições são atendidas antes de prosseguir com a atualização automática de um aplicativo. O Instalador de pacotes. API InstallConstraints “pode ser usado por lojas de aplicativos para fornecer atualizações automáticas sem interromper a experiência do usuário (referido como atualização suave) - por exemplo, uma loja de aplicativos pode adiar atualizações quando descobre [sic] que o aplicativo a ser atualizado está interagindo com o do utilizador."
Essa nova API permite que lojas de aplicativos de terceiros verifiquem se um aplicativo que estão se preparando para atualizar possui um serviço de primeiro plano ativo (isRequireAppNotForeground), está interagindo com o usuário de alguma forma (isRequireAppNotInteracting) ou está na tela (isRequireAppNotTopVisible). As lojas de aplicativos de terceiros também podem verificar se o dispositivo está no modo soneca (isRequireDeviceIdle) ou em uma chamada telefônica (isRequireNotInCall).
Embora a API permita especificar quais condições verificar, a documentação recomenda usar as restrições predefinidas, pois o “sistema sabe melhor como fazê-lo.” Isso é lógico, já que o Google teve muito tempo para desenvolver a melhor forma de lidar com atualizações automáticas em sua própria loja de aplicativos. O uso da predefinição também é benéfico, conforme observado na documentação, pois a precisão e a eficiência de atualizações suaves podem ser aprimoradas em versões futuras se o Google adicionar mais restrições à API.
Cada condição que o PackageInstaller. A API InstallConstaints permite que a verificação já possa ser verificada por meio de APIs existentes, mas fazer com que o sistema lide com essas verificações é muito mais fácil e menos intrusivo. Por exemplo, lojas de aplicativos de terceiros que desejam verificar se um aplicativo que estão atualizando está sendo usado ativamente pelo usuário atualmente teria que usar uma API como UsageStats ou AccessibilityService, ambas sensíveis permissões. Se eles usarem essa nova API do Android 14, eles não precisarão dessas permissões para fazer seu trabalho.
Atualizar propriedade
A ativação de “atualizações suaves” não é a única melhoria no Android 14 para lojas de aplicativos de terceiros. Há também um novo mecanismo de "propriedade de atualização" que permite que as lojas de aplicativos de terceiros se tornem a fonte exclusiva de futuras atualizações automáticas para um aplicativo instalado pela primeira vez. Isso significa que, se você estiver usando uma loja de aplicativos de terceiros porque os aplicativos disponíveis nela são examinados pelo community, por exemplo, uma atualização não verificada disponível em outras lojas de aplicativos não será enviada automaticamente para seu dispositivo.
No momento, quando você instala um aplicativo por meio de uma loja de aplicativos de terceiros, nada impede que uma loja de aplicativos de terceiros atualize esse aplicativo. Embora a API de atualizações autônomas do Android 12 permita apenas que lojas de aplicativos de terceiros atualizem silenciosamente os aplicativos instalados pela primeira vez, as lojas de aplicativos originais não são afetadas, pois possuem os privilégios INSTALL_PACKAGES permissão.
As lojas de aplicativos de terceiros no Android 14 podem usar o novo setRequestUpdateOwnership método em Instalador de pacotes. SessionParams, no entanto, para informar ao sistema que eles estão reivindicando a propriedade da atualização do aplicativo que estão prestes a instalar. Depois que a imposição de propriedade de atualização é habilitada para um aplicativo, todas as outras lojas de aplicativos, mesmo aquelas com a permissão INSTALL_PACKAGES, precisam da ação do usuário para atualizar o aplicativo. A propriedade da atualização só pode ser habilitada durante a instalação inicial de um aplicativo, portanto, outra loja de aplicativos não poderá assumir as atualizações, a menos que o aplicativo em questão seja desinstalado e reinstalado a partir dele loja. As lojas de aplicativos podem verificar se a propriedade da atualização está habilitada para um aplicativo e, em caso afirmativo, qual aplicativo é o proprietário da atualização por meio do novo InstallSourceInfo#getUpdateOwnerPackageName() API.
As lojas de aplicativos de terceiros devem manter o novo ENFORCE_UPDATE_OWNERSHIP permissão para usar a API de imposição de propriedade de atualização, mas como essa permissão tem um nível de proteção "normal", ela será concedida pelo sistema no momento da instalação. No entanto, resta saber se o Google Play auditará o uso dessa permissão/API.
Instalar pré-aprovação
A última nova API do Android 14 que gostaria de destacar é Instalador de pacotes. Session#requestUserPreapproval. Essa API permite que lojas de aplicativos de terceiros solicitem a aprovação do usuário antes de confirmar uma sessão de instalação. Imagino que isso seja útil para lojas de aplicativos de terceiros que intencionalmente desejam avisar o usuário antes de atualizar um aplicativo em segundo plano.
Por exemplo, imagine que uma loja de aplicativos com foco em segurança deseja informar ao usuário quando uma atualização de aplicativo adiciona novas permissões; em vez de atualizar automaticamente esse aplicativo, concedendo automaticamente essa permissão se seu nível de proteção for “normal”, a loja de aplicativos pode solicitar ao usuário antes de fazer a atualização. Atualmente, se um usuário não estiver presente durante uma atualização automática, a loja de aplicativos de terceiros precisa acompanhar a sessão de instalação e avisá-los posteriormente. Essa API simplifica esse processo.
O Android 14 apresentará muitos novos recursos e APIs quando for lançado ao público ainda este ano. Embora essas novas APIs não estejam ocultas como algumas das outras alterações que detectamos, não há garantia de que essas APIs estarão disponíveis para desenvolvedores na versão estável. Isso porque o congelamento da API não acontecerá até que o Android 14 atinja a “estabilidade da plataforma” com o Beta 3 em junho de 2023, e estamos apenas no DP1 no momento. Vamos ficar de olho nas versões futuras do Android 14 DP e Beta para ver se essas APIs permanecem ou se novas APIs relevantes para lojas de aplicativos de terceiros são adicionadas.