第 1 页
Android面试题
葵花宝典
Android开发组
请描述下Activity的生命周期
Activity 的生命周期及activity的活动状态密切相关,也与activity的周期函数密切相关
共有七个周期函数及生 Queue取出)所送来的消息。
3、Message Queue(消息队列):用来存放线程放入的消息。
第 4 页
4、线程:UI thread 通常就是main thread,而Android启动程序时会替它建立一个Message Queue。
如何让Activity变成一个窗口?
只需要设置 中定义 Activity的
地方一句话,设置如下:
android :theme=〞***@android:style/〞
android:theme=〞***@android:style/〞
请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系。
简单的说,Handler获取当前线程中的looper对象,looper用来从存放Message的MessageQueue中取出Message,再有Handler进展Message的分发与处理
AIDL的全称是什么如何工作能处理哪些类型的数据
AIDL全称Android Interface Definition Language〔AndRoid接口描述语言〕 是一种借口描述语言。编译器可以通过aidl文件生成一段代码,, 是基于接口的,但它是轻量级的。它使用代理类在客户端与实现层间传递值. 如果要使用AIDL, 需要完成2件事情: 1. 引入AIDL的相关类.; 2. , 参数可以传递根本数据类型与String, 还有就是Bundle的派生类,
第 5 页
请解释下Android程序运行时权限及文件系统权限的区别
apk程序是运行在虚拟机上的,对应的是Android独特的权限机制,只有表到达文件系统上时才使用linux的权限设置。android系统有的权限是基于签名的
什么是ANR 如何防止它
ANR:Application Not Responding,五秒在Android中,活动管理器与窗口管理器这两个系统效劳负责监视应用程序的响应。当出现以下情况时,Android就会显示ANR对话框了:
对输入事件(如按键、触摸屏事件)的响应超过5秒意向承受器(intentReceiver)超过10秒钟仍未执行完毕Android应用程序完全运行在一个独立的线程中(例如main)。这就意味着,任何在主线程中运行的,需要消耗大量时间的操作都会引发ANR。因为此时,你的应用程序已经没有时机去响应输入事件与意向播送(Intent broadcast)。因此,任何运行在主线程中的方法,都要尽可能的只做少量的工作。特别是活动生命周期中的重要方法如onCreate()与 onResume()等更应如此。潜在的比拟耗时的操作,如访问网络与数据库;或者是开销很大的计算,比方改变位图的大小,需要在一个单独的子线程中完成 (或者是使用异步请求,如数据库操作)。但这并不意味着你的主线程需要进入阻塞状态已等待子线程完毕 — ()()方法。取而代之的是,主线程为子线程提供一个句柄(Handler),让子线程 在即将完毕的时候调用它。使用这种方法涉及你的应用程序,能够保证你的程序对输入保持良好的响应,从而防止
第 7 页
因为输入事件超过5秒钟不被处理而产生的ANR。这种实践需要应用到所有显示用户界面的线程,因为他们都面临着同样的超时问题。
Android中Activity, Intent, Content Provider, Service各有什么区别。
Activity: 活动,是最根本的android应用程序组件。一个活动就是一个单独的屏幕,每一个活动都被实现为一个独立的类,并且从活动基类继承而来。
Intent: 意图,描述应用想干什么。最重要的局部是动作与动作对应的数据。
Content Provider:内容提供器,android应用程序能够将它们的数据保存到文件、SQLite数据库中,甚至是任何有效的设备中。当你想将你的应用数据与其他应用共享时,内容提供器就可以发挥作用了。
Service:效劳,具有一段较长生命周期且没有用户界面的程序。
IntentSe
android面试题葵花宝典 来自淘豆网m.daumloan.com转载请标明出处.