Como é que o Android gere as frequências do processador?
Com a grande poliferação do Android é importante percebermos como é que o nosso telemóvel escolhe as frequências do processador conforme as tarefas que vão sendo realizadas. Esta regulação é feita ao nível do Kernel e é ao mesmo tempo uma benção como uma maldição pois tão depressa melhora a bateria dos nossos dispositivos como a causa gastos de energia excessivos.
Vamos então conhecer as drivers responsáveis e como é que funcionam.
O Android é composto por várias camadas de software até chegarmos ao nível físico, o hardware. O Kernel é a camada mais baixa a nível do software e faz a ligação entre o userspace (ambiente de trabalho por exemplo) e os componentes do dispositivo. É como se fosse o motor de um carro. Sem um Kernel não haveria sistemas operativos.
Na directoria das drivers do Kernel há um conjunto de ficheiros que controlam a forma como as frequências, em megahertz, com que os nossos processadores funcionam. Este conjunto de algoritmos que estão directamente ligados com as drivers da arquitectura do processador é provavelmente um dos componentes mais importantes de um Kernel. Existem 4 algoritmos de base num Kernel: Performance, Ondemand, Conservative e Powersave. Estes algoritmos são chamados de Governors e estão presentes em todos os Kernels seja Android ou Linux.
A estrutura de dados que vai guardar as informações do CPU passa então a ter acesso às várias frequências do CPU (que são definidas nas drivers da arquitectura do mesmo). Vamos ter então três parametros para ter em atenção: frequencia_maxima, frequencia_minima e frequencia_actual. A frequencia_maxima é a velocidade máxima que o CPU pode atingir, a frequencia_minima é a velocidade mínima que o processador pode atingir e a frequencia_actual é a velocidade num instante de tempo em que o CPU está a funcionar. Se por exemplo o processador tiver uma tabela de frequências de 1000, 800, 400, 200, 100 (todos estes valores em megahertz) e definirmos freq_max = 1000, freq_min = 400 o Governor faz a gestão de uso de frequências que fiquem entre a freq_max e a freq_min. Essa gestão é feita com base na percentagem de load que o sistema está a usar do processador. Quanto mais load houver maior será a frequência a ser usada e vice-versa (tudo dentro da freq_max e freq_min como expliquei acima). E então é aqui que o algoritmo do Governor entra em acção.
Performance
O Governor Performance é muito simples, faz uma chamada às drivers da arquitectura do processador e pergunta lhes qual a frequência máxima que este consegue funcionar e quando recebe a resposta avisa o Android que o CPU passa a funcionar com a frequência mínima igual à frequência máxima, ou seja o CPU vai estar sempre à velocidade da freq_max independentemente do load. Este Governor é muito utilizado para fins de benchmarks pois não haverá latência na mudança de frequência durante todo o processo de bench. Fora isto este Governor vai ser muito caro a nível de energia e o dispositivo vai durar muito menos tempo. Quanto maior for a frequência utilizada maior é a quantidade de voltagem que o CPU necessita, logo maior será o consumo de energia.
Powersave
O Governor Powersave funciona exactamente ao contrário do Performance. Em vez da freq_min ficar igual à freq_max os papéis invertem-se e a frequência máxima vai ficar igual à mínima. Este Governor não tem nenhum interesse a nível real, e na minha opinião já deveria ter sido retirado.
Ondemand
O Governor Ondemand é um caso interessante e é aqui que as coisas se complicam um pouco. Este Governor aumenta ou diminui a frequência_actual conforme o load do sistema. Falando em valores defeito (isto pode ser tudo modificado facilmente, mas para explicar vamo-nos reger por valores que vêm de origem) quando o load for maior que 95% em 100% (100% significa que o CPU está a ser totalmente usado pelo, sistema) o algoritmo aumenta a frequência_actual para a freq_max. Por exemplo: freq_actual = 400, freq_max = 1000; quando load >= 98% freq_actual = freq_max (ficando então freq_actual = 1000). A freq_actual vai ficar ao máximo até o load for menor que 20%, só aí então é que a actual volta ao valor mínimo. Parece mais complicado do que parece mas é bastante simples, mas nenhuma destas "trocas" são perceptíveis ao utilizador comum pois isto é muito baixo nível. Este Governor é o escolhido por defeito em 99% dos telemóveis pois é o mais equilibrado em termos de bateria e performance.
Conservative
Por último temos o Governor Conservative. É em tudo igual ao Ondemand apenas com uma diferença, quando se atinge um load igual ou superior a 80% o algoritmo em vez de saltar para a freq_max salta apenas uma frequência acima da actual e vai saltando uma a uma até chegar à freq_max. Por exemplo: freq_actual = 100, freq_max = 1000; Quando load >= 80% freq_actual = 200; Se o load continuar a >= 80% durante X milisegundos freq_actual = 400, e por aí adiante até chegar ao máximo que neste caso seria 1000. Para voltar para trás usa exactamente o mesmo procedimento, uma a uma até chegar à freq_min. Este Governor é muito bom a nível de poupança de bateria, mas acaba por custar um bocado em termos de performance pois tem uma latência acrescida que vem das várias chamadas de sistema para ir mudando de frequência uma a uma e para verificar se o load ficou maior que 80% a cada X milisegundos.
Apesar de cariz ligeiramente técnico espero que este artigo possa servir para conhecerem melhor a forma como o Android e o Kernel gere a forma como o CPU se comporta quando estão a utilizar os vossos telemóveis.
Para alterarem os parâmetros dos Governors precisam de root e é tão simples quanto usarem a linha de comandos para mudarem os valores directamente na interface sysfs (fica para um artigo futuro). Caso não estejam familiarizados com terminal ou com adb podem usar a aplicação SetCPU (paga no Market, mas free para membros do XDA Developers).
Qualquer dúvida não hesitem em perguntar no espaço de comentários abaixo.
Este artigo tem mais de um ano
Obrigado Francisco, por este artigo, mas principalmente por todo o tempo que já dedicaste ao modding de kernels para os nossos bichos…
Um bem haja, M.
Bom artigo Francisco
Já agora existe alguma Rom do ICS para LG P500 que aconselhas?
Abraço
Kombo – como faço root ao LG P500?
Alguém me pode dar um tutorial?
Viva sc0rpius tens ai o root e o recovery http://p500brasil.blogspot.com/2011/07/root-e-custom-recovery-para-gingebread.html
https://pplware.sapo.pt/windows/software/unlock-root-o-root-descomplicado/
Já tive um LGP500 e isto funciona 5 estrelas
Nah, usa CM7 com o meu kernel e ficas bem servido 😉
Yap é a que tenho com o teu kernel a v18 tenho desde que saiu até agora 5* =D thanks
Muito boa explicação, obrigado Francisco.
Bom artigo, Francisco
Pplware continuem com o excelente trabalho.
abraço
Excelente artigo!
Coisas de cariz técnico é que gosto ou não fosse eu um reformado de informática. No meu tempo dizia-se que o interface entre o software e o hardware era o firmware, este é que tem os dados do hard. Um detalhe sem importancia…
Já tinha lido muito sobre isto dos governors em inglês mas ainda havia muitas dúvidas. Assim em Português e numa linguagem simples isto entra muito melhor.
Obrigado Francisco, O Android já me deu + 10 anos de vida.
e eu como conhecedor de umas coisas de electrónica, digo que me matam do coração sempre que dizem “voltagem”, meus amigos diz-se tensão.
já agora aproveito para dizer que é preferível usar omissão a defeito, defeito dá sempre a ideia de algo não estar bem :p
PS: mas pior que voltagem foi ouvir um iluminado qualquer chamar cavalagem à potência dum carro…
E quando usam tensão na física para se referirem a uma força aplicada numa corda?
Enfim… Há com cada “convenção”, por cá… :S
Por isso é que existe a “tensão eléctrica”.
Boas miguel,
no caso concreto e sendo que a medição dessa natureza fisica é em relação a massa, chama-se sim Potencial e nunca tensão.
Uma tensão é uma diferença de potencial(logo uma comparação de uma diferença) entre duas diferenças de Potencial.
Va-Potencial num dado ponto(sempre em relação a massa)
Vb-Potencial num dado ponto(sempre em relação a massa)
Vc=Va-Vb(chamada de tensão, ou diferença de potencial)
mas é comum as pessoas chamarem tensão a um potencial, e voltagem a uma tensão, por exemplo a malta no Brasil chama voltagem a tensão…
cmps
O miguel está certo, a designação mais correcta em Portugal é tensão ou ddp e não potencial (que encaixa noutros conceitos) nem voltagem.
Por norma, em electrónica, é sempre referida a expressão “tensão entre X e Y”. Quando é referida só tensão então é em relação ao ground (e é isto que se aplica ao referir a um CPU ou whatever).
O potencial, embora relacionado, implica conhecer valores de cargas e energias, algo conhecido e aplicado no âmbito do electromagnetismo.
Não senhora, tensão nunca poderá estar correcto!!
Sendo que a grandeza física á entrada do processador é medida em ralação a massa, trata-se de um Potencial Eléctrico, já expliquei acima as diferenças entre as duas coisas…acho que não leste lol
Claro, normalmente é mais facil chamar de tensão eléctrica e não de potencial eléctrico…mas a definição…diz que uma tensão electrica é uma diferença de potencial electrico…
logo não faz sentido que seja chamada tensão.
cmps
Não sei quais os teus conhecimentos na matéria mas também não deves conhecer os meus (ou os do miguel, que eu também não conheço).
Vejo que estás empenhado na defesa da tua posição e não me vou esforçar para “te fazer acreditar” como na realidade é. Repara que tu próprio estás a misturar os conceitos. Se dizes que tensão é uma diferença de potencial (e claro que não é necessariamente em relação à massa), é claro que o valor da tensão (seja do que for) é obtido com a ddp em relação à massa.
Mas digo mais qualquer coisa: primeiro vê se tens como aplicar (ou como procederias para a aplicar) esta definição para obter o potencial. E depois diz-me como utilizarias um voltímetro (que mede sempre a ddp aos seus terminais) para medir a tensão em dado ponto do circuito.
Boas Hugo,
o voltímetro mede sempre uma diferença de potencial, ele não é esperto o suficiente para perceber que um dos referenciais é a referencia (massa…potencial tido como zero para nós).
Mas isso no caso do voltímetro também não importa, ele mede sempre um valor e cabe nos a nós, sabendo que estamos a medir em relação a massa, saber que se trata de um potencial eléctrico.
Uma tensão difere de um potencial eléctrico, no sentido que um potencial eléctrico é sempre a diferença entre o ponto onde estamos a medir e a massa(pseudo zero volts).
Ou seja, se eu disser que tenho em determinado sitio um potencial de 5v, já sabes que estou a medir em relação á massa.
Se te disser que em determinado sitio tenho uma tensão de 5v, não sabes entre que locais do circuito, a não ser que eu especifique, entre o sitio A e B, ai já sabes qual a tensão ou diferença de potencial Eléctrico.
Por convenção diz-se que quando medimos algo em relação á massa(tida para nós como pseudo 0 volts), devemos chamar-lhe Potencial
Electrico
Da mesma forma quando medimos entre dois pontos,onde nenhum dos dois é a massa, devemos chamar-lhe Diferença de Potencial, ou tensão.
São regras da física.
Um Potencial Eléctrico é visto como, um acumular de cargas eléctricas em determinado sitio, em relação a um “neutro”(tido por nós como neutro pois potencias neutros não existem, é uma referência).
é como na Fisica, o resultado da energia Mecânica= EPotencial+Ecinetica, lembras-te que estes valores são sempre medidos em relação a um local tido como referencia(no caso da energia eléctrica é a massa).
É a mesma coisa mas aplicada a coisas diferentes.
cmps
Quando faço overclock a 1,4 ghz ao processador do meu phone ele fica cá sujeito a uma tensão!
E a propósito ainda não medi a minha tensão arterial hoje com o Cardiograf do market, ponho o dedo na camera e vejo no ecrã a minha tensão com bip bip, um gráfico, valores, é correcto, experimentem esta tensão (aqui não é voltagem concerteza).
Mas voltando á tensão fria, digo á vaca fria, quando ponho OC no meu phone (ou fone) a 1,4 ghz com o kernel Air ele fica cá sujeito a uma voltagem de 1400 mV, Oops tensão que até deve aquecer. Perfomance, max e min a 1,4, cfq.
Bolas, já baralho tudo!!!
Um abraço a todos
Analogias desnecessárias 😛
btw, a câmara consegue reconhecer o fluxo de sangue através de pequenas alterações na cor, conseguindo medir a pulsação (não tensão arterial). E faltou referir a TPM das senhoras!
Cada um diz como quer, não vejo qualquer inconveniente nisso, no então há designações mais correctas que outras. Também vejo muito boa gente a dizer ‘amperagem’ para se referir a corrente eléctrica. Uma é correcta, outra é menos correcta (e poderá ser errada, dependendo do rigor inerente ao propósito).
Bom artigo!
Aconselho : https://play.google.com/store/apps/details?id=it.sineo.android.noFrillsCPU
Safa-se. Nada que uns bons echos na linha de comandos não resolvam 😉
No portátil quando estou em bateria e quero que dure o máximo tempo possível (sem estar a fazer tarefas pesadas) uso o governor PowerSave e consigo tempos bem melhores que os outros governors. A minha bateria também é fraca, no máximo consigo 1h30.
Para mim faz sentido que este governor continue presente, pelo menos ao nível dos portáteis, já nos telemóveis não sei, talvez para quem só queira fazer chamadas, ou para tentar esticar a bateria em casos de “aflição”.
E quanto aos smartass e smartass v2?
Alguns afirmam que são melhores.
Qual é a real diferença entre eles e o ondemand e conservative?
Obrigado pelo excelente artigo.
Também gostava de saber…
Obrigado pelo artigo!
Os smartass são derivados do interactive, mas acabam por funcionar quase todos da mesma maneira. O smartass 1 é bastante agressivo e tem uma espécie de screen_off profile em que quando o ecrã é desligado o CPU não usa mais de X mhz. Isso faz se na source da driver utilizando a interface do early_suspend para detectar se o ecrã está desligado, ou não. Infelizmente ter profiles só faz é mal ao telemóvel. O smartass2 acaba por ser outro derivado do interactive. O criador tentou que fosse um governor inteligente que se adapta-se sozinho mas falhou redondamente e de tal forma que o smartass2 para SMP (Symetric multiprocessors – multi-cores) é absolutamente miserável. Eu não falhei deles porque na minha opinião não vale muito a pena. Só existem em alguns kernels e são muito pouco eficientes.
Muito bem explicito.
Tinha algumas dúvidas sobre o assunto, entretanto foram dissipadas…
🙂
Bom dia ,
Excelente artigo , muito fácil de entender , percebe-se que dependendo das opções de cada fabricante nos governors a nossa bateria é mais rapidamente sugada ou não .
Tenho na familia um LG Maximo P990 cuja duração de bateria é a menor de todos os outros dispositivos que tenho incluindo um tablet , curiosamente esta duração não é demasiadamente influenciadas pela sua utilização versus o standby do dispositivo , claro que percebi imediatamente que se trata de uma má opção no governors por parte da LG .
Já agora no caso das distros Linux , já tinha também chegado a conclusão que algo estava muito mal em relação a distribuição Kubuntu , ainda pensei que fosse do KDE , a bateria do meu portátil era sugada a uma velocidade estonteante ,e com os aplicativos que tinha para medir a utilização do CPU não era nenhuma surpresa que a bateria fosse sugada , troquei de portátil para um I5 ea situação manteve-se , instalei outra distribuição Linux com o KDE neste caso a BIGLINUX e agora tenho autonomia que nunca mais acaba , mais outro caso errado de escolha de governors .
Francisco se tiveres alguma dica para o meu LG ficava-te grato , os meus agradecimentos teu fantástico artigo , eu sabia que iríamos ficar beneficiados com a tua colaboração no Pplware .
Aceita os meus sinceros cumprimentos
Serva
Viva Serva..
O BIGLINUX vale a pena exprimentar?
Podes dar algum feedback sobre ele?
Obrigado
Bom artigo, Francisco…
Realmente nem tudo o que parece difícil é. Há certas coisas que são tão fáceis, que tornam difícil de intender. Isso sim é difícil de perceber!
Abraço…
Este artigo está muito bom assim, falando nos que serão os mais usuais. Mas isto leva-nos a querer saber coisas dos outros.
Que tal um segundo artigo qualquer dia para falar dos Smartass, interative, lazy, etc?
Para mim seria excelente. Obrigado
PS: E, se não fôr pedir muito, um terceiro (lá para o verão) sobre o I/O Scheduler.
Tal como respondi a um comentário acima acho pouco apropriado falar de governors que mal são usados num contexto geral e isso só iria gerar mais confusão nos leitores. Interactive é tipo Ondemand mas muito mais agressivo pois alcança a freq_máxima muito mais cedo e fica lá em cima ainda mais tempo. Ideia interessante que no final acabou ser pouco prática pois isso faz se tudo mudando os parâmetros do Ondemand. O Lazy é um derivado do Ondemand criado pelo Ezekeel para o Nexus S implementando um pouco as suas ideias relativas ao deep_idle etc. Não há muito a falar pois é mesmo 99% igual ao Ondemand a nível do código.
Acerca de um artigo sobre os IO schedulers parece me uma boa ideia 🙂
Obrigado, está tudo dito. Resumo bem esclarecedor.
Sobre o IO schedulers, ando a embirrar com o noop que me aparece isolado em certos kernel.
Fico a aguardar…
O noop é um algoritmo mais simples que eu já vi, o ficheiro tem cerca de 100 linhas. Para quem quiser ver aqui está: http://pastie.org/3556100
O noop é tão simples que acaba por não escalar muito bem com grandes operações IO ou níveis mais altos de processamento. Para Android, que usa memória flash, o Deadline e o CFQ se forem alterados para funcionarem melhor com o nosso tipo de memória são os melhores. O CFQ dá para alterar a partir do userspace, mas o Deadline só mesmo no Kernel =(
Mais uma vez obrigado Francisco. Bom artigo tal como pedi! eheheh 🙂
Já agora, o que dizes relativamente ao smartass v1 e v2? Melhor performance com uma boa bateria ou são coisas completamente opostas? Este momento estou a usar o smartassv2 e parece me ter uma boa performance sem me bastar muita bateria. Aguardo um esclarecimento
Obrigado.
O smartass2 é uma espécie de mistura entre o Interactive e o Ondemand mascarado com outro nome. Basicamente comparando com a sua versão 1 é um governor que não tem profile para screen_off, ou seja se durante o ecrã estar desligar precisar de aumentar a frequência para o máximo ele fará tal coisa. Sem ser isso não há assim grandes diferenças práticas, é apenas código melhorado para dispositivos mais recentes, mas que no fundo é um bocado… horrível.
Muito bom este artigo.
Bom artigo! Continua o bom trabalho.
Apenas de referir que alguma ROMs personalizadas têm outros governers como o InteractiveX
Francisco , qual o Smartass que me aconselhas para o LG que te referi a pouco no meu post .
http://rootzwiki.com/topic/10911-conservative-interactive-interactivex-and-smartass-v2-cpu-governors/
Penso que depois do que li vou fazer root a este LG .
Cumprimentos
Serva
Usa Ondemand, smartass não presta.
Boas Francisco,
Lembro-me que no U8800 valorizavas muito o SmartassV2. Mudaste de ideias?
Achas melhor ter um Ondemand de [120Mhz – 1024Mhz] ou achas que a freq_min deve ser superior a 200Mhz?
Digo isto porque eu tenho a opinião de que uma freq minima muito baixa deve, não só consumir mais (em alguns aparelhos isso acontece, quantos aos SoC não sei muito!) como executar mais lentamente as operações de wakeLock…
Thanks 😉
Quanto ao SmartassV2 já li as tuas respostas anteriores 😉 Mas quanto à frequência mínima gostava de ouvir uma palavra sobre alguém que tem experiência em Kernel para mobile devices…
Muito bom artigo..Simples e bastante informativo. Obrigado.
Pena é, nativamente não da para ser o user a fazer essa escolha e /ou alterar sempre q quiser.
“Estes algoritmos são chamados de Governors e estão presentes em todos os Kernels seja Android ou Linux.”
Hummm….. O kernel que corre em Android é o kernel Linux.
“(…)as drivers(…)”
os drivers
De resto, bom artigo. 🙂
O Kernel que corre em Android é um Kernel Linux bastante alterado por isso gosto de os diferenciar.
Desculpa, não havia nexexidade disto. Drivers são pequenas(os) aplicações/aplicativos que gerem certos orgãos. Podemos portanto dizer “os (aplicativos) drivers” ou “as (aplicações) drivers”.
É como os tablets, há quem diga as tablets, por mim não corrijo.
É mesmo os drivers, assim como é o BIOS, o Tablet… A única tablet que conheço no feminino só se for de chocolate. Isto porque Tablet vem de Table, podia até ser feminino. No entanto o termo correcto é Tablet PC ou Computer, logo será masculino. Mas sim, um pormenor irrelevante no meio de um artigo muito bem escrito, com conteúdo que é o que interessa.
BIOS é inglês… Como podes dizer que está mal?
Exemplo:
“the” Ice Cream… é “a” Ice Cream ou “o” Ice Cream? Ain mãe *nods head*… Deixem-se de brigas…
Se disseres Sistema de entrada / saída básico, sim, é “o”… se disseres BIOS é estrangeirismo, usas o que queres, como em driver…
Em inglês, ao ligar um carro, tu dizes “Liga-o” (carro) eles dizem “Start her up” (the machine)…
interessante seria explicar como colocar o Android 4.0 no Toshiba Folio 100
Interessante porquê? O trabalho que teriamos para ir procurar tal coisa podes tu fazê-lo. XDA-Developers tem lá tudo.
http://forum.xda-developers.com/showthread.php?t=1470823
Pequena correcção… ou sugestão…
Onde está: “Parece mais complicado do que parece”
Talvez devesse estar: “Parece mais complicado do que é”
Excelente artigo Francisco, parabéns!
Um dia destes temos uma comunidade de desenvolvimento no Pplware! Malta interessada e com gosto em matéria mais técnica não falta por aqui!
É extremamente importante dar a conhecer estes conceitos que demonstram, por vezes e de forma bem clara, a forma como determinado dispositivo está prejudicado por não usar o governor que devia com os parâmetros correctos.
Seia o:
forum.pplware-developers.com
Obrigado Hugo!
Exactamente, e ainda há muito para explicar daqui a 6 meses os leitores já vão poder dizer que conhecem a melhor o Kernel do que eu 😉
Exactamente , obrigado Francisco pela tua resposta .
Cumprimentos
Serva
Bom artigo Francisco. Falta aí o melhor, o Smartass v2 (deve ser um algoritmo mais engraado).
A malta do Huawei U8800 tem sentido a falta dos kernels by franciscofranco. Agora que já existe ICS pela mão do DZO, fazia falta um kernel .35 á moda do franciscofranco 😉
Ahah. Smartass2 é uma tanga, um Conservative ou Ondemand com uns valores diferentes (thresholds e afins) metem qualquer um desses governors num canto. E não esquecer que estes governors estão a ser desenvolvidos há anos e anos, por isso são sempre a melhor aposta para estabilidade e fiabilidade.
Para o X5 já não faço Kernels, tentei umas 30 vezes meter a .35 a funcionar mas o wifi nunca funcionava. Pode ser que arranje quem tente, logo se vê 😉
Bom artigo!
Outro tema interessante, os OC. Eu gosto de os fazer e ver os resultados com os benchmarks mas tenho sempre dúvidas, receios, desconhecimentos disto ou daquilo sobre os kernel.
Que tal pôr este tema na lista de espera? Se é que merece…
Também é uma ideia sim 🙂
Boas 🙂
Como sabemos qual o governor actual a funcionar?
Podes dizer quais o comandos do abd que temos de usar para efectuar a mudança?
Obrigado
Para veres o que tá activo fazes assim:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Para mudares as frequências primeiro tens que saber como é a tabela de frequências do teu cpu e para isso podes fazer:
cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state
Depois de saberes quais as que podes meter fazes assim por exemplo:
echo 1000000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
Neste exemplo mete-se a freq_min a 1ghz, mas é só um exemplo, depende sempre da tabela de freq que o tlm tem.
Eu ainda vou escrever um artigo sobre estes comandos manhosos 🙂
Esqueci-me para mudares o governor é assim:
echo conservative > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
por exemplo.
obrigado francisco vou testar amanha 😉
depois deixo feedback
Excelente artigo não podia ser melhor por favor não parem pois sempre que ligo o pc, inconscientemente, “pplware”
adoro estes tipos de artigos em que explicam cenas técnicas ao cidadão comum…
thanks 🙂
Muitos parabéns pelo artigo, já tinha alguns conhecimentos na matéria mas o teu artigo deixou tudo bastante mais claro 🙂
Optimo 🙂 No pplware é assim 🙂
Muito bom ,obrigado, agora percebo e já sei qual vou escolher
Uso o smartass v1 e minha bateria dura muito mais do que durava antes.
O Powersave nao tem interesse? Eu uso para no setcpu como evento, quando o ecra desliga ele muda para powersave.. afinal quando o ecra tá desligado eu nao tenho pressa nenhuma logo o cpu (e o wifi no meu caso tb)a funcionar no minimo poupa bateria.
Parece incrivél como ouço dizer que não serve para nada…
E não serve, eu expliquei que usar profiles é mau, e muito pior se metermos o nosso CPU bloqueado à frequência mínima quando o ecrã se desliga.
“usar profiles é mau”…
lol
há várias formas de usar profiles..
gostava de saber o que é te tem de mau, profiles da forma que eu estou a falar não exige processamente quase nenhum, nada mais é do que um evento!
no caso que disse o setcpu activa o profile powersave quando o evento de ecra desligado acontece.. e que processamento é que exige um evento do tipo de desligar um ecra? quase nenhum….
😉
Usando profiles activas um daemon do SetCPU que faz com que ele passe a ter uma espécie de listener activo para poder identificar se os vários tipos de acções aconteceram e esse processo é o que faz mal. Dizes que é um evento, certo, mas e como achas que o programa detecta que há um evento? Simplesmente adivinha? Isso não existe no mundo da computação.
Quem sabe, sabe!
Gostei de ler, já aprendi qualquer coisa hoje!
Não terá a ver com o tema deste artigo, mas o que é deodex/odex? Isto esta-me cá a fazer uma confusão!!!
Obrigado
SGS2 + Cyanogenmod9 (ICS) nightly 30-03-2012 + siyah 3.0b7 = HEAVEN
Tenho-o usado overclockado a 1600Mhz (já usei a mais na altura do gingerbread) e está mais que aprovado.