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>

android 开发 应用名称 android应用开发详解_android