Marcos N
← Voltar ao blog

Android

Android 17: o que mudou para desenvolvedores?

Conheça as principais novidades do Android 17 para desenvolvedores, incluindo memória, MessageQueue, WebView, mídia, segurança e compatibilidade.

Marcos N13 min de leitura
Android 17: o que mudou para desenvolvedores?

Uma nova versão do Android nunca significa apenas mudanças visuais para o usuário.

Para quem desenvolve aplicativos, uma atualização de plataforma pode alterar memória, compatibilidade, segurança, WebView, mídia, widgets, APIs do sistema e até comportamentos que antes pareciam garantidos.

O Android 17 corresponde ao API level 37 e atingiu Platform Stability no Beta 3, em março de 2026. A partir desse ponto, a superfície de APIs foi congelada e os desenvolvedores puderam iniciar os testes finais de compatibilidade.

Neste artigo, vamos olhar para o Android 17 do ponto de vista de quem desenvolve software.

A pergunta não será apenas:

O que o Android 17 ganhou?

Mas principalmente:

O que eu preciso revisar no meu aplicativo para continuar funcionando bem?

O que vamos entender

  • O que muda ao usar targetSdk = 37.
  • Mudanças que afetam todos os aplicativos.
  • Novos limites de memória.
  • Nova implementação de MessageQueue.
  • Alterações em static final.
  • Mudanças no WebView.
  • Novidades em câmera e mídia.
  • Segurança e assinatura pós-quântica.
  • Widgets e RemoteViews.
  • Como preparar um projeto existente para Android 17.

Notas:

Algumas mudanças do Android 17 afetam todos os aplicativos executados no sistema. Outras só entram em vigor quando o projeto passa a mirar explicitamente o Android 17 ou superior.

Tecnologias e conceitos utilizados

  • Android 17 / API 37
  • Kotlin
  • Android SDK
  • Gradle
  • WebView
  • RemoteViews
  • MessageQueue
  • Photo Picker
  • APIs de mídia e câmera

Rodar no Android 17 não é o mesmo que mirar Android 17

Um aplicativo pode ser executado em um aparelho com Android 17 mesmo que seu targetSdkVersion ainda seja anterior.

Diagrama
100%

Desenhando diagrama…

Mão: arraste para explorar · + / − para zoom · 0 para restaurar

Nesse cenário, mudanças classificadas como “todos os apps” já podem afetar o projeto.

Outras só passam a valer quando fazemos:

Diagrama
100%

Desenhando diagrama…

Mão: arraste para explorar · + / − para zoom · 0 para restaurar

Essa separação é importante porque permite que a plataforma evolua sem quebrar imediatamente todos os aplicativos existentes.

Onde configuramos isso?

Em um projeto Android moderno, normalmente no Gradle:

build.gradle.kts
android {
    compileSdk = 37

    defaultConfig {
        minSdk = 26
        targetSdk = 37
    }
}

Cada propriedade tem uma responsabilidade.

Diagrama
100%

Desenhando diagrama…

Mão: arraste para explorar · + / − para zoom · 0 para restaurar

Android 17 atingiu Platform Stability

O Beta 3 marcou a estabilidade da plataforma.

Para desenvolvedores isso significa:

  • APIs finais definidas;
  • comportamento principal congelado;
  • SDKs e bibliotecas podem finalizar compatibilidade;
  • aplicativos podem iniciar testes finais;
  • projetos podem ser preparados para mirar API 37.

Se você mantém uma biblioteca, SDK, engine ou componente utilizado por outros aplicativos, essa fase é especialmente importante.


1. Novos limites de memória

Uma das mudanças mais relevantes do Android 17 está no gerenciamento de memória.

A plataforma introduz limites de memória baseados na quantidade total de RAM do dispositivo.

O objetivo é tornar o ambiente mais previsível e evitar que um aplicativo com vazamento ou consumo extremo degrade todo o sistema.

Diagrama
100%

Desenhando diagrama…

Mão: arraste para explorar · + / − para zoom · 0 para restaurar

Isso reforça uma regra antiga do desenvolvimento mobile:

Memória continua sendo um recurso limitado, mesmo em aparelhos modernos.

Aplicativos que trabalham com imagens, vídeo, mapas, grandes listas, caches e processamento local precisam revisar cuidadosamente o ciclo de vida dos objetos.


2. Widgets passam a ter limite estrito de memória

Para apps que miram Android 17 ou superior, o sistema aplica um limite estrito ao uso combinado de Bitmap e Icon dentro do parcel de RemoteViews.

Se esse limite for ultrapassado, o aplicativo pode receber um:

Diagrama
100%

Desenhando diagrama…

Mão: arraste para explorar · + / − para zoom · 0 para restaurar

Isso torna importante revisar widgets que enviam imagens grandes.

Exemplo

WidgetProvider.kt
val views = RemoteViews(
    context.packageName,
    R.layout.widget_layout
)

views.setImageViewBitmap(
    R.id.cover,
    bitmap
)

O problema não é o método em si.

O risco está em enviar um bitmap maior do que a interface realmente precisa.

Uma solução é redimensionar antes:

BitmapUtils.kt
val resized = Bitmap.createScaledBitmap(
    originalBitmap,
    512,
    512,
    true
)

O tamanho correto depende do componente e da densidade, mas a ideia é simples:

Diagrama
100%

Desenhando diagrama…

Mão: arraste para explorar · + / − para zoom · 0 para restaurar

3. Nova implementação de MessageQueue

Android 17 introduz uma nova implementação sem bloqueio de:

android.os.MessageQueue

Simplificando:

Diagrama
100%

Desenhando diagrama…

Mão: arraste para explorar · + / − para zoom · 0 para restaurar

A thread principal da aplicação depende desse mecanismo para processar mensagens e tarefas.

A nova implementação busca melhorar performance e reduzir frames perdidos.

Na prática, isso está relacionado a coisas que o usuário percebe:

scroll travando
animação engasgando
toque demorando
UI sem fluidez

Onde pode quebrar?

Apps normais raramente acessam internamente a MessageQueue.

Mas bibliotecas ou códigos avançados podem usar reflection em campos privados.

val field = MessageQueue::class.java
    .getDeclaredField("campoInterno")

field.isAccessible = true

Esse tipo de código é frágil porque depende de implementação interna.

Diagrama
100%

Desenhando diagrama…

Mão: arraste para explorar · + / − para zoom · 0 para restaurar

Notas:

Se uma biblioteca do projeto usa reflection em classes internas do Android, vale revisar a compatibilidade antes de atualizar o target para API 37.


4. Campos static final não podem mais ser modificados

Outra mudança para apps direcionados ao Android 17 é o endurecimento das regras envolvendo:

static final

Tentativas de modificar esses campos com reflection podem gerar:

IllegalAccessException

e abordagens via JNI também podem causar falha.

Considere:

public static final int MAX_RETRIES = 3;

A intenção é clara:

Diagrama
100%

Desenhando diagrama…

Mão: arraste para explorar · + / − para zoom · 0 para restaurar

Android 17 torna essa regra mais consistente com o significado do código.


5. WebView recebe User-Agent reduzido

Apps que dependem de WebView também precisam prestar atenção.

Para projetos que miram Android 17, a string padrão de User-Agent do WebView fica mais curta.

Isso pode afetar sistemas que tentam detectar:

  • dispositivo;
  • versão;
  • navegador;
  • comportamento específico.

Imagine um backend:

Diagrama
100%

Desenhando diagrama…

Mão: arraste para explorar · + / − para zoom · 0 para restaurar

Esse tipo de detecção é frágil.

Uma mudança na string pode quebrar regras de parsing.

Sempre que possível, prefira feature detection em vez de depender de detalhes específicos do User-Agent.


6. Photo Picker mais personalizável

Android 17 também traz melhorias para mídia.

O Photo Picker permite maior personalização da grade.

A API PhotoPickerUiCustomizationParams permite, por exemplo, trabalhar com proporções diferentes do tradicional quadrado 1:1.

Isso pode ser útil para aplicações focadas em:

  • stories;
  • vídeos verticais;
  • redes sociais;
  • criação de conteúdo;
  • edição de mídia.

Imagine uma interface inteira trabalhando com:

9:16

mas o seletor mostrando tudo em:

1:1

Permitir uma apresentação mais próxima do formato final reduz a distância entre seleção e resultado.

É uma pequena API com impacto direto na UX.


7. RAW14 para aplicações profissionais de câmera

Android 17 adiciona suporte ao formato:

ImageFormat.RAW14

em hardware compatível.

Isso possibilita captura RAW de 14 bits por pixel, interessante para aplicações de:

  • fotografia profissional;
  • edição avançada;
  • processamento computacional;
  • workflows de imagem RAW.

Mas lembre:

API disponível não significa hardware disponível em todos os aparelhos.

A lógica deve continuar sendo:

Diagrama
100%

Desenhando diagrama…

Mão: arraste para explorar · + / − para zoom · 0 para restaurar

8. Segurança e assinatura pós-quântica

Um dos tópicos mais interessantes do Android 17 é o suporte a assinatura de APK com chaves criptográficas pós-quânticas.

A ideia não é que computadores quânticos estejam quebrando aplicativos Android hoje.

O objetivo é preparar a infraestrutura com antecedência.

Diagrama
100%

Desenhando diagrama…

Mão: arraste para explorar · + / − para zoom · 0 para restaurar

Criptografia é uma área onde esperar a ameaça chegar para só então começar a migrar costuma ser tarde demais.


9. Cleartext HTTP continua perdendo espaço

A documentação do Android 17 também reforça a direção de descontinuar práticas antigas relacionadas a tráfego HTTP sem criptografia.

Aplicativos que ainda dependem de:

http://

devem revisar sua configuração de segurança de rede.

Exemplo:

network_security_config.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="false">
        <domain includeSubdomains="true">
            exemplo.com
        </domain>
    </domain-config>
</network-security-config>

E no Manifest:

AndroidManifest.xml
<application
    android:networkSecurityConfig="@xml/network_security_config">
</application>

Além de segurança, isso deixa as regras de rede mais explícitas.


10. Android não é mais apenas toque em celular

Android 17 também traz mudanças relacionadas à navegação por teclado.

Isso reflete uma transformação maior da plataforma.

Hoje Android roda em:

  • telefones;
  • tablets;
  • dobráveis;
  • dispositivos com teclado;
  • ambientes multiwindow.

Um aplicativo moderno pode precisar funcionar bem com:

Diagrama
100%

Desenhando diagrama…

Mão: arraste para explorar · + / − para zoom · 0 para restaurar

Pensar apenas em toque já é uma visão limitada da plataforma.


Performance também é UX

Algumas mudanças do Android 17 parecem muito internas.

Por exemplo:

MessageQueue

Mas o impacto chega ao usuário.

Diagrama
100%

Desenhando diagrama…

Mão: arraste para explorar · + / − para zoom · 0 para restaurar

O usuário não pensa:

A main thread está congestionada.

Ele pensa:

O app está travando.

Por isso, performance não é apenas benchmark.

Performance é UX.


Como preparar um app existente para Android 17?

Não recomendo simplesmente trocar:

Diagrama
100%

Desenhando diagrama…

Mão: arraste para explorar · + / − para zoom · 0 para restaurar

e considerar o trabalho terminado.

Um processo melhor seria:

Passo a Passo

1

Passo 1: Atualize compileSdk

Compile o projeto usando API 37 para receber as APIs e verificações atuais.

2

Passo 2: Rode no Android 17

Antes de mudar o target, teste o aplicativo em um dispositivo ou emulador Android 17.

3

Passo 3: Revise mudanças para todos os apps

Essas alterações podem afetar o projeto independentemente do targetSdk.

4

Passo 4: Atualize dependências

Bibliotecas antigas podem depender de comportamentos internos que mudaram.

5

Passo 5: Mude targetSdk para 37

Depois dos testes iniciais, ative os comportamentos específicos da API 37.

6

Passo 6: Teste novamente

Verifique widgets, WebView, memória, mídia e fluxos críticos.

7

Passo 7: Teste hardware real

Câmera, Bluetooth, memória e outros recursos dependentes de hardware merecem validação em dispositivos reais.


Configurando o projeto

build.gradle.kts
android {
    namespace = "com.exemplo.app"

    compileSdk = 37

    defaultConfig {
        applicationId = "com.exemplo.app"

        minSdk = 26
        targetSdk = 37

        versionCode = 42
        versionName = "4.2.0"
    }
}

Depois:

Diagrama
100%

Desenhando diagrama…

Mão: arraste para explorar · + / − para zoom · 0 para restaurar

O que eu testaria primeiro?

Se fosse atualizar um projeto real, eu começaria pelos fluxos mais críticos.

Inicialização

  • app abre?
  • existe crash?
  • estado inicial está correto?

Login

  • autenticação;
  • biometria;
  • armazenamento seguro;
  • deep links.

WebView

  • login;
  • scripts;
  • páginas externas;
  • regras baseadas em User-Agent.

Widgets

Especialmente se utilizam:

  • fotos;
  • bitmaps;
  • ícones dinâmicos.

Telas pesadas

Observe:

  • memória;
  • scrolling;
  • imagens;
  • leaks;
  • tempo de abertura.

Câmera e mídia

Teste:

  • seleção de fotos;
  • gravação;
  • reprodução;
  • permissões;
  • diferentes aparelhos.

Não teste apenas se o app abre

Uma migração de plataforma não deveria ser:

Diagrama
100%

Desenhando diagrama…

Mão: arraste para explorar · + / − para zoom · 0 para restaurar

Compatibilidade exige comportamento.

Vale testar:

rotação
background
foreground
multiwindow
process death
permissões negadas
rede offline
memória baixa

Apps mobile vivem em ambientes menos previsíveis do que muitas aplicações web tradicionais.


Android 17 e Front-end têm mais relação do que parece

Quem vem de Front-end encontra vários conceitos familiares.

Responsividade

Na web:

mobile
tablet
desktop

No Android:

telefone
dobrável
tablet
desktop mode

Estado

Nos dois mundos precisamos lidar com:

Diagrama
100%

Desenhando diagrama…

Mão: arraste para explorar · + / − para zoom · 0 para restaurar

Performance

Na web temos métricas como Core Web Vitals.

No mobile observamos:

startup
frames
ANR
memória

As ferramentas mudam.

Os problemas de experiência muitas vezes são parecidos.


Vale usar todas as APIs novas imediatamente?

Não.

Antes de adotar uma API, pense:

Diagrama
100%

Desenhando diagrama…

Mão: arraste para explorar · + / − para zoom · 0 para restaurar

Tecnologia nova não deveria entrar apenas por ser nova.

Ela deve resolver um problema.


✅ Resultado Final

Os principais pontos do Android 17 para desenvolvedores são:

  1. API level 37 e novos comportamentos para apps atualizados.
  2. Limites de memória mais rigorosos.
  3. Limites em widgets com RemoteViews.
  4. Nova implementação de MessageQueue.
  5. Proteção de campos static final.
  6. Mudanças no User-Agent do WebView.
  7. Photo Picker mais personalizável.
  8. RAW14 para câmera em hardware compatível.
  9. Evoluções de segurança, incluindo assinatura pós-quântica.
  10. Maior necessidade de testar aplicações em diferentes dispositivos e formas de interação.

🛠️ Considerações Finais

Uma atualização como Android 17 mostra uma característica importante do desenvolvimento mobile:

Você não controla completamente a plataforma onde seu software roda.

O sistema operacional evolui.

APIs mudam.

Comportamentos ficam mais rigorosos.

Hardware muda.

Permissões evoluem.

O aplicativo precisa acompanhar.

Por isso atualizar o targetSdk não deveria ser encarado apenas como uma obrigação para publicar na loja.

É uma oportunidade para revisar:

Diagrama
100%

Desenhando diagrama…

Mão: arraste para explorar · + / − para zoom · 0 para restaurar

O Android 17 não exige que todo aplicativo seja reinventado.

Mas exige que desenvolvedores entendam melhor os contratos entre app, sistema operacional e hardware.

E quanto maior e mais antigo o projeto, mais importante fica fazer essa atualização com estratégia — e não apenas alterar um número no Gradle.


Referências

  • Android Developers — Android 17: resumo de mudanças e recursos
  • Android Developers — mudanças para todos os apps
  • Android Developers — mudanças para apps que segmentam API 37
  • Android Developers — Android 17 Release Notes
  • Android Developers — Android 17 Features and APIs