Estou lendo sobre uma biblioteca de salas do Android. Vejo que eles mudaram o pacote android
para androidx
. Eu não entendi isso. Alguém pode explicar, por favor?
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
Mesmo isso está disponível com o android
pacote também.
implementation "android.arch.persistence.room:runtime:$room_version"
annotationProcessor "android.arch.persistence.room:compiler:$room_version"
- O que precisava empacotar novas bibliotecas de suporte em
androidx
vez deandroid
? - Caso de uso e fatores afetados em projetos existentes.
androidx.*
é uma hierarquia de pacotes para bibliotecas de suporte. Todos eles terão o mesmo pacote que chegamos à eraandroidx
(como componentes de arquitetura, outras bibliotecas de suporte).androidx
pacote do COREandroid
.Respostas:
AndroidX - Biblioteca de extensões Android
Da documentação do AndroidX
Necessidade do AndroidX
O AndroidX é uma biblioteca reprojetada para tornar os nomes dos pacotes mais claros. Portanto, a partir de agora, a hierarquia do Android será apenas para as classes padrão do Android, que vêm com o sistema operacional Android e outras bibliotecas / dependências farão parte do androidx (faz mais sentido). Então, a partir de agora, todo o novo desenvolvimento será atualizado no androidx.
com.android.support. **: androidx.
com.android.support:appcompat-v7: androidx.appcompat: appcompat com.android.support:recyclerview-v7: androidx.recyclerview: recyclerview com.android.support:design: com.google.android.material: material
Mapeamentos de artefatos completos para pacotes AndroidX
AndroidX usa versão semântica
Anteriormente,
support library
usava a versão SDK, mas o AndroidX usa oSemantic-version
. Ele será re-versão a partir de 28.0.0 → 1.0.0.Como migrar o projeto atual
No Android Studio 3.2 (setembro de 2018), há uma opção direta para migrar o projeto existente para
AndroidX
. Isso refatora todos os pacotes automaticamente.Antes de migrar, é altamente recomendável fazer backup do seu projeto.
Coloque essas bandeiras no seu
gradle.properties
Marque @ mapeamentos da biblioteca para obter o mesmo pacote AndroidX .
Verifique @ página oficial de Migrar para AndroidX
O que é o Jetifier?
Erros de migração
O suporte 28.0.0 é a última versão?
Do Android Support Revisão 28.0.0
Então vá com o AndroidX, porque o Android atualizará apenas o pacote androidx a partir de agora.
Leitura adicional
https://developer.android.com/topic/libraries/support-library/androidx-overview
https://android-developers.googleblog.com/2018/05/hello-world-androidx.html
fonte
enableJetifier=false
é o valor padrão. É falso quando você não o define. Isso significa que nenhuma das suas bibliotecas será reescrita no AndroidX.Migrate to AndroidX
Com base na documentação :
A estrutura de pacote reprojetada é incentivar bibliotecas menores e mais focadas. Você encontra detalhes sobre os mapeamentos de artefatos aqui .
Existem bibliotecas de suporte (contendo componentes e pacotes para compatibilidade com versões anteriores) denominadas "v7" quando o nível mínimo de SDK suportado é 14, a nova nomenclatura deixa claro o entendimento da divisão entre APIs incluídas na plataforma e as bibliotecas para desenvolvedores de aplicativos que são usadas em diferentes versões do Android. Você pode consultar o anúncio oficial para mais detalhes.
fonte
AndroidX é o projeto de código aberto que a equipe do Android usa para desenvolver, testar, empacotar, versão e liberar bibliotecas no Jetpack .
O AndroidX é uma grande melhoria para a Biblioteca de Suporte Android original . Como a Biblioteca de suporte, o AndroidX é enviado separadamente do sistema operacional Android e oferece compatibilidade com versões anteriores nas versões do Android. O AndroidX substitui completamente a Biblioteca de suporte, fornecendo paridade de recursos e novas bibliotecas.
Todos os pacotes no AndroidX vivem em um espaço para nome consistente, começando com a cadeia androidx. Os pacotes da Biblioteca de suporte foram mapeados para os pacotes androidx. * Correspondentes. Para um mapeamento completo de todas as classes antigas e construir artefatos para as novas, consulte a página Refatoração de Pacotes.
Ao contrário da Biblioteca de suporte, os pacotes AndroidX são mantidos e atualizados separadamente. Os pacotes androidx usam estritamente a
Semantic Versioning
partir da versão 1.0.0. Você pode atualizar as bibliotecas do AndroidX em seu projeto de forma independente.Todo o novo desenvolvimento da Biblioteca de suporte ocorrerá na biblioteca AndroidX. Isso inclui a manutenção dos artefatos originais da Biblioteca de Suporte e a introdução de novos componentes do Jetpack.
Usando AndroidX
Consulte Migrando para o AndroidX para saber como migrar um projeto existente.
Se você deseja usar o AndroidX em um novo projeto, defina o SDK de compilação como Android 9.0 (nível de API 28) ou superior e defina os dois sinalizadores de plug-in do Android Gradle a seguir como verdadeiros em seu
gradle.properties
arquivo.android.useAndroidX
: Quando definido como true, o plug-in Android usa a biblioteca AndroidX apropriada em vez de uma biblioteca de suporte. O sinalizador é falso por padrão, se não for especificado.android.enableJetifier
: Quando definido como true, o plug-in do Android migra automaticamente as bibliotecas de terceiros existentes para usar o AndroidX reescrevendo seus binários. O sinalizador é falso por padrão, se não for especificado.Para mapeamentos de artefatos, consulte este
fonte
Este artigo Android Jetpack: o que significam os anúncios recentes para a Biblioteca de suporte do Android? explica bem
fonte
Apenas alguns bits do meu lado para todas as respostas disponíveis
Necessidade do AndroidX
Com a convenção de nomenclatura atual, não está claro quais pacotes estão incluídos no sistema operacional Android e quais estão incluídos no APK do seu aplicativo ( Kit de Pacotes Android ). Para esclarecer essa confusão, todas as bibliotecas desagrupadas serão movidas para o espaço para nome androidx. * Do AndroidX, enquanto a hierarquia de pacotes android. * Será reservada para pacotes fornecidos com o sistema operacional Android.
Mais do que isso,
Inicialmente, o nome de cada pacote indicava o nível mínimo de API suportado por esse pacote, por exemplo support-v4 . No entanto, a versão 26.0.0 da Biblioteca de Suporte aumentou a API mínima para 14 , então hoje muitos dos nomes de pacotes não têm nada a ver com o nível mínimo de API suportado. Quando os pacotes support-v4 e support-v7 têm uma API mínima de 14, é fácil ver por que as pessoas ficam confusas !. Portanto, agora com o AndroidX, não há dependência no nível da API.
Outra mudança importante é que os artefatos do AndroidX serão atualizados de forma independente, para que você possa atualizar bibliotecas AndroidX individuais em seu projeto, em vez de precisar alterar todas as dependências de uma só vez. As mensagens frustrantes de “ Todas as bibliotecas com.android.support devem usar exatamente a mesma especificação de versão ” devem se tornar uma coisa do passado!
fonte
Eu conheci o AndroidX neste vídeo do Android Dev Summit . A sumarização é -
fonte
É o mesmo que as versões de suporte AppCompat, mas possui menos confusão das versões v4 e v7, portanto, é de muita ajuda o uso dos diferentes componentes dos elementos XML do Android.
fonte
androidx
irá substituirsupport library
depois28.0.0
. Você deve migrar seu projeto para usá-lo.androidx
usosSemantic Versioning
. O usoAndroidX
não será confundido pela versão apresentada no nome da biblioteca e no nome do pacote. A vida se torna mais fácil[AndroidX e compatibilidade de suporte]
fonte
AndroidX é o projeto de código aberto que a equipe do Android usa para desenvolver, testar, empacotar, versão e liberar bibliotecas no Jetpack.
Após horas de luta, resolvi incluindo o seguinte em app / build.gradle:
Coloque essas bandeiras em seu gradle.properties
Ao migrar no Android studio, o arquivo app / gradle é atualizado automaticamente com as implementações da biblioteca de correções da biblioteca padrão
Consulte: https://developer.android.com/jetpack/androidx/migrate
fonte
O Android fornece alguns conjuntos de bibliotecas diferentes. Um é chamado de Biblioteca de suporte Android e o outro é chamado AndroidX. Selecionar "Usar artefatos android. *" Indica que queremos usar o AndroidX.
fonte