name="android.provider.Telephony.SMS_RECEIVED")
二种使用代码进行注册如:
IntentFilterfilter=newIntentFilter("android.provider.Telephony.SMS_RECEIVED");
IncomingSMSReceiverreceiver=newIncomgSMSReceiver();
registerReceiver(receiver.filter);
16.请介绍下Android中常用的五种布局。
答案:
FrameLayout(框架布局),LinearLayout(线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)
17.请介绍下Android的数据存储方式。
一.SharedPreferences方式
二.文件存储方式
三.SQLite数据库方式
四.内容提供器(Contentprovider)方式
五.网络存储方式
18.如何启用Service,如何停用Service。
答案:
Context.startService()和Context.bindService服务不能自己运行,需要通过调用Context.startService()或Context.bindService()方法启动服务。
这两个方法都可以启动Service,但是它们的使用场合有所不同。
1.使用startService()方法启用服务,调用者与服务之间没有关连,即使调用者退出了,服务仍然运行。
使用bindService()方法启用服务,调用者与服务绑定在了一起,调用者一旦退出,服务也就终止。
2.采用Context.startService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,接着调用onStart()方法。
如果调用startService()方法前服务已经被创建,多次调用startService()方法并不会导致多次创建服务,但会导致多次调用onStart()方法。
采用startService()方法启动的服务,只能调用Context.stopService()方法结束服务,服务结束时会调用onDestroy()方法。
3.采用Context.bindService()方法启动服务,在服务未被创建时,系统会先调用服务的onCreate()方法,接着调用onBind()方法。
这个时候调用者和服务绑定在一起,调用者退出了,系统就会先调用服务的onUnbind()方法,。
接着调用onDestroy()方法。
如果调用bindService()方法前服务已经被绑定,多次调用bindService()方法并不会导致多次创建服务及绑定(也就是说onCreate()和onBind()方法并不会被多次调用)。
如果调用者希望与正在绑定的服务解除绑定,可以调用unbindService()方法,调用该方法也会导致系统调用服务的onUnbind()-->onDestroy()方法
19.android中的动画有哪几类,它们的特点和区别是什么?
答案:
两种,一种是Tween动画、还有一种是Frame动画。
Tween动画,这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;另一种Frame动画,传统的动画方法,通过顺序的播放排列好的图片来实现,类似电影。
20.谈谈UI中,Padding和Margin有什么区别?
答案:
Padding文字对边框,margin是控件与控件之间的距离。
21.Adapter的作用是什么?
常见的Adapter有哪些?
(见3)
答案:
Apapter使数据绑定到控件变得更加简单和灵活,为容器提供子视图,利用视图的数据和元数据来构建每个子视图。
常见有arrayAdapter,simpleCursorAdapter,cursorAdapter,resourceCursorAdapter
22.android四大组件是什么,各有有什么作用
答案一:
Activity:
Activity是Android程序与用户交互的窗口,是Android构造块中最基本的一种,它需要为保持各界面的状态,做很多持久化的事情,妥善管理生命周期以及一些跳转逻辑。
service:
后台服务于Activity,封装有一个完整的功能逻辑实现,接受上层指令,完成相关的事务,定义好需要接受的Intent提供同步和异步的接口。
ContentProvider:
是Android提供的第三方应用数据的访问方案,可以派生ContentProvider类,对外提供数据,可以像数据库一样进行选择排序,屏蔽内部数据的存储细节,向外提供统一的接口模型,大大简化上层应用,对数据的整合提供了更方便的途径。
BroadCastReceiver:
接受一种或者多种Intent作触发事件,接受相关消息,做一些简单处理,转换成一条Notification,统一了Android的事件广播模型。
答案二:
Activity是Android程序的呈现层,显示可视化的用户界面,并接收与用户交互所产生的界面事件,用于提示用户程序已经正常启动。
Service一般用于没有用户界面,但需要长时间在后台运行的应用。
BroadcaseReceiver是用来接受并响应广播消息的组件。
ContentProvider是Android系统提供的一种标准的共享数据的机制,应用程序可以通过ContentProvider访问其他应用程序的私有数据。
23.android中常用的四个布局有哪些?
答案:
五种布局方式,分别是:
FrameLayout(框架布局),LinearLayout
(线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)
24.android的四大组件是什么?
答案:
Activity、Service、BroadcastReceiver、ContentProvider
25.android中service的实现方法是:
startservice和bindservice。
26.activity一般会重载7个方法用来维护其生命周期,分别是什么(至少写5个)?
答案:
onCreate(),onStart(),onDestory()、onRestart(),onResume(),onPause(),onStop()
27.android的数据存储的方式有哪些?
(见2)
28.简述在嵌入式系统中使用SQlite数据库的优势。
29程序运行的结果是:
______goodandgbc_______。
publicclassExample{
Stringstr=newString("good");
char[]ch={'a','b','c'};
publicstaticvoidmain(Stringargs[]){
Exampleex=newExample();
ex.change(ex.str,ex.ch);
System.out.print(ex.str+"and");
Sytem.out.print(ex.ch);
}
publicvoidchange(Stringstr,charch[]){
str="testok";
ch[0]='g';
}
}
30.简述Service的用途?
(见22)
31.简述android系统三种菜单的特点及使用方式?
答案:
Android系统支持的三种菜单分别是:
选项菜单、子菜单和快捷菜单。
(1)选项菜单是常用的Android系统菜单,可分为图标菜单和扩展菜单,图标菜单的子项最多是六个,支持显示图标,不支持单选框和复选框;而当子项多余六个时,采用扩展菜单,扩展菜单的子项是垂直排列,支持单选框和复选框,不支持显示图标。
第一次启动选项菜单时,只需要调用一次onCreateMenu函数。
(2)子菜单的表现形式是浮动窗体的形式,适应小屏幕的显示形式,能够展示更加详细的信息,通过addSubMenu函数增加子菜单,但不支持嵌套。
在选项菜单和快捷菜单中使用子菜单,便于显示和分类相似的菜单子项。
(3)快捷菜单采用动窗体的显示形式,启动方式特别,点击界面元素超过2秒后,则启动该界面元素的快捷菜单。
每次启动快捷菜单时,都要调用一次onCreateMenu函数。
32.简述Intent的定义和用途?
答案:
Intent是一个动作的完整描述,包含了动作的产生组件、接收组件和传递的数据信息。
Intent为Activity、Service和BroadcastReceiver等组件提供交互能力,将一个组件的数据和动作传递给另一个组件。
Intent的一个最常见的用途就是启动Activity和Service;另一个用途是在Android系统上发布广播消息,广播消息可以是接收到特定数据或消息,也可以是手机的信号变化或电池的电量过低等信息。
33.android中service的实现方法是:
startservice和bindservice。
34.当启动一个Activity并且新的Activity执行完后需要返回到启动它的Activity来执行的回调函数是?
35.Socket通信服务端编程步骤?
答案:
1.创建一个ServerSocket,用于监听客户端Socket的连接请求。
2.采用循环不断接受来自客户端的请求。
3.每当接受到客户端Socket的请求,服务器端也对应产生一个Socket
36.Socket通信客户端编程步骤
答案:
客户端编程步骤:
1、创建客户端套接字(指定服务器端IP地址与端口号)。
2、连接(Android创建Socket时会自动连接)。
3、与服务器端进行通信。
4、关闭套接字。
37.AsyncTask的作用
答案:
费时的任务操作总会启动一些匿名的子线程,太多的子线程给系统带来巨大的负担,随之带来一些性能问题。
因此android提供了一个工具类AsyncTask,顾名思义异步执行任务。
这个AsyncTask生来就是处理一些后台的比较耗时的任务,给用户带来良好用户体验的,从编程的语法上显得优雅了许多,不再需要子线程和Handler就可以完成异步操作并且刷新用户界面。
38.两种广播注册类型的区别是什么?
答案:
1)第一种是常驻型(静态注册),也就是说当应用程序关闭后,如果有信息广播来,程序也会被系统调用自动运行。
2)第二种不是常驻型广播(动态注册),也就是说广播跟随程序的生命周期。
注册的方法有两种,一种是静态注册,一种是动态注册。
动态注册优点:
在Android的广播机制中,动态注册的优先级是要高于静态注册优先级的,因此在必要的情况下,我们是需要动态注册广播接收器的。
静态注册优点:
动态注册广播接收器还有一个特点,就是当用来注册的Activity关掉后,广播也就失效了。
同时反映了静态注册的一个优势,就是无需担忧广播接收器是否被关闭,只要设备是开启状态,广播接收器就是打开着的。
39.Android中为什么要引入Handler?
答案:
在开发Android移动客户端的时候往往要使用多线程来进行操作,我们通常会将耗时的操作放在单独的线程执行,避免其占用主线程而给用户带来不好的用户体验。
但是在子线程中无法去操作主线程(UI线程),在子线程中操作UI线程会出现错误。
因此android提供了一个类Handler来在子线程中来更新UI线程,用发消息的机制更新UI界面,呈现给用户。
这样就解决了子线程更新UI的问题。
40.Adapter的作用是什么?
常见的Adapter有哪些?
AndroidManifest.xml文件中主要有哪些信息?
答案:
它指定了该应用程序的Java包:
该包名作为应用程序的一个独特标识。
它描述了应用程序组件:
该应用程序由哪些activity,service,broadcastreceiver和contentprovider组成。
它指定了实现每个组件的类以及公开发布它们的能力(例如,它们能持有哪个Intent信息)。
这些声明使Android系统知道这儿有什么组件以及在什么条件下它们可以被载入。
它决定那些进程将容纳应用程序组件。
它声明了本应用程序必须拥有哪些许可,以便访问API的被保护部分,以及与其他应用程序交互。
它也声明了其他应用程序在和该应用程序交互时需要持有的许可。
它列出了Instrumentation类,可以在应用程序运行时提供简档和其他信息。
这些声明仅当应用程序在开发和测试过程中被提供;它们将在应用程序正式发布之前被移除。
它声明了该应用程序所需的AndroidAPI的最小化水平。
它列出了该应用程序必须链接的库。
启动一个线程使用run()还是start()?
答案:
启动线程肯定要用start()方法。
当用start()开始一个线程后,线程就进入就绪状态,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。
这并不意味着线程就会立即运行。
当cpu分配给它时间时,才开始执行run()方法(如果有的话)。
START()是方法,它调用RUN()方法.而RUN()方法是你必须重写的.run()方法中包含的是线程的主体。
41.你如何评价Android系统?
优缺点(总共写出5条即可)。
Android平台手机5大优势:
一、开放性
二、挣脱运营商的束缚
三、丰富的硬件选择
四、不受任何限制的开发商
五、无缝结合的Google应用
再说Android的5大不足:
一、安全和隐私
二、首先开卖Android手机的不是最大运营商
三、运营商仍然能够影响到Android手机
四、同类机型用户减少
五、过分依赖开发商缺少标准配置
42. 如何将SQLite数据库(dictionary.db文件)与apk文件一起发布?
解答:
可以将dictionary.db文件复制到EclipseAndroid工程中的resraw目录中。
所有在resraw目录中的文件不会被压缩,这样可以直接提取该目录中的文件。
可以将dictionary.db文件复制到resraw目录中
43.如何将打开resraw目录中的数据库文件?
解答:
在Android中不能直接打开resraw目录中的数据库文件,而需要在程序第一次启动时将该文件复制到手机内存或SD卡的某个目录中,然后再打开该数据库文件。
复制的基本方法是使用getResources().openRawResource方法获得resraw目录中资源的InputStream对象,然后将该InputStream对象中的数据写入其他的目录中相应文件中。
在AndroidSDK中可以使用SQLiteDatabase.openOrCreateDatabase方法来打开任意目录中的SQLite数据库文件。
44.activity一般会重载7个方法用来维护其生命周期,分别是什么(至少写5个)?
(见上)
45.请介绍下Android中常用的五种布局。
答案:
FrameLayout(帧布局),LinearLayout(线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)。
46.通过startService()和bindService()启动service,service的生命周期上有哪些不同?
答案:
通过startService()启动服务:
会调用如下生命周期方法:
onCreate()---->onStart()---->onDestory()
如果是调用bindService()启动服务:
会调用如下生命周期方法:
onCreate()---->o