;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Novo Android deve fazer bateria durar mais: o que esperar do evento de hoje

Unsplash
Imagem: Unsplash

De Tilt, em São Paulo

11/05/2022 04h00

O Google apresentará nesta quarta-feira (11) as novidades que o seu próximo sistema operacional, o Android 13, terá. O anúncio será feito na conferência anual de tecnologia da empresa: o Google I/O 2022, a partir das 14h (horário de Brasília), com transmissão ao vivo. Tilt fará a cobertura em tempo real do evento.

Além das expectativas para o novo Android, rumores indicam que a companhia pode lançar um relógio para concorrer com o Apple Watch e um novo celular. O evento, voltado para desenvolvedores, acontecerá hoje e amanhã (12) na Califórnia, Estados Unidos. Confira a seguir o que esperar do evento:

O Google I/O

O Google I/O 2022 será realizado no palco aberto do Anfiteatro Shoreline, em Mountain View, e poderá ser assistido pelo público virtualmente durante os dois dias de programação.

Ao que tudo indica, Sundar Pichai, presidente-executivo do Google, fará parte da apresentação de algumas novidades da empresa.

O primeiro dia de evento será destinado para o anúncio do novo sistema operacional Android e produtos. O segundo dia ficará mais concentrado na realização de workshops para desenvolvedores de aplicativos.

Os participantes poderão fazer perguntas sobre as novidades do novo sistema operacional Android 13, interagir com a comunidade de desenvolvedores e receber brindes virtuais.

Android 13

O Google irá lançar oficialmente a versão Android 13 de seu sistema operacional.

Não é esperada uma mudança radical em design e recursos, mas a atualização deve ser responsável por melhorar o desempenho de dispositivos com telas maiores, como celulares dobráveis e tablets.

Algumas das apostas que podem chegar com o Android 13 são:

  • Fim dos cartões SIM, substituindo pelo eSIM (sua versão digital).
  • Permissões para notificação: Agora deverão ser solicitadas por cada aplicativo. Isso facilita a vida de quem não aguenta mais notificações inúteis.
  • Bluetooth que consome menos bateria: acredita-se que o Android novo tenha a tecnologia Áudio Bluetooth Low Energy (BLE), que promete consumir cerca de 10% menos da bateria em relação ao sistema de transferência de sinais clássico. Ele transmite taxas de bits mais baixas sem perder qualidade.
  • Ícones temáticos de aplicativos específicos.
  • Melhor e para usuários multilíngues (não existem informações detalhadas sobre isso ainda).
  • A barra de busca do Google também vai mudar. Ao abrir a gaveta de apps, a barra agora vai ficar na parte inferior da tela, mais fácil de ar em celulares de telas grandes. Além disso, ela não servirá mais só fazer pesquisas no buscador ou procurar aplicativos. Em breve, também vai localizar informações e arquivos dentro dos apps ou grupos (como já acontece no iPhone).

Alerta de consumo

O novo Android 13 também vai alertar quando algum aplicativo que estiver em segundo plano e com pouca frequência de uso, estiver consumindo demais a bateria, para que você possa fechá-lo e fazer com que o aparelho dure mais tempo carregado.

Esse recurso já existe no Android há anos, mas antes alertava sobre qualquer aplicativo — até aqueles que você acabou de usar —, e aparecia toda hora. Agora a notificação será mais direcionada e não será tão frequente: uma vez que surgir na tela, ela só aparecerá de novo depois de 24 horas.

Relógio Pixel Watch

Pichai já chegou a indicar que novos dispositivos da família Pixel dariam as caras em breve. Uma das apostas é que o Google I/O deste ano apresente o relógio inteligente da marca, Pixel Watch

Acredita-se que o dispositivo deveria ter sido lançado no ano ado junto com os smartphones do Google Pixel 6 e Pixel 6 Pro.

Além do Pixel Watch, a empresa também deve anunciar a atualização Wear OS 3, versão do sistema operacional Android para smartwatches.

Pixel 6a

A apresentação de um novo celular também não está descartada. De acordo com rumores, é possível que o Google anuncie o telefone Pixel 6a, não tão avançado quanto os irmãos de 2020, mas com configurações competentes.

Um vazamento recente sugere, por exemplo, que o Pixel 6a não ará os mesmos recursos de câmera que os carros-chefe Pixel 6. Ainda assim, a expectativa é que esse telefone possa ser um dos aparelhos Android com melhor custo-benefício do ano.

Smart home

O Google vem fazendo muitas alterações em seu aplicativo Google Home, reformulando os elementos da interface do usuário para torná-lo mais fácil de usar, além de otimizar recursos para agilizar conexões entre aparelhos.

Entre as novidades recentes estão, por exemplo, a ampliação do Google Fast Pair, um recurso de pareamento rápido que facilita na hora de conectar dois dispositivos diferentes por Bluetooth.

A expectativa é que a empresa traga mais incrementos para o sistema, como uma nova tela com um design semelhante ao de um tablet.

Como assistir

A conferência Google I/O 2022 pode ser acompanhada gratuitamente por meio da página oficial do evento. Por lá é possível conferir a programação dos dois dias.

Algumas das palestras em destaque são: Novidades do Android, do Google Cloud (serviço em nuvem da empresa), do navegador Chrome, Flutter (para criação de aplicativos), entre outros.

*Com texto de Juliana Stern e Leticia Marques, em colaboração para Tilt.