android项目的的目录结构
然后我们看一下Helloword的程序目录:
我们可以看到 大致有的文件:
1. MainHelloWorld.java文件
2. R.java文件
3. android.jar文件
4. RES、Layout、main.xml文件
5. androidmainfest.xml文件
还有目录大致有
1. src
2. gen
3. assets
4. res
res 下边有 drawable 放一些图片资源 , layout 放一些布局文件,values 放一些文字资源 , 另外有时候会有 raw 文件
raw和assets的相同点:
1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。
raw和assets的不同点:
1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。
2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹
*读取文件资源:
1.读取res/raw下的文件资源,通过以下方式获取输入流来进行写操作
InputStream is = getResources().openRawResource(R.id.filename);
2.读取assets下的文件资源,通过以下方式获取输入流来进行写操作
AssetManager am = null;
am = getAssets();
InputStream is = am.open("filename");
以上的是目录 , 接下来我们逐个加以讲解各个文件的作用:
1、Activity类 及 MainHelloWorld
Activity是Android中的视图部分,负责界面显示。
- package android.basic.lesson2.helloworld;import android.app.Activity;
- import android.os.Bundle;public class MainHelloWorld extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- }
- }
可以看到MainHelloWorld是Activity的子类,子类要重写onCreate方法。
setContentView(R.layout.main)方法是给Activity设置可以显示的视图(View),视图由R类负责寻找。
2、R文件
我们看到Gen目录下有个R.Java文件,R文件由ADT自动生成,程序员不需要也不要去修改它,R文件负责调用应用程序中的非代码资源。
从R文件中可以看到每一个资源都会有一个整数和它相对应。
3、res/layout/main.xml文件浅析 – 布局layout
我们看到有个res目录,也就是resource目录,这个目录下存放资源文件,资源文件的统一管理,也是Android系统的一大特色。现在要注意看的是layout目录下的main.xml。这个文件的内容是有关用户界面布局和设计的。在桌面程序设计领域采用XML也许比较新颖,但是在网页设计领域,这个就很平常了。
从以上代码可以看到整个程序界面由一个线性布局控件(LinearLayout)和2个文本框控件(TextView)组成。res的其他目录里的其他文件也都是相关的资源描述。
4、AndroidManifest.xml文件
在每个应用程序的根目录都会有一个AndroidManifest.xml文件,该文件向Android操作系统描述了本程序所包括的组件,所实现的功能,能处理的数据,要请求的资源等等。
我们看到Manifest是根节点,节点属性里有versionCode和versionName来表示应用程序的版本;里面可以包含0个或1个application元素,application可以包含多个activity组件等等,具体的内容我们在接下来的课程里详细讲解。
5、Android.jar
作为一个Java项目,通常情况下都会引入要用到的工具类,也就是Jar包,在Android开发中,绝大部分开发用的工具包都被封装到一个名叫Android.jar的文件里了。
如果我们在Eclipse中展开来看,可以看到j2se中的包,apache项目中的包,还有Android自身的包文件。在这里我们简单了解一下Android的包文件:
- android.app :提供高层的程序模型、提供基本的运行环境
- android.content :包含各种的对设备上的数据进行访问和发布的类
- android.database :通过内容提供者浏览和操作数据库
- android.graphics :底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上.
- android.location :定位和相关服务的类
- android.media :提供一些类管理多种音频、视频的媒体接口
- android.net :提供帮助网络访问的类,超过通常的java.net.* 接口
- android.os :提供了系统服务、消息传输、IPC 机制
- android.opengl :提供OpenGL 的工具
- android.provider :提供类访问Android 的内容提供者
- android.telephony :提供与拨打电话相关的API 交互
- android.view :提供基础的用户界面接口框架
- android.util :涉及工具性的方法,例如时间日期的操作
- android.webkit :默认浏览器操作接口
- android.widget :包含各种UI 元素(大部分是可见的)在应用程序的屏幕中使用
android项目的的目录结构的更多相关文章
- Android项目实现Module目录结构分组
一.背景 项目需求的频繁迭代,新的产品功能在不断添加和延伸,随之带来的是,项目技术复杂度的提升. 近几年来,Android模块化.组件化相关技术得到极速发展,将项目整体进行分层,不同的层次之间依据实际 ...
- android学习——android项目的的目录结构
然后我们看一下Helloword的程序目录: 我们可以看到 大致有的文件: 1. MainHelloWorld.java文件 2. R.java文件 3. android.jar文件 4. RE ...
- android源码的目录结构
android源码的目录结构 [以下网络摘抄] |-- Makefile ! l/ a5 n% S% @- `0 d# z# a$ P4 V3 o7 R|-- bionic ...
- YII框架开发一个项目的通用目录结构
YII框架开发一个项目的通用目录结构: 3 testdrive/ 4 index.php Web 应用入口脚本文件 5 assets/ 包含公开的资源文件 6 css/ 包含 CSS 文件 7 ima ...
- maven项目的标准目录结构
maven项目的标准目录结构如下:
- maven 创建web项目的标准目录结构
maven 创建web项目的标准目录结构 CreateTime--2018年4月18日21:05:37 Author:Marydon 1.标准目录介绍(开发目录) 2.在eclipse下,目录展示 ...
- eclipse下maven项目保持原有目录结构配置resin运行环境
maven项目用起来很方便,但是它的目录结构和eclipse的目录结构是有区别的,故而在eclipse下的maven项目,直接运行调试是有一些问题的. 为了方便maven项目的运行调试,因而也就有了像 ...
- Java Web项目的一般目录结构解析(eclipse)
以上为项目名为TestProject的目录结构截图,下面主要解析WebContent下各个目录的用途: css:存放项目所需要的css文件. images:存放项目所需要的图片文件. js:存放项目所 ...
- vue项目开发基本目录结构
§ 目录结构 . ├── build/ # Webpack 配置目录 ├── dist/ # build 生成的生产环境下的项目 ├── src/ # 源码目录(开发都在这里进行) │ ├── ass ...
随机推荐
- 为程序指定运行时所在的CPU核
internal class Program { [DllImport("kernel32.dll")] private static extern uint GetTickCou ...
- java Zip文件解压缩
java Zip文件解压缩 为了解压缩zip都折腾两天了,查看了许多谷歌.百度来的code, 真实无语了,绝大多数是不能用的.这可能跟我的开发环境有关吧. 我用的是Ubuntu14.04,eclips ...
- CC++初学者编程教程(6) 配置WindowsXP虚拟机与VC6.0
1.我们安装需要下列文件. 2.新建一个虚拟机. 3. 选择默认的 Vmware Work Station10.0 4. 我们选择这个WindowsXP镜像. 5. 我们复制一个WindowsXPSP ...
- 04737_C++程序设计_第1章_认识C++的对象
例1.1 演示使用结构对象的示例程序. //功能:将结构对象的两个域值相加,乘以2再加50 #include <iostream>//包含头文件 using namespace std;/ ...
- 顺便说一下$.each()函数:
$.each()函数不同于JQuery对象的each()方法,它是一个全局函数,不操作JQuery对象,而是以一个数组或者对象作为第1个参数,以一个回调函数作为第2个参数.回调函数拥有两个参数:第1个 ...
- iOS第三方库-CocoaLumberjack-DDLog (转)
原文:http://blog.sina.com.cn/s/blog_7b9d64af0101kkiy.html 发现一个,很厉害的小工具,让xCode控制台输出文本有颜色! 闲话不说,上代码. 大概需 ...
- 学习DTD和Schema的几个例子
可以使用DTD(文档类型定义)来规定xml文档构建模块,可用起对xml文件进行验证.具体用法转:http://www.w3school.com.cn/dtd/dtd_intro.asp.同样也可以用S ...
- C# DataTable的用法
建表DataTable dtP = new DataTable("Man");加列DataColumn dcP;dcP = new DataColumn("Name&qu ...
- C# 创建数组的几种方法
第一种 string[] myArray=new string[10]; 第二种 string[] myArray={"1","2"}; 第三种 string[ ...
- linux 图形界面切换
开机为文本界面,由文本界面切换到图形界面: 方法1:运行命令 #startx , 需要先配置图形界面信息,(暂时不会~) : 方法2:修改/etc/inittab文件中的 ...