- Android系统对下列哪些对象提供了资源池
答案:Messagehe,AsyncTask。 -
getMetrics
用于获取屏幕的高和宽。 - DVM指dalvik的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的 Dalvik虚拟机实例.而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念.
- Activity和Task的启动模式有哪些?
答:
standard
、singleTop
、singleTask
,singleInstance
。
解析:
- “拿来主义”
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