笔/面试题杂记

  • Android系统对下列哪些对象提供了资源池
    答案:Messagehe,AsyncTask。
  • getMetrics用于获取屏幕的高和宽。
  • DVM指dalvik的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的 Dalvik虚拟机实例.而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念.
  • Activity和Task的启动模式有哪些?

答:standardsingleTopsingleTasksingleInstance
解析:

  • “拿来主义”standard模式。哪里需要调用我我就去哪里,可以多次实例化,可以几个相同的Activity重叠。
  • “拒绝堆叠”singleTop模式。可以多次实例化,但是不可以多个相同的Activity重叠,当堆栈的顶部为相同的Activity时,会调用onNewIntent函数。
  • “独立门户”singleTask模式。同一个应用中调用该Activity时,如果该Activity没有被实例化,会在本应用程序的Task内实例 化,如果已经实例化,会将Task中其上的Activity销毁后,调用onNewIntent;其它应用程序调用该Activity时,如果该 Activity没有被实例化,会创建新的Task并实例化后入栈,如果已经实例化,会销毁其上的Activity,并调用onNewIntent。一句 话,singleTask就是“独立门户”,在自己的Task里,并且启动时不允许其他Activity凌驾于自己之上。
  • “孤独寂寞”singleInstance模式。加载该Activity时如果没有实例化,他会创建新的Task后,实例化入栈,如果已经存在,直接调用 onNewIntent,该Activity的Task中不允许启动其它的Activity,任何从该Activity启动的其他Activity都将被 放到其他task中,先检查是否有本应用的task,没有的话就创建。
  • 对于一个已经存在的SharedPreferences对象setting,想向其中存入一个字符串"person",setting应该先调用什么方法( ).

答:edit()
解析:

//实例化SharedPreferences对象(第一步)
SharedPreferences mySharedPreferences= getSharedPreferences("test", Activity.MODE_PRIVATE); 

//实例化SharedPreferences.Editor对象(第二步)(android.content.SharedPreferences.Editor)
SharedPreferences.Editor editor = mySharedPreferences.edit(); 

//用putString的方法保存数据 
editor.putString("name", "Karl"); 
editor.putString("habit", "sleep"); 

//提交当前数据
editor.commit();
  • 编写AIDL文件时,需要注意以下几点:

1.接口名和aidl文件名相同
2.接口和方法前不用加访问权限修饰符public,private,protected等,也不能用final,static。
3.Aidl默认支持的类型包话java基本类型(int、long、boolean等)和(String、List、Map、 CharSequence),使用这些类型时不需要import声明。对于List和Map中的元素类型必须是Aidl支持的类型。如果使用自定义类型作 为参数或返回值,自定义类型必须实现Parcelable接口。
4.自定义类型和AIDL生成的其它接口类型在aidl描述文件中,应该显式import,即便在该类和定义的包在同一个包中。
5.在aidl文件中所有非Java基本类型参数必须加上in、out、inout标记,以指明参数是输入参数、输出参数还是输入输出参数。
6.Java原始类型默认的标记为in,不能为其它标记。
持续更新...

  • ANR(Application Not Responding)

在Android中,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。
默认情况下,Activity的最长执行时间是5秒,BroadcastReceiver的最长执行时间是10秒。超出就会提示应用无响应。
三种常见类型:

  • KeyDispath Timeout(5 seconds) -- 主要类型
    按键或触摸事件在特定时间内无响应。
  • BroadcastTimeout(10 seconds)
    BroadcastReceiver在特定时间内无法处理完成。
  • Service Timeout(20 seconds) --小概率类型
    Service在特定的时间内无法处理完成。
  • 从架构图看,Android分为5个层

Linux Kernel(Linux内核)、Hardware Abstraction Layer(硬件抽象层)、Libraries(系统运行库或者是c/c++ 核心库)、Application Framework(开发框架包 )、Applications(核心应用程序)


image
  • Android系统对下列哪些对象提供了资源池

答案:Message和AsyncTask。
Message有静态方法Obtaion从消息池中取对象。AsynTask是线程池改造的,池里默认提供(核数 + 1)个线程进行并发操作,最大支持(核数 * 2 + 1)个线程,超过后会丢弃塔塔任务;

  • 请介绍一下,socket编程的三种通信模型,BIO,NIO,AIO
  • BIO是同步阻塞IO,是一个客户端对应一个线程
  • NIO是同步非阻塞IO,多个客户端对应一个线程,服务端和客户端均使用缓冲区的方式进行读写。
  • AIO是异步非阻塞IO,AIO的简化是NIO

你可能感兴趣的:(笔/面试题杂记)