Android核心分析.应用框架-AndroidApplication

Android核心分析.应用框架-AndroidApplication

ID:38073412

大小:139.62 KB

页数:5页

时间:2019-05-24

Android核心分析.应用框架-AndroidApplication_第1页
Android核心分析.应用框架-AndroidApplication_第2页
Android核心分析.应用框架-AndroidApplication_第3页
Android核心分析.应用框架-AndroidApplication_第4页
Android核心分析.应用框架-AndroidApplication_第5页
资源描述:

《Android核心分析.应用框架-AndroidApplication》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Android核心分析(21)----Android应用框架之AndroidApplicationAndroidApplicationAndroid提供给开发程序员的概念空间中Application只是一个松散的表征概念,没有多少实质上的表征。在Android实际空间中看不到实际意义上的应用程序的概念,即使有一个叫Application的类,这个也就是个应用程序上下文状态,是一个极度弱化的概念。Application只是一个空间范畴的概念,Application就是Activity,Servic

2、e之类的组件上下文描述。Application并不是Android的核心概念,而Activity才是Android的核心概念。从Android的SDK文档中,我们知道一般情况Android应用程序是由以下四种组件构造而成的:Activity,BroadcastIntentReceiver,服务(Service),内容提供器(ContentProvider)。我们可以使用下面的图来表示一下Android的概念空间。这些组件依附于应用程序中,应用程序并不会一开始就建立起来,而是在这些组件建立起来后,

3、需要运行时,才开始建立应用程序对象。2.1应用进程名称为什么要从应用进程名称开始?作为内核研究,我们还是回到问题的最本质处:不管Activity,Service等组件如何设计和运行,它要提供服务,就必须要依附在Linux的进程上,建立消息循环,组件才能够真正的运作。Activity实例是如何Hosting在Linux进程上的?这个是我们首先想要弄明白的。我们在的项目中看到android:process="string"这个定义。allowClearUserData=["true"

4、"false"

5、]android:allowTaskReparenting=["true"

6、"false"]android:backupAgent="string"…android:label="stringresource"android:manageSpaceActivity="string"android:name="string"android:permission="string"android:persistent=["true"

7、"false"]android:process="string"an

8、droid:restoreAnyVersion=["true"

9、"false"]android:taskAffinity="string"android:theme="resourceortheme">...在SDK用已经描述的很清楚到了。android:processThenameofaprocesswhereallcomponentsoftheapplicationshouldrun.Eachcomponentcanoverridethisdefaultbysettingitsownproc

10、essattribute.Bydefault,Androidcreatesaprocessforanapplicationwhenthefirstofitscomponentsneedstorun.Allcomponentsthenruninthatprocess.Thenameofthedefaultprocessmatchesthepackagenamesetbytheelement.Bysettingthisattributetoaprocessnamethat'ssharedwithan

11、otherapplication,youcanarrangeforcomponentsofbothapplicationstoruninthesameprocess—butonlyifthetwoapplicationsalsoshareauserIDandbesignedwiththesamecertificate.为什么要提出这么一个定义?android:process名称。默认状态下,ActivityManagerService在应用程序的第一个组件需要运行时将会为应用程序建立一个进程,而

12、这个进程的名字就是android:process=”string”所指定,缺省的是应用程序包的名字。该进程一旦建立,后面的该应用的组件都将运行在该进程中,他们绑定的根据就是这个Android:Process指定的名称,因为在他们都在同一个应用程序包里,也就具有了同样的进程名字,于是他们都托管在了同一进程中。组件将通过ClassLoader从Package中获取到应用程序的信息。在建立Actvitiy时,如果在应用进程端没有应用对象,系统在该过程中利用makeApplication建立一个Appl

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。