Android应用程序架构详解如下:

src/ java源代码存放目录

gen/自动生成目录

gen 目录中存放所有由Android开发工具自动生成的文件。目录中最重要的就是R.java文件。这个文件由Android开发工具自动产生的。Android开发工具会自动根据你放入res目录的资源,同步更新修改R.java文件。正因为R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.java。R.java在应用中起到了字典的作用,它包含了各种资源的id,通过R.java,应用可以很方便地找到对应资源。另外编绎器也会检查R.java列表中的资源是否被使用到,没有被使用到的资源不会编绎进软件中,这样可以减少应用在手机占用的空间。

assets资源目录

Android除了提供/res目录存放资源文件外,在/assets目录也可以存放资源文件,但是/assets目录下的资源文件不会在R.java自动生成ID,所以读取/assets目录下的文件必须指定文件的路径。

AndroidManifest.xml项目清单文件

这个文件列出了应用程序所提供的功能,以后你开发好的各种组件需要在该文件中进行配置,如果应用使用到了系统内置的应用(如电话服务、互联网服务、短信服务、GPS服务等等),你还需在该文件中声明使用权限。

default.properties项目环境信息,一般是不需要修改此文件

 

res/资源(Resource)目录

在这个目录中我们可以存放应用使用到的各种资源,如xml界面文件,图片或数据。

res/drawable专门存放png、jpg等图像资源。在代码中使用getResources().getDrawable(resourceId)获取该目录下的资源。

res/layout专门存放xml界面文件,xml界面文件和HTML文件一样,主要用于显示用户操作界面。

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

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

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

res/values专门存放应用使用到的各种类型数据。

====================================================================================================

不同类型的数据存放在不同的文件中,如下:

· strings.xml定义字符串和数值,在Activity中使用getResources().getString(resourceId)或getResources().getText(resourceId)取得资源。它的作用和struts中的国际化资源文件一样。

<?xml version="1.0" encoding="UTF-8"?>

<resources>

<string name="china">中国</string>

</resources>

· arrays.xml定义数组。

<?xml version="1.0" encoding="utf-8"?>

<resources>

<string-array name="colors">

<item>red</item>

<item>yellow</item>

<item>green</item>

<item>blue</item>

</string-array>

</resources>

· colors.xml定义颜色和颜色字串数值,你可以在Activity中使用getResources().getDrawable(resourceId)以及getResources().getColor(resourceId)取得这些资源。例子如下:

<?xml version="1.0" encoding="UTF-8"?>

<resources>

<color name="contents_text">#ff0000</color>

</resources>

· dimens.xml定义尺寸数据,在Activity中使用getResources().getDimension(resourceId)取得这些资源

<?xml version="1.0" encoding="UTF-8"?>

<resources>

<dimen name="key_height">50dip</dimen>

</resources>

· styles.xml定义样式。

<?xml version="1.0" encoding="utf-8"?>

<resources>

<style name="itcastText" parent="@style/Text">

<item name="android:textSize">18sp</item>

<item name="android:textColor">#0066FF</item>

</style>

</resources>

============================================================================================

说明:
src/ java源代码存放目录
gen/自动生成目录。 gen目录中存放所有由Android开发工具自动生成的文件。目录中最重要的就是R.java文件。

res/资源(Resource)目录  存放应用使用到的各种资源,如xml界面文件,图片或数据。
assets/资源目录

AndroidManifest.xml 功能清单文件  列出了应用程序所提供的功能,在这个文件中,你可以指定应用程序使用到的服务(如电话服务、互联网服务、短信服务、GPS服务等等)。
default.properties 项目环境信息,一般是不需要修改此文件。

Android开发入门一之Android应用程序架构详解相关推荐

  1. Android基础入门教程——8.3.18 Canvas API详解(Part 3)Matrix和drawBitmapMash

    Android基础入门教程--8.3.18 Canvas API详解(Part 3)Matrix和drawBitmapMash 标签(空格分隔): Android基础入门教程 本节引言: 在Canva ...

  2. Android基础入门教程——2.5.3 AlertDialog(对话框)详解

    Android基础入门教程--2.5.3 AlertDialog(对话框)详解 标签(空格分隔): Android基础入门教程 本节引言: 本节继续给大家带来是显示提示信息的第三个控件AlertDia ...

  3. Android开发效率提升利器-ButterKnife最全使用详解及ButterKnife插件的使用

    本文目录 ButterKnife 概述 使用前准备 添加依赖 ButterKnife绑定 Activity绑定 Fragment绑定 RecyclerView Adapter绑定 基本用法 控件注解 ...

  4. qt for android开发百度地图(一步步带图详解)

    qt for android开发百度地图 前言:qt for android开发百度地图,其实找了很多资料,基本上没有,就自己折磨弄了出来,这个过程还是很曲折的,折磨了一两个星期,没有资料,就两个字' ...

  5. Android开发重点难点1:RelativeLayout(相对布局)详解

    前言 啦啦啦~博主又推出了一个新的系列啦~ 之前的Android开发系列主要以完成实验的过程为主,经常会综合许多知识来写,所以难免会有知识点的交杂,给人一种混乱的感觉. 所以博主推出"重点难 ...

  6. Android开发--图形图像与动画(五)--详解LayoutAnimationController

    首先需要先介绍下LayoutAnimationController: * 1.LayoutAnimationController用于为一个layout里面的控件,或者是一个ViewGroup  * 里 ...

  7. android添加动画文件,Android开发之图形图像与动画(五)LayoutAnimationController详解

    首先需要先介绍下LayoutAnimationController: * 1.LayoutAnimationController用于为一个layout里面的控件,或者是一个ViewGroup * 里面 ...

  8. 微信小程序开发学习笔记005--微信小程序组件详解

    先来再看看事件冒泡: 看个例子,新建项目库credemo05 case1.wxml <view bindtap="fn1"> outer    <view bin ...

  9. 微信小程序开发学习笔记006--微信小程序组件详解02

    技术交流QQ群:170933152 案例7:开关选择器 案例8:各种图标 案例9:页面跳转 案例10:多媒体音视频 案例11:嵌入地图 案例12:画布:在上面可以画柱状图等等. 今天继续讲组件: 登录 ...

最新文章

  1. Git_Eclipse:[3]Git初始化工程
  2. 神策数据荣登《中国企业家》“未来之星”榜单
  3. excel如何快速选中某个区域
  4. php m grep event,linux grep (linux查找关键字在php出现的次数)
  5. java细节_java细节知识
  6. java引用复制_Java中引用的浅复制和深复制
  7. 解读ASP.NET 5 MVC6系列(11):Routing路由
  8. 记一次勒索病毒攻击事件的处理过程
  9. mybatis使用generator生成器生成entity,mapper,xml模版类及自己写sql情况处理
  10. python二元一次方程组用鸡兔同笼的思路来写编程_《应用二元一次方程组——鸡兔同笼》...
  11. 经典指标:SAR算法和应用
  12. 没有肉眼可见的躯体,却丝毫不妨碍放飞灵魂
  13. Python2020期末考试试题及答案
  14. 公共数据库介绍~ProPublica
  15. 程序员薪酬,未来的薪酬趋势
  16. 动态排程才是生产计划排程的根本
  17. linux虚机从物理单板挂载_linux物理服务器到虚拟机的整机迁移教程
  18. 计算机中丢失fmodex64.dll,fmodex.dll修复工具
  19. STM32基于正点原子ALIENTEK探索者开发板的跑马灯实验
  20. Linux教程 第十一课 Linux进程管理及作业控制(几本没看懂)

热门文章

  1. linux raw格式改名img,4款Linux下的RAW格式图片编辑软件
  2. 10-关于DOM的事件操作
  3. #6034. 「雅礼集训 2017 Day2」线段游戏 李超树
  4. js中return、return false 、return true各自代表什么含义
  5. URI Is Not Registered
  6. css Tab选项卡
  7. CVPR 2021 | 用于动作识别,即插即用、混合注意力机制的 ACTION 模块
  8. CV Code|计算机视觉开源周报20200504期
  9. Java中注解学习系列教程-2
  10. C语言编程笔记丨一种很酷的 C 语言技巧