导航:首页 > 操作系统 > android应用的构成

android应用的构成

发布时间:2022-05-01 17:18:51

㈠ 安卓程序是用什么语言编写的

androidjava编程语言,使接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个 Activity 类(class)负责创建视窗(window),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。

两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行的效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(stopped),甚至被系统清除(kill)。


(1)android应用的构成扩展阅读

Android应用程序是android系统智能手机的主要构成部分,实现了智能手机的多样性、多功能性,结合了办公功能、娱乐功能、生活实用功能等,广受人们的喜爱。

Android应用程序有很多,其中让人耳目一新的个性化实用性应用程序有:

MINT、CHROME、神奇阿莱西、SWYPE/SWiftKey键盘、SWYPE/SWiftKey键盘、Swype、POCKET阅读器、SNAPSEED、EYE IN THE SKY天气、FLICK NOTE、LIGHT FLOW、ANY.DO。

㈡ android系统 主要有哪几部分

android系统分为四部分,从高到低分别是:

1、Android应用层

2、Android应用框架层

3、Android系统运行层

4、linux内核层

Android系统构架主要应用于ARM平台,但不仅限于ARM,通过编译控制,在X86、MAC等体系结构的机器上同样可以运行。

(2)android应用的构成扩展阅读

Android运行库

Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。

每一个Android都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。

同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中的“dx”工具转化成.dex格式由虚拟机执行。

㈢ Android软件框架结构自可分为哪些层

开发一个程序,android的系统框架是层层相扣,不能分开的。

应用程序层:
这个层主要指的就是用java语言编写的运行在虚拟机上的程序,Google在最开始时就 在android系统中捆绑了一些核心的应用(核心应用的编写必须使用应用层序框架层的API框架),例如你android手机中SMS发送短消息的程序,通讯录等等。

应用程序框架层:
指的就是开发时所需要的API框架,开发人员是在遵守该框架的原则上,调用他们的,开发自己所需要的程序。

系统运行库层:
用于支持应用框架层的各个组件的。就是说当开发人员使用android应用框架层时,android系统会通过一些C/C++库来支持对我们使用的各个组件,使其能更好地为开发者服务。

linux核心层:
android的核心系统服务如安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于Linux2.6内核,Linux内核同时也作为硬件和软件栈之间的抽象层。

因此,你开发的程序是运行在应用程序层,开发中写代码调用的包,是基于应用框架层,而在应用框架中的各个组件是需要系统运行库的支持的,例如,你要登陆查看的信息就必须访问到SQLite数据库,SQLite就位于系统运行库,再有,你登入要输入信息,肯定需要键盘驱动的支持,而各种驱动是依赖Linux内核的。

㈣ 简述android应用程序结构是哪些

Android 采用分层的架构,分为四层,从高层到底层分为应用程序层,应用程序框
架层,系统运行库层和Linux核心层
1,Android应用程序层
2,应用程序框架层
3,系统运行库层
4,Linux核心层
详细的请上网搜索android四层框架

㈤ android软件开发的架构

Android以Java为编程语言,使接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个 Activity 类(class)负责创建视窗(window),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行的效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(stopped),甚至被系统清除(kill)。
View等同于J2ME的Displayable,程序人员可以通过 View 类与“XML layout”档将UI放置在视窗上,Android 1.5的版本可以利用 View 打造出所谓的 Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android Hero手机即含有大量的widget。至于ViewGroup 是各种layout 的基础抽象类(abstract class),ViewGroup之内还可以有ViewGroup。View的构造函数不需要在Activity中调用,但是Displayable的是必须的,在Activity 中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的。View 与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2ME的BitMap。 在模拟器上运行仿真是虚拟设备(AVD),我们需要配置来运行我们的Android应用程序。步骤1、开放的AVD管理步骤2、新的按钮,点击添加新设备,并配置您的设备设置。步骤3、会有一个结果窗口显示所有已配置你上一屏幕选择。步骤4、按“确定”,你将会看到你的设备列在有你可以关闭此窗口。步骤5、运行你的Android应用程序项目从Eclipse,如果只有一个AVD配置,它会自动部署的应用程序也会出现一个窗口,选择你的图片。 仿真器将开始。在设备上运行
Android应用程序可以直接部署在Android设备上,这几个配置所需要的。步骤1、在调试模式的设置可以设置应用程序:Android的<应用程序>元真可调试属性。ADT 8这是默认的。步骤2、您的设备上启用USB调试:Android 3.2或以上转至设置>应用程序>开发和启用USB调试。在Android 4更新,这是开发商选择设置>。注:在Android 4.2更新,开发者选项是默认隐藏。可以,去设定>android的版本号。返回先前屏幕找到开发商选择。步骤3、安装USB驱动程序为您的设备,计算机识别你的设备。步骤4、一旦设置和您的设备通过USB连接,从Eclipse菜单栏安装您的应用程序在设备上选择运行>运行(或运行>调试)。 操作系统与应用程序的沟通桥梁,并用分为两层:函数层(Library)和虚拟机(Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari浏览器背后的引擎。Surface flinger 是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的Bionic Libc。
Android采用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。
Android 使用skia 为核心图形引擎,搭配OpenGL/ES。skia与Linux Cairo功能相当,但相较于Linux Cairo, skia 功能还只是阳春型的。2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,Skia 也是Google Chrome 的图形引擎。
Android的多媒体数据库采用SQLite数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类(Column)取得共用数据库。
Android的中间层多以Java 实现,并且采用特殊的Dalvik虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“暂存器型态”(Register Based)的Java虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。
Dalvik虚拟机可以有多个实例(instance), 每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik虚拟机并非运行Java字节码(Bytecode),而是运行一种称为.dex格式的文件。 Android 的 HAL(硬件抽像层)是能以封闭源码形式提供硬件驱动模块。HAL 的目的是为了把 Android framework 与 Linux kernel 隔开,让 Android 不至过度依赖 Linux kernel,以达成 kernel independent 的概念,也让 Android framework 的开发能在不考虑驱动程序实现的前提下进行发展。
HAL stub 是一种代理人(proxy)的概念,stub 是以 *.so 档的形式存在。Stub 向 HAL“提供”操作函数(operations),并由 Android runtime 向 HAL 取得 stub 的 operations,再 callback 这些操作函数。HAL 里包含了许多的 stub(代理人)。Runtime 只要说明“类型”,即 mole ID,就可以取得操作函数。 Android 是运行于 Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic 取代Glibc、以Skia 取代Cairo、再以opencore 取代FFmpeg 等等。Android 为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到 userspace,使得Linux driver 与 Linux kernel彻底分开。bionic/libc/kernel/ 并非标准的kernel header files。Android 的 kernel header 是利用工具由 Linux kernel header 所产生的,这样做是为了保留常数、数据结构与宏。
Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory Managemeat),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。下载Android源码之前,先要安装其构建工具Repo来初始化源码。Repo 是 Android 用来辅助Git工作的一个工具。

㈥ 安卓软件几个部分组成

(抱歉,这是我在其它地方粘贴的。顶一下吧)一般来说Android 程序主要由下列四个部分组成,分别是:活动(Activity) - 用于表现功能服务(Service) - 相当于后台运行的Activity广播接收器(BroadcastReceiver) - 用于接收广播意图(Intent)- 用于连接以上各个组件,并在其间传递消息
1 Activity 介绍
Android 中,Activity 是所有程序的根本,所有程序的流程都运行在Activity 之中,Activity可以算是开发者遇到的最频繁,也是Android 当中最基本的模块之一。在Android的程序当中,Activity 一般代表手机屏幕的一屏。如果把手机比作一个浏览器,那么Acitivity就相当于一个网页。在Activity 当中可以添加一些Button、Check box 等控件。可以看到Activity 的概念和网页的概念相当类似。 一般一个Android 应用是由多个Activity 组成的。这多个Activity 之间可以进行相互跳转,例如,按下一个Button 按钮后,可能会跳转到其他的Activity。和网页跳转稍微有些不一样的是,Activity 之间的跳转有可能返回值,例如,从Activity A 跳转到Activity B,那么当Activity B 运行结束的时候,有可能会给Activity A 一个返回值。这样做在很多时候是相当方便的。 当打开一个新的屏幕时,之前一个屏幕会被置为暂停状态,并且压入历史堆栈中。用户可以通过回退操作返回到以前打开过的屏幕。我们可以选择性的移除一些没有必要保留的屏幕,因为Android 会把每个应用的开始到当前的每一个屏幕保存在堆栈中。Activity 是由Android 系统进行维护的,它也有自己的生命周期,即它的一个产生、运行、销毁的一个周期,对于Activity,关键是其生命周期的把握,其次就是状态的保存和恢复(onSaveInstanceState onRestoreInstanceState),以及Activity 之间的跳转和数据传输(intent)。
2 Service 介绍
Service 是android 系统中的一种组件,它跟Activity 的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service 是没有界面的长生命周期的代码。Service 是一种程序,它可以运行很长的时间,但是它却没有用户界面。这么说有点枯燥,我们来看个例子。打开一个音乐播放器的程序,这个时候若想上网了,那么,我们打开Android 的浏览器,这个时候虽然我们已经进入了浏览器这个程序,但是,歌曲的播放并没有停止,而是在后台继续一首接着一首的播放。其实这个播放就是由播放音乐的Service进行控制。当然这个播放音乐的Service也可以停止,例如,当播放列表里边的歌曲都结束,或者用户按下了停止音乐播放的快捷键等。service 可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD 卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务嘛,总是藏在后头的。
3 BroadcastReceiver 介绍
在Android 中,Broadcast 是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver 是对发送出来的Broadcast进行过滤接受并响应的一类组件。可以使用BroadcastReceiver 让应用对一个外部的事件做出响应。这是非常有意思的,例如,当电话呼入这个外部事件到来的时候,可以利用BroadcastReceiver 进行处理。例如,当下载一个程序成功完成的时候,仍然可以利用BroadcastReceiver 进行处理。BroadcastReceiver不能生成UI,也就是说对于用户来说不是透明的,用户是看不到的。BroadcastReceiver通过NotificationManager 来通知用户这些事情发生了。BroadcastReceiver 既可以在AndroidManifest.xml 中注册,也可以在运行时的代码中使用Context.registerReceiver()进行注册。只要是注册了,当事件来临的时候,即使程序没有启动,系统也在需要的时候启动程序。各种应用还可以通过使用Context.sendBroadcast () 将它们自己的intent broadcasts广播给其他应用程序。注册BroadcastReceiver有两种方式:
4 Intent 介绍
Intent 是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由Intent来协助完成android 各个组件之间的通讯。Intent 负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android 则根据此Intent 的描述,负责找到对应的组件,将Intent 传递给调用的组件,并完成组件的调用。因此,Intent 在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。例如,在一个联系人维护的应用中,当我们在一个联系人列表屏幕(假设对应的Activity 为listActivity)上,点击某个联系人后,希望能够跳出此联系人的详细信息屏幕(假设对应的Activity为detailActivity)。为了实现这个目的,listActivity需要构造一个Intent,这个Intent 用于告诉系统,我们要做"查看"动作,此动作对应的查看对象是"某联系人",然后调用startActivity(Intent intent),将构造的Intent 传入,系统会根据此Intent 中的描述,到ManiFest中找到满足此Intent 要求的Activity,系统会调用找到的Activity,即为detailActivity,最终传入Intent,detailActivity 则会根据此Intent中的描述,执行相应的操作。Intent 主要是用来启动其他的activity 或者service,所以可以将intent 理解成activity 之间的粘合剂。Intent具体有一下3 种形式: 通过startActivity 方法来启动一个新的Activity; 通过broadcast Intent 机制可以将一个Intent 发送给任何对这个Intent 感兴趣的BroadcastReceiver; 通过startService (Intent) 或bindService(Intent,ServiceConnection,int) 来和后台的Service 进行交互。

㈦ 什么是android系统,android的发展以及android的平台架构和特性

Android平台采用了整合的策略思想,包括底层Linux操作系统、中间层的中间件和上层的Java应用程序。下面我把Android的特性及其架构体系结构总结一下。

一、Android的平台特性

Android平台有如下特性:

1. 应用程序框架支持组件的重用与替换。

这样我们可以把系统中不喜欢的应用程序删除,安装我们喜欢的应用程序。

2. Dalvik虚拟机专门为移动设备进行了优化。

Android应用程序将由Java编写、编译的类文件通过DX工具转换成一种后缀名为.dex的文件来执行。Dalvik虚拟机是基于寄存器的,相对于Java虚拟机速度要快很多。

3. 内部集成浏览器基于开源的WebKit引擎。

有了内置的浏览器,这将意味着WAP应用的时代即将结束,真正的移动互联网时代已经来临,手机就是一台“小电脑”,可以在网上随意遨游。

4. 优化的图形库包括2D和3D图形库,3D图形库基于OpenGL ES 1.0。

强大的图形库给游戏开发带来福音。在3G最为重要的的应用莫过于手机上网和手机游戏。

5. SQLite用作结构化的数据存储。

6. 多媒体支持包括常见的音频、视频和静态印象文件格式

如MPEG4、H.264、MP3、AAC、AMR、JGP、PNG、GIF。

7. GSM电话(依赖于硬件)。

8. 蓝牙(Bluetooth)、EDGE、3G、WiFi(依赖于硬件)。

9. 照相机、GPS、指南针和加速度计(依赖于硬件)。

10. 丰富的开发环境包括设备模拟器、调试工具、内存及性能分析图表和Eclipse集成的开发环境插件。

Google提供了Android开发包SDK,其中包含了大量的类库和开发工具,并且针对Eclipse的可视化开发插件ADT。

二、Android平台架构

从上图我们可以看出,Android操作系统的体系结构可分为4层,由上到下依次是应用程序、应用程序框架、核心类库和Linux内核,其中第三层还包括Android运行时的环境。下面分别来讲解各个部分。

1. 程序应用

Android
连同一个核心应用程序包一起发布,该应用程序包包括E-mail客户端、SMS短消息程序、日历、地图、浏览器、联系人管理程序等。所有的应用程序都是用Java编写的。

2. 应用程序框架

开发者完全可以访问核心应用程序所使用的API框架。该应用程序框架架构用来简化组件软件的重用,任何一个应用程序都可以发布它的功能块并且任何其他的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。该应用程序重用机制使得组件可以被用户替换。

以下所有的应用程序都由一系列的服务和系统组成,包括:

1)一个可扩展的视图(Views)可以用来创建应用程序,包括列表(lists)、网络(grids)、文本框(text
boxes)、按钮(buttons),甚至是一个可嵌入的Web浏览器。

2)内容管理器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。

3)一个资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串、图形和分层文件(layout files)。

4)一个通知管理器(Notification Manager)使得应用程序可以在状态栏中显示客户通知信息。

5)一个活动类管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。

3. Android程序库

Android包括一个被Android系统中各种不同组件所使用的C/C++集库。该库通过Android应用程序框架为开发者提供服务。

以下是一些主要的核心库:

1)系统C库:一个从BSD继承来的标准C系统函数库(libc),专门为基于Embedded Linux的设备定制。

2)媒体库:基于PacketVideo
OpenCORE;该库支持录放,并且可以录制许多流行的音频视频格式,还有静态映像文件包括MPEG4、H.264、MP3、AAC、JPG、PNG。

3)Surface Manager:对显示子系统的管理,并且为多个应用程序提供2D和3D图层的无缝融合。

4)LibWebCore:一个最新的Web浏览器引擎,用来支持Android浏览器和一个可嵌入的Web视图。

5)SGL:一个内置的2D图形引擎。

6)3D libraries:基于OpenGL ES 1.0 APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。

7)FreeType:位图(bitmap)和向量(vector)字体显示。

8)SQLite:一个对于所以应用程序可用、功能强劲的轻型关系型数据库引擎。

4. Android运行库

Android包括了一个核心库,该核心库提供了Java编程语言核心库的大多数功能。

每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik是针对同时高效地运行多个VMs实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。该虚拟机是基于寄存器的,所有的类都是经由Java汇编器编译,然后通过SDK中的DX工具转化成.dex格式由虚拟机执行。

Dalvik虚拟机依赖于Linux的一些功能,比如线程机制和底层内存管理机制。

5. Linux内核

Android的核心系统服务依赖于Linux内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也同时作为硬件和软件栈之间的硬件抽象层。

阅读全文

与android应用的构成相关的资料

热点内容
msf端口迁移命令 浏览:880
工商app积分怎么查询 浏览:143
铁路app怎么买火车票 浏览:309
移魅族除的app怎么添加 浏览:240
兔笼子大号加密 浏览:171
单片机程序烧录操作成功 浏览:878
指标高抛低吸点位源码 浏览:205
25匹压缩机铜管 浏览:570
单片机单灯左移05 浏览:150
买服务器练手什么配置 浏览:783
服务器被毁该怎么办 浏览:939
python私有库 浏览:514
Python有中文吗 浏览:736
麦块的服务器为什么都进不去 浏览:474
新买的服务器如何打开 浏览:35
安卓软件游戏怎么开发 浏览:319
用扑克摆爱心解压神器怎么摆 浏览:70
松下制冷压缩机 浏览:275
pdf里怎么修改文字 浏览:686
已保存文档加密如何设置 浏览:413