本来的话,这一章想要介绍的是Android的系统架构,毕竟有了这些知识的储备,再去看实际的项目时才会更清楚地理解为什么要这样设计,同时在开发中遇到难题,也可以凭借着对Android的了解,尽快找出哪些模块和设计能够帮助解决该问题。但想了一下,这毕竟是入门篇,若没有实际项目开发经验的人看了之后肯定是一头雾水,所以就决定将其搁浅到大家熟悉Android之后再为大家介绍。
那么今天的主题是Android的目录结构,将系统架构比作人的骨骼架构的话,目录结构就像是人的各个器官,彼此功能各不相同,却能有序地运行。

本文基于最新的Android 4.4来介绍。首先先来新建一个Demo的Android项目,完成之后会生成两个文件夹 appcompat_v7 和 Demo,具体如下:
    

一、appcompat_v7  这个文件夹是在最新的SDK中出现的(Android4.0即以上),其实我们开发中基本上用不上这货,无视掉就行。呃~,说一下这个文件夹的功能吧,它为了让Android Project 在API 7+的sdk版本(即Android2.1版本)可以访问ActionBar的API,才专门增加这个project,目的为了兼容低版本的SDK。当然,如果你嫌弃它,想要下次创建项目时让它消失,可以这么做——在程序配置界面,把Minimum Required SDK (应用程序所支持的Android最低版本)设置为API14:Android4.0项,其它参数不变。详细链接——http://jingyan.baidu.com/article/36d6ed1f5526f91bcf4883e4.html

二、项目文件夹——Demo

那么接下来才是重点,我会一个一个介绍项目中的目录。首先是src

  1. src/文件夹——源代码目录
    平时我们写程序,建包建类都是在这里进行,这里存放着项目的所有精华和程序员的一切心血。
  2. gen/文件夹——系统自动生成代码目录
    既然是系统自动生成的,所以我们大可不必管它。顺便提一下项目的重建,让系统代码重新自动生成——选中项目,再到eclipse的菜单栏,project->clean..
  3. 3个Android包——开发时提供的jar包存放目录
    第一个是Android版本自带的jar包,系统核心内容。第二个同样是SDK更新后出现的,里面存放你要用到的jar包,包括你导入进去的jar包。第三个存放的appcompat的jar包,版本支持用。可能你从lib导入新的jar包后会出现新的以Android开头的目录,放心,这些都是无害的~~
    顺便提一句怎么添加新的jar包——找到项目工程文件目录,进去之后新建一个libs的文件夹,将要导入的jar包放进去。回到eclipse,(记得先将项目刷新一遍)对着项目右键->Propreties->Java Bulid Path->Libraries->右侧的Add JARs->找到自己项目下的libs文件夹,选中要导入的jar包,完成就行了。
  4. assets/文件夹——资源目录
    存放系统所要的资源,可以在里面任意的构建目录,但该目录下的资源文件不会再R.java自动生成ID。这些都是与res/文件夹的不同。
    存放的资源命名请用小写开头,不然系统不会识别。
  5. bin/文件夹——同样是系统自动生成
    build之后里面会生成APK文件,可以直接拿出来用
  6. libs/文件夹——存放自己所需的jar包
  7. res/文件夹——存放图片、布局、字符串等资源
    里面的资源会在R.java中自动生成ID(需要在project->Build Automatically前打上勾)
       (1)res/drawable-*dpi/  ——系统会根据分辨率来提取不同drawable文件夹里的图标。依次从h-m-l代表分辨率从高到低。当然只放一张在其中一个文件夹中系统也是可以读取的。
       (2)res/layout文件夹 ——存放布局文件
       (3)res/menu文件夹——存放菜单资源文件。菜单资源文件使用<menu>标签作为根节点。除了<menu>外,还有另外两个标签用于设置菜单项和分组,这两个标签是<item>和<group>。
       (4)res/values文件夹——存放数据资源文件。可以存放不同类型的数据。比如arrays.xml、colors.xml、dimens.xml、styles.xml等等。根据版本的不同,也设置了不同的文件夹。
  8. AndroidManifest.xml——系统配置文件
    项目的总配置文件,记录应用中所使用的各种组件。这个文件列出了应用程序所提供的功能,在这个文件中,你可以指定应用程序使用到的服务(如电话服务、互联 网 服务、短信服务、GPS服务等等)。另外当你新添加一个Activity的时候,也需要在这个文件中进行相应配置,只有配置好后,才能调用此 Activity。AndroidManifest.xml将包含如下设置:application permissions、Activities、intent filters等。
  9. project.properties ——环境文件
    记录项目中所需要的环境信息,比如Android的版本等。
  10. 其他
    ic_launcher-web.png:这个是为了google Play市场使用展示的图标,它需要的是512×512的高分辨率的图标。
    proguard-project.txt
    project.properties
    这两个文件是为了保护Android项目而做的代码混淆使用的。
 结语:这些就是一个项目里的基本目录。当然后面做开发时可能还会从中做扩展,但基本的就是这些。尽快熟悉这些,朝着下一步进发吧~
 
========================================
作者:cpacm
出处:(http://www.cnblogs.com/cpacm/p/3898600.html

【Android开发日记】之入门篇(三)——Android目录结构的更多相关文章

  1. 【Android开发日记】第一个任务Android Service!Service靴+重力感应器+弹出窗口+保持执行

    前言: 近期在写一个小程序,需求是手机摇一摇就弹窗出来.第一次使用了Service,学习了两天,实现了Service弹窗,开机启动,Service启动和销毁,Service保持一直执行. 满足了自己的 ...

  2. 【Android开发日记】之入门篇(十二)——Android组件间的数据传输

    组件我们有了,那么我们缺少一个组件之间传递信息的渠道.利用Intent做载体,这是一个王道的做法.还有呢,可以利用文件系统来做数据共享.也可以使用Application设置全局数据,利用组件来进行控制 ...

  3. 【Android开发日记】之入门篇(九)——Android四大组件之ContentProvider

    数据源组件ContentProvider与其他组件不同,数据源组件并不包括特定的功能逻辑.它只是负责为应用提供数据访问的接口.Android内置的许多数据都是使用ContentProvider形式,供 ...

  4. 【Android开发日记】之入门篇(十四)——Button控件+自定义Button控件

        好久不见,又是一个新的学期开始了,为什么我感觉好惆怅啊!这一周也发生了不少事情,节假日放了三天的假(好久没有这么悠闲过了),实习公司那边被组长半强制性的要求去解决一个后台登陆的问题,结果就是把 ...

  5. 【Android开发日记】之入门篇(十一)——Android的Intent机制

    继续我们的Android之路吧.今天我要介绍的是Android的Intent. 对于基于组件的应用开发而言,不仅需要构造和寻找符合需求的组件,更重要的是要将组件有机的连接起来,互联互通交换信息,才能够 ...

  6. 【Android开发日记】之入门篇(七)——Android数据存储(上)

    在讲解Android的数据源组件——ContentProvider之前我觉得很有必要先弄清楚Android的数据结构. 数据和程序是应用构成的两个核心要素,数据存储永远是应用开发中最重要的主题之一,也 ...

  7. 【Android开发日记】之入门篇(五)——Android四大组件之Service

    这几天忙着驾校考试,连电脑都碰不到了,今天总算告一段落了~~Service作为Android的服务组件,默默地在后台为整个程序服务,辅助应用与系统中的其他组件或系统服务进行沟通.它跟Activity的 ...

  8. 【Android开发日记】之入门篇(六)——Android四大组件之Broadcast Receiver

    广播接受者是作为系统的监听者存在着的,它可以监听系统或系统中其他应用发生的事件来做出响应.如设备开机时,应用要检查数据的变化状况,此时就可以通过广播来把消息通知给用户.又如网络状态改变时,电量变化时都 ...

  9. 【Android开发日记】之入门篇(四)——Android四大组件之Activity

    在Android中,无论是开发者还是用户,接触最多的就算是Activity.它是Android中最复杂.最核心的组件.Activity组件是负责与用户进行交互的组件,它的设计理念在很多方面都和Web页 ...

  10. 【Android开发日记】之入门篇(十三)——Android的控件解析

    Android的控件都派生自android.view.View类,在android.widget包中定义了大量的系统控件供开发者使用,开发者也可以从View类及其子类中,派生出自定义的控件. 一.An ...

随机推荐

  1. Android Config通用类来记录信息

    1.整体分析 1.1.源代码,可以直接Copy. public class Config { private static int M = 1024 * 1024; private volatile ...

  2. PHP.28-TP框架商城应用实例-后台5-多表操作-商品表与品牌表

    表与表之间的关系:1:1 1:多 多:多 功能需求决定表关系 此处的表关系为:品牌表:商品表=1:多 1.首先在表结构上关联,在多的表(商品表)添加一个字段,关联一的表(品牌表)的ID(主键) 添加字 ...

  3. 001.我的第一个Java程序

    第一步安装JDK 第二步设置PATH路径 设置Windows的PATH 路径 方法一:直接设置添加PATH C:\Program Files\Java\jdk1.8.0_92\bin 方法二: 先增加 ...

  4. P1783 海滩防御

    P1783 海滩防御 题目描述 WLP同学最近迷上了一款网络联机对战游戏(终于知道为毛JOHNKRAM每天刷洛谷效率那么低了),但是他却为了这个游戏很苦恼,因为他在海边的造船厂和仓库总是被敌方派人偷袭 ...

  5. 解决Android Studio报错:DefaultAndroidProject : Unsupported major.minor version 52.0

    解决办法是你需要将工程根目录build.gradle中的 classpath 'com.android.tools.build:gradle:2.2.0' 更改成 classpath 'com.and ...

  6. mt_vqmon异常数据分析

    mt_vqmon异常数据分析 1.首缓冲时间值异常(1) 分析:当第一个m3u8请求时,已经记录request时间,1423716972224, 正常情况会立即请求分片列表. 上述图表明请求了一个m3 ...

  7. centos使用--ssh登陆

    1 安装openssh-server yum install openssh-server 2 登录 在配置好ssh后就可以只使用SSH密钥登录而不允许通过密码登录了,方法如下: 修改ssh配置: v ...

  8. CSS 一些基础知识(优先级、行内元素的一些属性、font-size单位) 怎样不加载图片

    CSS大小写不敏感 选择器优先级如下所示: 在属性后面使用 !important 会覆盖页面内任何位置定义的元素样式. 作为style属性写在元素内的样式 id选择器 类选择器 标签选择器 通配符选择 ...

  9. 打开Vim/Vi代码高亮

    由于新装Vim/Vi 默认是没有打开代码高亮配置的,就看到有朋友一次次到网上去找各种配置.其实Vim默认带来配置文件的样本的,只需拷贝过来就可使用. 在用户根目录(~)中新建vim的配置文件 .vim ...

  10. USACO Section2.3 Zero Sum 解题报告 【icedream61】

    zerosum解题报告----------------------------------------------------------------------------------------- ...