Android文档学习01_Android基础
2015-01-14 00:00
218 查看
一旦安装到了一个设备,每个应用生存在它自己的安全沙箱
系统给每个应用分配一个独立的Linux用户ID(这个ID只由系统使用并且对应用来说是不可知的)
Android系统实现了最小特权原则。默认,每个应用仅仅访问需要工作的组件,并不多做其他的事。这样创建了一个非常安全的环境,应用不能访问系统没有授权的其他部分
有可能安排两个应用共用一个linux系统ID,在那种情况下,它们能互相访问相互的数据。为了节约系统资源,拥用相同用户ID的应用,可能也被安排运行在同一个Linux进程中并共享相同的VM(应用必须被签名成同样的认证)。
一个service是长期运行在后台,执行操作的组件,甚至可以为远程进程工作
广播接收者,不能显示用户界面,但当一个广播事件发生时,它们可以创建一个状态通知器,去提醒用户.但更多情况下,一个广播接收者只是一个其他组件,想要做极小量事件的一个"gateway”(途径).举例,它可能发起一个服务,去执行关于某个事件的一些工作.
任何一个应用能启动另一个其他应用的组件,是Android系统设计独一无二的方面(aspect)
不像大多数其他的系统的应用,Android应用,没有单个的入点(比如没有main()函数).
你的应用不能直接访问其他应用中的组件.但时,Android系统也能激活其他应用的组件.你必须传一个消息给系统,指定你想要启动的组件,然后系统为你激活这个组件
4个组件中的其中三个组件---activities,serivces,和broadcast receivers----是被叫做intent的异步消息激活的.在运行时,Intents把某个的组件与其他的组件互相绑定,而不管这个组件是否属于你的应用还是其他的应用(你可以把它们想像成一个消息,用于请求一个其他组件的动作).
内容提供者,不会被intents所激活.进一步讲,它是内容解释者(ContentResolver)所请求的目标所激活的.内容解释者,处理所有与内容提供者的直接交换.所以组件不需要执行与提供者交换,而是调用ContentResolver对象方法.(这一句不好理解。)为了安全起见,组件请求信息与内容提供者之间有一个抽象层
可以通过使用sendBroadcast(), sendOrderedBroadcast(), 或者 sendStickyBroadcast()三种方法来广播一个intent
Activites,services和内容提供者,若没有在manifest中声明,对系统来说是不可见的,即将永远不会运行。但是,广播接收者即可以在manifest中声明,也可以在代码中动态创建(做为BroadcastReceiver对象)并且通过registerReceiver()方法向系统注册。
在你的manifest文件中用<supports-screens> 元素声明,以明确指出你的应用支持的屏幕尺寸.屏幕大小:小,正常,大和极大 屏幕密度:低密度,中密度,高密度,和极高密度
如果你的应用必须要一个特别的输入硬件,那么你应在你的应用中使用<uses-configuration>元素声明.但时,应用必须要一个特别的输入配置的情况是极少的
比如照相机,光敏器件,蓝牙,或某个版本的OpenGL,或者触模屏的精度,你应该用 <uses-feature>元素声明你的应用支持的特征
你应该用<uses-sdk>元素,声明最小API级别,这样就指出了那些API将被采用.
为你的应用声明所有必要性的要求非常重要.因为,当你把你的应用发布到Android市场.市场,将用这些声明信息来过滤出,那些应用在每个设备是可用的. 同样,你的应用应该只能在满足所有你应用需求的设备上才可用
系统给每个应用分配一个独立的Linux用户ID(这个ID只由系统使用并且对应用来说是不可知的)
Android系统实现了最小特权原则。默认,每个应用仅仅访问需要工作的组件,并不多做其他的事。这样创建了一个非常安全的环境,应用不能访问系统没有授权的其他部分
有可能安排两个应用共用一个linux系统ID,在那种情况下,它们能互相访问相互的数据。为了节约系统资源,拥用相同用户ID的应用,可能也被安排运行在同一个Linux进程中并共享相同的VM(应用必须被签名成同样的认证)。
一个service是长期运行在后台,执行操作的组件,甚至可以为远程进程工作
广播接收者,不能显示用户界面,但当一个广播事件发生时,它们可以创建一个状态通知器,去提醒用户.但更多情况下,一个广播接收者只是一个其他组件,想要做极小量事件的一个"gateway”(途径).举例,它可能发起一个服务,去执行关于某个事件的一些工作.
任何一个应用能启动另一个其他应用的组件,是Android系统设计独一无二的方面(aspect)
不像大多数其他的系统的应用,Android应用,没有单个的入点(比如没有main()函数).
你的应用不能直接访问其他应用中的组件.但时,Android系统也能激活其他应用的组件.你必须传一个消息给系统,指定你想要启动的组件,然后系统为你激活这个组件
4个组件中的其中三个组件---activities,serivces,和broadcast receivers----是被叫做intent的异步消息激活的.在运行时,Intents把某个的组件与其他的组件互相绑定,而不管这个组件是否属于你的应用还是其他的应用(你可以把它们想像成一个消息,用于请求一个其他组件的动作).
内容提供者,不会被intents所激活.进一步讲,它是内容解释者(ContentResolver)所请求的目标所激活的.内容解释者,处理所有与内容提供者的直接交换.所以组件不需要执行与提供者交换,而是调用ContentResolver对象方法.(这一句不好理解。)为了安全起见,组件请求信息与内容提供者之间有一个抽象层
可以通过使用sendBroadcast(), sendOrderedBroadcast(), 或者 sendStickyBroadcast()三种方法来广播一个intent
Activites,services和内容提供者,若没有在manifest中声明,对系统来说是不可见的,即将永远不会运行。但是,广播接收者即可以在manifest中声明,也可以在代码中动态创建(做为BroadcastReceiver对象)并且通过registerReceiver()方法向系统注册。
在你的manifest文件中用<supports-screens> 元素声明,以明确指出你的应用支持的屏幕尺寸.屏幕大小:小,正常,大和极大 屏幕密度:低密度,中密度,高密度,和极高密度
如果你的应用必须要一个特别的输入硬件,那么你应在你的应用中使用<uses-configuration>元素声明.但时,应用必须要一个特别的输入配置的情况是极少的
比如照相机,光敏器件,蓝牙,或某个版本的OpenGL,或者触模屏的精度,你应该用 <uses-feature>元素声明你的应用支持的特征
你应该用<uses-sdk>元素,声明最小API级别,这样就指出了那些API将被采用.
为你的应用声明所有必要性的要求非常重要.因为,当你把你的应用发布到Android市场.市场,将用这些声明信息来过滤出,那些应用在每个设备是可用的. 同样,你的应用应该只能在满足所有你应用需求的设备上才可用
相关文章推荐
- Android文档学习01_Android基础
- Android文档学习01_Android基础
- Androin学习笔记五十七: Android 触摸手势基础 官方文档概览
- Android 开发文档 程序基础——Intent filters
- 开始学习、翻译android文档
- Android文档(二)-应用基础(1)应用组件(Application Components)
- android学习1 android应用的基础
- 《HTML & XHTML权威指南》的学习笔记01 -- 第三章.HTML/XHTML文档的元素
- Android 开发文档 程序基础——Shutting down components
- Android Map开发基础知识学习笔记
- Android学习基础要点总结
- Android 开发文档 程序基础 ——Services组件
- 公司培训文档-c#基础学习
- Android 开发文档 程序基础 ——Broadcast receivers组件
- Android 开发文档 程序基础 ——Content providers组件
- Android Map开发基础知识学习笔记
- Java基础学习之感悟01
- 正则表达式基础与学习01----来自《编译原理与实践》
- Spring(基础)学习文档二
- Android 开发文档 程序基础 ——activity组件