- 单线程模型汇中Messgae、Handler、MessageQueu,Lopper之间关系
a) Looper。Prepare,初始化lopper,放入ThreadLocal中
b) Looper。Loop不断遍历MessagrQueue
c) Handler创建依赖Looper,Handler。sendMessage到Queue,looper不断从queue去消息,然后回调handleMessage - 内存溢出和内存泄漏区别,何时产生内存泄漏,内存优化方法
a) 溢出:不够用,泄漏:没有释放内存
b) 图片加载:图片压缩 + LruCache
c) 及时关闭DataBase Con,传感器,Service - AsyncTask使用在那些场景,他的缺陷是?如何让解决
a) 耗时操作,更新ui
b) 最大维护128条线程,同时执行5条,+1个缓冲队列,若线程池和缓冲队列满,抛Reject异常
c) 由一个控制线程判断线程池是否已满 - 启动一个App程序,点击图标进入和从一个程序跳转过去的区别
a) 后者样式可能多一点,本质是相同的 - 横竖屏切换ACTIVITY的生命周期
a) 不设置ACITVITY的ANDROI:CONFIGCHANGES,横屏会重新调用一次,竖屏调用两次
b) 设置ORIENTATION,横竖屏都调用一次
c) 设置ORIENTATION| KEYBOARDHIDDEN,不会调用,只执行ONCONFIGCHANGES方法 - DVM进程和LINUX进程,应用程序的进程是否是同一个概念
- 如何实现消息推送,哪些方式,各自优缺点,最常见的方式
- 播放视频有哪些实现方式
a) 自带播放器,ACTION为ACTIONVIEW,DATA为URI,TYPE为MIME
b) VIEDIOVIEW + MEDIACONTROLLER
c) MEDIAPLAYER + SURFACEVIEW - ANDROID客户端如和实现自动登录
a) 用SHAREPERENCE或数据库上次成功保存的帐号密码
b) 采用TOKEN或者SESSION标记,第一次登录保存TOKEN,服务器下次会检查这个TOKEN标记 - HTTPCLIENT的通信过程
a) 生成请求对象HTTPGET,HTTPPOST
b) 生成客户端对象HTTPCLIENT
c) 执行请求等待响应httpresponce,entity
d) 得到数据流inputStream
e) 关闭过期连接 - 线程有几种状态?run和strart区别
a) 新建new线程
b) 就绪,start等待CPU
c) 运行,获得CPU
d) 阻塞,某种原因放弃CPU
i. 等待阻塞wait
ii. 同步阻塞,没拿到锁
iii. 其他阻塞,sleep,join,IO请求
e) 死亡,退出run
f) Strart是进入就绪状态,run是进入执行状态 - Android 四大组件那些?有什么作用?
a) Activity,是程序与用户交互的窗口
b) Service,后台服务于Activity,为接受的Intent提供同步或异步接口
c) Content Provider,对外提供数据
d) Broadcast Receiver,接收Intent相关信息,处理后转换成Notifaction - Android常用五种布局
a) FrameLayout框架布局,可重叠
b) LinearLayout线性布局,元素一次排列
c) AbsoluteltLayout绝对布局,XY坐标决定元素,需要计算
d) RelativeLayout,相对布局
e) TableLayout,表格布局,TableRow - Android动画有几类?特点和区别
a) view动画,平移,缩放,旋转,透明度视图组件
b) Frame动画,类似电影,顺序播放
c) 属性动画 - Android几种解析xml的类,官方推荐?原理和区别?
a) SAX,节省内存,解析方便
b) DOM,把整个XML加载到内存,与XPath很好结合,如果数据量不大推荐使用
c) PULL,用于J2ME对于节点处理很好 - 如何将一个Acitvity设置窗口化模式
a) 自定义style
b) Manifest修改Activity的theme属性,theme。FloatingActiviity,theme。dialog - Android数据存储方式
a) SharePreferences,键值存储,只可以存储基本数据类型
b) SQLite数据库,支持SQL语言
c) Content Provider,应用程序之间数据共享
d) 文件存储,FileInputStream
e) 网络存储 - Android NDK理解
a) NDK是一系列工具集合,允许Android嵌入C或C++,NDK自动将so和java打包成apk
b) NDK提供一份api,支持libc,libm数学库,libz压缩库,liblog log库 - 什么是进程保活?进程怎么死掉?
a) 进程永远存在内存,例如,广播接受者需要在app退出保持常驻,动态注册
b) 人为,第三方应用杀死 - Android进程优先级
a) 前台进程,用户当前正在操作的进程
b) 可见进程,维持前台进程
c) 服务进程,为维持前台和可见进程,可能被杀死
d) 后台进程,服务前面3个进程
e) 空进程,用来做缓存,缩短下次运行组件的时间 - 进程保活方案
a) 提高进程优先级, startForeground(1, new Notification());stopForeground(true);
b) 设置系统广播监听器,发生事件拉活
c) Service拉活,重写onStartCommand返回return Service.START_STICKY;
d) Native守护线程拉活
e) 账号同步机制拉活
常见面试题
最新推荐文章于 2018-01-09 10:59:07 发布