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 .