学习笔记4-项目的目录结构与安装及启动过程分析.avi

1.      src:我们开发的代码

2.      gen:开发工具自动创建的,不是开发人员创建的。

R文件:定义各种资源的id,是由编译器在我们放入资源的时候自动生成的,我们以后可以通过id引用资源。(这是由开发工具自动生成、维护的)

3.      res:存放资源文件,图片、软件文字、界面等。

drawable-hdpi存放图形类型文件,将图片放到drawable-hdpi下,R文件的drawable方法就会多了一个常量。值对应的就是添加的资源。

drawable-hdpi /drawable-ldpi / drawable-mdpi存放针对频幕分辨率高中低的的图片。为一张图片提供三中分辨率的图片。当运行在Android根据目前手机分辨率自动在这些文件夹中使用对应分辨率的图片。

layout:专门存放软件界面的文件。(类似Java中的jsp)

values:专门存放应用中使用到的一些数据,比如文字(strings.xml)、尺寸、颜色等。

strings.xml包含key和内容,可以使用key拿到内容。主要为了以后使用国际化和公用相同的文字来减少内存的占用。(文字多的话,可以分成多个xml)

只要在res加入资源,都会在R文件中生成对应的代码。

res中也有些文件夹没有给我们创建出来,比如

res/anim/存放定义动画的XM文件。

res/xml/在Activity中使用getResources().getXML()读取该目录下的XML资源文件。

res/raw/该目录用于存放应用使用到的原始文件,如音频文件等。编译软件时,这些数据不会被编译,它们被直接加入到程序的安装包里。为了在程序中使用这些资源,你可以调用getResources().openRawResource(ID),参数ID形式:R.raw.somefilename。

4.      assets:也是存放资源文件的,但是不会在R文件中生成资源id

5.      default.properties 开发工具使用的。

6.      AndroidManifest.xml  :项目的清单文件,列出了应用具有的功能。还有列出应用所使用的系统自带的服务.

上图是让应用显示的桌面列表中的。和只能应用在一个activity,不能出现在多个activity。程序的主入口只有一个。

清单文件是在软件安装的时候被操作系统读取的,得到应用中的组件进行注册。

应用的安装与启动过程

1.      安装的过程:.java编译成.class文件,Android的dx将.class转义成.dex文件,然后进行打包操作(把dex文件和资源进行打包成压缩文件,进行签名(系统使用密钥帮我们进行签名)),变成.apk文件,然后我们点击Run As →Android Application,其实内部也是运行adb install指令。

.java → .class → dx → .dex → 打包(签名)→ .apk

Adb install c:\xxx.apk

2.      启动的过程:用户点击图标的时候,相当于激活activity,找到对应的类MainActivity.java,然后对类进行实例化,用户第一打开的时候创建一个进程,然后开一个主线程对类进行实例化。通过配置文件使用反射进行实例化。然后调用oncreate,然后将类放到任务栈中。

创建进程→创建主线程→在主线程实例化Activity→
操作系统把应用有关信息(Context)存放进Activity中,然后调用onCreate()

时间: 2024-10-06 00:30:07

学习笔记4-项目的目录结构与安装及启动过程分析.avi的相关文章

Go 项目的目录结构 及 安装技巧

项目目录结构如何组织,一般语言都是没有规定.但Go语言这方面做了规定,这样可以保持一致性 1.一般的,一个Go项目在GOPATH下,会有如下三个目录: |--bin |--pkg |--src 其中,bin存放编译后的可执行文件:pkg 存放编译后的包文件:src 存放项目源文件.一般,bin 和 pkg 目录可以不创建,go 命令会自动创建(如 go install),只需要创建src目录即可. 对于 pkg 目录,曾经有人问:我把 Go 中的包放入 pkg 下面,怎么不行啊?他直接把 Go

Andorid学习笔记-eclipse-bundle包SDK目录结构

eclipse-bundle包目录结构: #SDK: add-ons:附属添加,额外功能,附属文件(google地图): build-tools; docs:开发文档: extras:额外的配置文件,例如USB驱动,摄像头的驱动: platforms:安卓系统版本: platform-tools:平台工具,用的最多的就是adb工具(android debug bridge调试桥): sources:源码: system-images:系统镜像: tools:开发用到的工具,例如模拟器:

linux云计算集群架构学习笔记: 1-2 文件的目录结构

文件的基本管理和XFS文件系统备份恢复 1.1  Linux系统目录结构,相对/绝对路径. 1.2  创建/复制/删除文件,rm -rf / 意外事故 1.3 查看文件内容 1.4 xfs文件系统的备份和恢复 在windows中文件在磁盘里如上图, 而在Linux当中一切都是文件,没有磁盘的概念了,这是 linux与windows的不同,设备也看成文件 1.1.1  linux系统目录结构 /   /home   /root   /dev   /usr   /etc   /boot   /lib

[原创] linux课堂-学习笔记-课程3.Linux目录结构介绍及内核与shell分析

一.目录说明 1.1 bin 一般用户,可执行的系统内置命令 1.2 sbin 系统管理员,可执行的系统内置命令 1.3 boot 启动文件目录,启动有关的文件都保存在此 1.4 dev 设备管理文件,如移动硬盘.U盘.光驱等 1.5 home 用户主目录,一般情况下:一个用户都会有相对应的文件夹,以用户名称命名 1.6 lib 动态链接库共享库,类型windows的.dll文件库 其设计目的在于共享.重用部分组件,提高程序开发效率等 若依赖于太多库,也会有弊端,如安装时提示各种组件缺失等(像w

C#程序员学习Android开发系列之Android项目的目录结构

今天开始正式学习Android开发的种种细节,首先从最基本的概念和操作学起. 首先看一下Android项目的目录结构. 这是我随便建立的一个test项目,我们重点关注一下几个方面的内容: 1.src目录:存放java源代码的目录,里面建立一个包,包里面有4个java源文件(分别都继承自Activity).由于java要求比较严格,因此要求类名与文件名一致. gen(Generated Java Files)目录:自动产生Java源文件的目录,是由工具自动生成的,一般不需要自己修改.里面主要有一个

Android开发学习——Android项目的目录结构

Android项目的目录结构: 资源文件夹: 清单配置文件: Android的四大组件在使用前全部需要在清单文件中配置 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.first"  //应用在系统中的

Android开发笔记--hello world 和目录结构

原文:Android开发笔记--hello world 和目录结构 每接触一个新东西 都有一个hello world的例子. 1.新建项目 2.配置AVD AVD 没有要新建个,如果不能创建 运行SDK Manager更新 3.接着运行就可以了 第一次启动要1分多钟 不要关 4.添加代码 5.接着在运行就OK了 目录结构 1.src - 用于放置源程序 2.gen - 自动生成 R.java 文件,用于引用资源文件(即 res 目录下的数据) 3.assets - 用于放置原始文件,Androi

在IOS开发中,项目的目录结构如何搭建?

网上有很多关于IOS开发的学习资料.然而却很少有关于设计一个项目时,如何设计其目录结构?这对于自学IOS的程序猿们,无疑有诸多不利.接下来,我就简单的谈下真正在公司中,项目的目录结构如何搭建: 以上为第一种,先按照功能模块进行划分,然后遵循MVC设计模式,分别设置model,view,control子文件夹.对于非项目模块类,以及一些自己写的一些分类,第三方框架等等,存储在other中,如上图所示. 至于另外一种方案,则是先以MVC进行划分,然后针对于model,view,control,进行子

Android开发系列之Android项目的目录结构

今天开始正式学习Android开发的种种细节,首先从最基本的概念和操作学起. 首先看一下Android项目的目录结构. 这是我随便建立的一个test项目,我们重点关注一下几个方面的内容: 1.src目录:存放Java源代码的目录,里面建立一个包,包里面有4个java源文件(分别都继承自Activity).由于java要求比较严格,因此要求类名与文件名一致. 2.gen(Generated Java Files)目录:自动产生Java源文件的目录,是由工具自动生成的,一般不需要自己修改.里面主要有