==========================20150518===================================
一、 Acitvity组件
1. 生命周期&killed&back
2. onpause/onstop 区别(例子:DialogActivity)
onSaveInstanceStatue调用时机(killed、锁屏)
3. 作用
onCreate 初始化View
onPause 保存持久化数据、快速
onDestory release resource
onSaveInstanceStatue 保存瞬时状态(比如UI控件的状态,成员变量的值)
4. onNewIntent()-->onRestart()-->OnStart()
singleTask或位于栈顶时,再次new activity。

二、 Service组件
1. 生命周期&实现方式
1. 启动方式
Context.startService() ->onCreate()->onStartCommand()->Service running--调用context.stopService() ->onDestroy()
Context.bindService() ->onCreate()->onBind()->Service running--调用>onUnbind() -> onDestroy()

三、 优化
1. ReativeLayout vs LinearLayout (灵活、减少嵌套)
2. ListView性能优化
1、使用Adapter提供的convertView(缓存机制,一屏幕item)
2、使用自定义的视图缓存类(ViewHolder,setTag())
3、减少不必要的视图更新(监听滚动事件,减少加载)
3. 布局原则
尽量多使用RelativeLayout,不要使用绝对布局AbsoluteLayout;
将可复用的组件抽取出来并通过< include />标签使用;
使用< ViewStub />标签来加载一些不常用的布局;
使用< merge />标签减少布局的嵌套层次; 例如: 根节点是FrameLayout,则用merge,或 相同两个layout

4. **Monitor.bat 性能检测
5. PhoneWindow,ViewRoot,Activity之间的大致关系

四、 java基础
1. 异常&举例
Throwable
Error --> StackOverflowError/OutOfMemoryError
Exception -->
IOException FileNotFoundException/EOFException
RuntimeException NullPointerException/ArrayIndexOutOfBoundsException/ClassNotFoundException
2. 集合&数据结构
Collection
List(有序且允许元素重复)
ArrayList(线性表)、LinkedList(链表)、Vector(线性表、同步)-->Stack
Set(不允许元素重复)
HashSet(哈希算法)、TreeSet(二叉树、排序)
Map
HashMap(哈希算法、key数组、value链表)
TreeMap(树)
HashTable(排序、同步)

3. 接口 vs 抽象类
行为/一类事物;语法不同
4. Object类方法作用、transi、valite关键字
5. ==、equals()
6. 内存溢出、内存泄露区别、例子*********
7. 设计模式
单例模式
观察者模式
代理模式 http://gongjiayun.iteye.com/blog/948778
适配器模式

五、 android 零碎知识
1. handler
why: android UI线程不是线程安全的,不允许其他线程操作UI;
UI线程处理耗时操作,界面卡死、超过5秒回提示"强制关闭"。
目的: 对耗时操作进行 异步回调机制处理,改善用户体验。
机制:
Handler、Looper、MessageQueue和Message;
主线程、消息循环、消息队列之间的关系是1:1:1;

使用步骤: 创建消息(消息池);
发送消息(其他线程);
处理消息(主线程)。
2. Task/IBinder
*task(栈、launchMode): Activity是Android 应用程序的基础组件之一,在应用程序运行时,每一个Activity代表一个用户操作。用户为了完成某个功能而执行的一系列操作就形成了一个 Activity序列,这个序列在Android应用程序中就称之为任务,它是从用户体验的角度出发,把一组相关的Activity组织在一起而抽象出来 的概念。
*Ibinder 远程调用(就是跨进程调用AIDL)***

3. 开机时启动广播(BootCompletedReceiver)
4. android log 文件
1 程序异常退出 uncaused exception
2 程序强制关闭 Force Closed (简称FC)现UncaughtExceptionHandler接口
   3 程序无响应 Application No Response(简称ANR),一般主线程超过5秒么有处理就会ANR
4 手动生成
5. surfaceview、view区别
surfaceView是在一个新起的单独线程中可以重新绘制画面,而View必须在UI的主线程中更新画面。

六、 ContentProvider 数据共享
1. ContentResolver
2. Uri/

异常弹出
Looper.prepare();
CPToastManager.toast("很抱歉,程序出现异常,即将退出");
Looper.loop();

Andrid 高级程序员面试题的更多相关文章

  1. 转 Java高级程序员面试题

    1.你认为项目中最重要的过程是那些? 分析.设计阶段  尽量找出进度的优先级 2.如果给你一个4-6人的team,怎么分配? 挑选一技术过硬的人作为我的替补.其它人平均分配任务,每周进行全面的任务分配 ...

  2. Java高级程序员面试题

    1.你认为项目中最重要的过程是那些? 分析.设计阶段  尽量找出进度的优先级 2.如果给你一个4-6人的team,怎么分配? 挑选一技术过硬的人作为我的替补.其它人平均分配任务,每周进行全面的任务分配 ...

  3. php开发面试题---php高级程序员需要掌握的一些知识

    php开发面试题---php高级程序员需要掌握的一些知识 一.总结 一句话总结: 还是需要多多接触架构师的知识,比如这里说的微服务,还有需要php服务端的知识来解决web端的不足,比如Swoole 1 ...

  4. PHP高级程序员必看知识点:目录大全(不定期更新)

    面试题系列: 分享一波腾讯PHP面试题 2019年PHP最新面试题(含答案) Redis 高级面试题 学会这些还怕进不了大厂? 阿里面试官三年经验PHP程序员知识点汇总,学会你就是下一个阿里人! ph ...

  5. 如何成为一个C++高级程序员

    C++这门语言从诞生到今天已经经历了将近30个年头.不可否认,它的学习难度都比其它语言较高.而它的学习难度,主要来自于它的复杂性.现在C++的使用范围比以前已经少了很多,java.C#.python等 ...

  6. Java程序员面试题集(136-150)(转)

    转:http://blog.csdn.net/jackfrued/article/details/17740651 Java程序员面试题集(136-150) 摘要:这一部分主要是数据结构和算法相关的面 ...

  7. Java程序员面试题集(71-85)(转)

    转:http://blog.csdn.net/jackfrued/article/details/17566627 Java程序员面试题集(71-85) 摘要:这一部分主要包括了UML(统一建模语言) ...

  8. Java程序员面试题集(51-70)(转)

    转:http://blog.csdn.net/jackfrued/article/details/17403101 Java程序员面试题集(51-70) 摘要:这一部分主要讲解了异常.多线程.容器和I ...

  9. Java程序员面试题集(1-50)(转)

    转:http://blog.csdn.net/jackfrued/article/details/17339393 下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和 ...

随机推荐

  1. 团队作业4——第一次项目冲刺(Alpha版本) 1

    一.Daily Scrum Meeting照片 二.燃尽图 三.项目进展 1.完页面的设计 采用gui页面,现在也是最初的页面设计 2.完成接口的定义 与组员共同定义了接口 四.困难与问题 此次主要利 ...

  2. 201521123114 《Java程序设计》第8周学习总结

    1. 本章学习总结 2. 书面作业 Q1. List中指定元素的删除(题目4-1) 1.1 实验总结 使用iterator迭代器的remove()函数来移除元素,能够从最后一个元素来移除,可以避免从第 ...

  3. 201521123059 《Java程序设计》第七周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 参考资料: XMind 2. 书面作业 Q1: ArrayList代码分析 1.1 解释ArrayList的contains ...

  4. 201521123029《Java程序设计》第六周学习总结

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...

  5. 201521123003《Java程序设计》第5周学习总结

    1. 本章学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 参考资料: 百度脑图 XMind 2. 书面作业 Q1.代码阅读:Child压缩包内源代码 1.1 com.parent包中C ...

  6. 社工数据搜索引擎搭建 - Build Social Engineer Evildata Search Engine

    如何设计搭建一个社工库 从初起设计一个社工库,到现在的Beta,前前后后零零整整花了不下一个月的时间,林林总总记录下来,留给需要之人 泄露数据库格式不一,长相奇葩,因需将用户名.密码.邮箱.哈希等信息 ...

  7. 201521123114《Java程序设计》第9周学习总结

    1. 本章学习总结 2. 书面作业 Q1. 常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什么异常.需要捕获吗(为什么)?应如何避免? 经常出现的异常 ...

  8. [05] 利用private来封装

    我们知道,面向对象开发的三大特点是:封装性.继承性.多态性 所谓封装性,实际上是表达了一种信息隐藏.从表面上来阐述,就是使用private修饰符来对属性或者方法进行信息隐藏,而使用public的方法控 ...

  9. Myeclipse黑色主题配置

    Myeclipse自己打造黑色主题: 一.UI Theme(设置黑色主题模式): 如果是自己下载在的.jar主题,则首先将该jar包放在Myeclipse安装目录下的\dropins\plugins\ ...

  10. Java内存分配之堆、栈和常量池

    Java内存分配主要包括以下几个区域: 1. 寄存器:我们在程序中无法控制 2. 栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中 3. 堆:存放用new产生的数据 4. 静 ...