Android面试必备笔试题.docx
- 文档编号:599401
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:10
- 大小:23.62KB
Android面试必备笔试题.docx
《Android面试必备笔试题.docx》由会员分享,可在线阅读,更多相关《Android面试必备笔试题.docx(10页珍藏版)》请在冰豆网上搜索。
Android面试必备笔试题
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肩上,这句话也就暗含了不要在acitivity中写过多代码,要通过activity交割model业务逻辑层解决,这样做此外一种因素是android中acitivity响应时间是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数据库这样其她数据存储方式。
4:
描述handler机制原理
andriod提供了Handler和Looper来满足线程间通信。
Handler先进先出原则。
Looper类用来管理特定线程内对象之间消息互换(MessageExchange)。
(1)Looper:
一种线程可以产生一种Looper对象,由它来管理此线程里MessageQueue(消息队列)。
(2)Handler:
你可以构造Handler对象来与Looper沟通,以便push新消息到MessageQueue里;或者接受Looper从MessageQueue取出)所送来消息。
(3)MessageQueue(消息队列):
用来存储线程放入消息。
(4)线程:
UIthread普通就是mainthread,而Android启动程序时会替它建立一种MessageQueue。
5:
显式intent和隐式intent区别是什么(android)
答:
Intent定义:
Intent是一种在不同组件之间传递祈求消息,是应用程序发出祈求和意图。
作为一种完整消息传递机制,Intent不但需要发送端,还需要接受端。
显式Intent定义:
对于明确指出了目的组件名称Intent,我们称之为显式Intent。
隐式Intent定义:
对于没有明确指出目的组件名称Intent,则称之为隐式Intent。
阐明:
Android系统使用IntentFilter来寻找与隐式Intent有关对象。
6:
如何优化ListView
1、如果自定义适配器,那么在getView办法中要考虑办法传进来参数contentView与否为null,如果为null就创立contentView并返回,如果不为null则直接使用。
在这个办法中尽量少创立view。
2、给contentView设立tag(setTag()),传入一种viewHolder对象,用于缓存要显示数据,可以达到图像数据异步加载效果。
3、如果listview需要显示item诸多,就要考虑分页加载。
例如一共要显示100条或者更多时候,我们可以考虑先加载20条,等顾客拉到列表底部时候再去加载接下来20条。
7:
简述通过contentResolver获取ContentProvider内容基本环节
第一:
得到ContentResolver类对象:
ContentResolvercr=getContentResolver();
第二:
定义要查询字段String数组。
第三:
使用cr.query();返回一种Cursor对象。
第四:
使用while循环得到Cursor里面内容。
8:
描述4种activity启动模式
(1)standard:
系统默认模式,一次跳转即会生成一种新实例。
假设有一种activity命名为MainActivity,执行语句:
startActivity(newIntent(MainActivity.this,MainActivity.class))后,MainActivity将跳转到此外一种MainActivity,也就是当前Task栈里面有MainActivity两个实例。
按返回键后你会发现依然是在MainActivity(第一种)里面。
(2)singleTop:
singleTop跟standard模式比较类似。
如果已有一种实例位于Activity栈顶部时,就不产生新实例,而只是调用Activity中newInstance()办法。
如果不位
于栈顶,会产生一种新实例。
例:
当MainActivity为singleTop模式时,执行跳转后栈里面仍旧只有一种实例,如果当前按返回键程序将直接退出。
(3)singleTask:
singleTask模式和背面singleInstance模式都是只创立一种实例。
在这种模式下,无论跳转对象是不是位于栈顶activity,程序都不会生成一种新实例
(固然前提是栈里面已有这个实例)。
这种模式相称有用,在后来多activity开发中,经常会由于跳转关系导致同个页面生成各种实例,这个在顾客体验上始终有点不好,而
如果你将相应activity声明为singleTask模式,这种问题将不复存在。
(4)singleInstance:
设立为singleInstance模式activity将独占一种task(感觉task可以理解为进程),独占一种taskactivity与其说是activity,倒不如说是一种应用,
这个应用与其她activity是独立,它有自己上下文activity。
9:
Android中如何访问自定义ContentProvider?
通过ContentProviderUri访问开放数据。
(1)ContenResolver对象通过Context提供办法getContenResolver()来获得。
(2)ContenResolver提供了如下办法来操作:
insert delete update query这些办法分别会调用ContenProvider中与之相应办法并得到返回成果。
10:
android中动画有哪几类,它们特点和区别是什么?
答:
Android中动画可以分为两大类:
帧动画、补间动画
(1)补间动画:
你定义一种开始和结束,中间某些由程序运算得到。
重要有:
旋转、平移、放缩和渐变;AlphaAnimation(渐变型动画)、scaleAnimation(缩放型动画)、 TranslateAnimation(平移型动画)、RotateAnimation(旋转型动画)
(2)逐帧动画:
Frame(把一连串图片进行系列化持续播放,犹如放电影效果),它是通过播放一张一张图片来达到动画效果;
二
1、Androiddvm进程和Linux进程,应用程序进程与否为同一种概念
DVM指dalivk虚拟机。
每一种Android应用程序都在它自己进程中运营,都拥有一种独立Dalvik虚拟机实例。
而每一种DVM都是在Linux中一种进程,因此说可以以为是同一种概念。
2、sim卡EF文献有何作用
sim卡文献系统有自己规范,重要是为了和手机通讯,sim自身可以有自己操作系统,EF就是作存储并和手机通讯用
3、嵌入式操作系统内存管理有哪几种,各有何特性?
页式,段式,段页,用到了MMU,虚拟空间等技术
4、什么是嵌入式实时操作系统,Android操作系统属于实时操作系统吗?
嵌入式实时操作系统是指当外界事件或数据产生时,可以接受并以足够迅速度予以解决,其解决成果又能在规定期间之内来控制生产过程或对解决系统作出迅速响应,并控制所有实时任务协调一致运营嵌入式操作系统。
重要用于工业控制、军事设备、航空航天等领域对系统响应时间有苛刻规定,这就需要使用实时系统。
又可分为软实时和硬实时两种,而android是基于linux内核,因而属于软实时。
5、一条最长短信息约占多少byte?
中文70(涉及标点),英文160个字节
6、android中动画有哪几类,它们特点和区别是什么?
两种,一种是Tween动画、尚有一种是Frame动画。
Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度变化;另一种Frame动画,老式动画办法,通过顺序播放排列好图片来实现,类似电影。
7、handler机制原理
andriod提供了Handler和Looper来满足线程间通信。
Handler先进先出原则。
Looper类用来管理特定线程内对象之间消息互换(MessageExchange)。
1)Looper:
一种线程可以产生一种Looper对象,由它来管理此线程里MessageQueue(消息队列)。
2)Handler:
你可以构造Handler对象来与Looper沟通,以便push新消息到MessageQueue里;或者接受Looper从MessageQueue取出)所送来消息。
3)MessageQueue(消息队列):
用来存储线程放入消息。
4)线程:
UIthread普通就是mainthread,而Android启动程序时会替它建立一种MessageQueue。
8、说说mvc模式原理,它在android中运用
MVC(Model_view_contraller)”模型_视图_控制器”。
MVC应用程序总是由这三个某些构成。
Event(事件)导致Controller变化Model或View,或者同步变化两者。
只要Controller变化了Models数据或者属性,所有依赖View都会自动更新。
类似,只要Controller变化了View,View会从潜在Model中获取数据来刷新自己。
View重绘和内存泄露是面试经常问问题
1.View刷新:
在需要刷新
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 面试 必备 笔试
![提示](https://static.bdocx.com/images/bang_tan.gif)