当前位置:首页 » 安卓系统 » android应用程序结构

android应用程序结构

发布时间: 2022-01-10 01:35:04

① android应用工程文件结构有哪些

在Eclipse中,一个基本的Android项目的目录结构如图所示。



1. src目录--程序文件


在里面保存了程序员辛辛苦苦直接编写的程序文件。和一般的java项目一样,src目录下保存的是项目的所有包及源文件(.java),res目录下包含了项目中的所有资源。例如,程序图标(drawable)、布局文件(layout)和常量(values)等。不同的是,在Java项目中没有gen目录,也没有每个Android项目都必须有的AndroidManifest.xml文件。


.java格式的文件是在建立项目时自动生成的,这个文件是只读模式,不能更改。R.java文件是定义该项目所有资源的索引文件。

2. AndroidManifest.xml文件--设置文件


AndroidManifest.xml是一个控制文件,在里面包含了该项目中所使用的Activity、Service、Receiver

② 如何构建一个结构清晰的Android程序

一、 开发环境安装:

1. 下载 Android SDK.

2. 如果使用Eclipse,请安装 ADT 插件。

3. 下载最新的SDK工具和平台。

二、创建Android项目
一个android项目包含了程序中用到的所有源代码文件.使用Android SDK工具可以轻松的创建一个包含默认目录和文件的项目。

本节介绍如何使用eclipse或从命令行创建一个项目。
Create a Project with Eclipse

点击工具中的 New .
在弹出的窗口中,打开Android目录,选择【Android Application Project】,点击【next】.

Figure 1. The New Android App Project wizard in Eclipse.

3. 在弹出的窗口,如图【Figure1】中,填入下列信息:

Application Name :应用程序名.填入"My First App."
Project Name:项目目录名和显示在Eclipse中的项目文件名 。
Package Name :程序包的命名空间,与java或c#类似。你的包名应该定义一个唯一的名字,保证与在androi系统中安装的所有其他包名称不一样。因此,强烈建议以组织或公司的域名或发布者名字开头。在这个项目中,我们使用"com.example.myfirstapp." ,但是,你不能发布以"com.example”为命名空间的应用到Google Play上。
Minimum Required SDK :程序支持的android系统的最小版本,如果你想要支持更多的android设备,需要将这个版本号设置得相对低一点。有过有些功能在低版本上不支持,你可以只在高版本上启动该功能。在此我们使用默认设置。
Target SDK:当前版本,也是最高版本,当有更高的版本出来时,你应该重新在新的版本上测试你的程序,并修改此参数。
Compile With: 你编译程序时使用的版本。建议使用最新的版本,可通过SDK MANAGER下载。新版本中有新的一些特性,并会根据用户的使用体验做一些改进。
Theme :Android UI样式。可以按默认设置。

点击 Next.

在下一个屏幕上使用默认设置,继续点击next.
下一个屏幕可以设置程序图标.

你可以通过多种方式自定义图标,系统会自动为你生成各种屏幕尺寸下的图标。在你发布程序前,请确保你的图标满足Iconography 设计指南中的说明定义。

继续点击 Next.
现在可以选择一个activity模版.

当前项目,我们选择BlankActivity,然后点击Next.

4.剩下的都按默认设置,点击 Finish.

这样,这个项目就创建完毕了
从命令行工具创建项目

如果你没有使用Eclipse,你可以从命令行通过SDK工具创建项目。

切换到Android SDK目录, tools/ path.
执行:

android list targets

该命令显示可用的android平台。

如果没有显示任何列表,请先通过Android SDK Manager 工具进行安装. 参见 Adding Platforms and Packages.
执行:

android create project --target <target-id> --name MyFirstApp \
--path <path-to-workspace>/MyFirstApp --activity MainActivity \
--package com.example.myfirstapp

将<target-id>修改为上一步骤中显示的id;将 <path-to-workspace> 修改为你要保存项目的文件夹

Your Android project is now set up with several default configurations and you’re ready to begin building the app. Continue to the next lesson.

小贴士: 将 platform-tools/ 同tools/ 目录一样加到你的环境变量。

这样,这个项目就创建完毕了.

三、运行你的程序
你要如何运行你的程序取决于两件事:是否有真实的android设备;是否使用eclipse.

在运行你的程序之前,你需要注意项目中的一些文件夹和文件:

AndroidManifest.xml
manifest文件描述应用程序的一些基础特性并定义每一个组件。

你可以查看项目中的manifest文件,与之前谈到的manifest文件的说明对比,即可知道对应的一些元素的设置:

<manifestxmlns:android="http://schemas.android.com/apk/res/android" ... >
<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17"/>
...
</manifest>

src/
存放源代码的目录.默认情况下,包含一个启动时用到的 Activity 类。
res/
含有多个子文件,用于程序资源的存放。示例目录如下:

drawable-hdpi/
包含一些可用于高分辨率屏幕的绘图实体,如图片。其他类似的目录包含对应的分辨率屏幕下的图片。
layout/
程序UI文件。
values/
包含用于定义诸如字符串、颜色等的xml文件。

在真实设备上运行
如果你有android系统设备,可以直接在上面安装你的程序并运行:

首先你的设备需要安装usb驱动。如果你是在window上开发,你可以安装合适的usb驱动。具体驱动安装信息可以参考 OEM USB Drivers
在设备上启用USB调试
大部分 Android 3.2或更早的机器,在 【设置】-【应用程序】-【开发】中设置。
Android 4.0和之后的系统,应该是在【设置】-【开发选项】中。

Note: On Android 4.2 and newer, Developer options is hidden by default. To make it available, go to Settings > About phone and tap Build number seven times. Return to the previous screen to find Developer options.

运行步骤:

打开项目文件,点击【run】。
在弹出的窗口中选择【Android Application】,然后点击【OK】

Eclipse会自动将程序安装到你的设备上并运行他。

在模拟器上运行
在 【run】-【run configuration】中的【Target】页面添加和设置模拟器,然后即可运行

③ 安卓app的开发架构图该怎么画

android应用开发框架是ApplicationFramework.其系统架构由5部分组成,分别是:linuxKernel、AndroidRuntime、Libraries、ApplicationFramework、Applications。第二部分将详细介绍这5个部分。下面自底向上分析各层。Android架构1、LinuxKernelAndroid基于Linux2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。LinuxKernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。如果你学过计算机网络知道OSI/RM,就会知道分层的好处就是使用下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。也就是说各层各尽其职,各层提供固定的SAP(ServiceAccessPoint),专业点可以说是高内聚、低耦合。如果你只是做应用开发,就不需要深入了解LinuxKernel层。2、AndroidRuntimeAndroid包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己的进程中。Dalvik虚拟机设计成,在一个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执行文件格式是.dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。两种架构各有优劣,一般而言,基于栈的机器需要指令,而基于寄存器的机器指令更大。dx是一套工具,可以将Java.class转换成.dex格式。一个dex文件通常会有多个.class。由于dex有时必须进行最佳化,会使文件大小增加1-4倍,以ODEX结尾。Dalvik虚拟机依赖于Linux内核提供基本功能,如线程和底层内存管理。3、LibrariesAndroid包含一个C/C++库的集合,供Android系统的各个组件使用。这些功能通过Android的应用程序框架(applicationframework)暴露给开发者。下面列出一些核心库:系统C库--标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linux设备媒体库--基于PacketVideo的OpenCORE。这些库支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG界面管理--管理访问显示子系统和无缝组合多个应用程序的二维和三维图形层LibWebCore--新式的Web浏览器引擎,驱动Android浏览器和内嵌的web视图SGL--基本的2D图形引擎3D库--基于OpenGLES1.0APIs的实现。库使用硬件3D加速或包含高度优化的3D软件光栅FreeType--位图和矢量字体渲染SQLite--所有应用程序都可以使用的强大而轻量级的关系数据库引擎4、ApplicationFramework通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等,很多很多。开发者可以完全使用核心应用程序所使用的框架APIs。应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。这一机制允许用户替换组件。所有的应用程序其实是一组服务和系统,包括:视图(View)--丰富的、可扩展的视图集合,可用于构建一个应用程序。包括包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器内容提供者(ContentProviders)--使应用程序能访问其他应用程序(如通讯录)的数据,或共享自己的数据资源管理器(ResourceManager)--提供访问非代码资源,如本地化字符串、图形和布局文件通知管理器(NotificationManager)--使所有的应用程序能够在状态栏显示自定义警告活动管理器(ActivityManager)--管理应用程序生命周期,提供通用的导航回退功能5、ApplicationsAndroid装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置。所有应用程序都是用Java编程语言写的。更加丰富的应用程序有待我们去开发!从上面我们知道Android的架构是分层的,非常清晰,分工很明确。Android本身是一套软件堆迭(SoftwareStack),或称为“软件迭层架构”,迭层主要分成三层:操作系统、中间件、应用程序。从上面我们也看到了开源的力量,一个个熟悉的开源软件在这里贡献了自己的一份力量。

④ android系统的系统架构

架构详解

Linux Kernel
Android基于Linux kernel 提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。 如果你学过计算机网络知道OSI/RM,就会知道分层的好处就是使用下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。也就是说各层各尽其职,各层提供固定的SAP(ServiceAccess Point),专业点可以说是高内聚、低耦合。如果你只是做应用开发,就不需要深入了解Linux Kernel层。
Android Runtime
Android包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己的进程中。Dalvik虚拟机设计成,在一个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执行文件格式是.dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。 大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。两种架构各有优劣,一般而言,基于栈的机器需要更多指令,而基于寄存器的机器指令更大。dx 是一套工具,可以将 Java .class 转换成 .dex 格式。一个dex文件通常会有多个.class。由于dex有时必须进行最佳化,会使文件大小增加1-4倍,以ODEX结尾。 Dalvik虚拟机依赖于Linux 内核提供基本功能,如线程和底层内存管理。
Library
Android包含一个C/C++库的集合,供Android系统的各个组件使用。这些功能通过Android的应用程序框架(application framework)暴露给开发者。下面列出一些核心库:系统C库——标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linux设备媒体库——基于PacketVideo的OpenCORE。这些库支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4、 H.264、MP3、 AAC、AMR、JPG、 PNG界面管理——管理访问显示子系统和无缝组合多个应用程序的二维和三维图形层LibWebCore——新式的Web浏览器引擎,驱动Android 浏览器和内嵌的web视图SGL——基本的2D图形引擎3D库——基于OpenGL ES 1.0 APIs的实现。库使用硬件3D加速或包含高度优化的3D软件光栅FreeType——位图和矢量字体渲染SQLite——所有应用程序都可以使用的强大而轻量级的关系数据库引擎
Application Framework
通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等,很多很多。 开发者可以完全使用核心应用程序所使用的框架APIs。应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。这一机制允许用户替换组件。 所有的应用程序其实是一组服务和系统,包括:视图(View)——丰富的、可扩展的视图集合,可用于构建一个应用程序。包括包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器内容提供者(Content Providers)——使应用程序能访问其他应用程序(如通讯录)的数据,或共享自己的数据资源管理器(Resource Manager)——提供访问非代码资源,如本地化字符串、图形和布局文件通知管理器(Notification Manager)——使所有的应用程序能够在状态栏显示自定义警告活动管理器(Activity Manager)——管理应用程序生命周期,提供通用的导航回退功能
Application
Android装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置。所有应用程序都是用Java编程语言写的。更加丰富的应用程序有待我们去开发! 从上面我们知道Android的架构是分层的,非常清晰,分工很明确。Android本身是一套软件堆叠(Software Stack),或称为“软件叠层架构”,叠层主要分成三层:操作系统、中间件、应用程序。从上面我们也看到了开源的力量,一个个熟悉的开源软件在这里贡献了自己的一份力量。

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

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

安卓软件几个部分组成

(抱歉,这是我在其它地方粘贴的。顶一下吧)一般来说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应用程序结构是:
linux
kernel(linux内核)、libraries(系统运行库或者是c/c++核心库)、application
framework(开发框架包)、applications
(核心应用程序)

⑧ Android应用程序包括哪些构建块

问得太笼统了。什么是构建块?

如果是4大组件的话 是Activity、Service、Broadcast Receiver、Content Provider

⑨ 一般的android开发都用到了系统架构哪些层

1:android分为四个层,从高层到低层分别是应用程序层、应用程序框架层

开发一个程序,android系统框架是层层相扣,不能分开的。 应用程序层: 这个层主要指的就是用java语言编写的运行在虚拟机上的程序,Google在最开始时就 在android系统中捆绑了一些核心的应用(核心应用的编写必须使用应用层序框架层的API框架.
2:android 开发框架有四个层,从高层到低层分别是应用程序层、应用程序框架层
android应用开发框架是 Application Framework. 其系统架构由5部分组成,分别是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications。

热点内容
3k我的使命脚本 发布:2024-09-20 18:11:43 浏览:689
建设银行密码怎么设置 发布:2024-09-20 18:11:04 浏览:95
聚合脚本平台 发布:2024-09-20 17:51:55 浏览:180
访问拦截怎么解除安卓 发布:2024-09-20 17:28:48 浏览:275
萝卜干存储 发布:2024-09-20 17:21:37 浏览:716
苹果手机如何迁移软件到安卓手机 发布:2024-09-20 17:21:34 浏览:692
查看服务器ip限制 发布:2024-09-20 16:56:27 浏览:389
p搜系统只缓存1页为什么 发布:2024-09-20 16:48:51 浏览:841
上网的账号和密码是什么东西 发布:2024-09-20 16:31:31 浏览:612
安卓手机王者荣耀如何调超高视距 发布:2024-09-20 16:31:30 浏览:428