Es mejor intentarlo. La primera oferta que recibí después de unos años: publicación de I + D de ByteDance para Android

Con tres oros y cuatro platas, es la temporada anual de búsqueda de empleo. Quizás muchos programadores de Android están comenzando a prepararse. Combinando mi propia experiencia en el pasado, hoy resumiré las preguntas de la entrevista de Android para todos, espero que ayude.

1: ¿Ciclo de vida de la actividad?

Este es casi un problema que es adecuado para todas las edades y nunca se volverá obsoleto, y es muy probable que sea el primer problema. Por supuesto que no hay nada de qué hablar sobre esta cuestión, la memorización de memoria es inútil, la clave es comprender. Encontré una variante de este problema. Pregunté onStart (), ¿cuál es la diferencia entre onResume ()? Si el entrevistador plantea esta pregunta, ¿lo toma un poco desprevenido? Hoy escuché que algunos compañeros de clase se encontraron con un problema más pervertido: bajo qué circunstancias la actividad continuó enCreat () en lugar de onStart (), esto es simplemente un desafío para la mente.

2: ciclo de vida del servicio?

Tenga en cuenta aquí que hay dos formas de iniciar el servicio, startService () y bindService ()

3: ¿Cómo entender la relación entre Actividad, Vista y Ventana?

Esta pregunta es realmente difícil de responder. Así que aquí hay una metáfora más apropiada para describir su relación. La actividad es como un artesano (unidad de control), la ventana es como una ventana (modelo de transporte), la vista es como una rejilla de ventana (vista de visualización), LayoutInflater es como una tijera y la configuración de Xml es como un dibujo de rejilla de ventana.
1: Se inicializará una ventana cuando se construya la actividad, para ser precisos, PhoneWindow.
2: Esta PhoneWindow tiene una "ViewRoot", esta "ViewRoot" es una Vista o ViewGroup, que es la vista raíz inicial.
3: "ViewRoot" agrega Vistas una por una a través del método addView. Por ejemplo, TextView, Button, etc.
4: WindowManagerService recibe el detector de eventos de estas vistas y se vuelve a llamar a la función Activity. Como onClickListener, onKeyDown, etc.

4: Varios escenarios de uso y LaunchMode de Activity

Modo estándar
Este es el modo predeterminado.Cada vez que se activa una Actividad, se creará una instancia de Actividad y se colocará en la pila de tareas. Escenario de uso: Más actividad.
En el modo singleTop,
si hay una instancia de la Actividad en la parte superior de la pila de tareas, la instancia se reutilizará (se llamará a onNewIntent () de la instancia); de lo contrario, se creará una nueva instancia y se colocará en la parte superior de la pila, incluso si la instancia de la Actividad ya existe en la pila. Una instancia, siempre que no esté en la parte superior de la pila, se creará una nueva instancia. Utilice escenarios como noticias o lectura de páginas de contenido de aplicaciones.
Modo singleTask
Si ya hay una instancia de la Actividad en la pila, se reutilizará (se llamará a onNewIntent () de la instancia). Cuando se reutiliza, la instancia se devolverá a la parte superior de la pila, por lo que la instancia anterior se eliminará de la pila. Si la instancia no existe en la pila, se creará una nueva instancia y se colocará en la pila. Utilice escenarios como la interfaz principal de un navegador. Independientemente de la cantidad de aplicaciones desde las que inicie el navegador, solo iniciará la interfaz principal una vez y, en otros casos, irá a onNewIntent y borrará otras páginas de la interfaz principal.
El modo singleInstance
crea una instancia de Activity en una nueva pila y permite que varias aplicaciones compartan la instancia de Activity en la pila. Una vez que la instancia de Actividad de este modo ya existe en una determinada pila, cualquier aplicación reutilizará la instancia en la pila al reactivar la Actividad (llamará al onNewIntent () de la instancia). El efecto es equivalente a que múltiples aplicaciones compartan una aplicación, no importa quién active la Actividad entrará en la misma aplicación. Utilice escenarios como recordatorios de alarma para separar los recordatorios de alarma de la configuración de alarma. No use singleInstance para la página intermedia. Si se usa para la página intermedia, habrá problemas con el salto, tales como: A -> B (singleInstance) -> C. Después de salir completamente, inícielo aquí. El primero abrir es B.

5: Ver proceso de dibujo

medir proceso
diseño proceso
dibujar proceso

6: El mecanismo de entrega de eventos Touch
publicbooleandispatchTouchEvent(MotionEventev);  //用来分派event
publicbooleanonInterceptTouchEvent(MotionEventev);//用来拦截event
publicbooleanonTouchEvent(MotionEventev);//用来处理event

Entre ellos, los controles Activity y View (TextView) tienen métodos para enviar y procesar eventos, y el contenedor View (LinearLayout) tiene métodos para enviar, interceptar y procesar eventos. También hay una analogía aquí: el líder asignará tareas hacia abajo. Una vez que a las personas de abajo no les va bien, no les dará las tareas de seguimiento a las personas de abajo para que las hagan. Solo pueden hacerlo ellos mismos, si lo hacen No, solo puedo decirle al superior que no puede completar la tarea, y el superior repetirá su proceso. Además, los líderes tienen derecho a interceptar la tarea, ocultarla al subordinado y realizarla directamente por sí mismos. Si falla, solo pueden informar al superior que la tarea no se puede completar.

7: Varias animaciones en Android

Me han preguntado acerca de varios tipos de animaciones en Android, y esta pregunta es demasiado difícil de responder. Hay 2 tipos antes de Android 3.0 y 3 tipos después de 3.0.
FrameAnimation (animación fotograma a fotograma) : combina varias imágenes para la reproducción, similar al principio de funcionamiento de las primeras películas. Muchas aplicaciones de carga utilizan este método.
TweenAnimation : una serie de operaciones de animación en una vista, incluidos cuatro modos: alfa, escala, traslación y rotación.
PropertyAnimation : la animación de propiedades ya no es solo un efecto visual, sino un mecanismo que manipula continuamente valores y asigna el valor a la propiedad especificada del objeto especificado, que puede ser cualquier propiedad de cualquier objeto.

8: hay varias formas de comunicación entre procesos en Android

1: acceda a la actividad de otras aplicaciones,
como llamar a la aplicación de llamada del sistema

IntentcallIntent=newIntent(Intent.ACTION_CALL,Uri.parse("tel:12345678");
startActivity(callIntent);

2: Proveedor de contenido
, como acceder al álbum de fotos del sistema

3: Difusión (Difusión)
como mostrar la hora del sistema

4: servicio AIDL

9: comprensión de AIDL
10: Principio del manejador
11: Principio del mecanismo de encuadernación
12: El principio de reparación en caliente

1: JavaSisst
2: AspectJ
3: Xposef

13: Diseñe un conjunto de esquema de almacenamiento en caché y carga asincrónica de imágenes
14: fuga y gestión de memoria de Android
15: Actividad y comunicación de fragmentos
16: fosas de fragmentos
16: adaptación de la interfaz de usuario de Android
17: Optimización del diseño
18 : Http Https
19: Optimización de solicitudes de red
20: Optimización de la base de datos
21: Optimización de imagen
22: Interacción HybridJAVA y JS
23: Singleton
24: Principios de Java GC
25: ANR
26 : Volea
27: Principio de reflexión de la anotación JAVA
28: Algoritmo
29: Patrón de diseño
30: RxJava

Todas las preguntas y respuestas de la entrevista se han ordenado en documentos PDF, como se muestra en la siguiente figura: las notas de estudio se comparten con todos de forma gratuita, si solo las necesita, puede hacer clic aquí para recogerlas de forma gratuita .

Uso compartido de recursos de aprendizaje avanzado de Android

Con todo, el éxito está reservado para aquellos que están preparados .

Para mudarme a una gran fábrica, pasé medio año compilando una colección de "Preguntas reales de la entrevista de desarrollo de Android 2020" de grandes empresas de todos los ámbitos de la vida, y un estudio en profundidad del código fuente subyacente y el diseño de la arquitectura. Pero también cepillé muchas preguntas de entrevistas reales de las grandes fábricas. También experimenté que vale la pena hacer todos los esfuerzos.

El libro de entrevistas no solo incluye las preguntas que encontré en la entrevista, sino que también incluye preguntas recopiladas de algunos amigos. En el trabajo futuro, continuaré actualizando y enriqueciendo el libro de entrevistas. Por supuesto, también espero que todos puedan contribuir con más preguntas de entrevista de alta calidad.

Se divide en 6 partes en total:

  • Conceptos básicos de Java (★★)
  • Java avanzado (★★)
  • Conceptos básicos de Android (★★★)
  • Android avanzado (★★★)
  • Proyecto de Android (★★★)
  • Preguntas frecuentes de la entrevista del proyecto (★★★)

1. Conceptos básicos de Java (★★)

Pensamiento orientado a objetos
,
manejo de excepciones polimórficas ,
tipo de datos, colección de
E / S de Java
,
subprocesos múltiples de Java

Java avanzado (★★)

Reflexión en
Java Proxy dinámico en
Java Design patrón y mecanismo de reciclaje en
Java Class Loader en Java

Conceptos básicos de Android (★★★)

Conocimientos básicos del servicio de
actividad de Android BroadCastReceiver ContentProvider & Database


Layout
ListView en Android
JNI y NDK Fragmento de intención de
acceso a la red en Android

Android avanzado (★★★)

Optimización del rendimiento de
Android Adaptación de la pantalla de Android
Control
personalizado de AIDL
Manejo de eventos en
Android Protocolo de red de
animación de firmas
de Android en Android
Otro

Preguntas frecuentes de la entrevista del proyecto (★★★)

  • Ciclo de desarrollo
  • Problemas encontrados en el proyecto
  • La mayor ganancia en el proyecto
  • Cómo se puso en marcha el proyecto
  • Cómo es rentable el proyecto
  • Dibujar diagrama de arquitectura del proyecto
  • Proceso de desarrollo de proyectos
  • Tu papel en el proyecto
  • De qué módulos del proyecto eres responsable
  • Hable sobre la implementación específica del módulo del que es responsable
  • Qué frameworks de tercera generación se utilizan en el proyecto
  • ¿Alguna vez ha escrito un marco usted mismo?
  • ¿Cómo te mejoras (aprendiendo) en tu tiempo libre?
  • ¿Tienes tu propio blog técnico?
  • Tu plan de carrera
  • Por qué irse
  • Por que elegir nuestra empresa
  • Hable sobre los aspectos más destacados y las deficiencias de su proyecto.
  • ¿Cómo mantiene su proyecto un estilo coherente?
  • ¿Cómo se construye la estructura del proyecto?
  • Cómo solucionar la adaptación de la pantalla
  • ¿Qué código fuente has visto?
  • ¿Cómo se actualiza la versión del proyecto?
  • Qué herramienta de control de versiones usar
  • ¿Puedes desarrollarte de forma independiente?
  • Cómo interactúa la aplicación con el servidor
  • ¿Ha redactado el documento de requisitos?
  • ¿Se ha escrito el documento de interfaz?
  • Qué servidores en la nube se han utilizado
  • Qué plataformas de terceros han utilizado

Currículum vitae + solución de reclutamiento social + análisis clásico de entrevistas de recursos humanos

Lo anterior es un resumen de las preguntas reales que se encontraron en las entrevistas de nivel intermedio y superior de Android. Espero que sea de utilidad para todos. Al mismo tiempo, muchas personas a menudo encuentran muchas preguntas en las entrevistas sobre la producción de currículums, la confusión profesional y la entrevista clásica de recursos humanos. preguntas. De manera similar, también he recopilado y recopilado un conjunto completo de producción de currículums, acertijos de reclutamiento por parte de los clubes Golden Three y Silver Four, y entrevistas de recursos humanos. Si tiene alguna pregunta, puedo brindarle respuestas profesionales.

Para los amigos desarrolladores de Android, debería ser la información de entrevista más completa y completa. Para organizar mejor cada módulo, me refiero a muchas publicaciones de blogs y proyectos de alta calidad en Internet, y me esfuerzo por no perder todos los puntos de conocimiento. Muchos amigos confiaron en estos contenidos para revisar y obtuvieron ofertas de grandes fabricantes como BATJ. Esta información también ha ayudado a muchos desarrolladores de Android, y espero ayudarlos a ustedes también.

Por razones de espacio, si necesita el PDF de las notas de estudio completas anteriores, puede dar me gusta + soporte para comentarios, ¡ haga clic aquí para recoger gratis !

Supongo que te gusta

Origin blog.csdn.net/m0_46657043/article/details/113995643
Recomendado
Clasificación