Andrid 高级程序员面试题
==========================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 高级程序员面试题的更多相关文章
- 转 Java高级程序员面试题
		1.你认为项目中最重要的过程是那些? 分析.设计阶段 尽量找出进度的优先级 2.如果给你一个4-6人的team,怎么分配? 挑选一技术过硬的人作为我的替补.其它人平均分配任务,每周进行全面的任务分配 ... 
- Java高级程序员面试题
		1.你认为项目中最重要的过程是那些? 分析.设计阶段 尽量找出进度的优先级 2.如果给你一个4-6人的team,怎么分配? 挑选一技术过硬的人作为我的替补.其它人平均分配任务,每周进行全面的任务分配 ... 
- php开发面试题---php高级程序员需要掌握的一些知识
		php开发面试题---php高级程序员需要掌握的一些知识 一.总结 一句话总结: 还是需要多多接触架构师的知识,比如这里说的微服务,还有需要php服务端的知识来解决web端的不足,比如Swoole 1 ... 
- PHP高级程序员必看知识点:目录大全(不定期更新)
		面试题系列: 分享一波腾讯PHP面试题 2019年PHP最新面试题(含答案) Redis 高级面试题 学会这些还怕进不了大厂? 阿里面试官三年经验PHP程序员知识点汇总,学会你就是下一个阿里人! ph ... 
- 如何成为一个C++高级程序员
		C++这门语言从诞生到今天已经经历了将近30个年头.不可否认,它的学习难度都比其它语言较高.而它的学习难度,主要来自于它的复杂性.现在C++的使用范围比以前已经少了很多,java.C#.python等 ... 
- Java程序员面试题集(136-150)(转)
		转:http://blog.csdn.net/jackfrued/article/details/17740651 Java程序员面试题集(136-150) 摘要:这一部分主要是数据结构和算法相关的面 ... 
- Java程序员面试题集(71-85)(转)
		转:http://blog.csdn.net/jackfrued/article/details/17566627 Java程序员面试题集(71-85) 摘要:这一部分主要包括了UML(统一建模语言) ... 
- Java程序员面试题集(51-70)(转)
		转:http://blog.csdn.net/jackfrued/article/details/17403101 Java程序员面试题集(51-70) 摘要:这一部分主要讲解了异常.多线程.容器和I ... 
- Java程序员面试题集(1-50)(转)
		转:http://blog.csdn.net/jackfrued/article/details/17339393 下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和 ... 
随机推荐
- 201521123013 《Java程序设计》第7周学习总结
			1. 本章学习总结 2. 书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 public boolean contains(Object o) { r ... 
- 201521123007《Java程序设计》第2周学习总结
			1.本周学习总结 类名第一个字母大写,类名下的方法如main第一个字母要小写: Java有三种基本数据类型:整型(byte,short,int,long,char),浮点型(float,double) ... 
- 201521123004《Java程序设计》第9周学习总结
			1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 答:思维导图如下: Java中使用try-catch语法处理异常: try { 可能产生异常的代码段 }catch ... 
- python 中的%s是什么意思呢?
			今天忽然想写Python中的%s的意思,它怎么理解呢,我查阅了一下相关文献,然后结合了自己的理解,分析如下: 这是一个字符串格式化语法(这是从c 中调用的) 具体请参阅 http://www. ... 
- spring boot基础 入门
			spring boot基础 spring boot 的简单搭建 spring boot 的基本用法 spring boot 基本用法 自动配置 技术集成 性能监控 源码解析 工程的构建 创建一个mav ... 
- 阿里云服务器解决mysql远程连接失败问题
			嗯,自己买了个阿里云的学生机服务器,奈何装了mysql以后一直不能连接,也是够笨的. 记录一下自己遇到的问题. 当然了,首先需要在阿里云安全组开放3306端口,第一次玩儿云服务器差点把我搞坏了.... ... 
- C#单例测试(懒汉式双锁保证线程安全)
			单例模式的概念 单例模式的意思就是只有一个实例.单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类. 关键点: 这个类只有一个实例,这是最基本的 它必须自行创建 ... 
- 第一次安装jshint,jshint新手使用记录
			刚刚出来工作的渣渣,第一次进入这样比较正规的公司,各个开发流程都比较严格,代码也是要经过jshint的检测才能上传到svn才能成功打包项目.所以我这种技术都半桶水的职场开发小白,也是第一次用jshin ... 
- oracle数据库知识点
			1.oracle启动后的服务 1. Oracle ORCL VSS Writer Service:Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存 ... 
- js中判断对象数据类型的方法
			对js中不同数据的布尔值类型总结:false:空字符串:null:undefined:0:NaN.true:除了上面的false的情况其他都为true: 如下: var o = { 'name':'l ... 
