1、下面不可以退出Activity的是?(D

A、finish()
B、抛异常强制退出
C、System.exit(0)
D、onStop()

解析:
A, finish() 方法就是退出activity
B. actiivity中出现抛异常,会弹出框,强制退出当前activity的。
C. System.exit(0); 这是退出所有activity使用的。
D. onStop() 只是activity一个周期方法,此时还没退出,只有走到onDestory()才退出
 
2、通过Intent传递一些二进制数据的方法有哪些? (C

    A、使用Serializable接口实现序列化,这是java常用的方法 
    B、实现Parcelable接口,这里Andriod的部分分类比如Bitmap类就已经实现了,同时Parcelable在Android AIDL中交换数据也很常见
A、A
B、B
C、AB

3、下面关于Android dvm的进程和Linux的进程,应用程序的进程说法正确的是 (D
A、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立 的Dalvik虚拟机实例.而每一个DVM都是在Linux中的一个进程,所以说可以认为是同一个概念.
B、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,不一定拥有一个独立的Dalvik虚拟机实例.而每一个DVM不一定都是在Linux 中的一个进程,所以说不是一个概念.
C、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例.而每一个DVM不一定都是在Linux 中的一个进程,所以说不是一个概念
D、DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的 Dalvik虚拟机实例.而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念.
解析:
一句话:每一个DVM都是在Linux 中的一个进程! 选择D...
先来概念:

 我们来看看每个android进程如何产生的,

 下面来对Zygote进程孵化新进程的过程做进一步了解:
  1. Zygote进程调用fork()函数创建出Zygote' 子进程,
  2. 子进程Zygote' 共享父进程Zygote的代码区与连接信息。
    如下图所示,Fork()橙色箭头左边是Zygote进程,右边是创建出的Zygote‘子进程;然后Zygote’ 子进程将执行流程交给应用程序A,Android程序开始运行。
新生成的应用程序A会使用已有Zygote父进程的库与资源的连接信息,所以运行速度很快。

       
   另外,对于上图,Zygote启动后,初始并运行DVM,而后将需要的类与资源加载到内存中。随后调用fork()创建出Zygote' 子进程,接着子进程动态加载并运行应用程序A。
   运行的应用程序A会使用Zygote已经初始化并启动运行的DVM代码,通过使用已加载至内存中的类与资源来加快运行速度。
Android进程模型

Linux通过调用start_kernel函数来启动内核,当内核启动模块启动完成后,将启动用户空间的第一个进程——Init进程,下图为Android系统的进程模型图:



从上图可以看出,Linux内核在启动过程中,创建一个名为Kthreadd的内核进程,PID=2,用于创建内核空间的其他进程;同时创建第一个用户空间Init进程,该进程PID = 1,用于启动一些本地进程,比如Zygote进程,而Zygote进程也是一个专门用于孵化Java进程的本地进程,上图清晰地描述了整个Android系统的进程模型

4、使用Toast提示时,关于提示时长,下面说法正确的是( A ).
A、显示时长默认只有2种设置
B、可以自定义显示时长
C、传入30时,提示会显示30秒钟
D、当自定义显示时长时,比如传入30,程序会抛出异常
解析:
A.显示时长只有2种设置

Toast.makeText(this, str, Toast.LENGTH_LONG).show();

toast只能设置为 2s和3.5s ,其它的值都无效,API的文档虽然写的第三个参数是时间,但是Framework里作了重定义,限定了 2s和3.5s这两个值 ,对应 Toast.LENGTH_SHORT和Toast.LENGTH_LONG,实现方式在NotificationManagerService.java的scheduleTimeoutLocked()这个函数里。

Toast的默认显示时间有两个,分别为Toast.LENGTH_SHORT和Toast.LENGTH_LONG
5、Intent传递数据时,下列的数据类型不可以被传递的是( D
A、Serializable
B、File
C、Parcelable
D、Thread
解析:

Serializable :将 Java 对象序列化为二进制文件的 Java 序列化技术是 Java系列技术中一个较为重要的技术点,在大部分情况下,开发人员只需要了解被序列化的类需要实现 Serializable 接口,使用ObjectInputStream 和 ObjectOutputStream 进行对象的读写。

Parcelable  :

android提供了一种新的类型:Parcel。本类被用作封装数据的容器,封装后的数据可以通过Intent或IPC传递。 除了基本类型以

外,只有实现了Parcelable接口的类才能被放入Parcel中。

是GOOGLE在安卓中实现的另一种序列化,功能和Serializable相似,主要是序列化的方式不同

  Intent 传递的数据必须能够被序列化,凡是能被序列化的数据都能采用Intent传递

6、当 Activity 被消毁时,如何保存它原来的状态( A
A、实现 Activity 的 onSaveInstanceState()方法
B、实现 Activity 的 onSaveInstance()方法
C、实现 Activity 的 onInstanceState()方法
D、实现 Activity 的 onSaveState()方法
解析:
onSaveInstanceState() 
当你的程序中某一个Activity A在运行时,主动或被动地运行另一个新的Activity B,这个时候A会执行onSaveInstanceState()。B完成以后又会来找A,这个时候就有两种情况:一是A被回收,二是A没有被回收,被回收的A就要重新调用onCreate()方法,不同于直接启动的是这回onCreate()里是带上了参数savedInstanceState;而没被收回的就直接执行onResume(),跳过onCreate()了。 7、关于ServiceConnection接口的onServiceConnected()方法的触发条件描述正确的是?( B
A、bindService()方法执行成功后
B、bindService()方法执行成功同时onBind()方法返回非空IBinder对象
C、Service的onCreate()方法和onBind()方法执行成功后
D、Service的onCreate()和onStartCommand()方法启动成功后
解析:

bindService是异步调用和Service进行绑定, 如果绑定成功, 则会调用ServiceConnection的onServiceConnected

当调用bindService方法后就会回调Activity的onServiceConnected,在这个方法中会向Activity中传递一个IBinder的实例,Acitity需要保存这个实例

8、Android系统对下列哪些对象提供了资源池 ( AC

A、Message
B、Thread
C、AsyncTask
D、Looper
解析:
A.Message提供了消息池,有静态方法Obtain从消息池中取对象;
B.Thread默认不提供资源池,除非使用线程池ThreadPool管理;
C.AsynTask是线程池改造的,池里 默认提供(核数+1)个线程进行并发操作,最大支持(核数  * 2 + 1)个线程,超过后会丢弃其他任务;
D.Looper,每个Looper创建时创建一个消息队列和线程对象,也不是资源池;
因此答案为AC
9、下列对android NDK的理解正确的是( ABCD
A、NDK是一系列工具的集合
B、NDK 提供了一份稳定、功能有限的 API 头文件声明
C、使 “Java+C” 的开发方式终于转正,成为官方支持的开发方式
D、NDK 将是 Android 平台支持 C 开发的开端

10、下面是属于GLSurFaceView特性的是?( ABC
A、管理一个surface,这个surface就是一块特殊的内存,能直接排版到android的视图view上。
B、管理一个EGL display,它能让opengl把内容渲染到上述的surface上。
C、让渲染器在独立的线程里运作,和UI线程分离。
D、可以直接从内存或者DMA等硬件接口取得图像数据
解析:

一个GLSurfaceView类 , 具有以下特点 :

1.管理一个平面, 这个平面是一个特殊的内存块 , 它可以和 android 视图系统混合 .

2.管理一个EGL 显示 , 它能够让 OpenGL 渲染到一个平面 .

3.接受一个用户提供的实际显示的Renderer 对象 .

4.使用一个专用线程去渲染从而和UI 线程解耦 .

5.支持on-demand  和连续的渲染.

6.可选的包, 追踪 和 / 或者错误检查这个渲染器的 OpenGL 调用 .


Android专项面试训练题(一)的更多相关文章

  1. 2020年!最全Android大厂面试真题合集(附答案)

    这份Android面试真题涵盖了图片,网络和安全机制,网络,数据库,插件化.模块化.组件化.热修复.增量更新.Gradle,架构设计和设计模式,Android Framework .Android优秀 ...

  2. Java专项面试训练(一)

    1.在Java中,( )类提供定位本地文件系统,对文件或目录及其属性进行基本操作( D ) A.FileInputStream B.FileReader C.FileWriter D.File解析:F ...

  3. 面试系列二:精选大数据面试真题JVM专项-附答案详细解析

    公众号(五分钟学大数据)已推出大数据面试系列文章-五分钟小面试,此系列文章将会深入研究各大厂笔面试真题,并根据笔面试题扩展相关的知识点,助力大家都能够成功入职大厂! 大数据笔面试系列文章分为两种类型: ...

  4. Android开发面试经——6.常见面试官提问Android题②(更新中...)

    版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http://blog.csdn.net/fi ...

  5. Android开发面试经——5.常见面试官提问Android题①

    版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客: http://blog.csdn.net/f ...

  6. 2018最新大厂Android面试真题

    前言 又到了金三银四的面试季,自己也不得不参与到这场战役中来,其实是从去年底就开始看,android的好机会确实不太多,但也还好,3年+的android开发经历还是有一些面试机会的,不过确实不像几年前 ...

  7. 2021年最新字节跳动Android面试真题解析

    概述 时间过得是真TM快,回想自己是16年从学校毕业,现在是出来工作的第五个年头啦.在不同的大小公司都待过,就在前段时间顺利的完成了一次跳槽涨薪,面试了几家公司,最终选择了字节跳动.今特此前来跟大家进 ...

  8. 2020年最新阿里、字节、腾讯、京东等一线大厂高频面试(Android岗)真题合集,面试轻松无压力

    本文涵盖了阿里巴巴.腾讯.字节跳动.京东.华为等大厂的Android面试真题,不管你是要面试大厂还是普通的互联网公司,这些面试题对你肯定是有帮助的,毕竟大厂一定是行发展的标杆,很多公司的面试官同样会研 ...

  9. Android开发如何准备技术面试(含Android面试押题)

    今年毋庸置疑是找工作的寒冬,每一个出来找工作的同学都是值得尊敬的.现在找工作,虽然略难,但是反过来看也会逼迫我们成为更加优秀的自己. 但是不管是旺季还是寒冬,有一些优秀的同学找工作还是挺顺利的.所以说 ...

随机推荐

  1. ios 导航栏和旋屏

    1,状态栏(UIStatusBar) http://my.oschina.net/shede333/blog/304560 2,visibleViewController和topViewControl ...

  2. flex渐变色制作圆角橙色按钮

    <?xml version="1.0" encoding="utf-8"?> <s:SparkButtonSkin xmlns:fx=&quo ...

  3. Android使用bindService启动服务

    1.Service package com.example.ebobo; import java.util.Timer; import java.util.TimerTask; import andr ...

  4. wxpython 布局管理

    一个典型的应用程序是由不同的部件.这些小部件被放进容器部件.一个程序员必须管理应用程序的布局.这不是一项容易的任务.在wxPython我们有两个选择. *absolute positioning*si ...

  5. [WebGL入门]十九,遮挡剔除和深度測试

    注:文章译自http://wgld.org/,原作者杉本雅広(doxas),文章中假设有我的额外说明,我会加上[lufy:],另外.鄙人webgl研究还不够深入,一些专业词语,假设翻译有误.欢迎大家指 ...

  6. mysql保存emoji表情(微信开发用户昵称..)

      java.sql.SQLException: Incorrect string value: '\xF0\x9F\x92\x94' for colum n 'name' at row 1 at c ...

  7. 关于mybatis插入数据库返回主键id

    关于Sequence主键的数据库来说,如: <insert id="add" parameterType="vo.Category"> <se ...

  8. [汇编学习笔记][第十七章使用BIOS进行键盘输入和磁盘读写

    第十七章 使用BIOS进行键盘输入和磁盘读写 17.1 int 9 中断例程对键盘输入的处理 17.2 int 16 读取键盘缓存区 mov ah,0 int 16h 结果:(ah)=扫描码,(al) ...

  9. css3实现手机菜单展开收起动画

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  10. iOS-OC-基础-NSDictionary常用方法

    /*=============================NSDictionary(不可变字典)的使用=========================*/ //————————————————— ...