Android学习笔记(二)
学习内容:
- Android技术结构图
- Android的目录结构
- Android程序打包 & 安装卸载的过程
- Activity的启动流程
[TOC]
***
Android 技术结构图:
解释:
- 第一层 Android最底层还是Linux技术,里面包含了苏需要的Display、Camera、Keypad等等的驱动程序。
- 第二层 由Libraries 和 Android RunTime 组成 这里面包含了java运行所需的虚拟机。
- 第三层 就是application framework
- 第四层 就是我们学习的Android应用程序设计层。
Android的目录结构
解释:
src/
存放源代码的地方.
bin/
编译后的输出目录。这里你可以找到.apk文件和其他编译后的资源.
gen/
包含R.java文件,这个文件是由ADT自动生成的,请不要随意修改它
assets/
你能在这里放入原始的asset 文件。例如一些文档,这里的文件会保留原来的文件名被编译到.apk文件中,并且你还能使用文件系统的URL机制来读取文件,例如使用AssetManager类来读取一个字节流。
res/
包含应用程序的资源,如drawable文件, layout文件, string值.
anim/
这里可以放入动画XML文件
color/
这里可以放入颜色XML文件
drawable/
这里可以放入位图(PNG,JPEG,GIF)还有9-Patch图片文件,并且也能放置XML文件用来描述Drawable形状和Drawable对象的多种状态切换
layout/
这里可以放入布局XML文件
menu/
这里可以放入定义菜单的XML文件
raw/
这里和assets/差不多都是放入原始的asset文件。但访问的方式与assets/不同。这里必须用R文件来引用,例如如果需要在这里放入一个bg.ogg音频文件,那么请这样调用R.id.bg 。一般来说这里都是放多媒体文件
values/
这里可以放入许多种类的XML文件。不同于其他res/目录下的资源。这个文件夹下的XML文件不能由文件名直接引用。但XML文件中的节点可以控制R文件定义的名字。xml/
一些用来配置App组件的其他XML文件。libs/
包含似有的一些库文件。AndroidManifest.xml
用来描述App的性质和它的每一个组件的一种控制型文件。 例如:需求的API Levels ,描述四大组件的特征,权限等。(即清单文件)。
project.properties
这个文件包含项目的设置,如编译target。他属于项目的一个部分。
如果使用一些项目管理工具:如ant,还可能包含如下:
ant.properties
构建系统的自定义属性。Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。由Apache软件基金会所提供。例如Ant文件构建就是我们常所知道的src,lib,class这样的目录结构,Eclipse就是这种目录结构。如果你使用Eclipse,这个文件不会被使用。
build.xml
为你的项目构建Ant文件。仅仅适用于为Ant构建的项目。
Android程序打包 & 安装卸载的过程
打包 bin目录下:
- 先把 Android 里的 java 内部类、外部类代码编译得到 class 文件,然后打包成 classes.dex 文件。
- 再把 Android 里的资源文件打包成 resources.app
- 再把 AndroidManiFest.xml 一起打包起来就得到 apk 压缩文件了。
- 最后签名就可以了
安装与卸载
Android的安装就是把apk 文件复制到 /data/app/xxx-1.apk
, 然后在 /data/data/
里创建一个文件夹,文件夹的名称为程序的包名。
扩展名和程序的绑定
在Windows下是有注册表来管理的,而在Android里则是在 /data/system/
里有个文件为 package.list
和 package.xml
文件。
Activity的启动流程
Android ---》 AndroidManifest.xml ---》MainActivity