[Android]基本概念

1. 系统架构

Android的总体系统架构由四个大的层次组成:

1) Linux内核

Android构建在一个较为稳定的基础之上:Linux内核。Android使用Linux完成其内存管理、进程管理、网络和其他操作系统服务工作。开发期间需要的某些实用程序要和Linux打交道,例如adb shell命令打开一个Linux shell,从中可以输入要在设备上运行的其他命令。

2) 本机库

Linux内核层上面一层中包含了Android的本机库,这些共享库都是用C或C++语言编写的,并且针对手机使用的特定硬件架构进行了编译,并已由手机制造商预先安装到手机中。最重要的一些本机库包括:界面管理器,2D和3D图形,媒体编解码器,SQL数据库,Android附带的Java核心库五个部分组成。

3) 应用程序框架

位于本机库和运行时上面的是应用程序框架层,该层提供了在创建应用程序时需要使用的各种高级构建块,它包括活动管理器,内容提供者,资源管理器,位置管理器,通知管理器五个最重要部分。

4) 应用程序和小部件

最高层是应用程序和小部件层,应用程序是与用户交互的程序,小部件则只能在应用程序主屏幕中的小矩形框中操作。

2. 窗口管理

Android中有一个前台应用程序,它通常会占据除状态栏以外的所有屏幕空间,用户开机时,看到的第一个应用程序是Home应用程序。用户在运行应用程序时,Android会启动该程序并将其置于前台。所有程序和窗口都被系统的活动管理器记录在应用程序栈中,用户可随时按Back按钮返回到栈中的上一个窗口。

从内部来看,每个用户界面窗口都是通过一个Activity类表示的,而每个活动都有其自己的生命周期。在Android中,即使其进程被结束,相应的应用程序仍然存活,活动的生命周期与进程的生命周期没有关系,进程只是各种活动可随意使用的一个容器。

Android程序中的每个活动在其存在期间都会处理以下多种状态之一,改变状态时,系统会通过onXXX()方法通知开发人员:

1) onCreate(Bundle): 首次启动活动时会调用该方法,可使用该方法执行一些初始化操作。

2) onStart(): 该方法说明了将要显示给用户的活动。

3) onResume(): 用户可以开始与活动进行交互时会调用该方法。

4) onPause(): 活动将要进入后台时会运行该方法。

5) onStop(): 用户不再看到某个活动,或一段时间内不需要某个活动时,可以调用该方法。

6) onRestart(): 如果调用该方法,表明要将已处理停止状态的活动重新显示。

7) onDestroy(): 销毁活动前会调用该方法。

8) onSaveInstanceState(Bundle): Android调用该方法的作用是让活动可以保存每个实例的状态。

9) onRestoreInstanceState(Bundle): 使用onSaveInstanceState()方法以前保存的状态重新初始化某个活动时会调用该方法。

没有在前台中运行的活动可能被停止,或者容纳这些活动的Linux进程被结束,从而为新活动腾出空间,有时onPause()方法可能是活动中调用的最后一个方法,所以才应在该方法中保存下次要继续使用的任何数据。

3. 构建块

Android中最重要的一些对象是活动、意图、服务和内容提供者。一个活动就是一个用户界面屏幕,应用程序可以定义一个或多个活动用以处理程序不同阶段的任务,每个活动都要保存自己的状态,以便日后还原这些状态。意图是一种描述具体动作的机制,比如拍照、拔电话等,Android中几乎所有事情都要经历意图阶段,所以有很多机会可替换或重用很多组件。服务是在后台运行的任务,无需与用户直接交互,类似UNIX的守护进程。内容提供者是封装在自定义API中的一组数据,可以读取该数据和向API中写入数据,这是在应用程序之间共享全局数据的最佳方式。

资源是程序需要的本地化后的文本字符串、位图或其他少量的非代码信息。程序生成时,所需的所有资源都会被编译到应用程序中。资源由开发人员创建并存储在项目内的res目录中,Android资源编译器会根据资源所处的子文件夹以及文件的格式来处理这些资源,可以给资源目录名称添加后缀来支持针对特定语言、屏幕方向或像素密度的自定义资源。资源编译器会将资源压缩并打包,生成一个名为R的类,其中包含的标识符可用于在程序中引用这些资源,所以Android可以确保所有引用都是用效的,还可以节省空间,因为它不必存储所有这些资源键。

4. 安全性

每个应用程序都在其自己的Linux进程中运行,硬件禁止一个进程访问其他进程的内存。每个应用程序都被分配了一个具体的用户ID,某个应用程序所创建的任何文件都不能被其他应用程序读写。另外,对某些关键操作的访问也是有限制的,必须在一个名为AndroidManifest.xml的文件中明确请求获得所需的权限。安装应用程序时,软件包管理器会根据证书以及用户提示的情况授予或不授予这些权限,以下是常用的一些权限:

1) INTERNET: 访问因特网。

2) READ_CONTACTS: 读取(但不能写入)用户的联系人数据。

3) WRITE_CONTACTS: 写入(但不能读取)用户的联系人数据。

4) RECEIVE_SMS: 监视收到的SMS短信。

5) ACCESS_COARSE_LOCATION: 使用不太精确的位置提供者,如手机基站或Wi-Fi。

6) ACCESS_FINE_LOCATION: 使用更为精确的位置提供者,如GPS。

Android甚至可以限制对整个系统各部分的访问,通过在AndroidManifest.xml中使用XML标签,可以限制谁能启动活动、启动服务或绑定到服务、向接收者广播意图,或者访问内容提供者中的数据。

[Android]基本概念

时间: 2025-01-03 18:29:41

[Android]基本概念的相关文章

Arcgis Android 基本概念 - 浅谈

MapView     MapView 是 Android 中 ViewGroup的子类,也是 ArcGIS Runtime SDK for Android 中的地图容器,与很多 ArcGIS API 中的 Map.MapControl类作用是一样的.      MapView 可以添加一个或多个图层,图层只有添加到 MapView 容器中才能进行显示. Layer 在 GIS 中图层是很重要的概念, 图层是空间数据的载体,通过它可将各种类型的地图数据进行加载显示,但图层只有添加到 MapVie

Android 常用概念理解

在看Android代码运行机制时,经常会遇到一些不太理解的词,在此把我遇到的一些词以及理解整理下: 1.Android系统,整体来讲它是属于消息驱动型类型,简单说就是系统中应用的各个组件都是靠消息来交互,系统中会有一个主线程会循环执行Looper中的消息队列. 2.编译时:只有编译成功后才能生成可执行代码,简单理解就是语法要符合Android系统的要求,如数学中的运算法则. 3.运行时:简单理解就是当代码执行到那行代码时,(如Android系统中findViewById,只要存在相应id就不会报

Android基本概念总结

Android平台特性 1. 应用程序框架支持组件的重用与替换. 这样我们可以把系统中不喜欢的应用程序删除,安装我们喜欢的应用程序. 2. Dalvik虚拟机专门为移动设备进行了优化. Android应用程序将由Java编写.编译的类文件通过DX工具转换成一种后缀名为.dex的文件来执行.Dalvik虚拟机是基于寄存器的,相对于Java虚拟机速度要快很多. 3. 内部集成浏览器基于开源的WebKit引擎. 有了内置的浏览器,这将意味着WAP应用的时代即将结束,真正的移动互联网时代已经来临,手机就

Android基本概念(一)

(一)四大组件: 活动(Activity),广播接收器(Broadcast Receiver),服务(Service),内容提供器(Content Provider) (二)Android工程程序结构 src:放置源代码的文件夹 gen:系统自动生成标识资源ID的文件,不要手动更改 assets:很少使用,可以放置一些打包文件 bin:系统自动生成安装包的文件夹,*.apk就是手机可以安装的文件 libs:如果用到第三方的库,放置到这个文件夹下 res:系统的资源,非常重要 AndroidMan

Android 基础概念了解

Android 的前世今生Android 系统框架Android 主要组成 部分Android 常用的操作 Android 的前世今生 Android 的诞生 2003年10月,有"Android之父"之称的安迪·鲁宾(Andy Rubin)在美国加利福尼亚州帕洛阿尔托创建了Android科技公司(Android Inc.). Android 的发展历程 2005年8月17日谷歌公司(Google)收购了这家公司,并不断将其开发成为现在的安卓系统. 2007年11月12日,Androi

android 事件处理概念簇

1)事件传递函数 2)事件相关: 事件.事件源.事件监听器.MotionEvent 3)坐标系.定位.路由: 4)Window activity view viewGroup

Android学习笔记(一):基本概念

本文内容引用于<Android开发教程&笔记> Android的概念: Android是一个专门针对移动设备的软件及,它包括一个操作系统,中间件和一些重要的应用程序.Beta版的Android SDK提供了在Android平台上使用Java语言进行Android应用开发必须的工具和API接口. 特性 • 应用程序框架 支持组件的重用与替换• Dalvik 虚拟机 专为移动设备优化• 集成的浏览器 基于开源的 WebKit 引擎• 优化的图形库 包括定制的2D 图形库,3D 图形库基于

android插件化-apkplug中OSGI服务基本原理-08

我们提供 apkplug 下OSGI使用demo 源码托管地址为 http://git.oschina.net/plug/OSGIService 一 OSGI与android Service 异同点 OSGI服务与android Service概念差不多也是Service ,Client 关系. android Service接口  --service.AIDL OSGI接口                --java interface 所以android 进程间通信Service只能传递序列

Android开发1、2周——GeoQuiz项目

GeoQuiz项目总结 通过学习Android基本概念与构成应用的基本组件,来开发一个叫GeoQuiz的应用.该应用的用途是测试用户的地理知识.用户单击TRUE或FALSE按钮来回答屏幕上的问题,GeoQuiz可即时反馈答案正确与否. 开发前的准备工作 想要开发一个Android应用,首先要在电脑上装上开发软件.在这里推荐Android Studio,本文所有的开发都是在该平台上进行的. Android Studio的安装包括: 1.Android SDK 最新版本的Android SDK. 2