Efficient Android Threading

Investir em Você é Barra de Ouro a R$ 2,00. Cadastre-se e receba grátis conteúdos Android sem precedentes! Você receberá um email de confirmação. Somente depois de confirma-lo é que eu poderei lhe enviar os conteúdos semanais exclusivos. Os artigos em PDF são entregues somente para os inscritos na lista.

Email inválido.
Blog /Livros /Efficient Android Threading

Efficient Android Threading

Vinícius Thiengo
(2977)
Go-ahead
"O método consciente de tentativa e erro é mais bem-sucedido que o planejamento de um gênio isolado."
Peter Skillman
Prototipagem Android
Capa do curso Prototipagem Profissional de Aplicativos
TítuloAndroid: Prototipagem Profissional de Aplicativos
CategoriasAndroid, Design, Protótipo
AutorVinícius Thiengo
Vídeo aulas186
Tempo15 horas
ExercíciosSim
CertificadoSim
Acessar Curso
Quer aprender a programar para Android? Acesse abaixo o curso gratuito no Blog.
Lendo
TítuloDomain-driven Design Destilado
CategoriaEngenharia de Software
Autor(es)Vaughn Vernon
EditoraAlta Books
Edição
Ano2024
Páginas160
Conteúdo Exclusivo
Investir em Você é Barra de Ouro a R$ 2,00. Cadastre-se e receba gratuitamente conteúdos Android sem precedentes!
Email inválido
Capa do livro Efficient Android Threading
Título
Efficient Android Threading
Categoria
Android
Autor(es)
Anders Goransson
Editora
O'Reilly Media
Ano
2014
Edição
Páginas
280

Opa Blz?

Nesse post falo sobre o livro Efficient Android Threading de Anders Goransson que terminei a leitura essa semana. Procurando ir mais fundo na estrutura do Android resolvi ler o livro, pois sei que Thread é um conteúdo muito importante e necessário de ser dominado se quiser ir mais no core do Android. O autor, Anders Goransson, está no desenvolvimento mobile desde 2005 e desde o lançamento do primeiro device com Android ele já estava lá para ajudar a comunidade crescer.

Desde o ínicio, se você está procurando aprofundar os conhecimentos em Android já lhe recomendo esse livro. O livro não fala somente de Thread, AsyncTask, Runnable, ... como pode parecer. O autor busca também falar sobre entidades que executam na Thread Principal (ou Thread UI), porém que são utilizadas frequentemente com Threads Background em sua implementação, por exemplo, o Service (não IntentService, esse tem sua própria Thread de background). O autor se preocupa em falar sobre e mostrar o código completo de exemplo da tecnologia que está sendo apresentada. Uma coisa interessante do livro é que o autor busca logo nos primeiros cápitulos mostrar como o Android funciona. Uma parte que realmente foi nova para mim foi a parte do Garbage Collector. Realmente conheço o Garbage Collector, porém saber que criar classes internas sem serem estáticas podem aumentar as chances de um Memory Leak foi novidade. E ainda é apresentado em diagramas o que está acontecendo. Realmente a parte de Garbarge Collector e Memory Leak ficaram muito show de bola.

Uma outra coisa interessante é a parte que o autor mostra como funciona quando abrimos um APP, que é chamado o Zygote que já tem as libs necessárias para carregar uma aplicação na memória e colocar em funcionamento enquanto o ambiente real de execução e processo da aplicação ainda estão sendo criados no background (processo que é pesado no Android e cada APP tem o seu processo e ambiente de execução). O Zygote é uma entidade, no caso, única, que permite acelerrar o processo de uso da APP, pois essa entidade já tem as libs necessárias pré-carregadas. O livro fala como funciona os componentes do Android e seus respectivos objetos, por exemplo, quando abrimos um APP, dentre os componentes que são inicializados o componente Activity é iniciado e consequentemente o objeto Activity é criado, porém quando rotacionamos a tela (sem configChanges em ação) o componente Activity é destruído na chamda do onDestroy() e outro componente Activity é criado no onCreate(), porém é criado também outro objeto Activity e o objeto anterior que não tem mais referência a ele, consequentemente é marcado para ser coletado pelo Garbage Collector, porém nós não temos controle de quando o Garbage Collector vai coletá-lo, logo como cada APP tem uma heap (local onde ficam os recurso sendo utilizados pela APP, objetos, por exemplo) dedicada a ela e essa heap tem limite de tamanho, as chances de termos um problema de Memory Leak aumentam devido ao objeto Activity que possivelmente ainda não foi coletado estar na memória, ou seja, na heap da APP... puts, achei um baita knowledge essa parte.

O livro fala também sobre entidades que facilitam o uso do ContentProvider, digo, acessar o ContentProvider de outras APPs, porém essa parte não vi como um "Big Deal", pois ContentProvider não é lá como um fragment que temos realmente que está utilizando frequentemente. A parte de Looper, MessageQueue, Handler e HandlerThread também são show de bola. Quase esqueci, logo no começo o autor fala sobre o problema de Race Condition, que na verdade nem é um problema do Android em especifico, é um problema no uso não consciente de Threads em Java, vai abrindo as Threads e manipulando variáveis que foram declaradas em um escopo a cima e acaba tendo valores não consistentes em pelo menos uma das Threads, e ai acontece o que considero o pior erro, de lógica, pois não há exceptions ou compilation errors para ajudar, somente resultado inconsistente na saída da aplicação. O autor aborda muito também a classe ThradPoolExecutor e a interface Executor, que são sim "Big Deals", alias se estiver utilizando concorrência no background com a criação de múltiplas Threads (na unha), o autor recomenda nesse caso utilizar um ThreadPoolExecutor devido melhor gerenciamento de Threads e controle das tasks a serem executadas.

O ponto negativo que encontrei no livro foi a não implementação completa de um script que utilizava a comunicação entre duas aplicações via AIDL, mas mesmo assim o autor indicou que o uso do AIDL é recomendado somente quando há a necessidade de acesso a serviços de outras APPs, porém em modo multithreading, caso contrário um simples bind resolve.

Bom o livro é muito show de bola, realmente dá para aprender coisas que não são facilmente percebidas na documentação do Android, porém são importantes, ainda mais quando o assunto é otimização da APP. Não fique na vibe de que "não vou ler, pois não fala de Material Design", pois o maior impacto do Material Design foi mesmo no design, muitas das entidades utilizadas anteriormente continuam sendo utilizadas, inclusive as Threads são as mesmas. Outro ponto negativo é que o livro não está disponível em português, mas se você tiver o inglês de leitura, keep going, vai valer a pena. Bom 5 estrelas fácil.

Obs. : Mesmo assumindo que o leitor já é Android developer o autor colocu os códigos completos no livro (AIDL não).

Vlw

Investir em Você é Barra de Ouro a R$ 2,00. Cadastre-se e receba grátis conteúdos Android sem precedentes!
Email inválido

Relacionado

Padrões de Projeto Para o AndroidPadrões de Projeto Para o AndroidLivros
Construindo Aplicativos Android com HTML, CSS e JavaScriptConstruindo Aplicativos Android com HTML, CSS e JavaScriptLivros
Segurança de Aplicativos AndroidSegurança de Aplicativos AndroidLivros
Desenvolvimento Profissional Multiplataforma Para SmartphoneDesenvolvimento Profissional Multiplataforma Para SmartphoneLivros

Compartilhar

Comentários Facebook

Comentários Blog

Para código / script, coloque entre [code] e [/code] para receber marcação especifica.
Forneça seu nome válido.
Forneça seu email válido.
Forneça o comentário.
Enviando, aguarde...