- 什么是IntentService?有何优点?IntentService是一个通过Context.startService(Intent)启动可以处理异步请求的Service,使用时你只需要继承IntentService和重写其中的onHandleIntent(Intent)方法接收一个Intent对象,在适当的时候会停止自己(一般在工作完成的时候). 所有的请求的处理都在一个工作线程中完成,它们会交替执行(但不会阻塞主线程的执行),一次只能执行一个请求.
- IntentService里面是可以进行耗时的操作的
- IntentService使用队列的方式将请求的Intent加入队列,然后开启一个worker thread(线程)来处理队列中的Intent
- 对于异步的startService请求,IntentService会处理完成一个之后再处理第二个
- 什么时候使用Service?处理后台程序或开机启动定时任务等
- 请描述一下Intent 和 Intent Filter。应用程序的组件为了告诉Android自己能响应、处理哪些隐式Intent请求,可以声明一个甚至多个Intent Filter。每个Intent Filter描述该组件所能响应Intent请求的能力——组件希望接收什么类型的请求行为,什么类型的请求数据。
- Intent传递数据时,可以传递哪些类型数据? Intent/Bundle支持传递基本类型的数据和基本类型的数组数据,以及String/CharSequence类型的数据和String/CharSequence类型的数组数据。还可以传递Parcelable(包裹化,邮包)和Serializable(序列化)类型的数据,以及它们的数组/列表数据。
- 说说Activity,Intent,Service是什么关系 。Intent是activity和service的桥梁,通信员,activity主要操作显示界面,service在后台运行.
- 请描述一下Broadcast Receiver。BroastcastReceiver 也是跟Intent紧密相连的,动态/静态注册了BroastcastReceiver之后,使用sendBroadcast把Intent发送之后,系 统会自动把符合条件的BroastcastReceiver启动,跟嵌入式系统的中断类似。
- 在manifest和代码中如何注册和使 用 broadcast receiver 。
1. <receiver android:name="clsReceiver2">
2. <intent-filter>
3. <action
4. android:name="com.testBroadcastReceiver.Internal_2"/>
5. </intent-filter>
6. </receiver>
7. (代码)public class HelloDemo extends Activity {
private BroadcastReceiver receiver;
@Override
protected void onStart() {
super.onStart();
receiver = new CallReceiver();
registerReceiver(receiver, new IntentFilter("android.intent.action.PHONE_STATE"));
}
@Override
protected void onStop() {
unregisterReceiver(receiver);
super.onStop();
}
}
- 请介绍下ContentProvider是如何实现数据共享的。ContentResolver是通过URI来查询ContentProvider中提供的数据
- 请介绍下Android的数据存储方式。
- 使用SharedPreferences存储数据;
- 文件存储数据;
- SQLite数据库存储数据;
- 使用ContentProvider存储数据;
- 网络存储数据;
- 为什么要用ContentProvider?它和sql的实现上有什么差别?
- 请介绍下Android中常用的五种布局。
- 谈谈UI中, Padding和Margin有什么区别?
- widget相对位置的完成在antivity的哪个生命周期阶段实现。
- 请解释下在单线程模型中Message、Handler、Message Queue、Looper之间的关系。
- AIDL的全称是什么?如何工作?能处理哪些类型的数据?
- 请解释下Android程序运行时权限与文件系统权限的区别。
- 系统上安装了多种浏览器,能否指定某浏览器访问指定页面?
- 对多线程的运用和理解,及多线程之间handle的传值。
- 对android虚拟机的理解,包括内存管理机制垃圾回收机制。
- Framework工作方式及原理,Activity是如何生成一个view的,机制是什么。
- android本身的一些限制,比如apk包大小限制,读取大文件时的时间限。
- 如何加载的音乐信息,如何改善其效率。
- ListView如何提高其效率?
- 启动应用后,改变系统语言,应用的语言会改变么?
- 启动一个程序,可以主界面点击图标进入,也可以从一个程序中跳转过去,二者有什么区别?
- Android程序与Java程序的区别?
- Android中Task任务栈的分配。
- 在Android中,怎么节省内存的使用,怎么主动回收内存?
- 不同工程中的方法是否可以相互调用?
- 在Android中是如何实现判断区分通话记录中的电话状态,去电,来电、未接来电?
- dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念
- sim卡的EF 文件有何作用
- 如何判断是否有SD卡?
- 嵌入式操作系统内存管理有哪几种, 各有何特性。
- 什么是嵌入式实时操作系统, Android 操作系统属于实时操作系统吗?
- 一条最长的短信息约占多少byte?
- Linux中跨进程通信的几种方式 。
- 谈谈对Android NDK的理解。
- 谈谈Android的优点和不足之处。
- Android系统中GC什么情况下会出现内存泄露呢?
- Android UI中的View如何刷新。
- 简单描述下Android 数字签名。
- 什么是ANR 如何避免它?
- android中的动画有哪几类,它们的特点和区别是什么?
- handler机制的原理。
- android中线程与线程,进程与进程之间如何通信。
- 说说mvc模式的原理,它在android中的运用。
- android中有哪几种解析xml的类,官方推荐哪种?以及它们的原理和区别。
- DDMS与TraceView的区别?
- res目录有默认几项resource。
- android的哪个版本是一次重大的升级?