android面试题库

时间:2022-11-24 01:34:24 面试技巧 我要投稿
  • 相关推荐

android面试题库

  android工程师的面试前的准备很重要,那么你知道有哪些关于安卓的面试题吗?以下是阳光网小编帮你们整理的android面试题库,一起来学习啦。

android面试题库

  android面试题篇一

  1.android 中线程与线程,进程与进程之间如何通信

  1)、一个 Android 程序开始运行时,会单独启动一个 Process 。

  默认情况下,所有这个程序中的 Activity 或者 Service 都会跑在这个 Process 。

  默认情况下,一个 Android 程序也只有一个 Process ,但一个 Process 下却可以有许多个 Thread。

  2 )、一个 Android 程序开始运行时,就有一个主线程 Main Thread 被创建。该线程主要负责 UI 界面的显示、更新和控件交互,所以又叫 UI Thread 。

  一个 Android 程序创建之初,一个 Process 呈现的是单线程模型 — 即 Main Thread ,所有的任务都在一个线程中运行。所以, Main Thread 所调用的每一个函数,其耗时应该越短越好。而对于比较费时的工作,应该设法交给子线程去做,以避免阻塞主线程(主线程被阻塞,会导致程序假死现象)。

  3 )、 Android 单线程模型: Android UI 操作并不是线程安全的并且这些操作必须在 UI 线程中执行。如果在子线程中直接修改 UI ,会导致异常。

  2.Android dvm 的进程和 Linux 的进程 , 应用程序的进程是否为同一个概念

  DVM 指 dalivk 的虚拟机。每一个 Android 应用程序都在它自己的进程中运行,都拥有一个独立的 Dalvik 虚拟机实例。而每一个 DVM 都是在 Linux 中的一个进程,所以说可以认为是同一个概念。

  3.sim 卡的 EF 文件有何作用

  sim 卡的文件系统有自己规范,主要是为了和手机通讯, sim 本身可以有自己的操作系统,EF 就是作存储并和手机通讯用的'

  4.android 中的动画有哪几类,它们的特点和区别是什么 ?

  两种,一种是 Tween 动画、还有一种是 Frame 动画。 Tween 动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化 ; 另一种 Frame 动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。

  5.描述handler 机制的原理

  andriod提供了 Handler 和 Looper 来满足线程间的通信。

  Handler 先进先出原则。Looper类用来管理特定线程内对象之间的消息交换(Message Exchange)。

  1)Looper: 一个线程可以产生一个Looper对象,由它来管理此线程里的Message Queue(消息队列)。

  2)Handler: 你可以构造Handler对象来与Looper沟通,以便push新消息到Message Queue里;或者接收Looper从Message Queue取出)所送来的消息。

  3)Message Queue(消息队列):用来存放线程放入的消息。

  4)线程:UI thread 通常就是main thread,而Android启动程序时会替它建立一个Message Queue。

  android面试题篇二

  1. 如何将 SQLite 数据库 (dictionary.db 文件 ) 与 apk 文件一起发布 ?

  解答:可以将 dictionary.db 文件复制到 Eclipse Android 工程中的 res aw 目录中。所有在 res aw 目录中的文件不会被压缩,这样可以直接提取该目录中的文件。可以将 dictionary.db 文件复制到 res aw 目录中

  2. 如何将打开 res aw 目录中的数据库文件 ?

  解答:在 Android 中不能直接打开 res aw 目录中的数据库文件,而需要在程序第一次启动时将该文件复制到手机内存或 SD 卡的某个目录中,然后再打开该数据库文件。复制的基本方法是使用getResources().openRawResource 方法获得 res aw 目录中资源的 InputStream 对象,然后将该InputStream 对象中的数据写入其他的目录中相应文件中。在 Android SDK 中可以使用SQLiteDatabase.openOrCreateDatabase 方法来打开任意目录中的 SQLite 数据库文件。

  3. 在 android 中 mvc 的具体体现

  MVC 是 Model,View,Controller 的缩写,从上图可以看出 MVC 包含三个部分:

  .. 模型( Model )对象:是应用程序的主体部分,所有的业务逻辑都应该写在该层。

  .. 视图( View )对象:是应用程序中负责生成用户界面的部分。也是在整个MVC 架构中用户唯一可以看到的一层,接收用户的输入,显示处理结果。

  .. 控制器( Control )对象:是根据用户的输入,控制用户界面数据显示及更新 Model 对象状态的部分,控制器更重要的一种导航功能,想用用户出发的相关事件,交给 M 哦得了处理。

  Android 鼓励弱耦合和组件的重用,在 Android 中 MVC 的具体体现如下

  1) 视图层( view ):一般采用 xml 文件进行界面的描述,使用的时候可以非常方便的引入,当然,如何你对 android 了解的比较的.多了话,就一定可以想到在 android 中也可以使用JavaScript+html 等的方式作为 view 层,当然这里需要进行 Java 和 JavaScript 之间的通信,幸运的是, android 提供了它们之间非常方便的通信实现。

  2) 控制层( controller ): android 的控制层的重任通常落在了众多的 acitvity 的肩上,这句话也就暗含了不要在 acitivity 中写代码,要通过 activity 交割 model 业务逻辑层处理,这样做的另外一个原因是 android 中的 acitivity 的响应时间是 5s ,如果耗时的操作放在这里,程序就很容易被回收掉。

  3) 模型层( model ):对数据库的操作、对网络等的操作都应该在 model 里面处理,当然对业务计算等操作也是必须放在的该层的。

  android面试题篇三

  1、Android中五种数据存储方式分别是什么?他们的特点?

  Android提供了五种存取数据的方式

  1)SharedPreference,存放较少的五种类型的数据,只能在同一个包内使用,生成XML的格式存放在设备中;

  2)SQLite数据库,存放各种数据,是一个轻量级的嵌入式数据库;

  3)File文件,通过读取写入方式生成文件存放数据;

  4)ContentProvider,主要用于让其他应用程序使用保存的数据;

  5)通过网络获取数据和写入数据到网络存储空间。

  2、说说 android 中 mvc 的具体体现

  mvc是model,view,controller的缩写,mvc包含三个部分:

  模型(model)对象:是应用程序的主体部分,所有的'业务逻辑都应该写在该层。 视图(view)对象:是应用程序中负责生成用户界面的部分。也是在整个mvc架构中用户唯一可以看到的一层,接收用户的输入,显示处理结果。

  控制器(control)对象:是根据用户的输入,控制用户界面数据显示及更新model对象状态的部分,控制器更重要的一种导航功能,响应用户出发的相关事件,交给m层处理。

  android鼓励弱耦合和组件的重用,在android中mvc的具体体现如下:

  1)视图(view):一般采用xml文件进行界面的描述,使用的时候可以非常方便的引入。

  2)控制层(controller):android的控制层的重任通常落在了众多的acitvity的肩上,这句话也就暗含了不要在activity中写过多的代码,要通过activity交割model业务逻辑层处理,这样做的另外一个原因是android中的activity的响应时间是5s,如果耗时的操作放在这里,程序就很容易被回收掉。

  3)模型层(model):对数据库的操作、对网络等的操作都应该在model里面处理,当然对业务计算等操作也是必须放在的该层的。

  3、简述SharedPreferences存储方式以及SharedPreferences与SQLite数据库的区别。

  SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。

  SharedPreferences对象本身只能读取数据而不支持写入数据,存储修改是通过Editor对象实现。

  SharedPreferences对象与SQLite数据库相比,免去了创建数据库,创建表,写SQL语句等诸多操作,相对而言更加方便,简洁。

  但是SharedPreferences也有其自身缺陷,比如其职能存储boolean,int,float,long和String五种简单的数据类型,比如其无法进行条件查询等。

  所以不论SharedPreferences的数据存储操作是如何简单,它也只能是存储方式的一种补充,而无法完全替代如SQLite数据库这样的其他数据存储方式。

【android面试题库】相关文章:

android面试问题04-04

android面试题201704-04

android面试题及答案04-04

android面试题整理04-04

android面试题大全04-04

android面试题练习04-04

总结的android面试题12-09

android测试面试题11-25

android软件测试面试题04-04