A entrevista foi suspensa por causa do seu sistema de conhecimento Android bagunçado! Um resumo da estrutura de conhecimento do Android que vale a pena coletar

No início de 2017, rumores de saturação do mercado Android já foram galopantes. Sob a onda de frio econômico em 2018 e a supressão da epidemia em 2020, muitas grandes fábricas e empresas de Internet que estavam na linha de frente tiveram que demitir seus funcionários e se proteger, por meio de pequenos programas e renderização inicial para alcançar a realização nativa .

Diante da complexidade do mundo externo e da pilha de tecnologia em constante mudança, devemos estar mais conscientes das deficiências de nossa própria tecnologia para consolidar o conhecimento. No momento, há um grande fluxo de talentos de nível médio e júnior no Android móvel . Como diz o ditado, há muitos monges, mas o autor do pôster original sempre acredita que as pessoas que trabalham duro, o céu vale a pena.

O pôster original, há 19 anos, passou por uma onda de recrutamento social para experimentar a água. Depois de uma briga, ele finalmente recebeu muitas ofertas. Depois de me lembrar, tenho que lamentar que os atuais talentos técnicos de 985 e 211 sejam realmente fortes (os pôster original é apenas um estudante de graduação comum.), a fim de praticar os valores socialistas essenciais, resumi minha própria experiência de entrevista, combinada com outras entrevistas de recrutamento social para resumir e organizar este sistema de conhecimento de entrevista. As respostas relevantes estão organizadas em um documento . Verifique e receba no final do artigo se necessário. Obrigado a todos por não desistirem, se houver erros na descrição dos pontos de conhecimento do artigo, espero discuti-los e corrigi-los.

Este artigo é um artigo de aprendizagem para engenheiros seniores do ensino médio e o sistema de conhecimento é relativamente completo. Tem as seguintes características:
1. Estrutura de conhecimento abrangente
2. Atualização em tempo real seguindo a tendência tecnológica atual
3. Pode ser usado para entrevista e aprendizagem
4. O conhecimento é dividido em parte de texto e parte de vídeo, escolha intencional
5. Planejamento de carreira correto
6. Conveniente para esquecer durante o processo de trabalho Consulta rápida de pontos de conhecimento

Este esboço do sistema de conhecimento inclui:

Parte Android:

Quatro componentes principais

  • Atividade
  • Receptor de radiodifusão
  • Provedor de conteúdos
  • Serviço

Quinto componente

  • Fragmento

Quadro de diálogo e marcador e janela flutuante e notificação

  • Diálogo
  • PopWindow
  • DialogFragment
  • Notificação

Controles de IU do Android

  • Layout básico
  • Controles básicos
  • Controles avançados (ListView, RecyclerView, ViewPager, WebView ...)
  • Controles personalizados (contém muitos outros conhecimentos)
    • Sistema de coordenadas Android
    • Ângulos e radianos do Android
    • Visualizar mecanismo de desenho
    • Ver distribuição de eventos
    • Mecanismo de animação Android
    • Aula de tela
    • Classe de caminho
    • Curva de Bezier
    • ......
  • Análise de código-fonte de controle nativo

Arquitetura do sistema Android

  • estrutura do sistema
  • Características e diferenças da versão do sistema

Comunicação Android

  • Manipulador de estrutura de comunicação entre threads
    • AsyncTask
    • HandlerThread
    • IntentService
  • Comunicação entre processos

Programação de rede Android

  • Pedido de rede
  • Contato e diferença de Token e Sessão e Cookie
  • Análise de dados [Json, XML]
  • ......

Persistência de dados Android

  • Armazenamento de arquivo
  • Armazenamento de valor-chave [SharePreference, MMKV (Tencent)]
  • Armazenamento de banco de dados [instrução SQL, SQLite]
  • Serialização

Desenvolvimento de imagens de áudio e vídeo nativas do Android [não JNI]

  • Desenvolvimento de imagem (bitmap)
  • Desenvolvimento de vídeo [GsyPlayer, JiaoZiPlayer ...]
  • Desenvolvimento de áudio [MediaPlayer]

Pontos de conhecimento especiais do Android [pontos de conhecimento que não sabem como classificar]

  • gradle
  • Bluetooth
  • Posicionamento
  • Desenvolvimento e acesso ao SDK
  • Desenhavel
  • ......

Android deve dominar a roda

  • Comunicação assíncrona [EventBus, RxJava]
  • Carregando imagem [Glide, Picasso, Fresco]
  • Otimização de memória [LeackCanary, BlockCanary]
  • Injeção de dependência [ButterKnife, Dagger]
  • Rodas de banco de dados [LitePal, GreenDao ...]

Estrutura do projeto

  • MVC e MVP e MVVM
  • Componentização
  • Mochila a jato

Android avançado avançado

  • Processo de desenho da IU
  • Um processo de inicialização de aplicativo
  • Mecanismo de animação Android
  • Ver distribuição de eventos
  • Atualização rápida e plug-in
  • Análise do código fonte do manipulador
  • ......

Artigos de otimização Android

  • Otimização de memória
  • Otimização de layout
  • Otimização de congelamento da IU
  • Otimização de adaptação de IU
  • Otimização de segurança apk

Direção de carreira Android

[Esta é uma nova adição do autor, e é muito importante para os desenvolvedores do Andorid, você deve ter seu próprio plano de carreira]

  • Engenheiro sênior de IU [controle personalizado, direção do código-fonte]
  • Engenheiro de desenvolvimento inferior do Android [algoritmo de áudio e vídeo / imagem C ++ / casa inteligente]
  • Arquiteto Android sênior [rodas principais, familiarizado com o Framework, conhecimento avançado de Java, etc.]
  • Engenheiro full stack (com Android como tecnologia central)

Ferramentas de trabalho Android

  • Git / SVN (controle de versão de código)
  • Trabalho de depuração
  • teste

Habilidades essenciais para o Android Work

  • Divirta-se com o Gradle
  • Embalagem e embalagem multicanal
  • Reforço e confusão

Desenvolvimento de plataforma cruzada Android

  • WebView e kernel de terceiros
  • Flutter

* Artigos de aprendizagem do projeto Android

  • Aprendizagem de projeto prático

Parte Java

Parte básica

  • sistema operacional
  • Oito tipos de dados básicos e tipos de referência
  • JDK e JRE e JVM 篇
  • Orientado a processos e orientado a objetos
  • Array
  • NIO / BIO / AIO
  • Sistema de exceção Java
  • Coleção
  • Multithreading
  • Artigos genéricos
  • Java Notes
  • Reflexão
  • Soquete
  • Padrões de design Java

Parte avançada

  • JVM
  • AOP
  • APT
  • Pontos de conhecimento centrais multiencadeados

Parte Kotlin:

Parte básica

  • Tipo de dados básico
  • Array
  • conjunto
  • função
  • Classe e interface
  • Método de extensão
  • Segurança de tipo nulo
  • Conversão de tipo inteligente
  • ......

Parte avançada

  • Genérico
  • reflexão
  • anotação
  • Corrotina

Estrutura de dados e parte do algoritmo

Parte da estrutura de dados

  • Complexidade do tempo e complexidade do espaço
  • Array
  • Lista ligada
  • amontoar
  • Pilha
  • fila
  • Tabela de hash
  • árvore

Parte do algoritmo

  • Classificar (8 classificações principais)
  • Encontrar
  • Algoritmo de recursão e retrocesso
  • como você está

Parte da rede de computadores

  • Modelo de rede de cinco camadas
  • http [cabeçalho da solicitação, corpo da resposta, três handshake, quatro ondas, etc.]
  • https
  • DNS
  • Socket & WebSocket
  • O processo de um navegador acessando um URL
  • Aplicativo de tecnologia Android [pontos de conhecimento de rede que podem ser usados ​​no Andorid]

Parte da entrevista Android

  • Parte Java
  • Parte Kotlin
  • Parte Android
  • Parte da estrutura da IU móvel (principalmente Flutter)
  • Estrutura de dados e parte do algoritmo
  • Peças de biblioteca de código aberto comumente usadas
  • Compreensão de rede de computadores

Rota do sistema de avaliação de entrevista

1. Assista ao vídeo para aprendizagem sistemática

A experiência do Crud nos últimos anos me fez perceber que sou realmente um lutador novato. É também por causa do Crud que minha tecnologia é relativamente fragmentada e não profunda o suficiente para ser sistemática o suficiente, por isso é necessário estudar novamente. O que me falta é conhecimento do sistema, estrutura e ideias fracas, então aprender por meio de vídeos é melhor e mais abrangente. Em relação à aprendizagem por vídeo, os indivíduos podem recomendar estudar na estação B. Existem muitos vídeos de aprendizagem na estação B. A única desvantagem é que eles são gratuitos e facilmente desatualizados.

2. Para classificar sistematicamente o conhecimento e melhorar as reservas

Existem tantos pontos de conhecimento no desenvolvimento do cliente e ainda há tão poucas coisas na entrevista. Portanto, não há outros truques para a entrevista, apenas para ver o quão bem você se prepara para esses pontos de conhecimento. Portanto, quando você sai para uma entrevista, é bom ver em que estágio você chegou em sua avaliação.

Direção de aprendizagem do sistema:

  • Habilidades essenciais para arquitetos: genéricos Java aprofundados + anotações em linguagem simples + programação simultânea + transmissão e serialização de dados + princípios de máquina virtual Java + reflexão e carregamento de classe + proxy dinâmico + E / S eficiente

  • IU avançada do Android e código-fonte do FrameWork: promoção da IU avançada + análise do kernel do Framework + kernel do componente Android + persistência de dados

  • 360 ° ajuste de desempenho geral : ideias de design e otimização da qualidade do código + otimização do desempenho do programa + otimização da eficiência de desenvolvimento

  • Interpretação de ideias de design de estrutura de código aberto: design de reparo a quente + interpretação de estrutura de plug-in + design de estrutura de componente + estrutura de carregamento de imagem + design de estrutura de acesso à rede + design de estrutura de programação responsiva RXJava + design de arquitetura IOC + componente de arquitetura Android Jetpack

  • Desenvolvimento do módulo NDK: sistema de conhecimento básico NDK + processamento de imagem subjacente + desenvolvimento de áudio e vídeo

  • Mini programa WeChat: Introdução ao mini programa + Desenvolvimento de IU + Operação de API + Docking WeChat

  • Desenvolvimento híbrido e Flutter: combate de projeto Html5 + Flutter avançado

Após a classificação do conhecimento, é necessário verificar os pontos que faltam, portanto, para esses pontos de conhecimento, preparei muitos e-books e notas à mão, que fornecem um resumo perfeito de cada ponto de conhecimento.

3. Leia o código-fonte, leia as notas de combate reais e aprenda as ideias de Deus

"A linguagem de programação é a forma como o programador se expressa, e a arquitetura é a percepção do programador do mundo." Portanto, se os programadores desejam compreender e aprender rapidamente a arquitetura, a leitura do código-fonte é essencial. Ler o código-fonte é resolver problemas + entender as coisas e, mais importante: ver as idéias por trás do código-fonte; os programadores dizem: leia milhares de linhas de código-fonte e pratique milhares de maneiras.

Incluem principalmente o código-fonte WeChat MMKV, código-fonte AsyncTask, código-fonte Volley, código-fonte de Retrofit, código-fonte OkHttp, etc.

4. Na véspera da entrevista, perguntas de sprint

Uma semana antes da entrevista, você pode começar a correr. Lembre-se de que, ao escovar as perguntas, a tecnologia é a primeira prioridade e o algoritmo é básico, como classificação etc., e as perguntas intelectuais, a menos que sejam recrutas da escola, geralmente não são feitas.

Com relação às perguntas da entrevista, eu pessoalmente preparei um conjunto de perguntas de entrevista sistemáticas para ajudá-los a aprender um com o outro:

Resumindo

Não há atalhos para mudar sua vida. Você precisa trilhar esse caminho sozinho. Apenas o pensamento profundo, a reflexão e o resumo constantes, manter o entusiasmo pelo aprendizado e construir seu próprio sistema de conhecimento completo passo a passo são as melhores maneiras de vencer. é também a missão que os programadores devem realizar.

O conteúdo acima é gratuito para compartilhar com todos, amigos que precisam da versão completa, clique aqui para ver todo o conteúdo .

Acho que você gosta

Origin blog.csdn.net/weixin_44339238/article/details/111875780
Recomendado
Clasificación