Em outra postagem do blog, discutimos nossa intenção de mudar para um novo modelo de governança do projeto AMP.
Para navegadores que restringem o acesso a cookies de terceiros, o AMP Linker é uma nova maneira de manter as sessões dos usuários em sincronia. Consulte nossa postagem do blog com o comunicado para ver mais detalhes e saber como fazer a implementação nas suas páginas da Web.
O elemento <amp-next-page> (agora disponível como um experimento) é compatível com o recurso conhecido por alguns como "rolagem infinita" de artigos. Os desenvolvedores podem especificar até três URLs para abrir quando o usuário chegar a um determinado ponto na rolagem da página, e esses documentos serão carregados diretamente em linha.
Lançamos o <amp-orientation-observer>, que permite a sincronização de baixo nível entre a orientação do dispositivo do usuário e os quadros em uma determinada animação. Com ele, você pode criar vários efeitos, como movimentar levemente o plano de fundo da página, deslocar imagens para os lados ou avançar a animação ao inclinar o dispositivo. É possível até criar um espaço 3D em camadas ao mover vários componentes sobrepostos de uma cena com taxas de deslocamento diferentes.
O <amp-image-slider> permite que o usuário compare duas imagens como sobreposições. Este recurso pode ser especialmente útil para fotos do tipo "antes e depois". Leia mais sobre o componente na nossa postagem do blog recente.
Agora o Google Ad Manager permite que os editores exibam publicidade de venda direta nas próprias histórias AMP. Leia mais sobre isso.
* * *
Agradecemos à comunidade de desenvolvimento da AMP pelo trabalho e pelo feedback. Como sempre, se tiver problemas ou sugestões de recursos, fale conosco.
Postado por Eric Lindley, gerente de produtos do Projeto AMP no Google
PRIV é qualquer destino cujos tamanhos disponíveis usam StreamConfigurationMap.getOutputSizes(Class) sem formato direto visível pelo aplicativo
YUV é uma superfície de destino que usa o formato ImageFormat.YUV_420_888
JPEG é o formato ImageFormat.JPEG
RAW é o formato ImageFormat.RAW_SENSOR.
Para a coluna de tamanho máximo, PREVIEW é o tamanho mais indicado para a resolução da tela do dispositivo, ou para 1080p (1.920 x 1.080), o que for menor. RECORD indica a resolução de gravação máxima oferecida pelo dispositivo da câmera, como determinado por CamcorderProfile. E MAXIMUM representa a resolução de saída máxima do dispositivo da câmera para determinado formato ou destino de StreamConfigurationMap.getOutputSizes(int).
O nível de hardware compatível é uma descrição geral dos recursos do dispositivo da câmera, resumindo diversas funcionalidades em um campo. Cada nível agrega outros recursos ao anterior e é sempre um superconjunto invariável do nível anterior. A ordem é LEGACY < LIMITED < FULL < LEVEL_3.
Postado por Matt Henderson, gerente de produtos do Google Play
Hoje, estamos dando o pontapé inicial no Playtime, nossa série anual de eventos mundiais que vai receber mais de 800 participantes, em Berlim e São Francisco, para compartilhar insights de especialistas de todo o mundo e mostrar as últimas atualizações dos nossos produtos. Essa série será seguida de eventos em São Paulo, Singapura, Taipei, Seul e Tóquio.
No Google Play, continuamos investindo em ferramentas que facilitem o desenvolvimento e a distribuição de aplicativos a um público global. Listamos abaixo algumas das atualizações mais incríveis que estamos anunciando hoje:
O Android App Bundle é o novo formato de publicação do Android, com o qual você pode criar uma experiência incrível com mais facilidade em um aplicativo menor. Aplicativos menores têm maior taxa de conversão. Nossas pesquisas de usuários mostram que o tamanho do aplicativo é o principal motivo das desinstalações. Com a modularização do Android App Bundle, você também pode oferecer recursos sob demanda em vez de no momento da instalação, reduzindo ainda mais o tamanho do aplicativo.
Milhares de pacotes de aplicativo já estão em produção com uma redução de tamanho média de 35%. Hoje, estamos anunciando atualizações que oferecem mais motivos para você migrar para o nosso pacote.
Para saber mais sobre o Android App Bundle, recursos dinâmicos e todos os benefícios que você ganha criando um aplicativo menor e modular, leia nosso artigo no Medium.
Ouvimos sempre o seu feedback para facilitar a criação de aplicativos instantâneos. Aumentamos recentemente o limite de tamanho para 10 MB para permitir o recurso "EXPERIMENTE AGORA" da Play Store e removemos a exigência de URL. Para os desenvolvedores de jogos, fizemos uma parceria com o Unity para criar um plug-in do Google Play Instant e incorporamos instantâneos diretamente no novo Cocos Creator.
Agora, estamos usando o Android App Bundle para resolver um dos principais problemas na criação de aplicativos instantâneos. Antes, era preciso publicar um aplicativo instantâneo e um aplicativo instalável. Com o Android Studio 3.2, era possível publicar pacotes com a característica instantânea, mas ainda era obrigatório publicar um pacote de aplicativo principal.
Agora, você pode esquecer essa história de manter códigos distintos. Com a versão beta do Android Studio 3.3, o desenvolvedor pode publicar um único pacote de aplicativo e classificar o pacote, ou um módulo específico, como instantâneo. O pacote de aplicativo unificado é o futuro das experiências instantâneas nos aplicativos. Esperamos que você experimente esse novo recurso.
O Google Play Instant já está disponível para títulos premium e em campanhas de pré-cadastro. Assim, as pessoas podem experimentar o jogo antes do lançamento, gerando expectativa adicional. Todos os dias, o Google Play Instant recebe novos jogos e aplicativos. Estamos entusiasmados por receber o Umiro, da Devolver Digital, e o Looney Tunes World of Mayhem, da Scopely, como alguns dos primeiros a aproveitar os benefícios desses novos recursos.
O Play Console oferece duas ferramentas para ajudar você a monitorar o desempenho e aumentar a qualidade dos aplicativos. O relatório pré-lançamento executa os aplicativos em dispositivos reais presentes no Firebase Test Lab e gera metadados úteis para ajudar a identificar e corrigir problemas antes que os aplicativos passem para o ambiente de produção. O Android Vitals ajuda a monitorar o desempenho e a qualidade dos aplicativos em dispositivos de usuários do mundo real.
Agora, estamos juntando os dois para oferecer insights mais relevantes e objetivos. Sempre que uma falha do mudo real ocorrer no Android Vitals e também durante a execução de um relatório pré-lançamento, você obterá todos os metadados extras do relatório pré-lançamento no painel do Android Vitals para aumentar a eficácia da depuração. Isso funciona nos dois sentidos. Portanto, se uma falha que já acontece no mundo real ocorrer nos relatórios pré-lançamento, você poderá ver o impacto atual no Android Vitals, o que ajudará você a priorizar os problemas destacados pelos relatórios pré-lançamento.
Fizemos muitas mudanças para facilitar o gerenciamento de aplicativos e do negócio como um todo no Play.
Estamos muito empolgados com o lançamento do Academy for App Success, que contém novos cursos interativos para ajudar os desenvolvedores a aproveitarem tudo o que o Play Console tem a oferecer, entender políticas do Play e utilizar as práticas recomendadas para aumentar a qualidade e melhorar o desempenho do negócio. Esse novo programa é gratuito e permite monitorar o progresso do aprendizado com testes e comprovações de habilidades para demonstrar o seu conhecimento. No momento, o programa está disponível apenas em inglês. Novo conteúdo e cursos traduzidos serão adicionados em breve.
Esta postagem foi útil para você? Avalie!
★ ★ ★ ★ ★
LDFLAGS += -plugin-opt=-inline-threshold=0 \ -plugin-opt=-unroll-threshold=0
CONFIG_LTO_CLANG=y CONFIG_CFI_CLANG=y
CFI failure (target: [<fffffff3e83d4d80>] my_target_function+0x0/0xd80): ------------[ cut here ]------------ kernel BUG at kernel/cfi.c:32! Internal error: Oops - BUG: 0 [#1] PREEMPT SMP … Call trace: … [<ffffff8752d00084>] handle_cfi_failure+0x20/0x28 [<ffffff8752d00268>] my_buggy_function+0x0/0x10 …
static int __nocfi address_space_conflict() { void (*fn)(void); … /* branching to a physical address trips CFI w/o __nocfi */ fn = (void *)__pa_symbol(function_name); cpu_install_idmap(); fn(); cpu_uninstall_idmap(); … }