然后我们看一下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中的视图部分,负责界面显示。

  1. package android.basic.lesson2.helloworld;import
    android.app.Activity;
  2. import android.os.Bundle;public class MainHelloWorld extends Activity {
  3. /** Called when the activity is first created. */
  4. @Override
  5. public void onCreate(Bundle savedInstanceState) {
  6. super.onCreate(savedInstanceState);
  7. setContentView(R.layout.main);
  8. }
  9. }

可以看到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的包文件:

  1.     android.app :提供高层的程序模型、提供基本的运行环境
  2.     android.content :包含各种的对设备上的数据进行访问和发布的类
  3.     android.database :通过内容提供者浏览和操作数据库
  4.     android.graphics :底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们直接绘制到屏幕上.
  5.     android.location :定位和相关服务的类
  6.     android.media :提供一些类管理多种音频、视频的媒体接口
  7.     android.net :提供帮助网络访问的类,超过通常的java.net.* 接口
  8.     android.os :提供了系统服务、消息传输、IPC 机制
  9.     android.opengl :提供OpenGL 的工具
  10.     android.provider :提供类访问Android 的内容提供者
  11.     android.telephony :提供与拨打电话相关的API 交互
  12.     android.view :提供基础的用户界面接口框架
  13.     android.util :涉及工具性的方法,例如时间日期的操作
  14.     android.webkit :默认浏览器操作接口
  15.     android.widget :包含各种UI 元素(大部分是可见的)在应用程序的屏幕中使用




android学习——android项目的的目录结构的更多相关文章

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

    原文:Android开发笔记--hello world 和目录结构 每接触一个新东西 都有一个hello world的例子. 1.新建项目 2.配置AVD AVD 没有要新建个,如果不能创建 运行SD ...

  2. YII框架开发一个项目的通用目录结构

    YII框架开发一个项目的通用目录结构: 3 testdrive/ 4 index.php Web 应用入口脚本文件 5 assets/ 包含公开的资源文件 6 css/ 包含 CSS 文件 7 ima ...

  3. maven项目的标准目录结构

    maven项目的标准目录结构如下:

  4. maven 创建web项目的标准目录结构

      maven 创建web项目的标准目录结构 CreateTime--2018年4月18日21:05:37 Author:Marydon 1.标准目录介绍(开发目录) 2.在eclipse下,目录展示 ...

  5. android项目的的目录结构

    然后我们看一下Helloword的程序目录: 我们可以看到 大致有的文件: 1. MainHelloWorld.java文件 2. R.java文件 3. android.jar文件 4. RES.L ...

  6. Android NDK学习(一):目录结构解析

    我们配置好NDK环境后,基本可以看到其目录结构如下图: 下面我们来分析一下NDK根目录的结构: ndk-build:该Shell脚本是Android NDK构建系统的起始点,一般在项目中仅仅执行这一个 ...

  7. Android项目实现Module目录结构分组

    一.背景 项目需求的频繁迭代,新的产品功能在不断添加和延伸,随之带来的是,项目技术复杂度的提升. 近几年来,Android模块化.组件化相关技术得到极速发展,将项目整体进行分层,不同的层次之间依据实际 ...

  8. Android 5.1.1 源码目录结构

    点击打开链接 最近公司培训新同事,我负责整理一点关于android的基础知识,遥想当年,刚接触android,也是一头雾水, 啥都不懂,就是靠看文档和视频,对android有一个初步了解,然后就通过查 ...

  9. (转)Android 5.1.1 源码目录结构

    转自:http://blog.csdn.net/tfslovexizi/article/details/51888458最近公司培训新同事,我负责整理一点关于android的基础知识,遥想当年,刚接触 ...

随机推荐

  1. linux系统服务

    系统服务分类,根据其使用的方法来分,可以被分为三类 a.由init控制的服务:基本都是系统级别的服务,运行级别这一章讲的就是这一类的服务 b.由System V启动脚本启动的服务:和我们打交道最多的一 ...

  2. golang之for

    1.常规for.结构如下: for 初始化语句; 条件语句; 修饰语句{ 循环体 } 2.条件for.结构如下: 初始化语句; for 条件语句 { 循环体 } 3.死循环 for.结构如下: for ...

  3. MySQL与PostgreSQL比较 哪个数据库更好

    最后结论说的好,通常由团队成员的熟悉度来决定: PostgreSQL 的名字很少听到,最近试装发现不是很友好:官方文档写的对新手来说有点坑: 有数据库工作经验的直接看最后一句就可以. 如果打算为项目选 ...

  4. org.dom4j.Document 解析xml

    1.Java代码 Document doc = DocumentHelper.parseText(xml); // Element rootE = doc.getRootElement(); List ...

  5. RestFul 与 RPC

    原文地址:https://blog.csdn.net/u014590757/article/details/80233901 RPC.REST API深入理解 一:RPC RPC 即远程过程调用(Re ...

  6. 为什么DW的可视化下看到的效果与浏览器的效果有所区别?

    可视区不是调用外面浏览器,Dreamweav 可视化区是为用户编辑而设计. 支持最基本的 HTML 与 CSS ,对 CSS 而言,我写入样式时如果你使用最基本的样式时它显示与你浏览器中看的效果相差不 ...

  7. Python学习笔记(一)初识Python以及安装Python

    一.Python简介 1.Python发展史 Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的. Python 本身也是由诸多 ...

  8. WEB性能测试用例设计

    性能测试用例主要分为预期目标用户测试,用户并发测试,疲劳强度与大数据量测试,网络性能测试,服务器性能测试五大部分,具体编写测试用例时要根据实际情况进行裁减,在项目应用中遵守低成本,策略为中心,裁减,完 ...

  9. php各种字符串截取

    各种字符串截取.php <?php /** * 字符串截取,支持中文和其他编码 * @param [string] $str [字符串] * @param integer $start [起始位 ...

  10. umount报错解决device is busy

    umount –a   报错device is busy如图 df    -h 执行 umount -l /dev/sdk1 fuser -m -v /cache10 再查看卸载了