首页 > 代码库 > Android开发笔记

Android开发笔记

一、Android的体系结构

1.1 体系结构

从下往上进行层概述:

Linux内核层:

该层主要的作用是:对系统进行管理例如:驱动管理,电源管理,进程管理,安全管理,内存管理等等。

硬件抽象层:

该层主要的作用是:对Linux底层实现进行屏蔽,向上提供接口,该层不开源,主要是为了维护商家的利益,但是会影响系统的性能

Android对硬件的支持分为两层:一层是用户空间,另一层是内核空间,

用户空间存放的是:硬件抽象层,该层提供具体的访问细节

内核空间存放的是:Linux驱动程序,该层只是提供简单的硬件访问逻辑(内核驱动程序具有硬件的基本信息)

原生库与Android运行时:

该层是主要的作用是:原生库:主要是基于CC++一些原生的组件,例如:Webkit浏览器引擎,SSL互联网安全协议等。Android运行时包含两个方面:Java核心库与DVM两者共同组成Android的运行环境。

应用框架层:该层主要的作用是:提供了Android开发的API,开发人员可以根据这些API进行相应的开发,它本身也是用Java语言实现的。

该层有:activityManager(活动管理),windowManagerContentProviderViewSystemNotificationManager(消息管理)包管理..

应用层:

该层是主要作用是:根据应用框提供的API进行第三方开发,其中也包含一些自带的应用例如:图片管理,通讯录等等

二、android-sdk目录结构

2.1 结构分层:

1 add-ons:第三方的库,如摄像头驱动

2 build-tools:构建工具,包含的主要工具为:

 aapt.exe(把包转换成.apk文件)

 dx.bat(把class字节码文件转换成classes.dex文件)

3 platforems:该目录中包含了Android系统的版本,版本中包含了数据和系统镜像

4 platforems-tools:该目录中包含有adb.exe(android debug birge)该工具的主要的作用是:Linuxwindow进行交流的桥梁。

5 System-image:该目录中包含了Android模拟器创建的镜像

6.tools:该目录中包含的工具有:ddms.exe(DVM调试监控服务)

sqlite3.exesqlite3数据库启动器)及模拟器启动器等等

三、JVMDVM的共同点和不同点

共同点:执行的都是字节码文件

不同点:

程序的结构不同:JVM执行的是:.class文件

DVM执行的是:.dex文件

体系架构不同:JVM执行基于堆栈(内存)

  DVM执行基于寄存器(CPU

四、Android应用程序结构介绍

Android应用 应用由四大组件构成分别为:ActivityserviceBroadcastReceiverContentProvider;每一个组件都是一个独立的模块,每一个组件有着不同的入口,Android框架通过这些入口进入到应用中,组件在AndroidManifest.xml文件中进行注册,从而达到不同组件间的松耦合,从而定义应用中的整体功能。

五、Android应用运行过程

1.编译

java(.class)多个-------dx.ba工具------>classes.dex(一个)----aapt.exe工具------>.apk文件--->>进行签名(single签名)默认是debug签名

2.安装

1..apk 文件安装到模拟器或者是真机中,位置在data/data 

2.Androidmanifest.xml文件中获取响应的组件,权限,包名等等

3.data/data文件中创建一个文件夹,包名即是文件夹的名字

4.把应用程序的信息写入到data/system/package.xml文件中,以实现对应用组件的注册

3.启动

1.Android应用:Android本身是一个多用户的Linux系统,一旦应用安装成功,android框架会给应用分配一个UserId来标识,根据该UserId来设置该文件的访问权限;当用户通过应用程序列表或者程序导航进入到应用中,此刻会开启一个虚拟器,创建一个进程,创建一个线程(UI),在启动导航器进入到组件中,进入到该组件的生命周期中,从而启动该应用程序.

六、简述activitywindowView间的关系 

Activity

activity:四大组件之一,用来展示一个与用户交互的界面

activity是如何进行与用户交互的?

activity是通过内置的window对象进行窗口的展示,该activity活动展示通过View来捕获相应的事件,通过windowManagerService来传递传递消息(用户所用的组件,及组件的类型),在根据该消息Android框架回调相应的监听方法,从而实现了与用户的交互.

Window:

它表示的是一个窗口,是activity的主窗口,每一个window都有一个View,作为该窗口的顶级视图,一般称为装饰视图,window通过setContentView将布局中的文件添加到装饰视图中,从而将布局展示出来.

 

View:

视图:View是所有的组件的基类,它在屏幕上显示的是一个基类,View的主要的作用是:1,负责空间图形的渲染(显示)2,事件的捕获

系统提供了大量的标准的接口组件

也可以直接调用View,不过需要继承View实现组件的自定义.

三者的关系是:当activity启动时,activity进行与交互,此时就会通过内置的window对象进行窗口的展示,window对象调用View,作为该窗口的顶级视图,通过setContentView将布局中的组件添加到顶级视图中去,便实现了与用户的交互。