Android应用的基本原理

  次阅读 作者:智能小宝 来源:互联网 2016-01-19 11:04 我要评论(0)

Android应 用程序是用Java语言编写的。编译过后的字节码,以及应用程序要求的其他数据和资源文件,通过aapt工具被绑定在一起,称为Android包,这是一 个带.apk后缀的档案文件。这个文件也是用户下载到他们设备上的文件。所有的代码在一个单一的.apk文件中,组成一个 应用程序 。

AD:

从许多方面来说,每个Android应用程序存活在它们自己的世界中

应用基础-Application Fundamentals

Android应用程序以java作为开发语言。用Android SDK 提供的工具,可以将应用程序所需要的数据和资源文件打包到一个android包文件中,这个文件用.apk作为扩展名。所有代码都在单个.apk文件中, 当成一个应用,这个文件就是通常安装在Android设备中的应用. 一旦安装到了一个设备,每个应用生存在它自己的安全沙箱中。

* 一个Android系统是一个多用户的Linux系统,其中的每个应用都是一个不同的用户。

* 默认情况下,系统给每个应用分配一个独立的Linux用户ID(这个ID只由系统使用并且对应用来说是不可知的),系统给在某个应用中的所有文件设置了权限,所以只有分配了那个用户ID的应用才能访问它们

* 每个进程拥有它自己的虚拟机,所以一个应用代码的运行,与其他应用代码的运行是隔离的.

* 默认情况下,每个应用程序均运行于它自己的Linux进程中。当应用程序中的任意代码开始执行时,Android启动一个进程,而当不再需要此进程而其它应用程序又需要系统资源时,则关闭这个进程。

通过这种方法,Android系统实现了最小特权原则。默认,每个应用仅仅访问需要工作的组件,并不多做其他的事。这样创建了一个非常安全的环境,应用不能访问系统没有授权的其他部分.

然而,应用可以有多种方法来与其他应用,共享数据及访问系统服务:

* 有可能安排两个应用共用一个linux用户ID,在那种情况下,它们能互相访问相互的数据。为了节约系统资源,拥有相同用户ID的应用,可能也被安排运行在同一个Linux进程中并共享相同的VM(应用必须被签名成同样的认证)。

* 所有应用能请求允许访问硬件数据,比如像用户通信录,SMS消息及可挂载的存储设备(SD card),摄像头,蓝牙等,所有应用的权限必须在用户安装时被许可。

上述了一个应用怎样存在于一个系统中的相关基本概念,这个文档的其他部分将向你介绍如下 内容:

* 定义在你的应用中核心框架组件

* 在manifest中,给你的应用,声明组件及设备特点请求

* 独立于应用代码的资源,可以让你的应用极大的优化它在各种配置设备的表现

应用组件-Application Components

应用组件是构建Android应用程序的关键和基石。 每个组件是一个不同的入点,系统可以从这些点进入到你的应用。对于用户来说,并不是每个组件都是实际的入点,但它们之间有一些依赖.但是每一个存在的组件 都有它自己的一个入点,并扮演一个特定的角色--每一个都是独一无二的构建块,帮助你定义你的应用的整体行为.

有四个不同类型的应用组件,每个类型服务于一个不同的目的,并有不同的生命周期,生命周期定义了如何创建和销毁它.

下面是四种应用组件:

Activities活动

* 一个activity在一个屏幕,显示一个用户接口.比如,一个email应用可能有一个activity,这个activity用于显示新的 email列表.而另一个activity用于写邮件,还有一个activity用于读取邮件.虽然这些activities一起工作于email应用 中,形成一个完整的用户体验但每一个部分又是相互独立的.正因如此,不同的应用才能启动这些活动的任意一个(如个email应用允许它).比如,一个照相 的应用,能开启一个email应用中写封新邮件的活动,让用户分享一张照片.

* 一个activity被当作Activity的子类来实现的,在Activities开发指南中,你可以学到更多关于它的使用

Services服务

* 一个service是长期运行在后台,执行操作的组件,甚至可以为远程进程工作.一个服务不提供用户界面.比如,当用户在其他应用中时,一个服务 可能在后台播放音乐,或者在后台获取数据,这并不影响用户跟其他的活动进行交互操作.其他的组件,比如一个activity,可以启动一个服务,并可以让 它运行或者邦定到这个activity,以便与其进行交互操作.

* 一个服务是作为Service子类来实现的,在Services开发指南中,你能学到更多关于它的使用

Content providers 内容提供

* 一个content provider管理共享的应用数据集.你可以把数据存在文件系统中,一个SQLite数据库中,网上,或你应用可以访问的永久存储器中.通过内容提供 者,其他的应用可以查询甚至修改数据(如果内容提供者允许的话). 比如,Android系统提供一个内容提供者管理用户通信录信息.因此,任何拥用适当权限的应用,可以查询内容提供者的部分来(比如 ContactsContract.Data)读取和写入关于某个人的信息.内容提供者对于读取和写入属于你的应用的私有的非共享数据也是非常有用的,比 如Note Pad样例应用程序,就使用内容提供者来保存笔记的.

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...