(一)android基础知识

一、

1.Android的软件结构的几个层次

1.1 Linux内核层相关驱动,主要由C语言编写

1.1.1硬件和其他软件堆层的一个抽象隔离层

1.1.2 提供安全机制、内存管理、进程管理、网络协议堆栈和驱动程序等

1.2 核心类库和运行时环境C\C++

1.2.1 由核心运行库和android运行时环境构成函数库,主要提供一组基于C/C++的函数库

Surface Manager,提供应用程序与2D3D图像层的平滑连接

Media Feamework,实现音视频的播放和录制功能

SQLite 轻量级的关系数据库引擎

OpenGL ES,基于3D图像加速

FreeType位图与矢量字体渲染

WebKit Web浏览器引擎

SGL 2D图像引擎

SSL数据加密与安全传输的函数库

Libc 标准C运行库,Linux系统中底层应用程序开发接口

1.2.2 安卓运行时环境

1.2.2.1 核心库,提供Android系统特有函数功能和JAVA语言函数功能

1.2.2.2 Dalvik虚拟机,实现基于Linux内核的线程管理和内存管理

1.3 应用程序框架 java

1.3.1 提供Android平台基本的管理功能和组件重用机制

Activity Manager 管理应用程序的生命周期

WIndows Manager 启动应用程序的窗体

Content Provider 共享私有数据,实现跨进程的数据访问

Package Manager 管理安装在Android系统内的应用程序

Telephony Manager 管理与拨打和接听电话的相关功能

Resource Manager 允许应用程序使用非代码资源

Location Manner 管理与地图相关的服务功能

Notification Manager 允许应用程序在状态栏中显示提示信息

1.4 应用程序 java

提供一系列的核心应用程序

包括电子邮件客户端、浏览器、通讯录和日历等

2Android开发环境

2.1安装jdk、配置基本java环境

2.2SDK的目录环境

Add-ons:附件的包

Docs:HTML格式的离线文档

PlatformsSDK核心内容

Tools:工具

2.3 Gradle是一个基于Apache AntApacher Maven概念的项目自动化构建工具。它使用一宗基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置

2.4 在早期的Eclipse环境中,默认继承Activity在最新的AS环境中,API Level >19时,默认继承APPCompatActivity

2.5 build目录时用来保存变异后自动生成的文件,例如:R.javaAIDL文件

2.6 R文件时自动生成的文件,包含对drawablelayoutvalues目录内的资源文件的引用IDandroid程序能够直接通过R类引用目录中的资源

R.java文件不能手工修改,如果资源目录中增加了资源文件后会自动添加

R.java文件在AS中默认不可见

2.7 res:目录存储工程的所有资源

drawable 图片资源

layout 布局资源

图片资源 mipmap

values 常量配置资源

color 颜色

Dimems 距离长度

Strings字符常量

<resources>

<string name=”app_name”>My.....</string>

</resources>

styles 主题,样式

2.8 AndroidManifest.xmlXml格式的Android程序声明文件,包括了Android系统运行Android程序前所必须掌握的重要信息,这写信息包含应用程序名称、模块组成、授权和SDK最低版本等。而且每个Android程序必须包含一个AndroidManifest.xml文件

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="net.onest.myapplication">

    <application

        android:allowBackup="true"

        android:icon="@mipmap/ic_launcher"

        android:label="@string/app_name"

        android:roundIcon="@mipmap/ic_launcher_round"

        android:supportsRtl="true"

        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">

            <intent-filter>

                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />

            </intent-filter>

        </activity>

    </application>

</manifest>

 

AndroidManifest.xml文件的根元素时manifest,子属性包括xmlnsandroidpackageandroidversionCodeandroidversionName

Xmlnsandroi定义了Android的命名空间,值为http://schemas.android.com/apk/res/android 

package定义了应用程序的包名称

AndroidversionCode定义了应用程序的版本号,是一个整数值,数值越大说明版本越新1,但仅仅在程序内部使用,并不提供给应用程序的使用者

AndroidversionName定义了应用程序的版本名称,是一个字符串,仅限于为用户提供一个版本标识。

Manifest元素仅仅能包含一个application元素,application元素中能够声明Android程序中最重要的四个组成部分,包括ActivityServiceBroadcastReceiverContentProvider,所定义的属性将影响所有组成部分

属性androidicon定义了Android应用程序的图标

属性androidlabel则定义了android应用程序的标签名称

Activity时对Activity子类的声明,必须在AndroidManifest.xml文件中声明的Activity才能在用户界面中显示

属性androidname定义了属性Activity类的名称,可以时完整的类名称,也可以时简化后的类名称

属性androidlabel则定义了Activity的标签名称,标签名称将在用户界面的Activity上部显示

intent-filter中声明了两个子元素actioncategoryintent-filter使程序在启动时,将.MainActivity这个Activity作为默认启动模块

2.9 android应用程序的构成