3 aplicativos Android para melhorar a performance do seu smartphone

Aparelhos com acesso root, tem inúmeras possibilidades. Alterar a resposta da CPU à carga de trabalho é uma delas. É aqui que entram os aplicativos de controle da CPU.
Alguns apps, gratuitos ou não, disponíveis no Google Play permitem alterar a velocidade ou frequência do clock da CPU. Melhor do que isto: permitem balancear a performance geral do aparelho com a economia da bateria (muitas vezes, dois “inimigos irreconciliáveis”) — através da escolha de um governor e de um scheduler.
Aqui, vou apresentar a minha pequena lista de preferidos – o que não quer dizer que sejam os melhores. Sinta-se à vontade para indicar os seus preferidos na seção de comentários.

No-frills CPU Control

nofrillsTal como as outras, de que vamos falar aqui, esta ferramenta pode ser usada para ajustar rapidamente as frequências do clock da CPU, os governors e os schedulers no seu aparelho.
Com ele, é possível ajustar arbitrariamente a velocidade máxima e a mínima, ou deixar o aparelho sempre em velocidade máxima – para isto, basta ajustar a velocidade mínima e a máxima para o valor mais alto possível.
A versão que eu usei, gratuita, não tem a possibilidade de overclocking que, para quem mora em uma cidade quente, não é sempre uma boa ideia.
É compatível com vários aparelhos – HTC, Samsung, Motorola, LG, Huawei, ZTE etc.

AnTuTu CPU Master

Antutu cpu clockEsta ferramenta também altera as velocidades da CPU e do processador gráfico (GPU – Graphics Processing Unit).
A versão paga possibilita tanto o overclocking quanto o underclocking — e, antes que alguém me pergunte “por que diabos você iria querer fazer underclocking?”. Uma necessidade premente de conservar a bateria do aparelho, por um longo tempo, me parece ser um cenário apropriado para esta atitude. Óbvio que, neste caso, o aparelho só serviria para executar as suas funções mais básicas.
Também permite selecionar os governors e os schedulers no seu aparelho.

SetCPU

setcpu cpu control governorCom a promessa de adicionar a possibilidade de controlar vários núcleos nas novas versões este app é bastante completo e democrático, por funcionar em uma boa variedade de aparelhos e ROMs – eu usei a versão 3.1.2.
Como os outros, pode aumentar a performance do seu aparelho (seja um smartphone ou um tablet) ou conservar a bateria.
Para conseguir uma relação eficiente entre o desempenho e o consumo de energia, ele conta com mais de 20 governors à escolha do usuário – e ainda permite que você faça um ajuste fino no seu governor.
O aplicativo dispõe também de um painel para controle da voltagem – disponível apenas para alguns kernels, que tenham incluído suporte à undervolting. Este procedimento é usado para reduzir o consumo da bateria.

finalmente…

Especialistas enfatizam que a melhor forma de obter performance do aparelho, sem drenar desnecessariamente a bateria é a seleção de um governor adequado ao seu estilo de vida. Este é um recurso presente em todos estes aplicativos.
Divirta-se!

Como alterar a velocidade do processador no Android — ajuste dos governors

Neste artigo, vou explicar o que é um governor e como ele afeta o desempenho do seu aparelho.
Você irá conhecer e entender mais de 20 governors disponíveis para aparelhos Android – sejam tablets ou smartphones. A relação de governors, disponíveis em seu aparelho pode ser extensa e depende dos recursos de hardware presentes nele.

O que é exatamente um governor?

Basicamente, é um “gestor” de recursos do(s) processador(es) de seu aparelho. Cada governor segue um conjunto próprio de políticas que adaptam a frequência do clock da CPU e da GPU a certas condições – elevando-a ou diminuindo-a. Há dezenas de governors, cada qual projetado para um determinado perfil de uso – alguns te dão maior performance, outros maior duração da bateria.

Android CPU Painel de controle
clique para ampliar
O assunto tem ganhando mais importância, entre os usuários de dispositivos móveis por que tem grande impacto na fluidez da interface gráfica dos smartphones e tablets e na duração da carga da sua bateria. O que pode te dar um ganho de eficiência é escolher o governor, enquanto conjunto de ajustes, que melhor  se acomode ao seu estilo de vida. Neste artigo, vamos conhecer os gestores mais comuns.

Como alterar o meu governor

Você não pode alterar o governor do seu dispositivo, como usuário normal. Você precisará ser root para isto. Além do quê, precisará ter uma ROM e um aplicativo que te dê acesso a este mecanismo do sistema.
Em seguida, vamos relacionar os governors mais comuns e seus efeitos no seu aparelho.

OnDemand

Este governor tem um gatilho sensível, que impulsiona o clock à velocidade máxima definida pelo usuário. À medida que a demanda por recursos do processador diminui, a frequência do clock vai se reduzindo até chegar ao mínimo definido pelo usuário.

O perfil de gestão de recursos OnDemand oferece excelente fluidez à interface por causa de sua tendência à alta freqüência – mas tudo tem um preço. Este governor, pode ter um efeito relativamente negativo sobre a duração da bateria, se comparado a outros. Não se esqueça: quanto mais alta a frequência do clock, maior é a velocidade do sistema e menor será a duração da sua bateria.

Sua principal característica é elevar o clock ao seu nível máximo, assim que uma nova atividade é detectada, para garantir a responsividade do sistema.

O OnDemand é comumente escolhido por fabricantes de smartphones e é padrão em quase todos os kernels (Android e Linux), porque é bem testado, confiável e praticamente garante o desempenho mais suave possível para o telefone. Isto é assim porque os usuários são muito mais propensos a reclamar do desempenho do que das poucas horas de vida extra (da bateria) que outro governor poderia ter-lhes concedido.

OndemandX

Basicamente, é um OnDemand com maior atenção para os recursos de suspend e wake, portanto, é um pouco mais econômico em relação à bateria. Ao apagar das luzes da tela, a frequência máxima é fixa em 500 Mhz. Tem boa interação com o scheduler SIO.

Performance

Aqui, o clock é fixado na frequência máxima possível. Embora pareça ser uma má ideia (por que drena a carga da bateria), há evidências que sugerem que usar o aparelho com o clock máximo acelera o race-to-idle — processo no qual um aparelho completa uma tarefa e retorna a CPU a um estado de eficiência extrema de economia de energia. Mas esta tese ainda requer testes e o perfil requer um kernel que implemente o C-states (estado de baixo consumo) na CPU.

setcpu, clock speed
Clique para ampliar

Powersave

Oposto do Performance. Este governor fixa o clock no nível mais baixo, determinado pelo usuário. O seu objetivo é a economia de energia.

Conservative

Orienta o aparelho a usar o menor clock, sempre que possível. Em outras palavras, uma carga de tarefas precisa ser maior e mais persistente para “convencer” o governor a aumentar a velocidade do clock da CPU.

A depender do modo como o programador o implementou ou da velocidade mínima de clock, definida pelo usuário, este pode ser um tanto ruim na performance. Por outro lado, isto pode ser bom para quem precisa economizar na bateria. Às vezes, ele é chamado de slow OnDemand – o que pode ajudar a ter uma ideia melhor da sua funcionalidade.

Userspace

Excepcionalmente raro no mundo móvel, este é mais presente em servidores ou PCs. Ele permite que programas executados pelo usuário determinem a frequência em que a CPU vai operar.

Min Max

Este é o “ou oito, ou oitenta”. Com ele, a CPU opera no clock máximo ou no mínimo – baseado na carga de exigências.

Interactive

Este governor foi projetado para dar mais prioridade às tarefas na Interface do Usuário (seus apps) – ele aparenta ser mais responsivo que o tradicional OnDemand. Pode-se dizer que ele foi feito para quem deseja obter maior suavidade na interação entre os aplicativos.

Semelhante ao OnDemand, o Interactive faz um escalonamento dinâmico da velocidade do clock em resposta à carga de trabalho imposta à CPU pelo usuário – e é aí que as similaridades terminam. Este modo de operação é significantemente mais sensível que o OnDemand, uma vez que é mais rápido na escalada pra frequência máxima.

Diferente do OnDemand, no qual as escalas da velocidade do clock são determinadas pela fila de trabalhos, o Interactive faz o escalonamento do clockspeed ao longo de um temporizador definido internamente pelo desenvolvedor. Em outras palavras, se uma aplicação demanda a velocidade máxima do clock (inserindo uma carga de trabalho de 100% na CPU), ainda é possível executar outra tarefa do usuário antes do governor voltar a reduzir a frequência da CPU. Isto pode reduzir o sobe e desce da frequência. Em função deste temporizador, o Interactive está melhor preparado para usar clockspeeds intermediários – fato que também beneficia a duração da carga da bateria. Contudo, já que este perfil se permite permanecer mais tempo na frequência máxima da CPU (em benefício da performance), os ganhos na vida útil da carga da bateria acabam não sendo tão significativos em relação ao perfil OnDemand.

Para encurtar a estória, o Interactive oferece uma performance melhor do que o OnDemand — e há quem diga que, de todos, é o melhor governor — e uma diferença desprezível na economia de energia.

InteractiveX

Criado pelo desenvolvedor do kernel Imoseyon, o InteractiveX se baseia fortemente no Interactive, como já era de se esperar, com um timer ajustado para prover uma relação melhor entre consumo e performance do aparelho.

A característica que define InteractiveX, contudo, é o fato de que ele fixa a frequência da CPU no valor mínimo definido pelo usuário, quando a tela é apagada.

Smartass

Baseado nos conceitos do Interactive – o Smartass (ou espertinho) foi totalmente reescrito, com algumas adições, por erasmux, para usar no seu kernel Android. Popular por sua habilidade no uso do mecanismo de suspensão onboard do Android. Tal como o Conservative, é suave para aumentar a frequência do clock.

É consenso entre alguns especialistas que ele faz bem o que ele se propõe. Sua performance é equivalente à do “velho” mínimo/máximo e, há quem diga, é um pouco mais responsivo – ou seja, reage rápido às mudanças no ambiente.

É difícil quantificar, com precisão, o consumo energético do aparelho rodando neste perfil. Mas ele permanece, a maior parte do tempo, em baixas frequências – o que indica baixo consumo.

Outra característica deste perfil é que ele fixa a frequência máxima em 352Mhz — ou, no caso de você ter definido uma frequência mínima acima de 352, o Smartass vai respeitar a sua definição. Pra exemplificar, Se você definiu as velocidades máxima/mínima em 624/152, ele vai entrar no modo de espera (standby ou sleep mode) em 352/152.

Durante o dia, o seu aparelho passa mais tempo em standby?

SmartassV2

A segunda versão do Smartass também é a favorita entre muitas pessoas. Este governor visa uma “frequência ideal” e, quando precisa, a alcança agressivamente – a partir daí, a escalada é mais suave.

Samsung GT S5360 clock frequencias
Opções de frequências de clock.

Tela ligada e tela desligada têm frequências de operação diferenciadas — estes eventos são chamados awake_ideal_freq e sleep_ideal_freq, internamente.

Este governor é capaz de reduzir o clock rapidamente para atingir a sleep_ideal_freq, assim que a tela é desligada. E sobe rapidamente em direção ao awake_ideal_freq, quando a tela é ligada.

Diferente do Smartass, não há limite máximo de frequência, quando a tela está desligada. Desta forma, todo a faixa de frequência disponível é usada pelo governor no processo de mudança entre tela desligada/ligada.

Aqui, o objetivo é balancear a performance e o consumo da bateria e, dependendo do poder de processamento do seu aparelho, ninguém vai perceber o lag quando sair do standby.

Conheça o perfil Scary (assustador!), na próxima página — um caso em que o nome não corresponde à “pessoa”.

Como tornar o seu sistema Android mais eficiente — ajuste do I/O scheduler.

Neste artigo, vamos tratar dos ajustes do I/O scheduler – que, numa tradução livre, quer dizer agendador ou programador de E/S (Entrada/Saída de dados), que também ajuda a melhorar a performance geral do aparelho — se você conseguir ajustá-lo ao seu perfil de uso.
Diferente dos governors, os schedulers não atuam nos processadores, mas direcionam as prioridades no fluxo de dados do seu dispositivo.

O que é I/O Scheduler

De acordo com a Wikipedia, é o método que os sistemas operacionais usam para decidir em que ordem os blocos de E/S serão submetidos aos dispositivos de armazenamento — motivo pelo qual são chamados, às vezes, disk scheduling (agendamento de disco).

Os perfis de I/O Schedulers

Android CPU Painel de controle
clique para ampliar

Como já foi dito, este gestor determina as prioridades do fluxo de dados no seu aparelho em relação às mídias de armazenamento. Há diversos perfis possíveis de gestão que visam alcançar estes 4 propósitos:

  • Minimizar o uso do disco rígido, cartão etc;
  • Priorizar as requisições de E/S vindos de processos;
  • Reservar largura de banda para rodar processos nas mídias de armazenamento;
  • Garantir que certas requisições sejam satisfeitas antes que “prescrevam”.

Portanto, de forma resumida, o Kernel controla o acesso aos dispositivos de armazenamento usando o scheduler, que tenta se pautar pelas seguintes diretrizes:

  • Justiça – permitir que cada processo tenha o seu tempo de acesso aos dispositivos de armazenamento;
  • Performance – tenta atender as requisições mais próximas à posição atual de leitura/gravação na mídia, uma vez que ali a busca será mais rápida;
  • Tempo real – tenta garantir a rapidez para atender cada requisição, no momento em que ela chega.

Dito isto, vamos analisar cada perfil do scheduler e a que eles se propõem, além de suas vantagens e desvantagens. De posse destas informações, você poderá escolher aquele que mais se adéqua ao seu estilo pessoal de uso do smartphone.

Anticipatory

noop deadline android schedulers
Clique para ampliar

Baseia-se no fato de que a velocidade de acesso aos dispositivos de armazenamento é muito lenta, que as operações de escrita podem ocorrer a qualquer momento e há sempre um processo querendo realizar uma operação de leitura.

Portanto, prioriza as operações de leitura em relação às de escrita. Ele antecipa operações de leitura síncrona.

Vantagens
  • As requisições para leitura nunca ficam “morrendo à míngua”;
  • Tão bom quanto o noop quanto à performance de leitura em mídias flash;
Desvantagens
  • O seu trabalho de “adivinhação” nem sempre é confiável;
  • Reduzida velocidade de escrita em discos de alta performance.

BFQ

Em vez de fatias de tempo alocados pela CFQ, a BFQ propõe “orçamentos”. O disco é oferecido a um processo ativo até que seu orçamento (número de setores alocados) expire. O BFQ determina grandes previsões de recursos a tarefas que não são de leitura. O orçamento associado a um processo varia de acordo com seu comportamento.

Vantagens
  • Há usuários que concordam que é muito bom para transferência de dados via USB;
  • Acredita-se que seja o melhor scheduler para gravação de videos de alta definição e streaming de video;
  • É considerado um I/O scheduler acurado;
  • Atinge cerca de 30% mais rendimento.
Desvantagens
  • Não é o melhor para benchmarking;
  • Orçamento mais elevado atribuído a um processo pode afetar a interatividade e aumento da latência

CFQ

Sigla para Completely Fair Queuing, é um scheduler que mantém uma fila de E/S escalável por processo e procura distribuir o fluxo igualmente entre todas as requisições.
No Linux, o CFQ é o scheduler padrão, desde a versão do kernel 2.6.18 (setembro de 2006).

Vantagens
  • Conhecido por oferecer uma performance de E/S balanceada;
  • Mais fácil de ajustar;
  • Se destaca em sistemas multiprocessados;
  • Depois do deadline, é o melhor sistema para lidar com bancos de dados.
Desvantagens
  • Alguns usuários têm reportado que as buscas nos dispositivos de armazenamento tomam mais tempo, com o uso do CFQ – o que pode ocorrer em função do scheduler atribuir a mesma prioridade a todas as operações de E/S e, portanto, nenhuma prioridade seria concedida à buscas nas outras mídias;
  • O Jitter (pior caso de atraso) pode ser bastante alto, por causa do número de tarefas competindo pelo acesso ao disco.

SIO

Sigla que corresponde a Simple I/O scheduler. Corresponde a um perfil que tem como objetivo produzir o mínimo de sobrecarga ao sistema para manter baixo o nível de latência para servir as requisições de E/S.

Vantagens
  • Simples – confiável, portanto;
  • Um mínimo de requisições que “morrem de inanição”.
Desvantagens
  • Comparado a outros schedulers, a velocidade de leitura aleatória é baixa em drives flash;
  • A leitura sequencial em drives flash também não muito boa.

V(R)

A diferença deste schedulers para outros é que as requisições síncronas e assíncronas não são tratadas separadamente. Em vez disto, um prazo “imparcial” para sua execução é imposto. A próxima requisição a ser executada é a que estiver mais próxima.

Vantagens
  • Há casos em que é melhor para benchmarking.
Desvantagens
  • Flutuações na performance pode resultar em desempenho abaixo da média;
  • Menos confiável/Mais instável.

Na próxima página, vamos falar sobre os 2 últimos e mais usados schedulers: o Noop e o Deadline.

Use o gstreamer para fazer resampling de arquivos mp3 no Ubuntu

É possível reduzir ainda mais os tamanhos dos arquivos mp3, com pouca perda da qualidade. A utilidade deste procedimento é fazer com que uma quantidade maior deles caiba em dispositivos reprodutores antigos, com capacidade de armazenamento muito limitada.
Se você não se importa em ouvir toda a sua coleção de músicas em um dispositivo de som, com qualidade de rádio, esta é uma ótima ideia.

iPods mp3 player
Coleção de iPods

No primeiro post sobre este tema mostramos como fazer este trabalho através do LAME.
É claro que a redução tem um custo — a consequente redução da qualidade do áudio do arquivo. A gente aposta na possibilidade de esta queda na qualidade ser imperceptível para a maioria das pessoas e no aproveitamento mais eficiente do espaço na mídia de armazenamento. Houve caso de triplicar a quantidade de arquivos dentro de um pendrive antigo.
Atualmente, temos outras ferramentas que também podem fazer o trabalho e é possível criar um script de automação da tarefa bem menor e mais enxuto do que o do artigo anterior.
Vamos ver aqui como isto é possível.

Instalação das ferramentas de trabalho

Aqui vamos usar o GStreamer para fazer a conversão e resampleamento (resampling) dos arquivos mp3. A principal vantagem dele, em relação ao LAME, é que ele retém as informações id3 dos arquivos. Assim, podemos fazer um único script e menor.
Abra um terminal (Ctrl + Alt + T, no Ubuntu) e digite o comando que segue, para instalar gstreamer-tools:

sudo apt-get install gstreamer-tools

Aguarde alguns minutos enquanto o pacote é instalado e prossiga.

Como criar um script de conversão de arquivos de áudio mp3

Sugiro criar um diretório para scripts e programas no seu /home:

mkdir ~/bin
cd ~/bin

Agora abra o seu editor de textos preferido, copie e cole o script abaixo dentro dele:

#!/bin/bash
#
# gshrink - Um script para resamplear todos os arquivos mp3 do
# diretorio. Este script depende do pacote gstremar-tools
# Os créditos do script original:
# Elder-Geek --> http://elder-geek.blogspot.com.br
######################################################
# Lita os arquivos mp3 no diretorio atual
ls *.mp3 > mp3_list
ls *.MP3 >> mp3_list
# Analisa a lista de arquivos mp3 e substitui os espaços por caracteres de escape
sed -i 's: :\\ :g' mp3_list
# Verifica se o subdiretorio resample já existe. Se não, cria.
if
  test -e ./resample
then
  echo "diretorio/arquivo resample ja existe - apagar? (S/n)"
  read reply
  if
    [ "$reply" != "n" ]
  then
    rm -r resample
    mkdir resample
  else
    exit
  fi
else
  mkdir resample
fi
# Resampleia cada mp3 e grava as tags
# CBR bitrate bitrate=128
# VBR quality quality=9
  cat mp3_list |while read song
do
  echo "$song"
  gst-launch filesrc location= \"$song\" ! decodebin2 ! audioconvert ! lamemp3enc target=bitrate bitrate=128 ! id3v2mux ! filesink location=\"resample/$song\"
done
#clean up
if
  test -e mp3_list
then
  rm mp3_list
fi
if
  test -e tag2.txt
then
  rm tag2.txt
fi
exit

Uma última dica

Para quem fez backup de todos os seus CD’s e guardou cada coletânea e álbum em pastas diferentes, recomendo executar o script dentro de cada pasta de arquivos mp3 – o que vai criar um subdiretório adicional resample com os mesmos arquivos da pasta pai, só que resampleados e reduzidos, prontos para ir pra qualquer lugar.

Como resolver problemas com o GPS no RunKeeper

O RunKeeper é um aplicativo (app) de monitoramento de suas atividades físicas. Similar a outros, como Runtastic, Nike+, Endomondo etc. As dicas dadas aqui podem ser aproveitadas, sem problemas, em outros apps desta mesma categoria.

O GPS é do seu celular

runkeeper-test-android-peteÉ importante entender que o software de monitoramento recebe informações do software que controla o hardware do GPS no seu aparelho. Aparelhos diferentes, têm softwares e hardwares relacionados ao Sistema de Posicionamento Global (GPS) diferentes. Alguns têm um conjunto de melhor qualidade, outros não.
Ainda assim, tudo pode e deve funcionar bem e nós vamos abordar alguns dos problemas mais comuns e que podem ser resolvidos de forma simples.

Ative o GPS primeiro

Ativar GPS no RunKeeperAntes de iniciar o aplicativo de monitoramento, ligue o GPS do seu aparelho. Nada impede que você faça o contrário. Mas é uma forma mais segura de permitir que o aplicativo se conecte ao hardware do sistema de posicionamento via satélite.

Tenha paciência

A conexão com o satélite demora um pouco. Esta demora pode variar em função do tipo de hardware que você tem instalado em seu smartphone. Ou seja, a marca e o modelo do seu aparelho pode influenciar.

Antecedência

Experimente ativar o GPS antes de sair de casa para ir treinar. Você pode ligar o RunKeeper também. Quando você chegar ao local do treino, tudo já estará sincronizado e funcionando – bastará tocar o botão “iniciar a atividade”.
Se você vai a pé até o local onde você pratica suas atividades, melhor ainda. Ao ar livre, durante a caminhada, o GPS vai funcionar melhor.

Concluindo

Mais sobre o RunKeeper

Evite ligar o GPS e o RunKeeper “em cima da hora”, pouco antes do exercício. Faça isto sempre com alguns minutos de antecedência à sua atividade.
Tenha um bom treino!