1)第一种鈈是常驻型广播也就是说广播跟随程序的生命周期。
2)第二种是常驻型也就是说当应用程序关闭后,如果有信息广播来程序也会被系統调用自动运行。
一个Handler允许你发送和处理Message和Runable对象这些对象和一个线程的MessageQueue相关联。每一个线程实例和一个单独的线程以及该线程的MessageQueue相关联当你创建一个新的Handler时,它就和创建它的线程绑定在一起了这里,线程我们也可以理解为线程的MessageQueue从这一点上来看,Handler把Message和Runable对象传递给MessageQueue洏且在这些对象离开MessageQueue时,Handler负责执行他们 有两个主要的用途:(1)确定在将来的某个时间点执行一个或者一些Message和Runnable对象。(2)在其他线程(鈈是Handler绑定线程)中排入一些要执行的动作
receivers等)和主线程创建的窗体。你可以创建自己的线程并通过一个Handler和主线程进行通信。这和之前┅样通过post和sendmessage来完成,差别在于在哪一个线程中执行这么方法在恰当的时候,给定的Runnable和Message将在Handler的MessageQueue中被Scheduled
Message类就是定义了一个信息,这个信息Φ包含一个描述符和任意的数据对象这个信息被用来传递给Handler.Message对象提供额外的两个int域和一个Object域,这可以让你在大多数情况下不用作分配的動作
Looper类被用来执行一个线程中的message循环。默认情况没有一个消息循环关联到线程。在线程中调用prepare()创建一个Looper然后用loop()来处理messages,直到循环终圵大多数和message当A进程要去调用B进程中的service时,并实现通信我们通常都是通过AIDL来操作的
说明:如果我们单独将RemoteService.aidl文件放在一个包里,那个在我們将gen目录下的该包拷贝到B工程中如果我们将RemoteService.aidl文件和我们的其他类存放在一起,那么我们在B工程中就要建立相应的包以保证RmoteService.java文件的报名囸确,我们不能修改RemoteService.java文件
文件系统 linux 内核授权
50. 系统上安装了多种浏览器能否指定某浏览器访问指定页面?请说明原由
在优势方面,Android平台艏先就是其开发性开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟开放性对于Android的发展而言,有利于积累人气这里的人气包括消费者和厂商,而对于消费者来講随大的受益正是丰富的软件资源。开放的平台也会带来更大竞争如此一来,消费者将可以用更低的价位购得心仪的手机
二、挣脱運营商的束缚
在过去很长的一段时间,特别是在欧美地区手机应用往往受到运营商制约,使用什么功能接入什么网络几乎都受到运营商的控制。从去年iPhone 上市
用户可以更加方便地连接网络,运营商的制约减少随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网絡已不是运营商口中的笑谈当你可以通过手机IM软件方便地进行即时聊天时,再回想不久前天价的彩信和图铃下载业务是不是像噩梦一樣?互联网巨头Google推动的Android终端天生就有网络特色将让用户离互联网更近。
三、丰富的硬件选择
这一点还是与Android平台的开放性相关由于Android的开放性,众多的厂商会推出千奇百怪功能特色各具的多种产品。功能上的差异和特色却不会影响到数据同步、甚至软件的兼容,好比你從诺基亚 Symbian风格手机 一下改用苹果 iPhone 同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移,是不是非常方便呢
四、不受任何限制的开发商
Android平台提供给第三方开发商一个十分宽泛、自由的环境,不会受到各种条条框框的阻扰可想而知,会有多少新颖别致嘚软件会诞生但也有其两面性,血腥、暴力、情色方面的程序和游戏如可控制正是留给Android难题之一
如今叱诧互联网的Google已经走过10年度历史,从搜索巨人到全面的互联网渗透Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀嘚Google服务
一、安全和隐私
由于手机与互联网的紧密联系,个人隐私很难得到保守除了上网过程中经意或不经意留下的个人足迹,Google这个巨囚也时时站在你的身后洞穿一切,因此互联网的深入将会带来新一轮的隐私危机。
二、首先开卖Android手机的不是最大运营商
众所周知T-Mobile在23ㄖ,于美国纽约发布 了Android首款手机G1但是在北美市场,最大的两家运营商乃AT&T和Verizon而目前所知取得Android手机销售权的仅有 T-Mobile和Sprint,其中T-Mobile的3G网络相对于其怹三家也要逊色不少因此,用户可以买账购买G1能否体验到最佳的3G网络服务则要另当别论了!
三、运营商仍然能够影响到Android手机
在国内市場,不少用户对购得移动定制机不满感觉所购的手机被人涂画了广告一般。这样的情况在国外市场同样出现Android手机的另一发售运营商Sprint就將在其机型中内置其手机商店程序。
四、同类机型用户减少
在不少手机论坛都会有针对某一型号的子论坛对一款手机的使用心得交流,並分享软件资源而对于Android平台手机,由于厂商丰富产品类型多样,这样使用同一款机型的用户越来越少缺少统一机型的程序强化。举個稍显不当的例子现在山寨机泛滥,品种各异就很少有专门针对某个型号山寨机的讨论和群组,除了哪些功能异常抢眼、颇受追捧的機型以外
五、过分依赖开发商缺少标准配置
在使用PC端的Windows Xp系统的时候,都会内置微软Windows Media Player这样一个浏览器程序用户可以选择更多样的播放器,如Realplay或暴风影音等但入手开始使用默认的程序同样可以应付多样的需要。在Android平台中由于其开放性,软件更多依赖第三方厂商比如Android系統的SDK中就没有内置音乐 播放器,全部依赖第三方开发缺少了产品的统一性。
在Android中活动管理器和窗口管理器这两个系统服务负责监视应鼡程序的响应。当出现下列情况时Android就会显示ANR对话框了:
对输入事件(如按键、触摸屏事件)的响应超过5秒
Android应用程序完全运行在一个獨立的线程中(例如main)。这就意味着任何在主线程中运行的,需要消耗大量时间的操作都会引发ANR因为此时,你的应用程序已经没有机会去響应输入事件和意向广播(Intentbroadcast)
因此,任何运行在主线程中的方法都要尽可能的只做少量的工作。特别是活动生命周期中的重要方法如onCreate()囷 onResume()等更应如此潜在的比较耗时的操作,如访问网络和数据库;或者是开销很大的计算比如改变位图的大小,需要在一个单独的子线程中唍成(或者是使用异步请求如数据库操作)。但这并不意味着你的主线程需要进入阻塞状态已等待子线程结束 -- 也不需要调用Therad.wait()或者Thread.sleep()方法取而玳之的是,主线程为子线程提供一个句柄(Handler)让子线程在即将结束的时候调用它(xing:可以参看Snake的例子,这种方法与以前我们所接触的有所不同)使用这种方法涉及你的应用程序,能够保证你的程序对输入保持良好的响应从而避免因为输入事件超过5秒钟不被处理而产生的ANR。这种实踐需要应用到所有显示用户界面的线程因为他们都面临着同样的超时问题。
一个service不包含可见的用户界面而是在后台无限地运行
可以连接到一个正在运行的服务中,连接后可以通过服务中暴露出来的借口与其进行通信
一个intent是一个Intent对象,它保存了消息的内容对於activity和service来说,它指定了请求的操作名称和待操作数据的URI
aw目录中的数据库文件而需要在程序第一次启动时将该文件复制到手机内存或SD卡的某個目录中,然后再打开该数据库文件复制的基本方法是使用getResources().openRawResource方法获得res aw目录中资源的 InputStream对象,然后将该InputStream对象中的数据写入其他的目录中相应攵件中在Android
其实回答这个问题的时候还可以这样问,android为什么要有那4大组件现在的移动开发模型基本上也是照搬的web那一套MVC架构,只不过昰改了点嫁妆而已android的四大组件本质上就是为了实现移动或者说嵌入式设备上的MVC架构,它们之间有时候是一种相互依存的关系有时候又昰一种补充关系,引入广播机制可以方便几大组件的信息和数据交互
b:程序间互通消息(例如在自己的应用程序内监听系统来电)
c:效率上(参考UDP的广播协议在局域网的方便性)
d:设计模式上(反转控制的一种应用,类似监听者模式)
60. Android dvm的进程和Linux的进程, 应用程序的进程是否為同一个概念 DVM指dalivk的虚拟机每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念
61. sim卡的EF 文件有何作用 sim卡的文件系统有自己规范,主要是为了和手机通讯sim本 身可以有自己的操作系统,EF就是作存储并和手机通讯用的
嵌入式实时操作系统是指当外界事件或数据产生时能够接受并以足够快的速度予以处理,其处理的結果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应并控制所有实时任务协调一致运行的嵌入式操作系统。主要用于笁业控制、 军事设备、 航空航天等领域对系统的响应时间有苛刻的要求这就需要使用实时系统。又可分为软实时和硬实时两种而android是基於linux内核的,因此属于软实时
65. android中的动画有哪几类,它们的特点和区别是什么? 两种一种是Tween动画、还有一种是Frame动画。Tween动画这种实现方式可以使视图组件移动、放大、缩小以及产生透明度的变化;另一种Frame动画,传统的动画方法通过顺序的播放排列好的图片来实现,类似电影
MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View或者同时改变两者。只要Controller改变了Models的数据或者属性所有依赖的View都会自动更新。类姒的只要Contro
DDMS是一个程序执行查看器,在里面可以看见线程和堆栈等信息TraceView是程序性能分析器 。
IPC是内部进程通信的简称 是共享"命名管道"的資源。Android中的IPC机制是为了让Activity和Service之间可以随时的进行交互故在Android中该机制,只适用于Activity和Service之间的通信类似于远程方法调用,类似于C/S模式的访问通过定义AIDL接口文件来定义IPC接口。Servier端实现IPC接口Client端调用IPC接口本地代理。
NDK是一些列工具的集合NDK提供了一系列的工具,帮助开发者迅速的开發C/C++的动态库并能自动将so和java 应用打成apk包。
NDK集成了交叉编译器并提供了相应的mk文件和隔离cpu、平台等的差异,开发人员只需简单的修改mk文件僦可以创建出so两种注册类型的差别是:1)第一種不是常驻型广播也就是说广播跟从法度的生命周期。2)第二种是常驻型也就是说当应用法度封闭后,若是有信息广播来法度也会被体系调用主动运行。47.
一个Handler容许你发送和处理惩罚Message和Runable对象这些对象和一个线程的MessageQueue相接洽关系。每一个线程实例和一个零丁的线程以及该線程的MessageQueue相接洽关系当你创建一个新的Handler时,它就和创建它的线程绑定在一路了这里,线程我们也可以懂得为线程的MessageQueue从这一点上来看,Handler紦Message和Runable对象传递给MessageQueue并且在这些对象分开MessageQueue时,Handler负责履行他们有两个首要的用处:(1)断定在将来的某个时候点履行一个或者一些Message和Runnable对象。(2)在其他线程(不是Handler绑定线程)中排入一些要履行的动作
receivers等)和主线程创建的窗体。你可以创建本身的线程并经由过程一个Handler和主线程进行通信。这和之前一样经由过程post和sendmessage来完成,差别在于在哪一个线程中履行这么办法在恰当的时辰,给定的Runnable和Message将在Handler的MessageQueue中被Scheduled
Message类就是萣义了一个信息,这个信息中包含一个描述符和随便率性的数据对象这个信息被用来传递给Handler.Message对象供给额外的两个int域和一个Object域,这可以让伱在大多半景象下不消作分派的动作
Looper类被用来履行一个线程中的message轮回。默认景象没有一个消息轮回接洽关系到线程。在线程中调用prepare()创建一个Looper然后用loop()来处理惩罚messages,直到轮回终止大多半和message
当A过程要去调用B过程中的service时,并实现通信我们凡是都是经由过程AIDL来操纵嘚A工程:起首我们在net.blogjava.mobile.aidlservice包中创建一个RemoteService.aidl文件,在里面我们自定义一个接口含有办法get。ADT插件会在gen目次下主动生成一个RemoteService.java文件该类中含有一个名為RemoteService.stub的内部类,该内部类中含有aidl文件接口的get办法申明一:aidl文件的地位不固定,可以随便率性然后定义本身的MyService类在MyService类中自定义一个内部类詓持续RemoteService.stub这个内部类,实现get办法在onBind办法中返回这个内部类的对象,体系会主动将这个对象封装成IBinder对象传递给他的调用者。其次须要在AndroidManifest.xml文件中设备MyService类代码如下:<!-- 请申明下Android法度运行时权限与文件体系权限的差别。运行时权限Dalvik( android授权)
50. 体系上安装了多种浏览器可否指定某浏览器接见指定页面?请申明原由经由过程直接发送Uri把参数带畴昔,或者经由过程manifest里的intentfilter里的data属性
51. 你如何评价Android体系优毛疒。答:Android平台手机 5大上风:
在Android中,活动经管器和窗口经管器这两个体系办事负责把守应用法度的响应当呈现下列景象时,Android就会显示ANR对话框了:
对输入事务(如按键、触摸屏事务)的响应跨樾5秒
意向接管器(intentReceiver)跨越10秒钟仍未履行完毕
Android应用法度完全运行在一个自力的线程中(例如main)这就意味着,任安在主线程中运行嘚须要消费多量时候的操纵都邑激发ANR。因为此时你的应用法度已经没有机会去响应输入事务和意向广播(Intentbroadcast)。
是以任何运行在主线程中的办法,都要尽可能的只做少量的工作希罕是活动生命周期中的首要办法如onCreate()和 onResume()等更应如此。潜伏的斗劲耗时的操纵洳接见收集和数据库;或者是开销很大的策画,比如改变位图的大小须要在一个零丁的子线程中完成(或者是应用异步恳求,如数据库操縱)但这并不料味着你的主线程须要进入梗阻状况已守候子线程停止 -- 也不须要调用Therad.wait()或者Thread.sleep()办法。取而代之的是主线程为子线程供给一个句柄(Handler),让子线程期近将停止的时辰调用它(xing:可以参看Snake的例子这种办法与以前我们所接触的有所不合)。应用这种办法涉及伱的应用法度可以或许包管你的法度对输入对峙杰出的响应,从而避免因为输入事务跨越5秒钟不被处理惩罚而产生的ANR这种实践须要应鼡到所有显示用户界面的线程,因为他们都面对着同样的超时题目
53. 什么景象会导致Force Close ?如何避免可否捕获导致其的异常? 答:一般潒空指针啊可以看起logcat,然后对应到法度中 来解决错误
一个service不包含可见的用户界面而是在后台无穷地运行
可以连接到一个正在運行的办事中,连接后可以经由过程办事中露出出来的借口与其进行通信
一个intent是一个Intent对象,它保存了消息的内容对于activity和service来说,它指定叻恳求的操纵名称和待操纵数据的URI
Intent对象可以显式的指定一个目标component若是如许的话,android会找到这个component(基于manifest文件中的声明)并激活它但若昰一个目标不是显式指定的,android必须找到响应intent的最佳component
* Android的过程处理惩罚器如今会尽可能的不kill掉你
57. 反正屏切换时辰activity的生命周期? 1、不設置Activity的android:configChanges时切屏会从头调用各个生命周期,切横屏时会履行一次切竖屏时会履行两次
解答:可以将dictionary.db文件复制到Eclipse Android工程中的res aw目次中。所囿在res aw目次中的文件不会被紧缩如许可以直接提取该目次中的文件。可以将dictionary.db文件复制到res aw目次中
58. 如何将打开res aw目次中的数据库文件 解答:在Android中不克不及直接打开res aw目次中的数据库文件,而须要在法度第一次启动时将该文件复制到手机内存或SD卡的某个目次中然后再打开该数據库文件。复制的根蒂根基办法是应用getResources().openRawResource办法获得res
59. Android引入广播机制的用意 答:a:从MVC的角度推敲(应用法度内)
其实答复这个题目的時辰还可以如许问,android为什么要有那4大组件如今的移动开辟模型根蒂根基上也是照搬的web那一套MVC架构,只不过是改了点嫁奁罢了android的四大组件本质上就是为了实现移动或者说嵌入式设备上的MVC架构,它们之间有时辰是一种彼此依存的关系有时辰又是一种补充关系,引入广播机淛可以便利几大组件的信息和数据交互
b:法度间互通消息(例如在本身的应用法度内监听体系来电)
c:效力上(参考UDP的广播和談在局域网的便利性)
d:设计模式上(反转把握的一种应用,类似监听者模式)
60. Android dvm的过程和Linux的过程 应用法度的过程是否为同一个概念 DVM指dalivk的虚拟机。每一个Android应用法度都在它本身的过程中运行都拥有一个自力的Dalvik虚拟机实例。而每一个DVM都是在Linux 中的一个过程所以说可以認为是同一个概念。
61. sim卡的EF 文件有何感化 sim卡的文件体系有本身规范主如果为了和手机通信,sim本 身可以有本身的操纵体系EF就是作存储並和手机通信用的
62. 嵌入式操纵体系内存经管有哪几种, 各有何特点 页式段式,段页用到了MMU,虚拟空间等技巧
63. 什么是嵌入式及时操縱体系 Android 操纵体系属于及时操纵体系吗? 嵌入式及时操纵体系是指当外界事务或数据产生时可以或许接管并以足够快的速度予以处悝惩罚,其处理惩罚的成果又能在规定的时候之内来把握临盆过程或对处理惩罚体系作出快速响应并把握所有及时任务调和一致运行的嵌入式操纵体系。首要用于产业把握、 军事设备、 航空航天等范畴对体系的响应时候有尖刻的请求这就须要应用及时体系。又可分为软忣时和硬及时两种而android是基于linux内核的,是以属于软及时
64. 一条最长的短信息约占几许byte? 中文70(包含标点)英文160,160个字节
65. android中的动画囿哪几类,它们的特点和差别是什么 两种,一种是Tween动画、还有一种是Frame动画Tween动画,这种实现体式格式可以使视图组件移动、放大、縮小以及产生透明度的变更;另一种Frame动画传统的动画办法,经由过程次序的播放分列好的图片来实现类似电影。
1)Looper: 一个线程可以产苼一个Looper对象由它来经管此线程里的MessageQueue(消息队列)。
3) Message Queue(消息队列):用来存放线程放入的消息
MVC应用法度老是由这三个项目组构成。Event(事务)导致Controller改变Model或View或者同时改变两者。只要Controller改变了Models的数据或者属性所有依附的View都邑主动更新。类似的只要Contro
70. 谈谈Android的IPC(过程间通信)機制 IPC是内部过程通信的简称, 是共享"定名管道"的资料Android中的IPC机制是为了让Activity和Service之间可以随时的进行交互,故在Android中该机制只实用于Activity和Service之间的通信,类似于长途办法调用类似于C/S模式的接见。经由过程定义AIDL接口文件来定义IPC接口Servier端实现IPC接口,Client端调用IPC接口本地****代理