Android关键技术面试整理附有详细答案包括百度新浪中科软等多家公司笔试面试题.doc
《Android关键技术面试整理附有详细答案包括百度新浪中科软等多家公司笔试面试题.doc》由会员分享,可在线阅读,更多相关《Android关键技术面试整理附有详细答案包括百度新浪中科软等多家公司笔试面试题.doc(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、前19题为常考题目!(版本号:08141031)1、Android四大组件是哪些,它们作用?32、请简介下Android中惯用五种布局。33、android中动画有哪几类,它们特点和区别是什么34、android 中有哪几种解析xml类?官方推荐哪种?以及它们原理和区别。35、ListView优化方案46、请简介下Android数据存储方式。47、activity启动模式有哪些?是什么含义?68、跟activity和Task 关于 Intent启动方式有哪些?其含义?79、请描述下Activity生命周期。910、activity在屏幕旋转时生命周期1011、如何启用Service,如何停用S
2、ervice。1012、注册广播有几种方式,这些方式有何优缺陷?请谈谈Android引入广播机制用意。1113、请解释下在单线程模型中Message、Handler、Message Queue、Looper之间关系。1114、简要解释一下activity、intent 、intent filter、service、Broadcase、BroadcaseReceiver1315、说说mvc模式原理,它在android中运用,android官方建议应用程序开发采用mvc模式。何谓mvc?1316、什么是ANR 如何避免它?1317、什么状况会导致Force Close ?如何避免?能否捕获导致其异
3、常?1418、描述一下android系统架构1419、请简介下ContentProvider是如何实现数据共享。1420、Android自身api并未声明会抛出异常,则其在运营时有无也许抛出runtime异常,你遇到过吗?诺有话会导致什么问题?如何解决?1521、IntentService有何长处?1522、如果后台Activity由于某因素被系统回收了,如何在被系统回收之前保存当前状态?1523、如何将一种Activity设立成窗口样式。1524、如何退出Activity?如何安全退出已调用各种ActivityApplication?1525、AIDL全称是什么?如何工作?能解决哪些类型数据
4、?1626、请解释下Android程序运营时权限与文献系统权限区别。1727、系统上安装了各种浏览器,能否指定某浏览器访问指定页面?请阐明原由。1728、android系统优势和局限性1729、Android dvm进程和Linux进程,应用程序进程与否为同一种概念1830、sim卡EF文献是什么?有何作用1831、嵌入式操作系统内存管理有哪几种, 各有何特性1832、什么是嵌入式实时操作系统,Android 操作系统属于实时操作系统吗?1833、一条最长短信息约占多少byte?1834、有一种一维整型数组intdata保存是一张宽为width,高为height图片像素值信息。请写一种算法,将
5、该图片所有白色不透明(0xffffffff)像素点透明度调节为50%。1835、如何将SQLite数据库(dictionary.db文献)与apk文献一起发布1936、如何将打开res aw目录中数据库文献?1937、DDMS和TraceView区别?1938、java中如何引用本地语言1939、谈谈AndroidIPC(进程间通信)机制1940、NDK是什么191、 Android四大组件是哪些,它们作用?答:Activity:Activity是Android程序与顾客交互窗口,是Android构造块中最基本一种,它需要为保持各界面状态,做诸多持久化事情,妥善管理生命周期以及某些跳转逻辑se
6、rvice:后台服务于Activity,封装有一种完整功能逻辑实现,接受上层指令,完毕有关事物,定义好需要接受Intent提供同步和异步接口Content Provider:是Android提供第三方应用数据访问方案,可以派生Content Provider类,对外提供数据,可以像数据库同样进行选取排序,屏蔽内部数据存储细节,向外提供统一接口模型,大大简化上层应用,对数据整合提供了更以便途径BroadCast Receiver:接受一种或者各种Intent作触发事件,接受有关消息,做某些简朴解决,转换成一条Notification,统一了Android事件广播模型2、 请简介下Android中
7、惯用五种布局。惯用五种布局方式,分别是:FrameLayout(框架布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)。一、FrameLayout:所有东西依次都放在左上角,会重叠,这个布局比较简朴,也只能放一点比较简朴东西。二、LinearLayout:线性布局,每一种LinearLayout里面又可分为垂直布局(android:orientation=vertical)和水平布局(android:orientation=horizontal )。当垂直布局时,每一行就只有一种
8、元素,各种元素依次垂直往下;水平布局时,只有一行,每一种元素依次向右排列。三、AbsoluteLayout:绝对布局用X,Y坐标来指定元素位置,这种布局方式也比较简朴,但是在屏幕旋转时,往往会出问题,并且各种元素时候,计算比较麻烦。四、RelativeLayout:相对布局可以理解为某一种元素为参照物,来定位布局方式。重要属性有:相对于某一种元素android:layout_below、 android:layout_toLeftOf相对于父元素地方android:layout_alignParentLeft、android:layout_alignParentRigh;五、TableLayo
9、ut:表格布局,每一种TableLayout里面有表格行TableRow,TableRow里面可以详细定义每一种元素。每一种布局均有自己适合方式,这五个布局元素可以互相嵌套应用,做出美观界面。3、 android中动画有哪几类,它们特点和区别是什么 答:两种,一种是Tween动画、尚有一种是Frame动画。Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度变化;另一种Frame动画,老式动画办法,通过顺序播放排列好图片来实现,类似电影。4、 android 中有哪几种解析xml类?官方推荐哪种?以及它们原理和区别。答:XML解析重要有三种方式,SAX、DOM、PULL。常
10、规在PC上开发咱们使用Dom相对轻松些,但某些性能敏感数据库或手机上还是重要采用SAX方式,SAX读取是单向,长处:不占内存空间、解析属性以便,但缺陷就是对于套嵌各种分支来说解决不是很以便。而DOM方式会把整个XML文献加载到内存中去,该办法在查找方面可以和XPath较好结合如果数据量不是很大推荐使用,而PULL常惯用在J2ME对于节点解决比较好,类似SAX方式,同样很节约内存,在J2ME中咱们经常使用KXML库来解析。5、 ListView优化方案答:1、如果自定义适配器,那么在getView办法中要考虑办法传进来参数contentView与否为null,如果为null就创立contentV
11、iew并返回,如果不为null则直接使用。在这个办法中尽量少创立view。2、给contentView设立tag(setTag(),传入一种viewHolder对象,用于缓存要显示数据,可以达到图像数据异步加载效果。3、如果listview需要显示item诸多,就要考虑分页加载。例如一共要显示100条或者更多时候,咱们可以考虑先加载20条,等顾客拉到列表底部时候再去加载接下来20条。6、 请简介下Android数据存储方式。答:使用SharedPreferences存储数据;文献存储数据;SQLite数据库存储数据;使用ContentProvider存储数据;网络存储数据;Preference
12、,File, DataBase这三种方式分别相应目录是/data/data/Package Name/Shared_Pref,/data/data/Package Name/files,/data/data/Package Name/database 。一:使用SharedPreferences存储数据一方面阐明SharedPreferences存储方式,它是 Android提供用来存储某些简朴配备信息一种机制,例如:登录顾客顾客名与密码。其采用了Map数据构造来存储数据,以键值方式存储,可以简朴读取与写入,详细实例如下:void ReadSharedPreferences()String s
13、trName,strPassword;SharedPreferences user = getSharedPreferences(“user_info”,0);strName = user.getString(“NAME”,”);strPassword = user getString(“PASSWORD”,”);void WriteSharedPreferences(String strName,String strPassword)SharedPreferences user = getSharedPreferences(“user_info”,0);uer.edit();user.put
14、String(“NAME”,strName);user.putString(“PASSWORD” ,strPassword);mit();数据读取与写入办法都非常简朴,只是在写入时候有些区别:先调用edit()使其处在编辑状态,然后才干修改数据,最后使用commit()提交修改数据。事实上SharedPreferences是采用了XML格式将数据存储到设备中,在DDMS中File Explorer中/data/data/shares_prefs下。使用SharedPreferences是有些限制:只能在同一种包内使用,不能在不同包之间使用。二:文献存储数据文献存储方式是一种较惯用办法,在And
15、roid中读取/写入文献办法,与 Java中实现I/O程序是完全同样,提供了openFileInput()和openFileOutput()办法来读取设备上文献。详细实例如下:String fn = “moandroid.log”;FileInputStream fis = openFileInput(fn);FileOutputStream fos = openFileOutput(fn,Context.MODE_PRIVATE);三:网络存储数据网络存储方式,需要与Android 网络数据包打交道,关于Android 网络数据包详细阐明,请阅读Android SDK引用了Java SDK哪
16、些package?。四:ContentProvider1、ContentProvider简介当应用继承ContentProvider类,并重写该类用于提供数据和存储数据办法,就可以向其她应用共享其数据。虽然使用其她办法也可以对外共享数据,但数据访问方式会因数据存储方式而不同,如:采用文献方式对外共享数据,需要进行文献操作读写数据;采用sharedpreferences共享数据,需要使用sharedpreferences API读写数据。而使用ContentProvider共享数据好处是统一了数据访问方式。2、Uri类简介Uri代表了要操作数据,Uri重要包括了两某些信息:1.需要操作Conte
17、ntProvider ,2.对ContentProvider中什么数据进行操作,一种Uri由如下几某些构成:1.scheme:ContentProvider(内容提供者)scheme已经由Android所规定为:content:/2.主机名(或Authority):用于唯一标记这个ContentProvider,外部调用者可以依照这个标记来找到它。3.途径(path):可以用来表达咱们要操作数据,途径构建应依照业务而定,如下:要操作contact表中id为10记录,可以构建这样途径:/contact/10要操作contact表中id为10记录name字段, contact/10/name要操作
18、contact表中所有记录,可以构建这样途径:/contact?要操作数据不一定来自数据库,也可以是文献等她存储方式,如下:要操作xml文献中contact节点下name节点,可以构建这样途径:/contact/name如果要把一种字符串转换成Uri,可以使用Uri类中parse()办法,如下:Uri uri = Uri.parse(content:/com.changcheng.provider.contactprovider/contact)3、UriMatcher、ContentUrist和ContentResolver简介由于Uri代表了要操作数据,因此咱们很经常需要解析Uri,并从
19、Uri中获取数据。Android系统提供了两个用于操作Uri工具类,分别为UriMatcher 和ContentUris 。掌握它们使用,会便于咱们开发工作。UriMatcher:用于匹配Uri,它用法如下:1.一方面把你需要匹配Uri途径所有给注册上,如下:/常量UriMatcher.NO_MATCH表达不匹配任何途径返回码(-1)。UriMatcher uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);/如果match()办法匹配content:/com.changcheng.sqlite.provider.contactprovider /
20、contact途径,返回匹配码为1uriMatcher.addURI(“com.changcheng.sqlite.provider.contactprovider”,“contact”,1);/添加需要匹配uri,如果匹配就会返回匹配码/如果match()办法匹配 content:/com.changcheng.sqlite.provider.contactprovider/contact/230途径,返回匹配码为2uriMatcher.addURI(“com.changcheng.sqlite.provider.contactprovider”,“contact/#”,2);/#号为通配符
21、2.注册完需要匹配Uri后,就可以使用uriMatcher.match(uri)办法对输入Uri进行匹配,如果匹配就返回匹配码,匹配码是调用 addURI()办法传入第三个参数,假设匹配 content:/com.changcheng.sqlite.provider.contactprovider/contact途径,返回匹配码为1。ContentUris:用于获取Uri途径背面ID某些,它有两个比较实用办法:withAppendedId(uri,id)用于为途径加上ID某些parseId(uri)办法用于从途径中获取ID某些ContentResolver:当外部应用需要对ContentPro
22、vider中数据进行添加、删除、修改和查询操作时,可以使用 ContentResolver 类来完毕,要获取ContentResolver 对象,可以使用Activity提供getContentResolver()办法。 ContentResolver使用insert、delete、update、query办法,来操作数据。7、 activity启动模式有哪些?是什么含义?答:在android里,有4种activity启动模式,分别为: “standard” (默认) “singleTop” “singleTask” “singleInstance”它们重要有如下不同:1. 如何决定所属tas
23、k “standard”和”singleTop”activity目的task,和收到Intent发送者在同一种task内,除非intent涉及参数FLAG_ACTIVITY_NEW_TASK。 如果提供了FLAG_ACTIVITY_NEW_TASK参数,会启动到别task里。 “singleTask”和”singleInstance”总是把activity作为一种task根元素,她们不会被启动到一种其她task里。2. 与否容许各种实例 “standard”和”singleTop”可以被实例化多次,并且存在于不同task中,且一种task可以涉及一种activity各种实例; “singleT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 关键技术 面试 整理 附有 详细 答案 包括 百度 新浪 中科软 公司 笔试 试题
限制150内