Arquivo de revisões da Biblioteca de Suporte

Esta página oferece detalhes sobre as versões anteriores do pacote da Biblioteca de Suporte. Para ver as versões mais recentes da Biblioteca de Suporte, consulte Revisões recentes da Biblioteca de Suporte.

Revisão 26.0.0 Beta 2

Junho de 2017

A 26.0.0-beta2 é uma versão de pré-lançamento. A superfície da API está sujeita a mudanças e não inclui necessariamente recursos ou correções de bugs das versões estáveis mais recentes da Biblioteca de Suporte.

Importante:as Bibliotecas de Suporte agora estão disponíveis no repositório Maven do Google. Não é necessário fazer o download do repositório de suporte do SDK Manager. Para mais informações, consulte Configuração da Biblioteca de Suporte.

Novas APIs

Diferenças nas APIs

Correções de bugs

  • A queda do SDK do Android O causa a perda do itálico em TextViews
  • Exceção de ponteiro nulo ao se conectar a MediaBrowserServiceCompat
  • O TextInputLayout precisa definir dicas em onProvideAutofillStructure().
  • Excedente de pilha ao usar o dimensionamento automático de TextView no Android O

Revisão 26.0.0 Beta 1

Maio de 2017

A 26.0.0-beta1 é uma versão de pré-lançamento. A superfície da API está sujeita a mudanças e não inclui necessariamente recursos ou correções de bugs das versões estáveis mais recentes da Biblioteca de Suporte.

Importante:as Bibliotecas de Suporte agora estão disponíveis no repositório Maven do Google. Não é necessário fazer o download do repositório de suporte do SDK Manager. Para mais informações, consulte Configuração da Biblioteca de Suporte.

Mudanças importantes

  • FragmentActivity.setSupportMediaController() e FragmentActivity.getSupportMediaController() foram removidos. Use os novos métodos estáticos MediaControllerCompat.setMediaController() e MediaControllerCompat.getMediaController().
  • BottomNavigationView agora chama onNavigationItemReselected() quando um item já selecionado é selecionado, em vez de onNavigationItemSelected()
  • Todas as instâncias do método findViewById() agora retornam <T extends View> T, em vez de View. Essa mudança tem as seguintes implicações:
    • Isso pode fazer com que o código existente agora tenha um tipo de retorno ambíguo, por exemplo, se houver someMethod(View) e someMethod(TextView) que usam o resultado de uma chamada para findViewById().
    • Ao usar a linguagem de origem Java 8, isso exige uma transmissão explícita para View quando o tipo de retorno não tem restrições (por exemplo, assertNotNull(findViewById(...)).someViewMethod())).
    • As substituições de métodos findViewById() não finais (por exemplo, Activity.findViewById()) precisarão que o tipo de retorno seja atualizado.

Novas APIs

  • FragmentManager e Fragment têm um método isStateSaved() para permitir a consulta se uma transação será permitida ou não sem a perda de estado. Isso é especialmente útil para verificar ao processar um evento onClick() antes de executar qualquer transação.
  • O movimento de caminho é compatível com AnimatedVectorDrawableCompat. O movimento de caminho permite que um animador de objeto mude duas propriedades ao mesmo tempo com base em um caminho. O caminho é especificado como android:pathData no XML do animador.
  • Animação baseada em física:
    • Novo FlingAnimation que oferece suporte à animação com uma velocidade inicial e desacelera suavemente.
    • As subclasses de DynamicAnimation são compatíveis com a animação de propriedades personalizadas para qualquer objeto.
    • Tanto SpringAnimation quanto FlingAnimation agora podem animar um valor flutuante sem exigir que um View ou um Object seja associado a ele

    Para mais informações, consulte as páginas de visualização de Animação de mola e Animação com rolagem.

  • Suporte a fontes em XML:
    • ResourcesCompat.getFont permite o carregamento de recursos de fonte, incluindo a família de fontes XML, que podem ser usados com TextView.setTypeface().
    • Ao usar o AppCompat, a TextView oferece suporte à especificação de um recurso de fonte ou de uma família de fontes XML por meio do atributo XML android:fontFamily.
    • Use a família de fontes XML para criar famílias de fontes com variações de estilo e peso. Se você usar as classes da Biblioteca de Suporte para fazer isso, use os atributos app: e android:.
  • Fontes para download:
    • Novo FontsContractCompat, que permite solicitar fontes de um provedor de fontes em vez de agrupá-las no seu app.
    • As fontes também podem ser solicitadas em XML e usadas em layouts.
  • Biblioteca de compatibilidade com emojis:
    • EmojiCompat pode processar uma determinada CharSequence e adicionar EmojiSpans.
    • EmojiTextView e outros widgets para mostrar emojis.
    • FontRequestEmojiCompatConfig para solicitar uma fonte de emoji a um provedor de fontes.
  • Dimensionamento automático do TextView:
    • Novos métodos em TextViewCompat, bem como atributos XML, para controlar o dimensionamento automático em TextView.
  • Controles de reprodução Leanback com suporte à busca:
    • Novo PlaybackTransportRowPresenter que renderiza controles de reprodução com uma barra de busca.
    • Novo PlaybackTransportControlGlue que funciona com PlaybackTransportRowPresenter e é compatível com a busca.
    • Nova classe base PlaybackSeekDataProvider para o app fornecer miniaturas de busca para PlaybackTransportControlGlue.
  • Armazenamento de dados de preferências:
    • PreferenceDataStore agora permite que você implemente seu próprio armazenamento de preferências, definido com novos métodos em Preference e PreferenceManager.

Problemas conhecidos

  • A integração da compatibilidade de fontes para download e emojis com o Google Play Services só funciona no Google Play Services v11 ou mais recente, que está disponível no programa Beta do Google Play Services.

Correções de bugs

  • A API MediaBrowserCompat.search() não funciona (problema AOSP 262170).
  • O ViewCompat.postInvalidateOnAnimation() gera uma exceção (problema AOSP 80146).
  • onActivityCreated() é chamado para fragmentos na Activity destruída.
  • RecyclerView.isComputingLayout() precisa retornar verdadeiro durante a pré-busca
  • Quando uma transição Fade é interrompida e invertida, o View inicia a animação do início. Correção transferida do framework do Android.
  • O Transition.Fade ignora o Alfa inicial de View (problema AOSP 221820).

Revisão 26.0.0 Alfa 1

Março de 2017

A 26.0.0-alpha1 é uma versão de pré-lançamento. A superfície da API está sujeita a mudanças e não inclui necessariamente recursos ou correções de bugs das versões estáveis mais recentes da Biblioteca de Suporte.

Mudanças importantes

Observação: a versão mínima do SDK foi aumentada para 14. Como resultado, várias APIs que existiam apenas para compatibilidade com APIs anteriores à 14 foram descontinuadas. Os clientes dessas APIs precisam migrar para os equivalentes do framework, conforme indicado na página de referência de cada API descontinuada.

  • O módulo support-percent foi suspenso. Os clientes desse módulo precisam migrar para o novo widget ConstraintLayout, que é fornecido como um artefato separado no SDK Manager.
  • O módulo support-fragment não tem mais uma dependência do módulo support-media-compat.

Novas APIs

Muitas novas classes, métodos e constantes foram adicionados para oferecer compatibilidade com versões anteriores das APIs de plataforma adicionadas na visualização do O.

  • IME_FLAG_NO_PERSONALIZED_LEARNING: os IMEs podem detectar sinalizações "sem aprendizado" para apps que têm modo privado, como navegadores. Esse recurso ajuda os IMEs a entender se um app está em modo privado para que possam desativar o aprendizado ou a funcionalidade adaptável enquanto o app estiver nesse modo.

Para ver uma lista completa das mudanças da API entre as versões 25.2.0 e 26.0.0-alpha1, consulte o relatório de diferenças da API da Biblioteca de Suporte.

Correções de bugs

  • Em alguns casos, a animação simples AutoTransition pode ser interrompida por "pulos" de visualização. (problema AOSP 221816).

Revisão 25.4.0

Junho de 2017

Importante:as Bibliotecas de Suporte agora estão disponíveis no repositório Maven do Google. Não é necessário fazer o download do repositório de suporte do SDK Manager. Para mais informações, consulte Configuração da Biblioteca de Suporte.

Mudanças importantes

  • executePendingTransactions(), commitNow(), popBackStackImmediate() e chamadas de transações semelhantes não são permitidas durante mudanças de estado de FragmentManager. A execução reentrante de transações não é segura, e o FragmentManager agora aplica isso durante as mudanças de estado.
  • Simultaneamente a esta versão da Biblioteca de Suporte, também estamos lançando a versão 1.0.2 do multidex. Essa versão inclui as seguintes mudanças importantes:
    • Permite a multidexação do APK de instrumentação.
    • Suspensão do uso de MultiDexTestRunner. Em vez disso, AndroidJUnitRunner precisa ser usado.
    • Fornece melhor proteção contra algum gerenciamento inadequado de extração de arquivos do app.
    • Corrige um bug que poderia levar ao abandono de arquivos temporários.
    • Proporciona uma instalação mais rápida quando feita em um processo simultâneo.
    • Correção de um bug de instalação nas APIs 19 e 20.

APIs novas e modificadas

A transformação e a interpolação de caminho são compatíveis com o AnimatedVectorDrawableCompat. A transformação de caminho permite que as formas mudem de um caminho (especificado como android:valueFrom) para outro (especificado como android:valueTo), a fim de fornecer efeitos visuais complexos e atraentes. A interpolação de caminho permite que os interpoladores para AnimatedVectorDrawableCompat sejam especificados como caminhos (especificados como android:pathData no XML do interpolador).

Diferenças nas APIs

Problemas corrigidos

  • Exceção de ponteiro nulo ao se conectar a MediaBrowserServiceCompat
  • A API MediaBrowserCompat.search() não funciona (problema AOSP 262170).
  • Callbacks BrowseFragment onItemClicked corrompidos na versão 25.3.0.
  • NullPointerException ao rolar para cima e para baixo no VerticalGridView na versão 25.3.1.
  • ClassCastException em SimpleArrayMap.allocArrays()

Revisão 25.3.1

Março de 2017

Problemas corrigidos

  • SwitchCompat requer a versão mínima do SDK 14 ou mais recente. (problema AOSP 251302).
  • A animação baseada em física updateListener pula o primeiro frame.
  • A animação de etiqueta BottomNavigationView está corrompida.

Revisão 25.3.0

Março de 2017

Mudanças importantes

Os metadados de versão da Biblioteca de Suporte vão ser adicionados automaticamente a AndroidManifest.xml ao criar usando o Gradle, o que simplifica o rastreamento de versões em builds públicos. Por exemplo:

<meta-data android:name="android.support.VERSION" android:value="25.3.0" />

Suspensões de uso

Alguns métodos e classes foram suspensos nesta versão. Essas APIs descontinuadas serão removidas em uma versão futura, e os desenvolvedores precisarão migrar delas. Para mais informações sobre como migrar de uma API específica, consulte a documentação dela.

ExifInterface
O método booleano getLatLong(float[]) foi descontinuado. Em vez disso, use o novo método getLatLong(), que não aceita argumentos e retorna double[].
mediacompat
O PlaybackStateCompat.Builder.setErrorMessage(CharSequence) foi suspenso. Em vez disso, use o novo método setErrorMessage(int, CharSequence), que recebe um código de erro e uma descrição opcional.
O uso de
EXTRA_SUGGESTION_KEYWORDS foi descontinuado. Em vez disso, use a funcionalidade de pesquisa MediaBrowserCompat.
v7.recyclerview
LinearLayoutManager.getInitialItemPrefetchCount() foi renomeado como LinearLayoutManager.getInitialPrefetchItemCount(). O nome antigo ainda é compatível, mas será removido em uma versão futura.

APIs novas e modificadas

appcompat-v7
O novo método ActionBarDrawerToggle.setDrawerSlideAnimationEnabled(boolean) simplifica a desativação da animação do ícone de alternância da gaveta de navegação.
customtabs
Foi adicionada compatibilidade com canais de mensagens. Consulte as referências de CustomTabsService.requestPostMessageChannel() e CustomTabsService.postMessage() para mais detalhes.
dynamic-animation
Nova biblioteca de animação baseada em física que oferece um conjunto de APIs para criar animações que reagem dinamicamente à entrada do usuário.
leanback-v17
Foi adicionada compatibilidade com planos de fundo com efeito paralaxe. Consulte a referência Parallax para mais detalhes.
O widget TimePicker foi adicionado para selecionar horários em uma interface de TV.
mediacompat
Uma funcionalidade de pesquisa foi adicionada. Consulte as referências de MediaBrowserCompat.search() e MediaBrowserServiceCompat.onSearch() para mais detalhes.
Adição de suporte aos modos de ordem aleatória e repetição. Consulte as referências de MediaSessionCompat.setRepeatMode() e setShuffleModeEnabled() para mais detalhes.

Problemas corrigidos

Revisão 25.2.0

Fevereiro de 2017

Mudanças importantes

Problemas corrigidos

  • Esta versão corrige um problema grave do mediarouter em que o uso de um dispositivo A2DP e APIs de roteamento de mídia podia fazer com que o dispositivo pare de responder, exigindo uma reinicialização.
  • A classe FragmentManager.FragmentLifecycleCallbacks agora é estática.

Problemas corrigidos

  • Mostrar uma apresentação de slides com espelhamento de tela faz com que o dispositivo se desconecte do Wi-Fi
  • O botão de mídia não processava corretamente os apps de música que não se registraram com setMediaButtonReceiver()
  • Erro VectorDrawable com recurso de string (problema AOSP 232407).
  • O TextInputLayout sobrepõe a dica e o texto se o texto for definido por XML (problema AOSP 230171).
  • Vazamento de memória em MediaControllerCompat (problema AOSP 231441).
  • RecyclerViewLayoutTest.triggerFocusSearchInOnRecycledCallback() com falha
  • O RecyclerView falha ao reciclar proprietários de visualizações (problema AOSP 225762).
  • getAllowGeneratedReplies() retorna falso incorretamente para ações dentro de uma WearableExtender

Revisão 25.1.1

Janeiro de 2017

Importante:há um bug conhecido na classe android.support.v7.media.MediaRouter nas revisões 25.1.1 e 25.1.0 da Biblioteca de Suporte. Se o app usa a MediaRouter v7, atualize para a Revisão 25.2.0 da Biblioteca de Suporte, que corrige esse bug.

Mudanças importantes

  • Transações de fragmentos agora podem ser otimizadas dentro e entre transações. A otimização de operações de transação de fragmento pode eliminar operações canceladas. Por exemplo, suponha que duas transações sejam executadas juntas, uma que adicione um fragmento A e uma segunda que substitua o fragmento A pelo B. Nesse caso, a primeira operação pode ser cancelada, e apenas o fragmento B pode ser adicionado. Isso significa que o fragmento A pode não passar pelo ciclo de vida de criação/destruição.

    Um efeito colateral dessa otimização é que os fragmentos podem ter mudanças de estado fora da ordem esperada. Por exemplo, suponha que uma transação adicione o fragmento A, uma segunda adicione o fragmento B e uma terceira remova o fragmento A. Sem a otimização, o fragmento B poderia esperar que, enquanto estiver sendo criado, o fragmento A também existirá, porque o fragmento A será removido depois da adição do fragmento B. Com a otimização, o fragmento B não pode ter certeza de que ele existe enquanto ele está sendo criado, porque a criação e a destruição dele podem ser removidas pela otimização.

    Essa otimização fica desativada por padrão. Para ativar a otimização, chame FragmentTransaction.setAllowOptimization(true).

  • Agora, os fragmentos podem adiar as transições e animações até que estejam prontos usando Fragment.postponeEnterTransition() e Fragment.startPostponedEnterTransition() Essa API é semelhante a Activity.postponeEnterTransition() e Activity.startPostponedEnterTransition(), usados com transições de atividade.

Problemas corrigidos

Revisão 25.1.0

Dezembro de 2016

Importante:há um bug conhecido na classe android.support.v7.media.MediaRouter nas revisões 25.1.1 e 25.1.0 da Biblioteca de Suporte. Se o app usa a MediaRouter v7, atualize para a Revisão 25.2.0 da Biblioteca de Suporte, que corrige esse bug.

Mudanças importantes

  • Os clientes de widgets RecyclerView aninhados (por exemplo, lista de rolagem vertical de listas de rolagem horizontal) podem ter benefícios significativos de desempenho, sugerindo aos gerenciadores de layout dos widgets RecyclerView internos quantos itens precisam ser preparados antes de serem rolados na tela. Chame LinearLayoutManager.setInitialPrefetchItemCount(N), em que N é o número de visualizações visíveis por item interno. Por exemplo, se suas listas horizontais internas mostram um mínimo de três visualizações e meia de itens por vez, é possível melhorar o desempenho chamando LinearLayoutManager.setInitialPrefetchItemCount(4). Isso permite que o RecyclerView crie todas as visualizações relevantes antecipadamente, enquanto o RecyclerView externo está rolando, o que reduz significativamente a quantidade de renderização lenta durante as rolagens.
  • FragmentActivity.setSupportMediaController() e FragmentActivity.getSupportMediaController() foram descontinuados. Use os novos métodos estáticos MediaControllerCompat.setMediaController() e MediaControllerCompat.getMediaController().
  • Quando um cliente especifica a tonalidade de um widget usando a tonalidade da appcompat (por exemplo, appcompat:buttonTint), o cliente é responsável por fornecer todos os estados necessários (como "desativado", "pressionado" etc.). Isso é consistente com a maneira como as tonalidades de widgets são especificadas ao usar a tonalidade de framework.

APIs novas e modificadas

Problemas corrigidos

  • A alternância de visibilidade de senhas apresenta falha nos testes de acessibilidade.
  • O Appcompat não respeita state_enabled em dispositivos anteriores ao Android L.
  • Foi adicionado um mecanismo de recuperação de foco a RecyclerView. Isso também corrigiu o foco corrompido dos fragmentos de preferências de suporte ao usar a navegação do DPAD, como em dispositivos Android TV.
  • Leanback: o BrowseFragment apresenta falhas com cabeçalhos desativados e adaptador vazio.
  • Appcompat: o AlertDialog é muito amplo.
  • O InputContentInfoCompat chama o requestPermission(), quando precisa chamar o releasePermission().
  • o MediaBrowserCompat apresenta falhas.
  • O CoordinatorLayout mede/define visualizações quando a visibilidade é definida como GONE.
  • Não foi possível tonalizar AnimatedVectorDrawableCompat em APIs de nível inferior a 24
  • A biblioteca do Leanback aciona erros de lint falsos
  • A biblioteca de paletas causava falhas de teste em todos os níveis de API.
  • RecyclerView testes reprovados no Leanback
  • O RecyclerView falha ao reciclar proprietários de visualizações (problema AOSP 225762).
  • Fragment.onDestroy() não é chamado para o fragmento na pilha de retorno.
  • O scrim CollapsingToolbarLayout não é desenhado quando recolhido
  • CoordinatorLayout.offsetChildByInset() gera IllegalArgumentException
  • Animar itens RecyclerView removem RecyclerViews internos, evitando pré-buscas futuras
  • Os itens RecyclerView anexados não podem passar por pré-busca aninhada
  • Os dados de pré-busca para itens RecyclerView aninhados são descartados durante o primeiro layout
  • A pré-busca de RecyclerView falha se dois eventos de arrastar chegam na mesma posição.
  • O RecyclerView deve definir o layout de forma especulativa enquanto o RenderThread está renderizando
  • Os recursos de cores configurados para o modo noturno convertidos em drawables nem sempre são limpos corretamente do cache de recursos
  • FloatingActionButton: a configuração programática de BackgroundTintList não funciona corretamente (problema AOSP 227428).
  • TextInputLayout: a fonte não está sendo definida para ErrorView (problema AOSP 227803).
  • TextInputLayout sempre volta à cor clara de erro em APIs de níveis anteriores a 23 (problema AOSP 221992).
  • FloatingActionButton aparece como pressionado quando o ponteiro sai.

Uma lista completa de correções de bugs públicas está disponível no Issue Tracker do AOSP.

Suspensões de uso

Alguns métodos e classes foram suspensos nesta versão. Essas APIs descontinuadas serão removidas em uma versão futura, e os desenvolvedores precisarão migrar para elas. Para mais informações sobre como migrar de uma API específica, consulte a documentação dela.

Revisão 25.0.1

Novembro de 2016

Problemas corrigidos

Uma lista completa de correções de bugs públicas está disponível no Issue Tracker do AOSP.

Revisão 25.0.0

Outubro de 2016

Mudanças importantes

  • O construtor ContextCompat foi transformado em protegido. Essa classe não pode ser instanciada publicamente, mas pode ser estendida por bibliotecas de suporte voltadas a níveis de API mais recentes.
  • O construtor ActivityCompat foi transformado em protegido. Essa classe não pode ser instanciada publicamente, mas pode ser estendida por bibliotecas de suporte voltadas a níveis de API mais recentes.
  • getReferrer(Activity) agora é estático.
  • O android.support.design.widget.CoordinatorLayout.Behavior.isDirty(CoordinatorLayout, V) foi removido. Todas as implementações de cliente desse método precisam ser removidas.
  • O android.support.v4.media.session.MediaSessionCompat.obtain(Context, Object) foi removido. Os usos precisam ser substituídos pelo método fromMediaSession() com nome mais adequado.
  • android.support.v4.media.session.MediaSessionCompat.QueueItem.obtain(Object) foi removido. Os usos precisam ser substituídos pelo método MediaSessionCompat.QueueItem#fromQueueItem com nome mais adequado.
  • O android.support.v7.widget.Space foi removido. Os usos precisam ser substituídos por android.support.v4.widget.Space.

Novas APIs

  • A classe android.support.design.widget.BottomNavigationView implementa o padrão de navegação na parte de baixo da especificação do Material Design.
  • O novo pacote android.support.v13.view.inputmethod inclui classes para acessar os recursos do android.view.inputmethod.InputConnection introduzidos após o nível 13 da API.
  • A classe android.v7.widget.RecyclerView.DividerItemDecoration fornece uma implementação básica para divisores verticais ou horizontais entre itens.
  • Foram adicionados novos estilos decorados a android.support.v7.app.NotificationCompat, DecoratedCustomViewStyle e DecoratedMediaCustomViewStyle, além de classes espelhadas na API de nível 24 da plataforma.

Problemas corrigidos

Uma lista completa de correções de bugs públicas está disponível no Issue Tracker do AOSP.

Revisão 24.2.1

Setembro de 2016

Problemas corrigidos:

Uma lista completa de correções de bugs públicas está disponível no Issue Tracker do AOSP.

Revisão 24.2.0

Agosto de 2016

A versão 24.2.0 contém as seguintes mudanças:

Observação:a versão 24.2.0 remove o suporte ao Android 2.2 (API de nível 8) e versões anteriores. As classes e os métodos que existem apenas para disponibilizar essas versões do sistema agora são marcados como descontinuados e não podem mais ser usados. Essas classes e métodos descontinuados podem ser removidos em uma versão futura.

Divisão da Biblioteca de Suporte v4

Com esta versão, a Biblioteca de Suporte v4 foi dividida em vários módulos menores:

support-compat
Oferece wrappers de compatibilidade para as novas APIs do framework, como Context.getDrawable() e View.performAccessibilityAction().
support-core-utils
Oferece várias classes de utilitários, como AsyncTaskLoader e PermissionChecker.
support-core-ui
Implementa vários componentes relacionados à IU, como ViewPager, NestedScrollView e ExploreByTouchHelper.
support-media-compat
Oferece backport a partes do framework de mídia, incluindo MediaBrowser e MediaSession.
support-fragment
Oferece backport do framework de fragmento. Esse módulo tem dependências de support-compat, support-core-utils, support-core-ui e support-media-compat.

Para compatibilidade com versões anteriores, se você listar support-v4 no script do Gradle, o APK vai incluir todos esses módulos. No entanto, para reduzir o tamanho do APK, recomendamos que você liste apenas os módulos específicos necessários para o app.

Atualizações da API

Mudanças de comportamento

  • Se você usar a funcionalidade dia/noite da biblioteca appcompat, o sistema agora recria automaticamente a atividade sempre que o modo dia/noite mudar (devido ao horário do dia ou a uma chamada para AppCompatDelegate.setLocalNightMode()).
  • O Snackbar agora aparece atrás da barra de navegação se a barra de status for translúcida

Biblioteca MediaRouter

Os dispositivos Bluetooth não são mais listados como roteamentos de mídia. O roteamento de áudio para dispositivos Bluetooth agora é controlado apenas no nível do sistema Android.

Suspensões de uso

Os métodos e classes obsoletos estão sujeitos a remoção em uma versão futura. É necessário migrar dessas APIs o mais rápido possível.

  • Vários métodos nas classes a seguir eram necessários apenas para a API 8 e anteriores e não podem mais ser usados. Em vez disso, use as implementações do framework.
    • android.support.v4.view.KeyEventCompat: substituir por KeyEvent
    • android.support.v4.view.MotionEventCompat: use MotionEvent.
    • android.support.v4.view.ViewCompat: use View.
    • android.support.v4.view.ViewConfigurationCompat: use ViewConfiguration.
  • O uso de AccessibilityServiceInfoCompat.getDescription() foi descontinuado e substituído por AccessibilityServiceInfoCompat.loadDescription(), que retorna uma descrição localizada corretamente.
  • Não instancie a classe ActivityCompat diretamente. O método getReferrer(Activity) não estático se tornará estático em uma versão futura.
  • CoordinatorLayout.Behavior.isDirty() foi descontinuado e não é mais chamado por CoordinatorLayout. Todas as implementações, bem como todas as chamadas para esse método, precisam ser removidas.
  • O uso de MediaSessionCompat.obtain() foi descontinuado e substituído pelo método fromMediaSession(), com nome mais adequado.
  • O uso de MediaSessionCompat.QueueItem.obtain() foi descontinuado e substituído pelo método fromQueueItem(), que tem um nome mais adequado.
  • Várias classes abstratas foram descontinuadas e substituídas por interfaces que refletem melhor as equivalentes do framework.
  • CustomTabsSession.setToolbarItem() foi descontinuado e substituído pelo setSecondaryToolbarViews() baseado em RemoteViews.

Correções de bugs

Os seguintes problemas conhecidos foram corrigidos na versão 24.2.0:

  • O indicador SwipeRefreshLayout é mostrado quando setRefreshing(true) é chamado antes da primeira transmissão de medição (problema AOSP 77712).
  • Impedimento de que o TabLayout pisque ao mudar de página (problema AOSP 180454).
  • ClassNotFoundException foi evitado ao desfazer a marcação de SavedState na API de nível 11 e anteriores (problema AOSP 196430).

Uma lista completa de correções de bugs públicas está disponível no Issue Tracker do AOSP.

Revisão 24.1.1

Julho de 2016

Problemas corrigidos:

  • Correção de um problema na versão 24.1.0 que afetava os IDs de recursos compartilhados entre as Bibliotecas de Suporte. Esse problema fazia com que apps que dependiam de bibliotecas de suporte com recursos (como design e appcompat) encontrassem problemas causados por incompatibilidades de IDs de recursos.

Revisão 24.1.0

Julho de 2016

Mudanças na Biblioteca de Suporte v4:

Problemas corrigidos:

  • TabLayout.setCustomView(null) resulta em NullPointerException (problema AOSP 214753).
  • O TabLayout destaca incorretamente as guias personalizadas (problema AOSP 214316).
  • AppCompatTextHelper usa incorretamente a matriz de atributo ordenada (problema AOSP 214366).
  • Não é possível referenciar o VectorDrawable do XML do contêiner de drawable ao usar um ContextWrapper personalizado (problema AOSP 214055).
  • ViewDragHelper.saveLastMotion() gera ArrayIndexOutOfBoundsException (problema AOSP 212945).
  • BottomSheetBehavior expande para a altura do conteúdo antigo ao usar setState(STATE_EXPANDED) (problema AOSP 213660).
  • CollapsingToolbarLayout não processa filhos fixáveis com margens superiores ou inferiores (problema AOSP 213001).
  • O título de navegação Leanback não é compatível com o alinhamento de RTL (problema AOSP 213461).
  • O PagerTabStrip desaparece devido à ausência de anotação herdada (problema AOSP 213359).
  • A vinculação de dados gera NullPointerException ao usar um booleano para definir sinalizações condicionais (problema AOSP 191841).
  • O CoordinatorLayout não responde a setFitsSystemWindows() (problema AOSP 212720).
  • BottomSheetBehavior falha ao definir o estado inicial (problema AOSP 203114).
  • O ViewPager pula páginas se o índice de páginas for um valor grande (problema AOSP 211734).
  • BottomSheetBehavior não funciona com layouts dinâmicos (problema AOSP 205226).

Revisão 24.0.0

Junho de 2016

Mudanças na Biblioteca de Suporte v4:
  • Inclusão de Fragment.commitNow() para confirmação síncrona.
  • Acréscimo de NotificationCompat.MessagingStyle para conversas entre várias partes.
  • NotificationManagerCompat.areNotificationsEnabled() e getImportance() foram adicionados
  • O MediaSessionCompat agora espelha a funcionalidade do MediaSession e não chama mais o setMediaButtonReceiver() automaticamente.

Observação:apenas o MediaBrowserServiceCompat na versão 24.0.0 é compatível com versões futuras do Android após o 24 da API. Se você estiver usando versões anteriores, atualize para esta versão para garantir a compatibilidade.

Mudanças na Biblioteca appcompat v7:
  • Foi adicionado suporte para referenciar objetos ColorStateList com tema a partir do XML.
Mudanças na Biblioteca de Suporte de Design:
Mudanças na Biblioteca Leanback v17:
  • Acréscimo de OnboardingFragment para dar as boas-vindas à primeira execução e oferecer o fluxo de configuração.
Mudanças nas guias personalizadas:
  • Foi adicionado suporte para fornecer uma hierarquia de RemoteViews para a barra de ferramentas secundária.
  • Adição de CustomTabsClient.connectAndInitialize() para aquecimento de uma linha.

Revisão 23.4.0

Maio de 2016

Mudanças na Biblioteca de Suporte v4:
  • Correção de um problema em que fragmentos eram adicionados na ordem errada (problema 206901).
  • Correção do problema em que a barra de apps não era desenhada ao ser rolada para fora da tela. (problema 178037).
Mudanças na Biblioteca appcompat v7:
Mudanças na Biblioteca de Suporte de Design:
Mudanças na biblioteca Vector Drawable:

Revisão 23.3.0

Abril de 2016

Mudanças na Biblioteca de Suporte v4:
  • Inclusão de AppLaunchChecker para ajudar a acompanhar como seu app foi iniciado pelo usuário no passado. hasStartedFromLauncher() informa se o usuário já iniciou o app na tela inicial ou se ele foi iniciado por outros meios (por exemplo, para visualizar URLs específicos da Web).
  • Correção de um vazamento de memória em MediaBrowserServiceCompat.mConnections (problema 205220).
  • Correção do problema em que ViewPager não contabilizava as margens ao virar a página. (problema 203816).
  • O Fragment.onRequestPermissionsResult() agora é entregue aos fragmentos filhos
Mudanças na Biblioteca appcompat v7:
Mudanças na Biblioteca mediarouter v7:
Mudanças na Biblioteca de preferências v7:
Mudanças na Biblioteca recyclerview v7:
Mudanças na Biblioteca de Suporte de Design:

Revisão 23.2.1

Março de 2016

Mudanças na Biblioteca de Suporte v4:
Mudanças na Biblioteca appcompat v7:
  • A dependência nos recursos vetoriais foi revertida para que os desenvolvedores que usam a biblioteca appcompat não sejam forçados a usar VectorDrawable e as sinalizações de build associadas.
  • Correção de um problema de compatibilidade com o "modo noturno" e o nível 23 da API (problema 201910).
  • Correção de um problema de compatibilidade com o SwitchCompat e o nível 7 da API(. (problema 201942).
  • Correção de um problema com a propagação de valores de configuração em objetos Recursos Problema 201928
  • Correção de um problema de compatibilidade em que o botão de cancelamento android.support.v7.app.NotificationCompat.MediaStyle ficava invisível na API de nível 21 e anteriores. (problema 37095756).
  • Correção de uma falha de compatibilidade com o AppCompatSpinner na API de nível 21 e anteriores (p(.roblema 202246).
  • Correção de um problema em que o estilo app:textAllCaps = "false" não funcionava. (problema 202117).
  • Correção de uma falha ao restaurar o SearchView (problema 201836).
  • Foi corrigido um vazamento de memória que ocorria ao colorir recursos drawable usando AppCompat (problema 202379).
  • Correção de um problema com KeyEvent na API de nível 11 e anteriores. (problema 202939).
Mudanças na Biblioteca cardview v7:
Mudanças na Biblioteca recyclerview v7:
Mudanças na Biblioteca mediarouter v7:
Mudanças na Biblioteca Leanback v17:
  • Correção de um problema com GridLayout.onAddFocusables() que fazia com que o item errado fosse selecionado
  • Correção de um problema com ações GuidedStepFragment que desapareciam depois que uma ação era recolhida.
Mudanças na Biblioteca de Suporte de Design:
Alterações no VectorDrawableCompat:
  • Correção de um bug em que a variável incorreta era lida para android:tintMode (problema 201907).

Revisão 23.2.0

Fevereiro de 2016

Mudanças na Biblioteca de Suporte v4:
  • Inclusão de MediaBrowserCompat para compatibilidade com MediaBrowser e de MediaBrowserServiceCompat para compatibilidade com MediaBrowserService. Isso é útil ao conectar o serviço em segundo plano de um app de música a componentes de IU e fazer a integração com o Android Auto e o Android Wear sem exigir o nível 21 da API ou mais recente.
  • O sistema agora chama onActivityResult() para um FragmentActivity aninhado.
Mudanças na Biblioteca AppCompat v7:
  • Acréscimo da funcionalidade do "modo noturno" à API de nível 14 e posterior. Alterne entre temas claros e escuros do Material Design com base na hora do dia ou na configuração específica do app.
    • Temas de dia e noite podem ser encontrados aqui: <sdk>/extras/android/support/v7/appcompat/res/values/themes_daynight.xml
    • AppCompatDelegate.setDefaultNightMode(): define o modo padrão do app transmitindo uma das constantes abaixo:
      • MODE_NIGHT_AUTO
      • MODE_NIGHT_NO
      • MODE_NIGHT_YES
      • MODE_NIGHT_FOLLOW_SYSTEM
    • AppCompatDelegate.setLocalNightMode(): modifica a configuração de modo noturno para o componente de app local.
    • AppCompatDelegate.getDefaultNightMode(): retorna o modo noturno padrão.
Mudanças na Biblioteca mediarouter v7:
Mudanças na Biblioteca de Suporte de Design:
  • Adição de compatibilidade com páginas inferiores. Um plug-in de interação, BottomSheetBehavior, permite que uma visualização filha de um CoordinatorLayout atue como página inferior. A classe base, BottomSheetCallback, fornece callbacks para monitorar eventos de página inferior.
Mudanças na Biblioteca de Suporte CustomTabs:
  • As guias personalizadas do Chrome agora permitem que os apps incluam uma barra inferior com botões de ação, além do botão de ação superior existente.
  • CustomTabsIntent.Builder.addToolBarItem(): adiciona um botão de ação a uma guia personalizada. Você pode usá-lo para adicionar vários botões.
  • CustomTabsSession.setToolBarItem(): atualiza o visual dos itens da barra de ferramentas. Esse método só funcionará se receber um ID válido e se a sessão do navegador estiver em primeiro plano.
Adicionada a biblioteca VectorDrawable:
  • Classes adicionadas:
    • VectorDrawableCompat
    • AnimatedVectorDrawableCompat
  • Adiciona compatibilidade com recursos VectorDrawable a apps executados na API de nível 7 ou mais recente. Os recursos AnimatedVectorDrawable também são compatíveis com o nível 11 da API ou mais recente. Os recursos vetoriais podem ser consideravelmente menores que os recursos de imagem e ajudam a reduzir o tamanho do app, reduzindo a quantidade de recursos necessários para oferecer suporte a várias telas de dispositivos.
  • Essa biblioteca agora é uma dependência da biblioteca AppCompat v7, permitindo que os desenvolvedores e AppCompat usem drawables vetoriais com facilidade. Para usar VectorDrawableCompat em uma ImageButton ou ImageView, use o atributo XML app:srcCompat ou o método setImageResource().
  • Para continuar referenciando IDs de atributo na API de nível 20 ou anterior, adicione a seguinte sinalização appt ao seu arquivo build,gradle:
    • Se você está criando com o plug-in do Android para Gradle 1.5.0 ou anterior, adicione o seguinte ao seu arquivo build.gradle:
    • android {
        defaultConfig {
          // Stops the Gradle’s automatic rasterization of vectors
          generatedDensities = []
        }
         // Flag that tells aapt to keep the attribute ids
        aaptOptions {
          additionalParameters "--no-version-vectors"
        }
      }
      
    • Se você está criando com o plug-in do Android para Gradle 2.0.0 ou mais recente, adicione o seguinte ao seu arquivo build.gradle:
    • android {
        defaultConfig {
          vectorDrawables.useSupportLibrary = true
        }
      }
      
Mudanças na Biblioteca Leanback v17:
  • Adição de novos recursos a GuidedStepFragment, que é um componente que orienta os usuários em uma decisão ou série de decisões:
    • Adicionadas ações de botão a GuidedAction:
      • GuidedStepFragment.setButtonActions(): define uma lista de botões GuidedAction que o usuário pode selecionar na visualização Actions.
    • Os campos de descrição agora são editáveis:
      • GuidedAction.Builder.descriptionEditable(): ao transmitir true, define a descrição da ação como editável.
      • GuidedAction.getEditDescription(): retorna a descrição editável como um CharSequence.
    • Adicionadas listas suspensas de subações:
      • GuidedAction.setSubActions(): define uma lista de GuidedAction como um menu suspenso de subações.
  • O widget GuidedDatePickerAction foi adicionado à funcionalidade DatePicker:
    • A data é selecionada usando as colunas de ano, mês e dia e tem um intervalo personalizável.
    • GuidedDatePickerAction.Builder: classe builder para o objeto GuidedDatePickerAction.
    • GuidedDatePickerAction.Builder.datePickerFormat(String datePickerFormat): defina o formato de data desejado transmitindo o String de três caracteres apropriado, por exemplo, “YMD” ou “MDY”. Como alternativa, use o atributo XML datePickerFormat.
Mudanças na Biblioteca RecyclerView v7:
  • RecyclerView agora tem um recurso de ativação chamado AutoMeasure, que permite que RecyclerView.LayoutManager envolva o conteúdo ou processe várias especificações de medição fornecidas pelo pai da RecyclerView. Ele oferece suporte a todos os recursos de animação existentes do RecyclerView.
    • Se você tiver um RecyclerView.LayoutManager personalizado, chame setAutoMeasureEnabled(true) para começar a usar a nova API AutoMeasure. Todos os objetos RecyclerView.LayoutManager integrados permitem a medição automática por padrão.
    • RecyclerView.LayoutManager não ignora mais algumas configurações RecyclerView.LayoutParams, como MATCH_PARENT, na direção de rolagem.

      Observação:essas restrições removidas podem causar um comportamento inesperado nos seus layouts. Especifique os parâmetros de layout corretos.

  • Ao atualizar um RecyclerView.ViewHolder com informações de payload, o DefaultItemAnimator agora desativa animações de mudança
  • Agora é possível modificar a velocidade de escape de ItemTouchHelper para controlar a sensibilidade ao deslizar. Para facilitar ou dificultar o gesto de deslizar, substitua getSwipeEscapeVelocity(float defaultValue) e modifique defaultValue.

Revisão 23.1.1

Novembro de 2015

Mudanças na Biblioteca recyclerview v7:
  • Correção de uma falha que ocorre quando você realiza uma ação de deslizar para dispensar fornecida pela classe de utilitário ItemTouchHelper e depois adiciona um item (problema 190500).
Mudanças na biblioteca de preferências v7:
Mudanças na Biblioteca de Suporte Leanback v17:
  • Correção de vários problemas internos dessa biblioteca.
Mudanças na Biblioteca de Suporte de design:
  • Inclusão do método getHeaderView à classe NavigationView.
  • Foi corrigido um problema de segundo plano transparente para um objeto FloatingActionButton em dispositivos com o Android 4.0 (API de nível 15) e versões anteriores. (problema 183315).

Revisão 23.1.0

Outubro de 2015

Mudanças na Biblioteca de Suporte v4:
  • Inclusão de suporte à interface OnScrollChangedListener ao widget NestedScrollView. Ele permite que você receba callbacks quando as posições de rolagem X ou Y mudarem.
  • Adição de uma classe MediaButtonReceiver para encaminhar controles de reprodução recebidos para um serviço que gerencia a classe MediaSessionCompat. A classe MediaSessionCompat tem um construtor que pode encontrar automaticamente um receptor de botão de mídia no manifesto. Um receptor de botão de mídia é uma parte fundamental para gerenciar controles de reprodução de controles de hardware ou Bluetooth.
Mudanças na Biblioteca appcompat v7:
  • Inclusão de widgets Seekbar e ImageButton do Material Design.
  • O widget ImageView foi atualizado para ser compatível com o recurso de tonalização.
  • Atualização da aparência do widget SwitchCompat.
Mudanças na Biblioteca mediarouter v7:
  • Os seguintes recursos foram adicionados à classe MediaRouteChooserDialog:
    • Exibe uma página de carregamento ao descobrir provedores de roteamento de mídia.
    • Inclui um ícone de tipo de dispositivo para facilitar a identificação.
    • Classifica os roteamentos de acordo com a frequência de uso no aplicativo atual.
    • Compatível com o modo paisagem.
  • Os seguintes recursos foram adicionados à classe MediaRouteControllerDialog:
    • Reconhece a transmissão de tela e fornece uma descrição adequada.
    • É compatível com vários tamanhos de arte de álbum e proporções e carrega a arte de forma assíncrona.
    • Seleciona automaticamente a cor do conteúdo com base na cor principal do aplicativo.
    • Ajusta o layout da caixa de diálogo com base no espaço de tela disponível no dispositivo.
    • Compatível com o modo paisagem.
Mudanças na Biblioteca de paletas v7:
  • O método setRegion() foi adicionado para oferecer compatibilidade com a extração de cor de uma região específica de um objeto Bitmap.
Mudanças na Biblioteca recyclerview v7:
  • Adição de uma API de animação aprimorada à classe ItemAnimator para personalizações melhores:
    • Animações de mudança não aplicam mais duas cópias do objeto ViewHolder, o que ativa as animações de conteúdo do item. Além disso, o objeto ItemAnimator decide se quer reutilizar o mesmo objeto ViewHolder ou criar um novo.
    • A nova API de registro de informações oferece à classe ItemAnimator a flexibilidade de coletar dados no ponto correto do ciclo de vida do layout. Essas informações são transmitidas posteriormente para os callbacks de animação.
  • Fornecimento de um plano de transição fácil para essa alteração de API incompatível com versões anteriores:
    • Se você já estendeu a classe ItemAnimator, pode alterar a classe base para SimpleItemAnimator, e seu código funcionará como antes. A classe SimpleItemAnimator fornece a API antiga agrupada com a nova API.
    • Alguns métodos foram removidos da classe ItemAnimator. O código a seguir não será mais compilado:
    • Kotlin

      recyclerView.itemAnimator.supportsChangeAnimations = false
      

      Java

      recyclerView.getItemAnimator().setSupportsChangeAnimations(false)
      

      Você pode substituí-lo pelo seguinte:

      Kotlin

      val animator: SimpleItemAnimator? = recyclerView.itemAnimator as? SimpleItemAnimator
      animator?.supportsChangeAnimations = false
      

      Java

      ItemAnimator animator = recyclerView.getItemAnimator();
      if (animator instanceof SimpleItemAnimator) {
         ((SimpleItemAnimator) animator).setSupportsChangeAnimations(false);
      }
      
Mudanças para a Biblioteca de Suporte de preferências v7, v14 e v17:
  • Remoção de APIs para controlar caixas de diálogo EditText.
Mudanças na Biblioteca de Suporte Leanback v17:
  • Inclusão de uma versão da classe GuidedStepFragment para a Biblioteca de Suporte (estende android.support.v4.app.Fragment), além de animações e transições aprimoradas.
  • A classe GuidedStepFragment foi atualizada para que possa ser colocada sobre o conteúdo já existente.
  • Adicionada a capacidade de anotar diferentes tipos de conclusões de pesquisa para a classe SearchFragment.
  • Foi adicionado suporte à transição de slides escalonada para a classe VerticalGridFragment.
Mudanças na Biblioteca de Suporte de design:
  • Inclusão de compatibilidade com a contagem de caracteres ao widget TextInputLayout.
  • Inclusão de suporte ao ajuste de borda à classe AppBarLayout com a constante SCROLL_FLAG_SNAP. Quando a rolagem terminar, se a visualização estiver parcialmente visível, ela será ajustada e rolada até a borda mais próxima.
  • Foi adicionado suporte a visualizações personalizadas para a classe NavigationView usando o atributo app:actionLayout ou o método MenuItemCompat.setActionView().
Mudanças na Biblioteca de Suporte de guias personalizadas:
  • O método enableUrlBarHiding() foi adicionado à classe CustomTabsIntent. Ele permite que o cliente personalize se a barra de URL ficará oculta automaticamente ao rolar para baixo.
  • O método setActionButton() foi adicionado à classe CustomTabsSession. Ele permite que o cliente altere o ícone de um botão de ação personalizado em uma guia personalizada já iniciada.
  • As constantes TAB_SHOWN e TAB_HIDDEN foram adicionadas como novos eventos para o método onNavigationEvent da classe CustomTabsCallback.

Revisão 23.0.1

Setembro de 2015

Mudanças na Biblioteca de Suporte de preferências v7 e v14:
  • Acréscimo do layout do Material Design e dos arquivos de estilo (problema 183376).
Mudanças na Biblioteca appcompat v7:
  • Correção de problemas de falha para a classe Fragment limitando o uso de camadas de hardware ao Android 4.1 (API de nível 16) e versões mais recentes. (problema 183896).
  • Correção de um problema em que os botões de hardware não funcionavam quando uma atividade tinha configurado a classe Toolbar para atuar como ActionBar usando o método setSupportActionBar(). (problema 183334).
  • A classe AppCompatDialogFragment foi atualizada para não gerar mais o erro Windows feature must be requested before adding content. (problema 183186).
Mudanças na Biblioteca de Suporte de design:
Mudanças na Biblioteca de Suporte de guias personalizadas:

Revisão 23

Agosto de 2015

Acréscimo de novas bibliotecas de suporte:

Para ver uma lista completa das mudanças na Biblioteca de Suporte, consulte o Relatório de diferenças da API da Biblioteca de Suporte.

Revisão 22.2.1

Julho de 2015

Mudanças na Biblioteca de Suporte de design:
  • Os métodos hide() e show() foram adicionados à classe FloatingActionButton para acionamento programático de animações.
  • A constante LENGTH_INDEFINITE foi adicionada à classe Snackbar para mostrar uma snackbar até que ela seja dispensada ou outra seja exibida. Além disso, os métodos setActionTextColor(int) e setActionTextColor(ColorStateList) foram adicionados.
  • O método getSelectedTabPosition() foi adicionado à classe TabLayout para recuperar a guia selecionada no momento.
  • Fornecimento de uma API totalmente fluente para a classe android.support.v7.app.NotificationCompat.MediaStyle para encadeamento de métodos.
  • Adição de métodos de conveniência a RecyclerView para inserção em lote de itens

Para ver uma lista completa das mudanças na Biblioteca de Suporte, consulte o Relatório de diferenças da API da Biblioteca de Suporte.

Revision 22.2.0

Maio de 2015

Acréscimo da Biblioteca de Suporte de design:
  • Inclusão de TextInputLayout para mostrar o texto de dica e erro do EditText como rótulos flutuantes.
  • Inclusão de FloatingActionButton para implementar uma ação principal na interface como um botão de ação flutuante, compatível com tamanhos padrão ou mini.
  • Snackbar foi adicionado para fornecer feedback leve com uma ação opcional em uma snackbar animada.
  • Inclusão de TabLayout para implementar guias fixas e roláveis, além de fácil integração com ViewPager.
  • Inclusão do NavigationView para implementar o conteúdo da gaveta de navegação, incluindo a capacidade de inflar itens de menu usando um Recurso de menu.
  • Adição de CoordinatorLayout, um layout de uso geral, usado para criar dependências entre visualizações irmãs e permitir reações de rolagem fáceis entre componentes usando CoordinatorLayout.Behavior. Muitos dos componentes da Biblioteca de Design dependem de serem filhos de um CoordinatorLayout.
  • Foi adicionado AppBarLayout, um contêiner para uma Toolbar e outras visualizações (como TabLayout) para reagir a eventos de rolagem rolando para fora da tela, ficando visível em reação a uma rolagem para baixo ou recolher/descolar antes de rolar para fora/na tela.
  • Adição de CollapsingToolbarLayout para controlar como um Toolbar é recolhido. Uma barra de ferramentas pode ser recolhida: fixando componentes na parte de cima da tela enquanto ela é recolhida, introduzindo rolagem paralaxe de componentes como ImageView ou adicionando uma cor scrim de conteúdo quando a visualização está parcialmente recolhida.
Mudanças na Biblioteca de Suporte v4:
Mudanças na Biblioteca appcompat v7:

Para ver uma lista completa das mudanças na Biblioteca de Suporte, consulte o Relatório de diferenças da API da Biblioteca de Suporte.

Revisão 22.1.0

Abril de 2015

Mudanças na Biblioteca de anotações:
  • A Biblioteca de anotações foi adicionada para oferecer compatibilidade com inspeções de código avançado. Elas são adicionadas na forma de tags de metadados, anexadas a variáveis e parâmetros, e retornam valores para inspecionar os valores de retorno dos métodos, parâmetros passados e campos e variáveis locais.
Mudanças na Biblioteca de Suporte v4:
Mudanças na Biblioteca appcompat v7:
Mudanças na Biblioteca Leanback v17:
Mudanças na Biblioteca recyclerview v7:
Mudanças na Biblioteca renderscript v8:

Revisão 22

Março de 2015

Mudanças na Biblioteca de Suporte v4:
Mudanças na Biblioteca appcompat v7:
Mudanças na Biblioteca Leanback v17:
  • Os métodos getRecycledPoolSize() e setRecycledPoolSize() foram adicionados para permitir tamanhos personalizados de pools reciclados.
  • O atributo WRAP_CONTENT foi adicionado à configuração de largura do layout para oferecer compatibilidade com o conteúdo agrupado de ícones de título.
  • O R.transition foi definido em XML para melhorar as atualizações de transição.
  • A compatibilidade com layouts da direita para a esquerda foi ativada.
  • Foi adicionado suporte para a reprodução e pausa de eventos de tecla de mídia à classe PlaybackOverlayFragment.
  • Inclusão de transições de entrada e retorno às classes BrowseFragment e DetailsFragment.
  • O método replace() foi adicionado para substituir itens na matriz de adaptador de um objeto.
Mudanças na Biblioteca mediarouter v7:
Mudanças na Biblioteca recyclerview v7:

Revisão 21.0.3

Dezembro de 2014

Mudanças na Biblioteca de Suporte v4:

Revisão 21.0.2

Novembro de 2014

Mudanças na Biblioteca de Suporte v4:
Mudanças na Biblioteca appcompat v7:
  • O construtor PopupMenu foi adicionado para oferecer compatibilidade com novos menus pop-up.
  • Foi adicionado suporte a uma descrição do ícone "Recolher" na classe Toolbar.
  • O widget SearchView foi atualizado para oferecer compatibilidade com a exibição de commitIcon.
  • O atributo buttonGravity foi removido da classe Toolbar.
Mudanças na Biblioteca cardview v7:
Mudanças na Biblioteca recyclerview v7:
Mudanças na Biblioteca Leanback v17:
  • Adicionado suporte para gerar fragmentos de código v4.
  • A cor de texto secundária em CardView foi alterada.

Revisão 21.0.1

Novembro de 2014

Inclusão da Biblioteca de Suporte a multidex para oferecer suporte a vários arquivos Dalvik executáveis (DEX) para arquivos multidex anteriores ao Android 5.0.

Revisão 21

Outubro de 2014

Mudanças na Biblioteca de Suporte v4:
  • Foi adicionado suporte a transições de Fragment para dispositivos com Android 5.0 (API de nível 21). Esteja ciente de que as transições não afetam dispositivos com o Android 4.4 ou versões anteriores.
  • DocumentFile foi adicionado para facilitar a transição de File ao trabalhar com árvores de documentos. No entanto, essa classe exige mais sobrecarga de processamento em comparação com a API DocumentsContract da plataforma adicionada no Android 4.4 (API de nível 19). Portanto, você precisa passar a usar DocumentsContract ao executar no Android 4.4 e versões mais recentes.
Mudanças na Biblioteca appcompat v7:
  • Foi adicionada compatibilidade com interfaces do usuário do Material Design.
  • Adição de Toolbar, que generaliza a funcionalidade de ActionBar para uso em layouts de apps.
  • Atualização de ActionBarDrawerToggle, que contém a animação de menu a seta.
  • Atualização de widgets comuns da interface do usuário para permitir a tonalidade por meio de atributos de tema ao serem executados em dispositivos anteriores ao Android 5.0
  • Adição de SwitchCompat, uma retrocompatibilidade do widget Switch que foi adicionado no Android 4.0 (API de nível 14).
Nova Biblioteca cardview v7:
  • Foi adicionado o widget CardView, que fornece uma implementação compatível com o Material Design para mostrar itens de dados.
Nova Biblioteca recyclerview v7:
  • Foi adicionado o widget RecyclerView, que fornece uma visualização em lista flexível para fornecer uma janela limitada em um grande conjunto de dados.
Nova Biblioteca de paletas v7:
  • A classe Palette foi adicionada, que permite extrair cores proeminentes de uma imagem.
Nova Biblioteca Leanback v17:

Revisão 20

Julho de 2014

Mudanças na Biblioteca de Suporte v4:
  • Foi adicionado suporte a notificações estendidas para Android Wear em NotificationCompat.WearableExtender, o que permite especificar recursos específicos de wearable nas suas notificações.
  • Acréscimo de NotificationCompat.Action.WearableExtender, que permite adicionar ações a notificações de wearable.
  • Adição de NotificationManagerCompat, que permite que você emita notificações compatíveis com recursos de wearable.
  • Adição de RemoteInput, que permite que um dispositivo portátil receba entrada de texto por voz de uma notificação exibida em um dispositivo wearable.
  • Melhoria no gerenciamento do feedback de toque em SwipeRefreshLayout.

Revisão 19.1.0

Março de 2014

Mudanças na Biblioteca de Suporte v4:
  • Foi adicionada a classe SwipeRefreshLayout, que permite que os usuários atualizem o conteúdo de uma visualização com um gesto de deslizar vertical.
  • Correção de problemas de acessibilidade com gavetas de navegação.
Mudanças na Biblioteca appcompat v7:
  • Correção de problemas em segundo plano com a barra de ações.

Revisão 19.0.1

Dezembro de 2013

Mudanças na Biblioteca de Suporte v4:
Mudanças na Biblioteca mediarouter v7:
Mudanças na Biblioteca renderscript v8
  • Adição de propagação de erro para a camada de thunking do RenderScript.

Revisão 19

Outubro de 2013

Mudanças na Biblioteca de Suporte v4:
Mudanças na Biblioteca mediarouter v7:
  • Foi adicionado suporte ao enfileiramento de reprodução de mídia, à configuração de valores de cabeçalho HTTP e à duração da reprodução de mídia.
  • Foram adicionadas ações explícitas de início, acesso e término da sessão para gerenciar explicitamente as sessões de reprodução de mídia com o roteador de mídia.

Revisão 18

Julho de 2013

Mudanças na Biblioteca de Suporte v4:
  • Interface do usuário
    • Inclusão de BidiFormatter para gerenciar strings de texto que combinam texto formatado da direita para a esquerda e da esquerda para a direita.
    • Modificação de ViewPager para lidar melhor com casos em que o pager tem uma largura medida de zero no processamento de layout inicial.
    • DrawerLayout e SlidingPaneLayout foram modificados para não gerar exceções para a medição enquanto o código do projeto está sendo editado.
  • Acessibilidade
  • Mídia
    • Foi adicionada a classe auxiliar TransportMediator para gerenciar o controle de transporte de mídia, como reproduzir, pausar, pular e outras ações de mídia.
    • Acréscimo de DisplayManagerCompat para gerenciar a saída de exibição para uma ou mais telas de dispositivos.
  • Outras mudanças
    • Foi adicionada a classe auxiliar WakefulBroadcastReceiver para implementar um padrão comum de detecção de um evento de ativação de dispositivo e transmissão do trabalho para Service, garantindo que o dispositivo não volte à suspensão antes da conclusão da transferência.
    • Foram adicionadas duas novas APIs, commitContentChanged() e rollbackContentChanged(), a AsyncTaskLoader para ajudar a lidar com atualizações em segundo plano para mudanças de dados que são canceladas posteriormente.
Nova Biblioteca appcompat v7:
  • ActionBar foi adicionado para permitir a implementação do padrão de design da interface do usuário da barra de ações no Android 2.1 (API de nível 7) ou versões mais recentes. O uso dessa classe requer que você implemente sua atividade estendendo a nova classe ActionBarActivity.
Nova Biblioteca mediarouter v7:

Adição de uma nova biblioteca mediarouter que oferece compatibilidade com a versão de pré-lançamento para desenvolvedores do Google Cast. As APIs da biblioteca mediarouter v7 oferecem um meio de controlar o roteamento de canais e streams de mídia do dispositivo atual para telas, alto-falantes e outros dispositivos de destino externos, com compatibilidade com o Android 2.1 (API de nível 7). Consulte a Biblioteca mediarouter V7 para mais informações.

As APIs da biblioteca mediarouter v7, introduzidas na Biblioteca de Suporte r18, estão sujeitas a mudanças em revisões posteriores da Biblioteca de Suporte. No momento, recomendamos o uso da biblioteca somente em conexão com a prévia para desenvolvedores do Google Cast.

Revisão 13

Maio de 2013

Mudanças na Biblioteca de Suporte v4:
Nova Biblioteca gridlayout v7:
  • GridLayout foi adicionado para oferecer compatibilidade com o objeto de layout GridLayout.
  • Adição de android.support.v7.widget.Space, que pode ser usado para criar áreas em branco em um objeto de layout GridLayout.

Revisão 12

Fevereiro de 2013

Mudanças na Biblioteca de Suporte v4:
  • Melhor comportamento de interação para ViewPager.
  • Correção de um bug que poderia fazer com que ViewPager selecionasse a página errada.
  • Correção do uso do método removeView() durante o layout de ViewPager.
  • Correção do problema com SearchViewCompat, em que o uso do botão "Voltar" para dispensar não apagava o texto da pesquisa Essa correção se aplica somente aos níveis 14 e mais recentes da API host.

Revisão 11

Novembro de 2012

Mudanças na Biblioteca de Suporte v4:

Revisão 10

Agosto de 2012

Mudanças na Biblioteca de Suporte v4:
  • Foi adicionado suporte a recursos de notificação introduzidos no Android 4.1 (API de nível 16) com adições a NotificationCompat.

Revisão 9

Junho de 2012

Mudanças na Biblioteca de Suporte v4:
  • Suporte à interface do usuário
    • Foi adicionado suporte a PagerTabStrip, oferecendo funcionalidades avançadas além de PagerTitleStrip
    • Correção de vários bugs para PagerTitleStrip e PagerTabStrip, incluindo a opção setAllCaps, alinhamento de título, melhorias na aparência, restrições de largura mínima e problemas de navegação por toque
    • Foi adicionado suporte a medianizes de página ViewPager, que ajudam a classe ViewPager a oferecer suporte à paginação para conteúdo com um grande intervalo de rolagem horizontal, como um mapa.
    • Correção de vários bugs para ViewPager, incluindo problemas de mudança de tamanho e conjunto de dados, posicionamento da página, interação do usuário, rastreamento de rolagem e problemas de navegação pelo teclado.
    • Foram corrigidos muitos bugs para Fragment, incluindo o processamento correto de onActivityResult() quando o fragmento de destino não existe mais, o envio de eventos de seleção para fragmentos invisíveis, o comportamento FragmentTransaction.replace() aprimorado e o processamento de estado para fragmentos que são movidos para fora da visualização.
    • Adição de compatibilidade com o método postOnAnimation() em ViewCompat.
    • Atualização de NavUtils para usar a funcionalidade de navegação Up do Android 4.1 (nível 16 da API), quando disponível.
  • Acessibilidade
    • As classes de suporte à acessibilidade foram atualizadas, incluindo AccessibilityNodeInfoCompat, para seguir as correções feitas no Android 4.1 (API de nível 16).
    • Adição de compatibilidade com ações de rolagem de acessibilidade em ViewPager.
  • Melhorias gerais

Revisão 8

Abril de 2012

Mudanças na Biblioteca de Suporte v4:
  • Correção das sinalizações de intent para objetos PendingIntent gerados por TaskStackBuilder.
  • Os atributos não utilizados foram removidos dos projetos de biblioteca gridlayout para garantir que a biblioteca possa ser compilada com o nível de API 7 e versões mais recentes.
  • Os arquivos .classpath e .project foram adicionados ao projeto de biblioteca gridlayout.

Revisão 7

Março de 2012

Mudanças na Biblioteca de Suporte v4:
  • Adição de ShareCompat, que fornece classes auxiliares para enviar e receber conteúdo para aplicativos de compartilhamento em redes sociais, incluindo novos metadados para atribuir dados compartilhados ao app de origem. Essa classe também oferece integração compatível com o novo ShareActionProvider no Android 4.0.
  • NavUtils e TaskStackBuilder foram adicionados para oferecer suporte à implementação das diretrizes de Design do Android para navegação. Essas adições incluem uma maneira de implementar o botão Para cima da barra de ações nas versões. Para conferir um exemplo de implementação desse padrão, consulte o exemplo AppNavigation em (<em><sdk></em>/samples/<em><platform></em>/AppNavigation).
  • NotificationCompat.Builder foi adicionado para fornecer uma implementação de compatibilidade da classe auxiliar Notification.Builder do Android 3.0 para criar notificações de sistema padronizadas.

Revisão 6

Dezembro de 2011

Observação:a referência das APIs da Biblioteca de Suporte agora está disponível com as referências do framework, por exemplo: android.support.v4.app.

Mudanças na Biblioteca de Suporte v4:
  • Mudanças no ViewPager:
    • Adição de compatibilidade com a visualização decorativa para ViewPager. As visualizações decorativas podem ser fornecidas como visualizações filhas de um pager no layout XML.
    • PagerAdapter.getPageTitle() foi adicionado para fornecer strings de título para páginas, que não têm título em cada página.
    • Adição de PagerTitleStrip, uma faixa de título não interativa, que pode ser adicionada como filha do ViewPager. Os desenvolvedores podem fornecer aparência e cor de texto, bem como dimensionamento de layout e informações sobre gravidade.
    • Atualização dos métodos PagerAdapter para usar objetos ViewGroup em vez de View para evitar a transmissão de classes em implementações de adaptador.
    • Atualização de ViewPager para usar o comportamento de rolagem rápida no estilo da tela de início.
    • Correções de bugs na interação com a interface do usuário e na automação de testes.
  • Suporte a fragmentos:
    • O método setStartDeferred() foi alterado para setUserVisibleHint(boolean).
    • Adição do início adiado para páginas fora da tela para melhorar o desempenho.
  • Suporte às APIs de acessibilidade:
    • Atualização dos métodos AccessibilityDelegateCompat para retornar listas vazias em vez de nulas.
    • Adição de novas APIs necessárias às amostras da v4.

Revisão 5

Dezembro de 2011

Mudanças na Biblioteca de Suporte v4:

Revisão 4

Outubro de 2011

Mudanças na Biblioteca de Suporte v4:
  • EdgeEffectCompat foi adicionado para oferecer suporte a EdgeEffect.
  • LocalBroadcastManager foi adicionado para permitir que aplicativos se registrem e recebam intents em um único app com facilidade, sem transmiti-los globalmente.
  • Foi adicionado suporte a ViewCompat para verificar e definir modos de rolagem para Views no Android 2.3 e mais recentes.
  • Mudanças nas APIs Fragment:
    • Adição de novas APIs para controlar a visibilidade de novos menus.
    • Adição de APIs de animação personalizadas.
    • Adição de APIs em FragmentActivity para reter dados de instâncias personalizadas e sem configuração.
    • Várias correções de bugs.
  • Correção de um bug Loader que causava problemas no cancelamento de AsyncTasks durante a execução no Froyo e em versões mais antigas da plataforma. O código de suporte agora usa a própria versão de AsyncTask para manter o mesmo comportamento em todas as versões da plataforma.

Revisão 3

Julho de 2011

Mudanças na Biblioteca de Suporte v4:
  • Adiciona compatibilidade com Fragment.SavedState
  • Adiciona MotionEventCompat para oferecer compatibilidade com APIs MotionEvent mais recentes
  • Adiciona VelocityTrackerCompat para oferecer compatibilidade com APIs de um VelocityTracker mais recente
  • Adiciona ViewConfigurationCompat para oferecer compatibilidade com APIs de um ViewConfiguration mais recente
  • Todas as novas APIs (disponíveis apenas na Biblioteca de Suporte) que permitem criar IUs com paginação horizontal, permitindo que os usuários deslizem para a esquerda e para a direita entre as visualizações de conteúdo. As classes que oferecem suporte a isso incluem:
    • ViewPager: um ViewGroup que gerencia o layout das visualizações filhas, entre as quais o usuário pode deslizar.
    • PagerAdapter: um adaptador que preenche o ViewPager com as visualizações que representam cada página.
    • FragmentPagerAdapter: uma extensão de PagerAdapter para virar entre fragmentos.
    • FragmentStatePagerAdapter: uma extensão de PagerAdapter para alternar entre fragmentos que usa o suporte da biblioteca para Fragment.SavedState.
Nova Biblioteca de Suporte da v13:
  • Inclui FragmentPagerAdapter e FragmentStatePagerAdapter para oferecer suporte à paginação horizontal.

    Eles são exatamente iguais às APIs adicionadas à Biblioteca de Suporte v4, mas dependem de outros componentes da plataforma no Android 3.2. Use essa biblioteca em vez da v4 se você estiver desenvolvendo para o Android 3.2 e versões mais recentes. Todas as outras APIs da biblioteca v4 já estão disponíveis com o nível da API 13.

Revisão 2

Maio de 2011

Mudanças na biblioteca v4:

Revisão 1

Março de 2011

Versão inicial com a Biblioteca v4.