安卓应用程序基本

来源:互联网 发布:java多线程的两种方法 编辑:程序博客网 时间:2024/06/05 19:07

安卓应用程序使用JAVA语言编写。安卓的SDK工具负责将你编写的代码,用到的数据和资源文件编译进APK文件中,APK:android package。apk文件包含了一个安卓应用程序的所有内容,并且被安卓设备用来安装应用程序。
一旦被安装到设备上,每个安卓应用程序运行在其自己安全的沙箱中:

  • 安卓操作系统是一个多用户的linux系统,其中的每个应用程序都是不同的用户。
  • 默认情况下,系统会为每个应用程序分配一个唯一的linux用户ID号,这个ID只被系统使用,且对其他程序不可见。系统为应用程序中的所有文件设置权限,所以只有分配到了这个用户ID的应用程序才能够存取这些文件。
  • 每个进程拥有自己的虚拟机,所以一个应用程序的代码独立于其他应用程序运行。
  • 默认情况下,每个应用,应用程序运行在其自己的linux进程中。当应用程序中任何组件需要被执行的时候,安卓将启动进程,然后关闭那些不再需要的进程,或是系统必须要从其他应用程序中恢复内存空间。

在这种情况下,安卓系统实现最小特权原则。也就是说,默认情况下,每个应用程序只能够存取它要求工作的组件,而其他组件的不可以。这形成了一个非常安全的环境,在这样的环境中,应用成不不能够存取系统为赋予其权限的其他组件。
然而,有其他方法可以让一个应用程序与其他应用程序共享数据,让一个应用程序来获取系统的服务。

  • 可以安排两个应用程序共享同一个linux的用户ID号,在这种情况下,这两个应用程序可以相互获取对方的文件。为了节约系统资源,享有同一个用户ID号的应用程序也可以在同一个linux进程中运行,共享同一个虚拟机(这些应用程序必须使用相同的证书进行签名)。
  • 一个应用程序可以要求获取设备数据的权限,比如用户的联系人,短信息,挂载的存储设备(SD卡),摄像头,蓝牙等。所有应用程序的权限必须在用户安装应用程序时被允许。
    以上包含了关于一个应用程序如何在系统中存在的基础。接下来的文档将向你介绍如下内容:
  • 定义你的应用程序的核心框架组件
  • 用于为应用程序声明组件和要求设备特性的布局文件
  • 独立于应用程序代码,让你的应用程序能够在多种设备配置间优雅的优化其行为的资源文件

应用程序组件
应用程序的组件是安卓应用程序的基本building blocks(创建好了的模块)。每种组件都是系统用于进入你的应用程序的不同的入口点。不是所有组件都可以为用户提供实际的入口点,有的组件需要依赖其他组件,但是每个组件都作为自己的实例独立存在并且扮演着特定的角色,每个组件都是独特的building block,用于帮助定义你的应用程序整体的行为。(谷歌好文艺啊)
有四种不同类型的应用组件。每种组件都有着特定的功能,且有明确定义组件被创建和销毁的生命周期。

0 0
原创粉丝点击