本文共 2673 字,大约阅读时间需要 8 分钟。
翻译,不是纯翻译,目的是为了学习和共享。
一旦安装,应用就会在自己独立的小天地里自由自在,安全的活动。
每一个android进程都有它自己的虚拟机—VM,一个用用的代码独立的在这里执行
系统都是在保证应用正常运行的情况下,尽量给予应用最少的权限,应用随意支配自己的资源,但是,如果涉及到系统的话,那它还得看有没有相关的权限。这样做,就能很好的保证系统的安全。
当然,下面的方法就可以让应用之间进行通信,以及让应用可以使用系统的服务。
应用可以获取设备的数据,如:联系人,信息,sd卡内容,蓝牙相机等。但是必须在安装时得到用户的授权。
Activities
activity 它表现出来就是一个用户的界面。例如发邮件的应用。一个activity用来显示邮件的列表,一个activity可能用来发邮件,里一个activity可能用来展现邮件。每一个activity是独立的,可以被除本应用外其他任何应用调起,前提是它允许被其他应用调起。
Services
服务是一个长期在后台运行或者是为远程进程工作的组件。服务不提供一个用户界面。例如,当用户在玩其他应用的时候,服务可以在后台播放音乐;它和activity结合从网上获取数据但是不会阻塞应用。其他组件。例如activity可以开启服务让服务运行,或者绑定服务来和它进行通讯。
Content providers
Content providers(内容提供者),它管理应用中用来分享的数据。你可以把这些用来分享的数据存放到文件系统、数据库、网上等任何你的应用有权访问的存储介质中。通过内容观察者,其他的应用可以访问这些数据,甚至可以修改他们,前提是你的内容观察者允许他们这样做。例如,短信应用就提供了一个内容观察者,其他的应用可以通过这个内容观察者查询短信的内容,甚至还可以修改短信。
如果你想让其他应用来访问你应用中的数据,你需要定义好相应的APIS(访问你应用的路径和说明),其他应用就可以通过这些apis来访问和操作你应用中 的数据。
Broadcast receivers(广播接受者),它是一个可以在整个系统范围内收发广播的组件。很多的广播都来自系统,例如,屏幕亮时,锁屏时,电量低时,截屏时,系统会发相应的广播;开机时,系统会发开机广播等。应用也可以发广播,例如,一个应用下载完某些数据后,可以发一个广播,通知系统或者其他应用这些数据已经下载完成可以使用了。虽然广播接受者也不提供用户界面,但是他可以在状态栏,以通知的形式来提醒用户一个广播发生了。
系统开启一个组件,会运行它所在的进程,并初始化它需要的类。例如:当你的应用调用相机的应用来拍摄照片,相机的应用并没有在你应用的进程里。
由于一个应用独立运行在一个进程中,所以他不能直接与其他应用进行通信,当你的应用想调用相机应用时,你需要通过一个Intent,并给它绑定特定的动作,交给系统,系统找到相应的activity并开启。
四大组件中的三个组件 — Activity、Service、Broadcast receivers 都可以通过一个叫做Intent的异步消息开启。他需要绑定一个action来触发组件。
intent 是有 Intent对象产生的,他可以调起一个明确的组件或者一种明确类型的组件,也就是说,intent有显示和隐式之分。对于服务和活动,intent可以指明要操作的动作,也可以指明要操作的数据的URI。例如,一个intent可能包含一个请求,使得一个activity去显示一个图片或者打开一个网页。在某些情况下,你可以打开一个activity,让这个activity来返回一些数据,这个activity返回到额数据也包含在一个intent中。
对于有广播接受者,intent仅仅仅仅定义了要发送的广播。
内容提供者不能被intent调起,然而,他可以作为ContentResolver(内容解析者)的目标被调用。这样,组件仅仅通过内容解析者,就可以操作内容提供者的一些方法,使得系统更加安全。
不同的组件,用不同的方法去调起:
这些东西,在这里只是简单的说明一下,后续的文章里会详细的介绍怎样应用的,所以不用担心哈!
当然google的介绍还有很多,但是我觉得我们最好开始正题吧:下一章进入详细的讲解!
转载地址:http://klycb.baihongyu.com/