interview result
来源:互联网 发布:建立数据库的表结构 编辑:程序博客网 时间:2024/06/06 13:59
----------------------------------------基础知识部分(共4题,正确4题)
android有几大组件
正确
答案:activity, service, contentprovider, broadcasereceiver
broadcastreciever有几种注册方式:
正确
答案:在manifest.xml中配置,和,在程序中注册
intent分为哪几类
正确
答案:显式的,和,隐式的
为什么需要隐式的intent
答案:将自身的程序和其他第三方的程序连接起来(你并不知道物理上的component name,但是知道逻辑上的action/category等)
----------------------------------------content provider部分(共8题,正确4题,不那么正确3题,不正确1题)
contentprovider的底层数据存储可以有哪些
不是那么正确
答案:可以使用db, file, sharedpreference等一切适合当前项目的存储方式
LM:db。他指出了android当中可以使用file, db, shardpreference等来存储内容,但是没有指出这些方式和contentprovider的关系
如何监听一个contentprovider
正确
答案:使用contentresolver来注册监听器contentobserver;在数据发生改变时,contentresolver.notifychange
contentprovider是由什么标示的
正确
答案:uri中的authorities part
如何将数据写入到文件的末尾,而不是覆盖整个文件内容
正确
答案:fileoutputstream(filepath, append_is_true)
我的app在默认情况下可以访问哪些文件
不是那么正确
答案:默认情况下只能访问/data/data/{package_name}/files/下的文件
LM:提到了只能访问自身应用所对应的文件,但是说app会自动生成一个叫package_name的文件,该说法是错误的
android能否监听一个文件的改变,如:重命名,内容发生变化,删除,等
不正确
答案:可以,通过fileobserver
LM:不知
sqliteopenhelper的oncreate在什么情况下被调用
正确
答案:在数据还未创建,且客户要获取数据库实例时(sqliteopenhelper.getwritabledatabase)
sqliteopenhelper的onupgrade在什么情况下被调用
不是那么正确
答案:在数据库已存在,但是版本号发生改变的情况下(sqliteopenhelper的构造函数中指定了版本号)
LM:大体思路正确,但是询问怎么知道版本号发生改变了,答:未知,因不常用
----------------------------------------service/ipc部分(共3题,不正确3题)
ipc依赖于android四大组件中的哪一个
不正确
答案:service
LM:不知
ipc的内部原理是什么
不正确
答案:客户端bindservice,在连接建立后,获取ibinder,通过ibinder.transact来调用remote method;服务器binder.ontransact会被调用,进而调用local method(其内写入业务逻辑)
LM:不知
ipc的local method执行在哪个线程上
不正确
答案:service专门维护的线程池中的线程
LM:不知
----------------------------------------activity/UI部分(共12题,正确5题,不那么正确3题,不正确4题)
我的app启动一个非UI线程来下载一个视频,当下载结束后,需要更新UI上的textview的内容为"download finish",如何实现这种更新
正确
答案:在UI线程上实例化handler,并传递该handler给非UI线程,非UI线程下载完毕后,通过该handler发送下载完成的消息,handler处理该消息来更新UI
举出你常见的layout
正确
答案:linearlayout, relativelayout, framelayout等
padding和layout_margin的区别
不那么正确
答案:padding和layout_margin虽然都代表边界,但是padding算入view的区域;而layout_margin并不算入view的区域,它只是告诉parent view:为我保留一些边界
LM:padding和layout_margin都代表边界。padding不算入view的区域,layout_margin算入view的区域,而这与答案恰好相反
在android,可以使用哪个类来方便的得到一个layout.xml的root view
不正确
答案:使用layoutinflater
LM:他答出了使用dom, sax来解析xml,但是并不知道layoutinflater(layoutinflater往往使用在 “listview的item view的构造” 中,说明baseadpater运用的不够熟练)
canvas, paint, drawable之间有什么的关系
不那么正确
答案:canvas提供了绘制的操作,底层的数据存储到关联的bitmap上;paint设置了绘制时用的画笔,如颜色,粗细等;drawable为一切可以被画到canvas上的东西
LM:他只提到了drawable和bitmap之间的转换
listview/gridview依赖于哪个类为其item提供view
正确
答案:baseadapter等
当listview的底层数据发生改变时,怎么通知UI进行更新
正确
答案:baseadapter.notifydatasetchanged
android有哪几类menu
正确
答案:optionmenu, contextmenu
如何完成一个contextmenu和一个view的关联
不正确
答案:activity.registerforcontextmenu,或者,view.setoncreatecontextmenulistener
LM:未知
如何自定义view
不那么正确
答案:继承相应view(widget/layout),有选择的复写回调方法(如onlayout, onmeasure, ondraw等)
LM:回答有些含糊
surfaceview和view的区别
不正确
答案:
surfaceview的绘制可以在非UI线程上;view的绘制必须在回调方法ondraw中,且由android框架调用
surfaceview更适用于需要实时绘制(主动绘制)的应用中;而view更适用于非实时绘制(被动绘制)的应用中
LM:没使用过surfaceview
android有哪几类动画,分别都怎么启动
不正确
答案:
tweened animationm(translate, rotate, scale, alpha), frame animation
启动:
tweened animationm:加载动画,startanimation
frame animation:animationdrawable.start
LM:未知
----------------------------------------其他知识部分(共4题,正确2题,不那么正确2题)
我的app需要联网,需要在manifest.xml中使用permission,还是usepermission,来声明所需权限?
正确
答案:使用usepermission
列出你是如何访问网络的
正确:
答案:通过httpconnection的方式建立连接,然后读取数据从inputstream,写入数据到outputstream
activitymanager的用途是什么
不是那么正确
答案:获取app运行时的信息,如:当前正在运行的component有哪些
LM:管理activity等
packagemanager的用途是什么
不是那么正确
答案:获取package的信息,如:app的label等
LM:获取包名,杀死进程
----------------------------------------设计模式部分
说出你常用的设计模式
LM:
单例模式,提到了两种方式,但是在说到lazy init的方式时,getinstance方法并不需要进行同步判断。这点是错误的
适配器模式,比较正确的说出了基本原理
----------------------------------------面试情况
共31题,正确15题,不那么正确8题,不正确8题
----------------------------------------QL的评价
根据上述面试的回答情况:
我认为LM是可以的
他对于android的基本知识还是熟悉的
在android的某些特定方面,他还需要加强。为什么不熟悉的原因,为:不常使用,或者,没有对该知识点进行深入分析
因为android的技能是比较集中的,经过一段时间的技能补强后,能得到比较大的提升
android有几大组件
正确
答案:activity, service, contentprovider, broadcasereceiver
broadcastreciever有几种注册方式:
正确
答案:在manifest.xml中配置,和,在程序中注册
intent分为哪几类
正确
答案:显式的,和,隐式的
为什么需要隐式的intent
答案:将自身的程序和其他第三方的程序连接起来(你并不知道物理上的component name,但是知道逻辑上的action/category等)
----------------------------------------content provider部分(共8题,正确4题,不那么正确3题,不正确1题)
contentprovider的底层数据存储可以有哪些
不是那么正确
答案:可以使用db, file, sharedpreference等一切适合当前项目的存储方式
LM:db。他指出了android当中可以使用file, db, shardpreference等来存储内容,但是没有指出这些方式和contentprovider的关系
如何监听一个contentprovider
正确
答案:使用contentresolver来注册监听器contentobserver;在数据发生改变时,contentresolver.notifychange
contentprovider是由什么标示的
正确
答案:uri中的authorities part
如何将数据写入到文件的末尾,而不是覆盖整个文件内容
正确
答案:fileoutputstream(filepath, append_is_true)
我的app在默认情况下可以访问哪些文件
不是那么正确
答案:默认情况下只能访问/data/data/{package_name}/files/下的文件
LM:提到了只能访问自身应用所对应的文件,但是说app会自动生成一个叫package_name的文件,该说法是错误的
android能否监听一个文件的改变,如:重命名,内容发生变化,删除,等
不正确
答案:可以,通过fileobserver
LM:不知
sqliteopenhelper的oncreate在什么情况下被调用
正确
答案:在数据还未创建,且客户要获取数据库实例时(sqliteopenhelper.getwritabledatabase)
sqliteopenhelper的onupgrade在什么情况下被调用
不是那么正确
答案:在数据库已存在,但是版本号发生改变的情况下(sqliteopenhelper的构造函数中指定了版本号)
LM:大体思路正确,但是询问怎么知道版本号发生改变了,答:未知,因不常用
----------------------------------------service/ipc部分(共3题,不正确3题)
ipc依赖于android四大组件中的哪一个
不正确
答案:service
LM:不知
ipc的内部原理是什么
不正确
答案:客户端bindservice,在连接建立后,获取ibinder,通过ibinder.transact来调用remote method;服务器binder.ontransact会被调用,进而调用local method(其内写入业务逻辑)
LM:不知
ipc的local method执行在哪个线程上
不正确
答案:service专门维护的线程池中的线程
LM:不知
----------------------------------------activity/UI部分(共12题,正确5题,不那么正确3题,不正确4题)
我的app启动一个非UI线程来下载一个视频,当下载结束后,需要更新UI上的textview的内容为"download finish",如何实现这种更新
正确
答案:在UI线程上实例化handler,并传递该handler给非UI线程,非UI线程下载完毕后,通过该handler发送下载完成的消息,handler处理该消息来更新UI
举出你常见的layout
正确
答案:linearlayout, relativelayout, framelayout等
padding和layout_margin的区别
不那么正确
答案:padding和layout_margin虽然都代表边界,但是padding算入view的区域;而layout_margin并不算入view的区域,它只是告诉parent view:为我保留一些边界
LM:padding和layout_margin都代表边界。padding不算入view的区域,layout_margin算入view的区域,而这与答案恰好相反
在android,可以使用哪个类来方便的得到一个layout.xml的root view
不正确
答案:使用layoutinflater
LM:他答出了使用dom, sax来解析xml,但是并不知道layoutinflater(layoutinflater往往使用在 “listview的item view的构造” 中,说明baseadpater运用的不够熟练)
canvas, paint, drawable之间有什么的关系
不那么正确
答案:canvas提供了绘制的操作,底层的数据存储到关联的bitmap上;paint设置了绘制时用的画笔,如颜色,粗细等;drawable为一切可以被画到canvas上的东西
LM:他只提到了drawable和bitmap之间的转换
listview/gridview依赖于哪个类为其item提供view
正确
答案:baseadapter等
当listview的底层数据发生改变时,怎么通知UI进行更新
正确
答案:baseadapter.notifydatasetchanged
android有哪几类menu
正确
答案:optionmenu, contextmenu
如何完成一个contextmenu和一个view的关联
不正确
答案:activity.registerforcontextmenu,或者,view.setoncreatecontextmenulistener
LM:未知
如何自定义view
不那么正确
答案:继承相应view(widget/layout),有选择的复写回调方法(如onlayout, onmeasure, ondraw等)
LM:回答有些含糊
surfaceview和view的区别
不正确
答案:
surfaceview的绘制可以在非UI线程上;view的绘制必须在回调方法ondraw中,且由android框架调用
surfaceview更适用于需要实时绘制(主动绘制)的应用中;而view更适用于非实时绘制(被动绘制)的应用中
LM:没使用过surfaceview
android有哪几类动画,分别都怎么启动
不正确
答案:
tweened animationm(translate, rotate, scale, alpha), frame animation
启动:
tweened animationm:加载动画,startanimation
frame animation:animationdrawable.start
LM:未知
----------------------------------------其他知识部分(共4题,正确2题,不那么正确2题)
我的app需要联网,需要在manifest.xml中使用permission,还是usepermission,来声明所需权限?
正确
答案:使用usepermission
列出你是如何访问网络的
正确:
答案:通过httpconnection的方式建立连接,然后读取数据从inputstream,写入数据到outputstream
activitymanager的用途是什么
不是那么正确
答案:获取app运行时的信息,如:当前正在运行的component有哪些
LM:管理activity等
packagemanager的用途是什么
不是那么正确
答案:获取package的信息,如:app的label等
LM:获取包名,杀死进程
----------------------------------------设计模式部分
说出你常用的设计模式
LM:
单例模式,提到了两种方式,但是在说到lazy init的方式时,getinstance方法并不需要进行同步判断。这点是错误的
适配器模式,比较正确的说出了基本原理
----------------------------------------面试情况
共31题,正确15题,不那么正确8题,不正确8题
----------------------------------------QL的评价
根据上述面试的回答情况:
我认为LM是可以的
他对于android的基本知识还是熟悉的
在android的某些特定方面,他还需要加强。为什么不熟悉的原因,为:不常使用,或者,没有对该知识点进行深入分析
因为android的技能是比较集中的,经过一段时间的技能补强后,能得到比较大的提升
- interview result
- Interview
- Interview
- Interview!!
- Interview
- Interview
- interview
- interview
- Interview
- Interview
- Interview
- interview
- interview
- interview~~~
- Interview
- interview
- interview
- Interview
- Console命令详解,让调试js代码变得更简单
- Objective-C中的@property和@synthesize用法
- java回调函数
- UIImageView和UIImage,CGContextRef 的一些知识点
- 通用堆栈c语言版本(可以适应任何类型)
- interview result
- Super Pig游戏开发记录(4)
- Android应用自动更新功能代码实现
- 调度系统分析
- [转载]Objective-C 的 self 和 super 详解
- linux sed命令参数及用法详解
- jQuery选择器大全(48个代码片段+21幅图演示)
- [Linux 工具]NMON 使用入门
- 图解:SQL Server SSIS包和job的部署攻略