android面试问题

网上看到这些问题不错,特此记录下,方便自己学习

1. 什么是ANR,如何避免ANR。

2. 什么是FC?如何避免FC的发生,另外FC发生时如何捕获相应的uncaught exception?

3. Asynctask的优缺点?能否同时并发100+asynctask呢?

4. Handler有何作用?如何使用之(具体讲需要实现什么function)?

5. 有哪些实现自定义控件的方法?

6. CMWAP, CMNET有何区别,网络通讯时是否要特殊处理?如何切换接入点?

7. 能否讲讲你用过的adapter?

8. 已经发布了软件版本A,使用sqlite存储用户数据其DB version为1包含某张表T1,则其后需要发布版本B,在版本A的T1表结构的基础上又增加了2个新的字段,则能否在保存用户已经安装的版本A的数据的前提下,更新安装新版本B?

9. 你怎么看待在android上面应用MVC框架,是否有必要抽象独立于activity的C?

10. 各种基础问题--侧重考察熟练度,例如有几种在activity之间切换的方法?能否描述一下android平台的framework的层次结构?etc。。。


==========================================================


1、ANR也就是经常会碰到的“应用程序无响应弹框”,导致ANR出现的原因一般是因为主UI线程阻塞(Android认为5秒内主UI线程未响应就阻塞了),那么解决的方法就是将耗时的,大的运算用异步线程完成,再通过Handler刷新主UI线程。

2、FC就是崩溃啦,像平时常遇到的空指针,数组越界等异常都会导致FC,可以用try/catch语句捕获异常并做相应的异常处理。

3、AsyncTask是Android提供的异步类,优点是封装好使用简单,过程可控,缺点就是对多个异步操作和UI更新就复杂,AsyncTask底层的线程池最大并发数为128条。

4、Handler作用为接受子线程通知并更新主UI线程,使用需extends Handler并Override handleMessage(Message)方法,该方法用来接收消息,使用Handler对象.sendMessage(Message)方法发送消息。

5、自定义控件,通过实现View或View子类,实现View(Context),View(Context, AttributeSet),View(Context, AttributeSet, int)构造方法,通过重写onDraw()等方法实现自定义控件。

6、做网络应用的时候经常需要判断用户网络类型,如果用户是CMWAP类型就需要设置代理,因为CMWAP是通过GPRS的WAP网关10.0.0.172,应用程序必须支持HTTP代理协议和WAP网关协议,所以在使用WMWAP时需要设置代理,httpCilent.getParams.setParament(ConnRoutePNames.DEFAULT_PROXY, new HttpHost("10.0.0.172",80));。

7、主要有ArrayAdapter、SimpleAdapter、BaseAdapter。

8、重写SQLiteOpenHelper的onUpgrade()方法来更新数据库版本。

9、从Android结构图就可以看出Android的分层和松耦合,所以Android应用同样也可以用MVC(xml布局是V,数据库,网络等死M,Activity是C),Activity是C那还需要再抽象吗。

10、一种是startActivity(),一种是startActivityForResult()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值