Resumo dos métodos de aprendizagem avançados do Android (um conjunto completo de materiais de aprendizagem avançados para Ali P7 está incluído)

fundo

Em 2013, mudei para Java para o desenvolvimento do Android. Estive em uma pequena fábrica. Também estive em uma grande fábrica, como Huawei e OPPO. Ingressei na Ali em abril de 2018 e continuei até o presente.

Recentemente, muitas vezes recebo mensagens privadas de alguns colegas de classe, dizendo que vou me formar em breve ou me formei por um ou dois anos, envolvido no trabalho de desenvolvimento do Android, e agora não sei o que aprender. Ou seja, também procuro aprender, mas não sei se o caminho do aprendizado está certo ou não, me sinto muito confuso e quero dar algumas sugestões.

Na verdade, a maioria dos desenvolvedores teve experiências semelhantes (eu também). Quando seus projetos são concluídos e na fase de manutenção, eles não estão ocupados no trabalho e querem aprender por si próprios, mas não sabem o que aprender? Por onde você começa? Um martelo no leste e uma vara no oeste e, por fim, pouca colheita. Aí comecei a duvidar de mim mesmo, cansado de aprender, caí e parei.

Portanto, como um desenvolvedor Android, como você planeja sua própria rota de aprendizagem e, em seguida, passo a passo para os níveis intermediário e avançado? Este artigo analisa algumas de minhas próprias opiniões.

Resumo do conhecimento de aprendizagem

1. Noções básicas de Java se

1.1 Tipos de dados básicos Java e expressões, ramificação e loop.
1.2 O uso de String e StringBuffer, expressões regulares.
1.3 Abstração orientada a objeto, encapsulamento, herança, polimorfismo, classe e objeto, inicialização e recuperação de objeto; construtor, esta palavra-chave, método e processo de passagem de parâmetro de método, palavra-chave estática, classe interna.
1.4 Processo de instanciação de objeto, cobertura de método, palavras-chave finais, classes abstratas, interfaces e análise de vantagens e desvantagens de herança; polimorfismo de objeto: conversão entre subclasses e classes pai, classes abstratas e interfaces em polimorfismo Os benefícios da aplicação e do polimorfismo.
1.5 Tratamento de exceções Java, o mecanismo de exceções.
1.6 Padrões de projeto comumente usados: Singleton, Template, Strategy patterns.
1.7 Introdução de JavaAPI: um tipo de classe de empacotamento de tipo de dados básico, classe System e Runtime, classe Date e DateFomat, etc.
1.8 Introdução às coleções Java: Collection, Set, List, ArrayList, LinkedList, Hashset, Map, HashMap, Iterator e outras APIs de coleção comumente usadas.
1.9 Fluxos de entrada e saída JavaI / O: classes File e FileRandomAccess, fluxo de bytes InputStream e OutputStream, fluxo de caracteres Reader e Writer e classes de implementação correspondentes, análise de desempenho de IO, fluxo de conversão de byte e caractere, conceito de fluxo de empacotamento e comumente usados Embalagem, codificação de computador.
1.10 Recursos avançados do Java: reflexão e genéricos.
1.11 Princípio de multithreading: como criar multithreading (Thread, Runnable) no programa, problemas de segurança de thread, sincronização de thread, comunicação entre threads, deadlock.

2. Programação da IU do Android

2.1 Construção do ambiente de desenvolvimento Android: introdução do Android, construção do ambiente de desenvolvimento Android, o primeiro aplicativo Android, estrutura de diretório do aplicativo Android.

2.2 O uso dos controles primários do Android:

Como usar o controle TextView Como usar o
controle Button Como usar o
controle EditText Como usar
ImageView Como usar o
RadioButton Como usar a
caixa de seleção Como usar o
Menu

2.3 O uso de controles avançados do Android:

Como usar ListView Como usar
GridView Como usar o
adaptador Como usar o
Spinner Como usar o
Gallary Como usar o
ScrollView
RecyclerView

2.4 Uso de caixas de diálogo e menus:

Conceitos básicos de Dialog Como
usar BlockquoteAlertDialog Como usar
DatePickerDialog Como usar o
Menu Como
personalizar o Menu

2.5 O método de layout do controle:

Como usar o layout linear Como usar o
layout relativo

2.6 Gestão de Multiatividade:

A função do arquivo AndroidManifest.xml O
método de
uso de Intent O método de transmissão de dados usando Intent O método de
iniciar Activity O método
de usar IntentFilter O método de usar
Activity Group

2.7 Método de implementação de controle personalizado:

Como implementar o ListView personalizado Como
usar o ListView recolhível Como usar o
adaptador personalizado Como implementar o modo de
exibição personalizado Como implementar um
layout de controle dinâmico
Carregamento pull-up de atualização pull-up mais

3. Programação de rede Android e armazenamento de dados

3.1 Comunicação HTTP baseada na plataforma Android:

Revisão do protocolo Http O
método de usar o método Get para enviar dados ao servidor O método de
usar o método POST para enviar dados ao servidor
Usando o protocolo Http para realizar download multi-thread
Usando o protocolo Http para obter transmissão recuperável

3.2 Tecnologia de armazenamento de dados Android:

Introdução ao banco de dados SQLite3
Revisão da instrução SQL Introdução à
interface de programação
SQLite3 Gerenciamento de transações
SQLite3 Uso do cursor
SQLite3
Método de análise de desempenho SQLite3
para acessar o método SDCard para acessar SharedPreferences

Terceiro, o caminho para o avanço (Elementar -> Intermediário -> Avançado)

1. Engenheiro Júnior

Xiao Ming nunca tinha entrado em contato com o desenvolvimento do Android antes. Ele era recém-formado. Seu salário era de 13 mil. Então, Xiao Ming entrou no Baidu como recrutador de uma escola. Então, como Xiao Ming precisa aprender a se tornar um engenheiro júnior? No momento, Xiao Ming tem uma certa base em noções básicas de programação, estruturas de dados e linguagem C. Ele também tem um bom domínio da sintaxe Java. O Android só tem a linguagem Java. O que é impotente é que Xiao Ming não se envolve com Android.

No momento, Xiao Ming precisa ter um livro introdutório para estudar o conteúdo do livro e passar um ano para ler o treinamento e o guia na documentação oficial do Android e resumi-lo por meio de blogs e anotações. Recomenda-se fazer o seu próprio Todo blog tem mais valor. Depois de um ano de estudo, acredito que todos podem chegar ao nível de engenheiro intermediário.

requisito de habilidades:

  • Pontos de conhecimento básico,
    como como usar os quatro componentes principais, como criar um serviço, como fazer o layout, visualização personalizada simples, animação e outras tecnologias comuns

  • Recomendação de livro
    "Crazy Android"

2. Engenheiro intermediário

Após um ano de trabalho árduo, Xiao Ming finalmente se tornou um engenheiro intermediário Android e seu salário mensal passou a ser de 17 mil. Como engenheiro intermediário, ele já pode fazer muitos trabalhos físicos na empresa, mas algumas tarefas muito importantes não podem ser realizadas por Xiao Ming sozinho. Neste momento, Xiao Ming precisa aprender muito, conforme mostrado abaixo:

  • AIDL: Familiarizado com AIDL, compreender o seu princípio de funcionamento, compreender a diferença entre transact e onTransact;

  • Binder: compreenda o princípio de funcionamento do Binder da camada Java e entenda o uso de objetos Parcel;

  • Multi-processo: dominar o mecanismo de operação do multi-processo, entender Messenger, Socket, etc .;

  • Distribuição de eventos: deslizamento elástico, conflito de deslizamento etc .;

  • Brinque com a visão: princípio de desenho da visão, várias vistas personalizadas;

  • Série de animação: familiarizado com a diferença entre animação de vista e animação de atributo, entender o princípio de funcionamento da animação de atributo;

  • Compreenda a otimização de desempenho: familiarizado com ferramentas como o tapete

  • Conheça alguns padrões de design comuns

método de estudo

Ler livros avançados, ler o código-fonte do Android, ler documentos oficiais e tentar escrever artigos técnicos relacionados sozinho requer um certo grau de profundidade técnica e autoconsideração. No processo de aprendizagem neste estágio, existem 2 pontos que são mais problemáticos para todos, um é ler o código-fonte, o outro é a Visualização personalizada e conflito deslizante.

Como ler o código-fonte? Isso é uma dor de cabeça, mas o código-fonte deve ser lido. Ao ler o código-fonte, não se aprofunde nos detalhes do código.Você deve prestar atenção ao fluxo do código e tentar encontrar conclusões úteis para o desenvolvimento da camada de aplicativo. Além disso, leia com atenção os comentários sobre uma classe ou método no código-fonte. Quando você não consegue entender o código-fonte, os comentários no código-fonte podem ajudá-lo a entender melhor o princípio de funcionamento do código-fonte. Embora esse processo seja difícil, não há outra maneira.

Como jogar com a visualização personalizada? Minha sugestão é não aprender visualizações customizadas aprendendo visualizações customizadas. Por que você diz isso? Porque existem muitos tipos de visualizações personalizadas, todos os tipos de lindos efeitos personalizados, como aprender e jogar! Precisamos olhar para a essência do fenômeno e prestar mais atenção aos pontos de conhecimento exigidos pela visualização personalizada. Aqui está um resumo:

  • Entenda o princípio deslizante de visão

  • Entenda como obter deslizamento elástico

  • Entenda o conflito de deslizamento da visão

  • Compreenda a medida, o layout e o desenho da vista

  • Em seguida, aprenda alguns exemplos de visualizações personalizadas existentes

  • Finalmente, você pode obter a visualização personalizada, a chamada mudança é inseparável

Levará mais 1-2 anos para atingir o nível técnico de um engenheiro sênior. Pessoalmente, acho que por meio de "Android Development Art Exploration" e "Android Heroes" podemos encurtar esse processo para 0,5-1 anos. Observe que atingir o nível técnico de um engenheiro sênior não significa que você pode se tornar um engenheiro sênior imediatamente (afetado pelas oportunidades, mudando ou não de emprego), mas quando a tecnologia é alcançada, tornar-se um engenheiro sênior é uma questão simples.

requisito de habilidades:

  • Pontos de conhecimento um pouco aprofundados
    AIDL, Messenger, Binder, multiprocesso, animação, conflito deslizante, Visualização personalizada, fila de mensagens, etc.

  • Recomendação de livro
    "Android Development Art Exploration"

3. Engenheiro sênior

Xiao Ming se tornou o cobiçado engenheiro sênior, com um salário mensal de 20 mil e muitas ações. No momento, o nível de Android de Xiao Ming já é bom, mas o objetivo de Xiao Ming é um engenheiro sênior. Xiao Ming ouviu que o salário mensal de um engenheiro sênior pode chegar a 30k +.

Para se tornar um engenheiro sênior do Android, há mais coisas a aprender, e algumas não são tão específicas, conforme mostrado abaixo:

  • Continue a aprofundar a compreensão do conteúdo definido em "Pontos de conhecimento um pouco aprofundados"

  • Compreenda o mecanismo central do sistema:

  • Entenda o processo de inicialização do SystemServer

  • Entenda o modelo de loop de mensagem do thread principal

  • Compreenda o princípio de funcionamento de AMS e PMS

  • Pode responder à pergunta "Quantas janelas existem em um aplicativo?"

  • Compreenda o fluxo de trabalho geral dos quatro componentes principais

  1. Detalhes de pontos de conhecimento básico

  2. Modo de inicialização de atividade e o desempenho de diferentes atividades sob condições anormais

  3. Associação onBind e onReBind do serviço

  4. A diferença entre onServiceDisconnected (ComponentName className) e binderDied ()

  5. Detalhes de desempenho de AsyncTask em diferentes versões

  6. Detalhes e configuração de parâmetros do pool de threads

  • Familiarizado com padrões de projeto, tenha um método de aprendizagem de consciência arquitetônica

Neste momento, não existe um método de aprendizagem mais específico, nada mais é do que ler livros, ler o código-fonte e fazer projetos, e geralmente resume vários tipos de coisas, e tenta integrar o conhecimento para formar um sentimento sistêmico. Ao mesmo tempo, existem certos requisitos para a arquitetura neste estágio.A arquitetura é abstrata, mas os padrões de design são específicos, portanto, devemos fortalecer o aprendizado dos padrões de design. Em relação ao estudo de padrões de design, recentemente recomendei um novo livro "Análise e combate real dos padrões de design de código-fonte do Android". Você pode não apenas aprender padrões de design, mas também experimentar as ideias de design no código-fonte do Android. Também estou lendo este livro recentemente.

requisito de habilidades:

  • Conhecimento um pouco mais profundo

  • Mecanismo central do sistema

  • Detalhes de pontos de conhecimento básico

  • Padrões de design e arquitetura

  • Livros recomendados:
    "Exploration of Android Development Art", "Analysis and Actual Combat of Android Source Code Design Patterns", "Analysis of Android Kernel"

Rota de aprendizagem e compartilhamento de informações

Quando você tem uma rota de aprendizagem, que conteúdo aprender e sabe como ir no futuro, você tem que praticar se vir muita teoria. Compilei aqui cerca de materiais de aprendizagem 40G e vídeos para você. Amigos que precisam podem gostar + Após prestar atenção, responda [888] por mensagem privada para saber como fazer isso!

Organização do diretório:

1. [Ali P7 conjunto completo de materiais de aprendizagem avançados + vídeo]

2. [Documento PDF de tecnologia avançada do núcleo do Android]

3. [Análise de questões reais da entrevista BAT TMD de 2020]

Ali P7 conjunto completo de materiais de aprendizagem avançados + vídeo

Compilei um conjunto completo de materiais de aprendizagem para arquitetos do nível Alibaba P7 do Android, que são especialmente adequados para aprendizado e aprimoramento em profundidade para pequenos parceiros que desejam avançar para os níveis médio e alto.

Incluem principalmente Bytedance e tecnologias de arquitetura convencionais de empresas de Internet de primeira linha, como Tencent, Ali, Huawei, Xiaomi e assim por diante. Se precisar, leve embora.

Ali P7 conjunto completo de materiais de aprendizagem avançados + vídeo

Notas de conhecimento básico do Android

Um total de oito materiais de aprendizagem de módulo: como desenvolvimento de módulo NDK, arquitetura de estrutura Android, flutter, kotlin ...

Notas de conhecimento básico do Android

Somente a aprendizagem sistemática e direcional pode melhorar rapidamente suas habilidades dentro de um período de tempo.

Este sistema de conhecimento é adequado para todos os programadores Android aprenderem. Existem explicações e introduções detalhadas sobre os pontos de conhecimento no catálogo acima. O domínio de todo o conteúdo deste ponto de conhecimento proporcionará uma melhoria qualitativa e também resumirá muitos processos de entrevista Um resumo das perguntas encontradas e as respostas correspondentes.

Análise das perguntas da entrevista do BAT TMD 2020

Essas perguntas são as perguntas feitas por amigos ao entrevistar por ByteDance, bem como Tencent, Ali, Baidu, Xiaomi, LeTV, Meituan, 58, Cheetah, 360, Sina, Sohu e outras empresas importantes da Internet. E a maioria deles classificou as respostas.A familiaridade com esses pontos de conhecimento aumentará muito a probabilidade de passar nas duas primeiras rodadas de entrevistas técnicas.

Perguntas da entrevista de 2020 BAT TMD

Finalmente

O mundo está mudando e a tecnologia está evoluindo. Somente persistindo no aprendizado poderemos nos aproximar de nossos sonhos. Essa parada será minha parada final? "Se houver vontade, tudo acontecerá, e o segundo Qinguan acabará por pertencer a Chu; meticulosamente viver para o céu, pagar pela coragem, mais três mil podem engolir Wu." Quero dizer ao assunto que as oportunidades são para aqueles que estão preparados, você Se você não se esforçar um pouco, não sabe o quão bom você é. Não fale que o tempo é curto e a pressão é alta.Conquanto você resista à pressão, você descobrirá que o período mais cansativo e estressante no futuro é também o estágio de crescimento mais rápido em sua vida.

Amigos que precisam das informações acima podem curtir + seguir e responder com uma mensagem privada [888] para saber como obtê-la!

Acho que você gosta

Origin blog.csdn.net/star_nwe/article/details/109354701
Recomendado
Clasificación