现在的位置: 首页 > 移动开发 > 正文

Android笔试面试题库

2019年03月05日 移动开发 ⁄ 共 1052字 ⁄ 字号 评论关闭
1、handler 机制的原理
   andriod 提供了 Handler 和Looper 来满足线程间的通信。
Handler 先进先出原则。
Looper 类用来管理特定线程内对象之间的消息交换(Message Exchange)。
1)Looper: 一个线程可以产生一个 Looper 对象,由它来管理此线程里的MessageQueue(消息队列)。
2)Handler: 你可以构造 Handler 对象来与 Looper 沟通,以便 push 新消息到MessageQueue 里;或者接收 Looper 从 Message Queue 取出)所送来的消息。
3) Message Queue(消息队列):用来存放线程放入的消息。
4)线程:UI thread 通常就是 main thread,而 Android 启动程序时会替它建立一个 MessageQueue。
2、说说 mvc 模式的原理,它在 android 中的运用
  MVC(Model_view_contraller)” 模型_视图_控制器”。 MVC应用程序总是由这三个部分组成。Event(事件)导致 Controller 改变 Model 或 View,或者同时改变两者。只要Controller 改变了 Models 的数据或者属性,所有依赖的 View 都会自动更新。类似的,只要 Controller改变了 View,View 会从潜在的 Model 中获取数据来刷新自己。
View 重绘和内存泄露的好像是面试经常问的问题
1. View 的刷新:
在需要刷新的地方,使用 handle.sendmessage 发送信息,然后在 handle 的getmessage里面执行 invaliate 或者 postinvaliate.
2. GC 内存泄露
出现情况:
1.数据库的 cursor 没有关闭
2.构造 adapter 时,没有使用缓存 contentview,衍生 listview 的优化问题-----减少创建view 的对象,充分使用contentview,可以使用一静态类来优化处理 getview 的过程/
3.Bitmap 对象不使用时采用 recycle()释放内存
4.activity 中的对象的生命周期大于 activity
调试方法: DDMS==>HEAPSZIE==>dataobject==>[TotalSize]
Activity的生命周期
在一个 Activity 正常启动的过程中,
他们被调用的顺序是 onCreate -> onStart->onResume;
在 Activity 被干掉的时候顺序是 onPause -> onStop-> onDestroy ;
这样就是一个完整的生命周期

抱歉!评论已关闭.