Android 应用基础知识

2018-11-19  本文已影响12人  拾识物者

本文是这篇文章的精简版:安卓官方教程 - 应用基础知识

安全沙箱

为什么各个应用之间是无法互相访问文件的?VM和linux进程之间有什么关系?

如何共享:

四大组件

安卓是一个开放的系统,任何应用都可以启动其他应用的组件。虽然能启动其他应用的组件,但每个应用的组件还是运行在应用自己的进程中或者指定的进程中,而不是运行在启动它的应用的进程中。

因为安全沙箱的存在,无法直接启动另一个应用的组件,而是需要通过系统来做中间人,因此启动其他组件也就是向系统发送一个“我要启动其他应用的组件”的消息。这种消息是一种异步消息,称为Intent。

启动组件

四大组件中的Activity、Service、BroadcastReceiver都要通过Intent启动,ContentProvider的启动比较直接,使用者使用ContentResolver来直接控制ContentProvider的启动,ContentResolver也是一个中间层用来隔离使用者和ContentProvider。

Intent是一种异步消息,它代表一种“意图”,也就是这个英文单词的含义。可以是显示的意图也可以是隐式的意图。显示的例子:想要启动某个指定名字的Activity或者某个Service,隐式的例子:想要让系统播放一个视频文件,如何打开可以由系统查找能打开的应用,而不是直接指定某个应用的某个组件。

清单文件

清单文件的作用和内容

应用资源

一个应用并不仅仅包括代码,还包括图片、布局等资源。资源不依赖代码,可以替换资源而不需要修改代码。

不同的设备配置各不相同,使用备用资源可以针对各种不同的配置(不同的语言和屏幕尺寸)来优化应用。使用限定符可以指定一个资源文件夹是专门用来存放不同限定符指定的不同配置时使用的资源。资源限定符有很多种,是一些很短的字符串,可以使用一个限定符也可以同时使用多个应用到资源目录。

对一个资源,安卓的构建工具会在编译期生成一个唯一的整数id,可以用这个id来引用这个资源。

上一篇 下一篇

猜你喜欢

热点阅读