Android 技术架构 |
Appication |
Android Framework |
Native Libraried && Android Runtime (ART) |
Hardware Abstraction Layer (HAL) |
Linux Kernel |
Android 应用开发者需要掌握前两部分,嵌入式和硬件移植的开发者需要全部掌握
1、应用程序框架
Activity Manager:管理程序的生命周期
Window Manager:管理应用程序窗口
Content providers:提供应用程序之间的数据共享
View System:构建程序的可视化组件
Package Manager:管理项目程序
Telephone Manager:移动设备的基本功能同游由电话管理器管理
Resource Manager:为程序提供文字、声音、图片、视频或布局文件等资源
Location Manager:定位服务
Notification manager:顶部消息提示服务
2、开发Android应用程序的一般过程
生成Android应用项目框架
修改和编写Java源程序
修改和编写xml源程序
调用模拟器运行应用程序
3、Android项目结构
Java目录存放Android应用程序的Java源代码文件。
res目录用于存放项目所需要的声音、图片、用户界面等资源文件。
目录结构 | 资源类型 |
res/values | 存放字符串,颜色,尺寸,数组,主题,类型等资源 |
res/layout | xml布局文件 |
res/drawable | 图片(bmp,png,gif,jpg等) |
res/anim | xml格式的动画资源 (帧动画 和 补间动画) |
res/menu | 菜单资源 |
res/raw | 可以放任意类型文件,一般存放比较大的音频、视频、图片或文档,会在R类中生成资源id,封装在apk中。 |
assets | 可以存放任意类型,不会被编译,与raw相比,不会在R类中生成资源id。 |
资源目录res及资源类型
1. drawable存放分辨率大小不同的图标资源
2. 在layout子目录存放用户界面布局文件:其中有一个系统自动生成 activity_main.xml文件,它可以按可视化设计界面显示,也可以按代码设计界面显示。
3. values子目录存放参数描述文件资源:这些参数描述文件都是XML文件,如字符串(string.xml)、颜色(color.xml)、数组(arrays.xml)等 。
r/debug目录
当在程序中引用资源需要使用R类,其引用形式如下:R.资源文件类型.资源名称
(1)在Activity中显示布局视图:setContentView(R.layout.main);
(2)程序要获得用户界面布局文件中的按钮实例Button1:mButtn = (Button)finadViewById(R.id.Button1);
(3)程序要获得用户界面布局文件中的文本组件实例TextView1:mEditText = (EditText)findViewById(R.id.EditText1);
AndroidManifest.xml项目配置文件
AndroidManifest.xml文件是当前Android项目的功能清单文件,该文件列出了应用中所使用的所有组件。
只有在AndroidManifest.xml文件中声明了的组件,才能够在项目启动时运行。
代码元素 | 说明 |
manifest | xml文件的根结点,包含了package中所有的内容 |
xmlns:android | 命名空间的声明。使得Android中各种标准属性能在文件中使用。 |
package | 声明应用程序包 |
uses-sdk | 声明应用程序所使用的Android SDK版本 |
application | application级别组件的根结点。声明一些全局或默认的属性,如标签、图标、必要的权限等。 |
android:icon | 应用程序图标 |
android:label | 应用程序名称 |
activity | Activity是一个应用程序与用户交互的图形界面。每一个Activity必须有一个< activity >标记对应。 |
android:name | 应用程序默认启动的活动程序Activity界面 |
intent-filter | 声明一组组件支持的Intent值。在Android中,组件之间可以相互调用,协调工作,Intent提供组件之间通讯所需要的相关信息 |
action | 声明目标组件执行的Intent动作。 |
category | 指定目标组件支持的Intent 类别 |
定义简单的用户界面
Android系统推荐使用XML布局文件来设计用户界面。所有的XML 布局文件都位于App项目的res/layout/目录中。
使用这种方式,可以很方便地定义结构化的用户图形界面,图形组件的布局和相互之间的关系可以很容易、清楚地设定。
example 1. 编写布局文件 2.添加string资源(在Project的app目录中,展开res/values/文件夹,双击打开strings.xml文件,添加新的字符串定义。)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText android:id="@+id/edit_message"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="@string/edit_message"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send"/>
</LinearLayout>
<resources>
<string name="app_name">example_show</string>
<string name="edit_message">Enter a message</string>
<string name="button_send">send</string>
</resources>