=====================================

内容只是节选的文字,完整的在附件word文件中

=====================================

1 Android的构成

Activities

Android里,用户界面是通过Activity来构建的。我们可以认为,Activity就是应用程序(c/s)中的窗口,或者是对话框。

同时,也存在这种可能,我们的Activity是没有界面的,这时候我们就会把代码放在一种称为Conten Providers(内容提供者)或者Services(服务)的容器中,这会在后面介绍。

Content Providers

Content Providers提供了一个抽象级别的数据存储方式,以便于多个应用程序访问或共享。当需要访问别的程序中的数据,或者希望自己的数据被别的程序访问的时候,android鼓励开发人员使用ContentProvider来保存数据

Intents

Intents(意图),在整个设备(android)中运行,表示系统级的信息,用于通知应用程序各种事件,从硬件的状态改变(比如sd卡插入手机),电话打入,收到短信,到程序的事件(如Activity从主菜单中被启动了)。不仅android系统可以响应intent,我们也可以创建自己的意图,去启动其他的Activity,或者告诉自己有特殊的情况出现等等吧。

Services

ActivityContentProviderintent 接受者都是只有较短的存活期的,可以在任何时间被关闭。Services,换句话说,是被设计根据需要,可能会一直保持运行状态,独立于任何Activity的。当然,它是在后台运行。我们可以使用Service来检查RSS程序的更新啊,或者在后台播放音乐,尽管控制音乐的Activity已经被关闭了等

Activity UI-----User seecontrol :平等的~

intent (意图)------消息分发机制

Data(Sql,File,Preferences,net) other UI(Activty,Service) local service(call,sms,mms..)…….

意图:

类似于 SOAP服务。

定义一个全局场景,里面提供各种官方符合和非官方服务。

每个服务----- activity

每个Activity:都有一个标签,表示它能做什么事情!!!可以是官方的,也可是定制的。

比如: ActivityA: 可以做 doA()

<intent-filter>

<anction name=”doA()”/>

</intent-filter>

那么,有一个ActivityB

代码中:

….

..call android: intent: doA();

这个时候,android就会查找manifest文件,看是否有存在合适的来处理这个

2 Android项目结构

Android的项目跟别的java项目的结构很类似的。只不过androi的程序在运行的时候,使用自己的模拟器。接下来,我会带大家快速的了解下android的项目结构,帮助你们有个 感知,以便于看的明白接下来的代码案例等。

下面是android自带的APIDemo的项目结构图

项目根目录内容(Root Contents

当你创建了一个android项目,你会的到如下几个项目在项目根目录中:

l androidmenifest.xml,

这个xml文件,是用来描述整个android项目的构成的,比如包含什么组件。如Activityservice等。

l build.xml

ant构建脚本,我们这里没有用到ant,所以没看到

l bin/

保存androi可执行程序的地方

l src/

源代码

l res/

保存resources资源的,比如icon图标,GUI布局等。Res资源在程序打包的时候,会一并打包进程序中去哦。

l assets/

包含其他的一些静态文件

其他的一些说明

当你第一次编译你的程序的时候(通过ant,当然我们目前都是使用eclipse,它会自动编译),在src以外,android会自动创建一个R.java文件。它包含了一系列的静态的数字常量,这些数字都与存放在res文件夹下的文件一一对应。我们不能自己修改R.java文件,它是由android为你处理的。在以后使用android的过程中,你会一直使用这个文件,来引用各种资源,比如程序的布局(R.layout.main)。

同时,在res资源文件夹下,我们一般是用于存放各种资源文件的。常见的有:

l res/drawable/ 用于存放图片(png.等)

l res/layout/ 存放基于xml文件的各种布局

l res/raw/ 各种常见的文件,比如一个cvs文件

l res/xml文件夹,包含常见的xml文件了

你还可能会遇到其他的一些文件夹

如:bin文件夹

l bin/classes 保存编译后的java文件

l bin/classes.dex 包含创建的可执行的dex 文件,该文件是由java class文件编译生成的

l bin/yourapp.apk apkandroid的可执行程序

apk文件,其实是一个zip类型的压缩文件。包含.dex文件,编译在里面的资源文件,其他的一些不能编译的文件(raw文件夹下的),以及androidmanifest.xml文件

3 深入Manifest

任何andoid应用程序的基础就是这个manifest文件: Androidmanifest.xml文件。生成在你的项目的根路径里。在这个文件中,你声明了你的应用程序里包含有声明:activities,services,等等。你也可以借此表明,你是如何安排这些组件附加到Android系统中去的。比如,你声明了哪些Activity可以出现在手机设备的menu菜单中。

当我们自己创建了一个应用程序以后,会得到系统自动为我们生成的一个初始的manifest文件。对于一个简单的应用程序来说,只需要提供一个简单的Activity就够了,或者再做一点点的修改。但是比较复杂的,比如Android自带的apidemomanifest文件,就超过了1000行代码。

所以,程序越复杂,manifest文件就越庞大。

让我们开始认识manifest

很自然的,manifest的文件的根元素,就是manifest

我们要注意到命名空间的声明。

一般情况下,我们是不需要修改这个标签的,因为它是Android定义好的,而里面的属性依赖于xmlns的定义。

我们只需要定义package这个属性的值即可。那么package对应的值,也就是包名,可以背理解为应用程序的(更直观点就是源代码)的基本路径(base root)。那么,只要我们在manifest文件中需要一个类名,我们只需要用“。”来代表这个基本路径。比如,我们需要在manifest文件中关联com.commonsware.androidTest1这个类,我们只需要用“。Test1”即可,因为“。”就代表着com.commonsware.android这个包名了

PermissionsInstrumentatons,以及Applications

接下来,你会发现还有更多的标签元素

l uses-permission 元素

这个元素表明,你的应用程序拥有什么权限来启动什么样的功能

l permission 元素

这个标签元素声明了,如果别的Activity或者Service要想访问你这个Activity或者Service,那么它所需要具有的权限。

l instrumentation 元素

主要适用与测试程序用的,比如记录日志,或者监控,记录程序的七大,按键事件等等

一般是放在test测试包里。

下面是一个应用了该标签的例子

l application 元素

一个application标签元素,定义了manifest 文件中描述的应用程序集合

例子:

我们的应用程序需要做些什么,不是嘛?

Manifest文件真正的精华在于它的子标签元素:application标签

默认情况下,当你创建了一个Android项目,你就会得到一个Activity元素,并表现在manifest文件中去,

<activity>标签,提供了android:name 属性,用于表示某一个具体类的名字,android:label表示Activity所显示的文本标签(类似于网页的title),通常情况下,还会有intent-filter标签,来描述在什么情况下,这个Activity会被显示出来。起到过滤的作用。

<receiver>标签。在某些不是由Activity触发的事件发生的情况下,比如sms短信,或者电话进来了。这些都会调用intent receiver

还可能会有

<provider>

表示content providers组件,这些组件用于提供数据给你的符合权限的Activity的。

<service.>

用于描述后台服务的标签。

这些标签我们都会在后面的内容详细介绍,我们就不做详细说明了。

======================================================================

因为javaeye不能把图片直接从word中贴进去,我每篇都会把对应的word文档作为附件上传,

博客里的文字就是纯文字了,朋友们可以从文字看是否需要,完整的带有图片什么的都在最后面的附件中了~~

更多相关文章

  1. Android之NDK开发
  2. Android——AndroidStudio配置NDK步骤
  3. Android常见布局简述
  4. Android(安卓)Display System --- Surface Flinger
  5. 如何让android apk 获得系统权限
  6. android 实用代码片段整理
  7. 使用Eclipse+ADT开发android 1.5程序
  8. Qt5.8开发Android:强制横屏
  9. android编译步骤

随机推荐

  1. Android Spinner列表选择框的应用
  2. Android开发视频教程-深入浅出系列Lesson
  3. android-短信发送器
  4. [android]关于开发无触摸屏(智能电视)的a
  5. android 常用命令
  6. Android 结束通话--实现黑名单拦截
  7. Android 历史版本总结
  8. Android(安卓)录音,加权限还有错误:java.la
  9. 活用Android的Message Queue(2)
  10. Android实现左右滑动效果