preguntas y respuestas de la entrevista de Android
Preguntas y respuestas de la entrevista de Android
Este artículo es una colección de preguntas y respuestas de la entrevista de Android que he recopilado cuidadosamente. Todos pueden consultarlo.
1. ¿Cuáles de las siguientes afirmaciones sobre el reciclaje de memoria son correctas? (b) A. El programador debe crear un hilo para liberar memoria
B, El programa de reciclaje de memoria es responsable de liberar memoria inútil
C. El programa de reciclaje de memoria permite a los programadores liberar memoria directamente
D. El programa de reciclaje de memoria puede liberar objetos de memoria en un momento específico
2. Las siguientes excepciones pertenecen a Runtime Exception (abcd) (múltiples opciones) A. ArithmeticException
B. IllegalArgumentException
C. NullPointerException
D. BufferUnderflowException
3. ¿Cuánto es Math.round(11.5) igual a (?). ¿Cuánto es Math.round(-11.5) igual a (c? -11 B, 11,-12 C, 12,-11 D, 12,-12
4 El resultado de salida del siguiente segmento del programa es: (b)
void. expresión complicada_r(){
int x=20, y=30;
booleano b
b=x>50&&y>60||x>50&&y< -60||x<-50&&y>60| |x<-50&&y<-60; >A, verdadero B, falso C, 1 D, 011. actividad
5. Para guardar algunos recursos y operaciones de estado, es mejor guardarlos en qué función del ciclo de vida (d) A. onPause() B. onCreate() C. onResume () D. onStart()
6. Cuando Intent transfiere datos, cuál de los siguientes tipos de datos se puede transferir (abcd) (múltiples opciones) A. Serializable B. secuencia de caracteres C. Parcelable D. Paquete p>
7. Las siguientes funciones de Intent en Android son (c) A. Para realizar el intercambio de datos entre aplicaciones
B. Es un ciclo de vida largo y no tiene interfaz de usuario. El programa puede mantener la aplicación ejecutándose en segundo plano sin desaparecer debido al cambio de páginas
C. Puede cambiar entre interfaces y puede contener acciones y datos de acciones, conectando las cuatro componentes principales
D. Procesamiento de la integridad de una aplicación
8. Las siguientes son las ventajas de SAX al analizar archivos xml: (b) A. Todo el árbol de documentos se almacena en la memoria , que es fácil de operar y admite múltiples funciones como eliminación, modificación y reorganización
B No es necesario cargar todo el documento por adelantado, lo que consume menos recursos
C. Cargar el documento completo en la memoria desperdicia tiempo y espacio
p>
D. No reside en la memoria durante mucho tiempo y los datos no son persistentes después del evento. los datos no se guardan, los datos desaparecerán
9. El siguiente par La forma correcta de personalizar el estilo es
A
B. >
C.
fill_parent
D.
fill_parent
10. El menú en Android es (ac).
(Selección múltiple) A. onCreateOptionsMenu()
B. onCreateMenu()
C. onOptionsItemSelected()
D. onItemSelected()
11. Ejecute la siguiente instrucción T-SQL en SQL Server Management Studio y su valor de salida es (c). SELECT @@IDENTITY
A. Posible 0.1
B. Posible 3
C. Imposible -100
D , debe ser 0
12. Ejecute la siguiente instrucción T-SQL en SQL Server 2005. Suponga que hay varias filas de datos en la tabla SALES. El resultado después de ejecutar la consulta es (d). INICIAR TRANSACCIÓN A
Actualizar VENTAS Establecer cantidad=30 WHERE cantidad<30
INICIAR TRANSACCIÓN B
Actualizar VENTAS Establecer cantidad=40 WHEREqty<40
Actualizar cantidad del conjunto de VENTAS=50 WHEREqty<50
Actualizar cantidad del conjunto de VENTAS=60 WHEREqty<60
COMPROMISO TRANSACCIÓN B
COMPROMISO TRANSACCIÓN A p> p>
A. El valor mínimo de la columna cantidad en la tabla VENTAS es mayor o igual a 30
B. El valor mínimo de la columna cantidad en la tabla VENTAS es mayor que o igual a 40
C. La columna qty en la tabla SALES Todos los datos son 50
D. El valor mínimo de la columna qty en la tabla SALES es mayor o igual a 60
13. Cuando se utiliza la clase auxiliar SQLiteOpenHelper en Android, se puede generar una base de datos y el método para administrar la versión de la base de datos puede ser (ab) A. getWriteableDatabase()
B. getReadableDatabase()
C. getDatabase()
D. getAbleDatabase()
14. La declaración correcta sobre onCreate() y onStart() en El ciclo de vida del servicio de Android es (anuncio) (pregunta de opción múltiple) A. Cuando se inicia por primera vez, se llama sucesivamente a los métodos onCreate() y onStart()
B. la primera vez, solo se llamará al método onCreate()
C. Si el servicio se ha iniciado, se llamará al método onCreate() y onCreate() sucesivamente. p> D. Si se ha iniciado el servicio, solo se ejecutará el método onStart() y no se ejecutará el método onCreate().
15. Las siguientes son las características de GLSurFaceView (abc )(Elección múltiple) A. Administrar una superficie. Esta superficie es una memoria especial que se puede escribir directamente en la vista de Android
.
B. Administrar una pantalla EGL, que permite a opengl representar contenido en la superficie mencionada anteriormente.
C. Deje que el renderizador opere en un hilo separado, separado del hilo de la interfaz de usuario.
D. Los datos de imagen se pueden obtener directamente de la memoria o DMA y otras interfaces de hardware
16. La siguiente es la forma correcta de registrar BroadcastReceiver en el archivo AndroidManifest.xml
A ,
android:name="android.provider.action.NewBroad"/>
B
android:name="android. .provider.action"/>
C.
android:name="android.provider.action.NewBroad"/>
D.
android:name="android.provider.action.NewBroad"/>
17. La afirmación correcta sobre la clase ContentValues es (a) A. Es similar a Hashtable y también es responsable de almacenar algunos pares de nombre-valor, pero los nombres entre los pares de nombre-valor que almacena son de tipo String y todos los valores son de tipos básicos. similar a Hashtable, y también es responsable de almacenar algunos pares nombre-valor, pero entre los pares nombre-valor que almacena, los nombres son de cualquier tipo y los valores son de tipos básicos. > C. Es similar a Hashtable y también es responsable de almacenar algunos pares de nombre-valor, pero los nombres en los pares de nombre-valor que almacena pueden estar vacíos y todos los valores son de tipo String. >
D. Es similar a Hashtable, y también se encarga de almacenar algunos valores de nombre. Sí, pero entre los pares nombre-valor que almacena
el nombre es de tipo String y el valor es. también de tipo String
18. Todos sabemos que Hanlder es el puente entre los subprocesos y la actividad. Si el subproceso no se maneja correctamente, su máquina se volverá más lenta. El método de destrucción del subproceso es (a). A. onDestroy()
B. onClear()
C. onFinish ()
D. onStop()
19. El siguiente método para salir del error de actividad es (c) A. terminar()
B. Lanzar una excepción para forzar la salida
C. System.exit()
D. onStop()
20. Las siguientes categorías de animación que pertenecen a Android son (ab) (múltiples) ) A. Interpolación B. Cuadro C. Dibujar D. Animación
21 Con respecto al proceso dvm de Android y el proceso de Linux, la declaración correcta sobre el proceso de la aplicación es (d) A. DVM se refiere a la máquina virtual dalivk. Cada aplicación de Android se ejecuta en su propio proceso y no necesariamente tiene una instancia de máquina virtual Dalvik independiente. Y cada DVM es un proceso en Linux, por lo que se puede considerar el mismo concepto.
B. DVM se refiere a la máquina virtual de dalivk. Cada aplicación de Android se ejecuta en su propio proceso y no necesariamente tiene un proceso independiente. Instancia de máquina virtual Dalvik. Y cada DVM no necesariamente es un proceso en Linux, por lo que no es un concepto.
C. DVM se refiere a la máquina virtual de Dalivk. Cada aplicación de Android se ejecuta en su propio proceso. Máquina virtual Dalvik independiente. Cada DVM no es necesariamente un proceso en Linux, por lo que no es un concepto.
D. DVM se refiere a que cada aplicación de Android se ejecuta en su propio proceso. en el sistema, cada uno tiene un Dalvi independiente
k instancia de máquina virtual. Cada DVM es un proceso en Linux, por lo que se puede considerar como el mismo concepto.
22. ¿Cuál es la función del directorio de activos en el proyecto de Android bA y la ubicación del recurso de imagen? aplicado a.
B. Colocar principalmente archivos multimedia y otros datos
C. Colocar cadenas, colores, matrices y otros datos constantes
D. Los archivos UI son todos archivos xml
23. La afirmación correcta sobre el directorio res/raw es (a) A. Los archivos aquí se almacenan intactos en el dispositivo y no se convertirán a formato binario
p>B. Los archivos aquí se almacenan intactos en el dispositivo y se convertirán a formato binario
C. Los archivos aquí finalmente se almacenan en formato binario en el paquete especificado
D. Los archivos aquí no se almacenarán en el paquete especificado en formato binario
24. ¿Cuál de las siguientes interpretaciones del NDK de Android es correcta (abcd)? A. NDK es una colección de. herramientas de la serie
B. NDK proporciona una declaración de archivo de encabezado API estable y de función limitada.
C. El método de desarrollo "Java+C" finalmente se ha convertido en un método de desarrollo compatible oficialmente.
D. NDK será el comienzo de la plataforma Android que admite el desarrollo de C.
2. Método de almacenamiento de archivos
3. Método de base de datos SQLite
4. Método del proveedor de contenido (Proveedor de contenido)
2. Completar entrevistas de Android -las preguntas en blanco
25. Los cuatro diseños comúnmente utilizados en Android son framlayout, linearlayout, relativolayout y tablelayout. 26. Los cuatro componentes principales de Android son actividad, servicio, transmisión y suministro de contenido. 27. Las clases objectinputstream y objectoutputstream en el paquete java.io se utilizan principalmente para leer y escribir objetos (Object). 28. Los métodos de implementación del servicio en Android son: startservice y bindservice. 29. La actividad generalmente sobrecarga 7 métodos para mantener su ciclo de vida. Además de onCreate (), onStart (), onDestory (), también existen onrestart, onresume, onpause y onstop. 30. Los métodos de almacenamiento de datos de Android incluyen preferencia compartida, archivo, SQlite, proveedor de contenido y red. 31. Cuando se inicia una Actividad y la nueva Actividad termina de ejecutarse, la función de devolución de llamada que debe devolverse a la Actividad que la inició para su ejecución es startActivityResult(). 32. Utilice la línea de comando para crear un archivo con el nombre myAvd, la versión del SDK es 2.2, la tarjeta SD está en el directorio raíz de la unidad d, el nombre es scard.img y especifique el tamaño de la pantalla HVGA.____________________________ . 33. El resultado de ejecutar el programa es: _____good y gbc__________.
ejemplo de clase pública{
String str=new String("bueno");
char[]ch={'a','b','c'}; >
public static void main(String args[]){
Ejemplo ex=new Ejemplo();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+" y ");
Sytem.out.print(ex.ch
}
cambio de vacío público (String str,char ch[]){
str="prueba ok"
ch[0]='g'; >
}
}
34. En Android, describa brevemente el proceso de llamada de jni. (8 puntos) 1) Instalar y descargar Cygwin y descargar Android NDK
2) Diseño de interfaz JNI en proyecto ndk
3) Usar C/C++ para implementar métodos locales
4) JNI genera el archivo .so de la biblioteca de vínculos dinámicos
5) Copie la biblioteca de vínculos dinámicos al proyecto java, llámela en el proyecto java y ejecute el proyecto java
35. ¿Describe brevemente la estructura de las aplicaciones de Android? (7 puntos) La estructura de las aplicaciones de Android es:
Núcleo de Linux (kernel de Linux), Bibliotecas (biblioteca de tiempo de ejecución del sistema o biblioteca central de c/c++) , Aplicación
Framework (paquete de marco de desarrollo), Aplicaciones (aplicaciones principales)
36. Herede la implementación de SQLiteOpenHelper: (10 puntos) 1). 1. base de datos db",
2). Cree una tabla "diario" al mismo tiempo (que contenga una clave principal _id y crezca automáticamente, tipo de carácter de tema 100
longitud, contenido tipo de carácter 1000 longitud)
3). Cuando cambie la versión de la base de datos, elimine la tabla del diario y vuelva a crearla.
public class DBHelper extiende SQLiteOpenHelper{
public final static String DATABASENAME ="diaryOpenHelper.db"
public final static int DATABASEVERSION =1; >
//Crear base de datos
public DBHelper(Context context,Stringname,CursorFactory factory,int version)
{
super(contexto, nombre, factory ,version);
}
//Crear archivos institucionales como tablas
public void onCreate(SQLiteDatabase db)
{
String sql ="create tablediary"+
"("+
"_idinteger autoincremento de clave primaria,"+
"topicvar100 ) ,"+
"contentvar1000)"+
")";
db.execSQL(sql);
}
p>
//Si la versión de la base de datos está actualizada, llama a este método
public void onUpgrade(SQLiteDatabasedb,int oldVersion,int newVersion)
{
String sql = " ifexists diario";
db.execSQL(sql);
this.onCreate(db); }
}
37. Hay una barra de progreso de control ProgressBar en la página. Utilice el hilo de escritura para completar su trabajo de visualización de progreso en 10 segundos.
(10 puntos) Respuesta
publicclass ProgressBarStu extiende la actividad {
private ProgressBar ProgressBar = null
protected void onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.progressbar);
//La clave es desde aquí hasta el final
ProgressBar = (ProgressBar )findViewById(R.id.progressBar);
Hilo hilo = new Thread(newRunnable() {
@Override
public void run() {
int ProgressBarMax =progressBar.getMax();
intenta {
mientras(progressBarMax!=progressBar.getProgress())
{
intstepProgress = ProgressBarMax/10;
intcurrentprogress = ProgressBar.getProgress();
ProgressBar.setProgress(currentprogress+stepProgress
);Thread.sleep(1000);
}
} catch(InterruptedException e) {
// TODO Bloque de captura generado automáticamente
e.printStackTrace();
}
}
});
thread.start(); p>
// Fin de clave
}
}
38. Describa el ciclo de vida de la Actividad.
Se deben llamar tres métodos: onCreate() --> onStart() --> onResume(), representado por AAA
(1) La actividad principal inicia la actividad secundaria, la actividad secundaria sale y la actividad principal llama a la secuencia de la siguiente manera
AAA --> onFreeze() --> onPause() --> onStop() --> onRestart()--> onStart(),onResume() …
(2) Cuando el usuario hace clic en Inicio, la secuencia de llamada de Actvity es la siguiente
AAA --> onFreeze() --> onPause() --> onStop() -- Quizás -->onDestroy() – Quizás
(3) Llamar a finalizar(), la secuencia de llamada de Actividad es la siguiente
AAA --> onPause() --> onStop() --> onDestroy()
(4) Muestra el cuadro de diálogo en la Actividad, la secuencia de llamada de la Actividad es la siguiente
AAA
(5 ) Muestra la actividad transparente o de pantalla no completa en la Actividad principal, la secuencia de llamada de la Actividad es la siguiente
AAA --> onFreeze() --> onPause()
(6) El dispositivo entra en estado de suspensión y la secuencia de llamada de Actividad es la siguiente
AAA --> onFreeze () --> onPause()
39. Si la Actividad en segundo plano es reciclado por el sistema por algún motivo, ¿cómo guardar el estado actual antes de ser reciclado por el sistema? onSaveInstanceState()
Cuándo Cuando se ejecuta una Actividad A en su programa, ejecuta activa o pasivamente otra nueva. Actividad B. En este momento, A ejecutará onSaveInstanceState(). Una vez completado B, volverá a A. En este momento, hay dos situaciones: una es que A se recicla y la otra es que A no se recicla. El A reciclado tendrá que llamar al método onCreate (). nuevamente, que es diferente del inicio directo. Al regresar a onCreate (), se trae el parámetro saveInstanceState, si no se recupera, onResume () se ejecuta directamente, omitiendo onCreate ();
40. Cómo configurar una Actividad al estilo de ventana. Cuando la Actividad está definida en AndroidManifest.xml, la oración android:theme="@android:style/Theme.Dialog" o android:theme="@android:style/Theme.Translucent" se volverá translúcida
41. ¿Cómo salir de una Actividad? ¿Cómo salir de forma segura de una Aplicación que ha llamado a múltiples Actividades? Para aplicaciones con una sola Actividad, salir es muy simple, simplemente finalice().
Por supuesto, también puedes utilizar métodos como killProcess() y System.exit().
Sin embargo, para aplicaciones con múltiples actividades, después de abrir múltiples actividades, si desea salir directamente de la última actividad abierta, los métodos anteriores son inútiles, porque todos los métodos anteriores finalizan como Solo una actividad.
Por supuesto, algunas personas en Internet dicen que es posible.
Al igual que cuando alguien pregunta cómo capturar el botón Inicio en una aplicación, alguien dirá que simplemente use keyCode para comparar KEYCODE_HOME. De hecho, es imposible hacer esto sin modificar el marco.
Así que lo mejor es que lo pruebes tú mismo.
Entonces, ¿hay alguna forma de salir de toda la aplicación directamente?
Antes de 2.1, puedes usar el método restartPackage de ActivityManager.
Puede finalizar directamente toda la aplicación. Requiere permiso android.permission.RESTART_PACKAGES al usarlo.
Cuidado con no confundirse con su nombre.
Sin embargo, en 2.2, este método falla.
Se agregó un nuevo método en 2.2, killBackgroundProcesses(), que requiere el permiso android.permission.KILL_BACKGROUND_PROCESSES.
Desafortunadamente, al igual que el restartPackage de 2.2, no tiene ningún efecto deseado.
Existe otro método, que es el método de finalizar por la fuerza el programa en la propia gestión de aplicaciones del sistema, forceStopPackage().
Requiere el permiso android.permission.FORCE_STOP_PACKAGES.
Y necesitas agregar el atributo android:sharedUserId="android.uid.system"
También es una lástima que este método no sea público, solo se puede ejecutar en el proceso del sistema, tercero El programa no se puede llamar.
Porque necesitas agregar LOCAL_CERTIFICATE := plataforma en Android.mk.
Android.mk se utiliza para compilar programas bajo el código fuente de Android.
Como se puede ver en lo anterior, en 2.2, no hay forma de finalizar una aplicación directamente, solo se puede hacer indirectamente mediante sus propios métodos.
Se proporcionan varios métodos como referencia:
1. Lanzar una excepción para forzar la salida:
Este método fuerza al programa a ForceClose lanzando una excepción.
La verificación está bien, pero el problema que hay que resolver es cómo finalizar el programa sin que aparezca la ventana Forzar cierre.
2. Registra la Actividad abierta:
Cada vez que se abre una Actividad, regístrala. Cuando necesites salir, simplemente cierra cada Actividad.
3. Envía una transmisión específica:
Cuando necesites finalizar la aplicación, envía una transmisión específica. Después de que cada Actividad reciba la transmisión, se puede cerrar.
4. Salida recursiva
Utilice startActivityForResult al abrir una nueva actividad, luego agregue la bandera usted mismo, procese en onActivityResult y ciérrela de forma recursiva.
A excepción del primero, todos intentan finalizar cada Actividad para lograr el objetivo de forma indirecta.
Pero esto tampoco es perfecto.
Descubrirá que si su aplicación establece un nosensor para cada Actividad, el sensor puede ser efectivo entre el final de las dos actividades.
Pero al menos, nuestro propósito se ha conseguido sin afectar al uso del usuario.
Para facilitar la programación, es mejor definir una clase base de Actividad para manejar estos problemas de comunicación.
42. Presente los cinco diseños comúnmente utilizados en Android.
FrameLayout (diseño de marco), LinearLayout (diseño lineal), AbsoluteLayout (diseño absoluto), RelativeLayout (diseño relativo), TableLayout (diseño de tabla);