Android开发工程师笔试主观题
啊南 1320阅读 2020.03.30
【导语】: 主观题在笔试中是必不会缺少的一类题型,而且在笔试试题中占相当一部分的比重,因此主观题的答题技巧也具有重大的意义。小编为大家整理了一些Android开发工程师笔试主观题和参考答案,希望大家能从中获取一些的答题技巧和帮助。
1. 简述如何搭建Android开发环境。
答:
第一步:安装JDK并配置Windows上JDK的变量环境 。
第二步: 下载安装Eclipse 。
第三步:下载安装Android SDK 。
第四步:为Eclipse安装ADT插件。
2. 简述Activity的生命周期中有哪几种状态。
答:
1、可见可操作时,是运行状态
2、可见不可操作,即部分覆盖,是暂停状态
3、不可见,完全覆盖,是停止状态
3. 简述R.java和AndroidManifest.xml文件的用途。
答:
① R.java是自动生成的文件,作用是管理程序中的资源
② AndroidManifest.xml是一个重要的配置文件,可以控制每个组件的配置信息和权限信息
4. 简述ListView的缓存机制是什么。
答:ListView的缓存机制是调用AbsListview的内部类RecycleBin,每当listview中的一个item滑到屏幕不可见时,它就会被缓存到mScrapViews中,供之后getView时作为缓存使用。
5. 简述自定义适配器需要重写的方法有哪些,作用分别是什么?
答:
① 自定义适配器需要重写的方法有getView()、getTag()和setTag()方法
② 作用:初次加载进入屏幕的convertView是空的,所以每次显示一个item都会调用一个getView(),此时的convertView还是空的。通过setTag(Object)将需要显示的数据(即listView的布局文件中的组件)和view(即convertView)绑定,通过getTag用来获取view(即convertView)中数据。
1、 Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念
答:DVM指dalivk的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念。
2、 简述Android应用程序结构是哪些?
答:Android应用程序结构是: Linux Kernel(Linux内核)、Libraries(系统运行库或者是c/c++核心库)、Application Framework(开发框架包)、Applications (核心应用程序)
3、 如何将一个Activity设置成窗口的样式?
答:在AndroidManifest.xml 中定义Activity的地方 android:theme="@android:style/Theme.Dialog"或
android:theme="@android:style/Theme.Translucent"就变成半透明的
4、 简述Android的数据存储方式。
答:SharedPreferences方式 文件存储方式
SQLite数据库方式
内容提供器(Content provider)方式 网络存储方式
5、 简述ContentProvider是如何实现数据共享的。
答:创建一个属于你自己的Content provider或者将你的数据添加到一个已经存在的Contentprovider中,前提是有相同数据类型并且有写入Content provider的权限。
6、 请解释下Android程序运行时权限与文件系统权限的区别。
答:运行时权限Dalvik( android授权) 文件系统 linux 内核授权
7、 SIM卡的EF 文件有何作用?
答:SIM卡的文件系统有自己规范,主要是为了和手机通讯,SIM本 身可以有自己的操作系统,EF就是作存储并和手机通讯用的
8、 什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗?
答:嵌入式实时操作系统是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。主要用于工业控制、 军事设备、 航空航天等领域对系统的响应时间有苛刻的要求,这就需要使用实时系统。又可分为软实时和硬实时两种,而android是基于linux内核的,因此属于软实时。
9、 Android中的动画有哪几类,它们的特点和区别是什么?
答:两种。一种是Tween动画、还有一种是Frame动画。Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;另一种Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。
10、 简述Activity的生命周期
答:一个activity有三个基本的状态:
当activity在前台运行时(在activity当前任务的堆栈顶),为活动或者运行状态。这时activity会响应用户的操作。
当activity失去焦点但是对用户仍然可见时为paused暂停状态。此时,别的activity在他的上面,透明或者备有被全部覆盖。所以其中一些暂停的activity也可以被显示。一个暂停的activity是处于活动状态的(他维护着所有的状态保存着信息,并且依然附着在窗口管理器)。
如果一个activity完全被另一个activity所掩盖那他会处于stop状态。但仍然保存着原来的状态和信息。然而,如果别的地方需要更多的内存而且这个activity仍一直处于隐藏状态,那么系统有可能会杀死他的进程。
如果一个activity是暂停或者停止状态,系统可以清理他们占用的内存,或者调用finish()方法,或者直接结束他的进程。当他再次显示给用户时,会完全的重新运行并且加载以前所存储的信息。
1、 列举通过Intent传递不同数据类型的方法(至少5个)?
①Intent.addCategory(String category) ②Intetn.addFlags(int flags) ③Intent.equals(Object o)
④Intent.fillIn(Intent other,int flags) ⑤Intent.filterEquals(Intent other)
2、 阐述android:padding和android:layout_margin的异同?
(1)不同点:android:padding 是站在父View 的角度描述问题,它规定它里面的内容必须与这个父View 边界的距离。android:layout_margin 则是站在自己角度描述问题,规定自己和其他(上下左右)的 View 之间的距离如同一级只有一个View,那么他的效果基本上就和padding一样。
(2)相同点:如同一级只有一个View,那么android:layout_margin的效果基本上就和android:padding一样
3、 简述Android 平台的特征有哪些。
开放性、
挣脱运行商的束缚、 丰富的硬件选择、
无缝结合的Google应用
4、 简述Android 平台开发环境搭建的步骤。
安装Java JDK, 安装Eclipse,
安装Android SDK,
搭建Eclipse集成开发环境(IDE)、
配置ADT(Android Development Tools)、 创建AVD(Android Virtual Device)
5、 简述Android系统架构从高到低的几个层次。
四个层次,分别是:
应用程序层(Applications)、
应用程序框架层(Application Framework)、 各种库(Libraries)和运行环境(Runtime)、 Linux内核(Linux kernel)
6、 应用程序的基本组件有哪些?
Activity、 Service、
Content Provider、
BroadCast Receiver
7、 Android根据应用程序的组件以及组件当前运行状态将所有的进程按重要性程度从高到低划
分为几个?
可以划分为5个:
前台进程、可见进程、服务进程、后台进程、空进程
8、 随着Activity的创建和销毁,可能会经历哪四种状态?
活动状态:当前的Activity,位于Activity栈顶,用户可见,并且可以获得焦点
暂停状态:失去焦点的Activity,依然可见,即使在内存低的情况下,也不会被系统杀死
停止状态:该Activity被其他Activity所覆盖,不可见,但是仍然保存所有的状态和信息。当内存低的情况下,它将要被系统杀死
销毁状态:该Activity结束,或Activity所在的Dalvik进程结束
9、 使用资源包括哪几种方法?
在代码里使用资源类;
在代码里调用资源类并实例化; 从其他资源类里引用
10、 AndroidManifest.xml主要包含哪些功能?
说明application的java数据包,数据包名是application的唯一标识 描述application的component
说明application的component运行在那个process下
声明application的权限,用以访问受保护的API,以及与其他application进行交互 声明application的其他必备权限,用以与component进行交互
列举application运行时所需要的配置信息,这些声明信息只有在程序开发和测试时存在,在发布前被删除
声明application所需要的Android API的最低级版本 列举application所需要链接的库
11、 Android应用程序的菜单有哪几种?
Android应用程序的菜单有3种: 选择菜单(Option Menu)、 上下文菜单(Context Menu)、 子菜单(Sub Menu)
12、 在界面上创建一个Spinner(含数据选项)的步骤。
1、在布局文件中添加标记,并为其指定android:entries属性
2、编写用于指定列表项的数组资源文件,并将其保存在res/values目录中,在该文件中添加一个字符串组
13、 现行布局中属性orientation的作用是什么?
用于设置布局管理器内组件的排列方式,其可选的值为horizontal和vertical,默认值为vertical
14、 Android中实现事件处理的步骤?
(1)将事件监听器注册到事件源 (2)触发事件源上的事件 (3)生成时间对象
(4)触发事件监听器,事件被作为参数传入事件处理器 (5)调用事件处理器做出响应
15、 简述Android模拟器中应用程序使用SD卡的步骤。
(1)调用Environment的getExternalStorageState()方法判断手机上是否插入了SD卡,并且应用程序具有读写SD卡的权限
(2)调用Environment的getExternalDirectory()方法来获取外部存储器,也就是SD卡的目录 (3)使用FileOutputStream、FileInputStream、FileReader和FileWriter来读写SD卡