Android之路——走进Android(工程结构剖析)

原创 2011年01月21日 11:53:00

我只是拿来记录我一步一步学习的过程,大家可以共勉,也可以交流,有新咨询的时候也可以来支持我一下。谢谢各位!

 

Android的sdk啦,什么ADT什么的安装我就不说了,大家想学的估计都已经安装好了吧。下面介绍的是Android的Project的工程的框架结构:

上面的那个图就是我建立的AndroidProject的一个代码框架了,下面我每个都进行一下介绍:

 

src/  java原代码存放目录


gen/ 自动生成目录


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


res/ 资源(Resource)目录

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


res/drawable 专门存放pngjpg等图标文件。在代码中使用getResources().getDrawable(resourceId)获取该目录下的资源。


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


res/values 专门存放应用使用到的各种类型数据。不同类型的数据存放在不同的文件中,如下:


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


 

 

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

   

 

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


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


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


assets资源目录


Android除了提供/res目录存放资源文件外,在/assets目录也可以存放资源文件,而且/assets目录下的资源文件不会在R.java自动生成ID所以读取/assets目录下的文件必须指定文件的路径,如:file:///android_asset/xxx.3gp


AndroidManifest.xml 项目清单文件


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


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


 

了解了上面,对于Android开发的入门有了一点了解了吧。。。第一篇就是如此。See U  Next Time...(THX 传智播客)

版权声明:本文为博主原创文章,未经博主允许不得转载。

android内核剖析 Framework 读书笔记

整个Framework的启动过程就是本地接收service端IPC调用,再通过异步处理,变成本地调用的过程 这里面有一种调用模式,贯穿了整个Android的framework 就是service通...
  • wz249863091
  • wz249863091
  • 2015年08月31日 22:12
  • 645

微信 Android 模块化架构重构实践

原文地址:微信Android模块化架构重构实践 微信Android诞生之初,用的是常见的分层结构设计。这种架构简单、清晰并一直沿袭至今。这是微信架构的v1.x时代。 图1-架构演进...
  • xxq_2011
  • xxq_2011
  • 2017年06月30日 17:22
  • 720

Android Studio工程目录结构分析(上)

Android Studio工程目录 我们这里以一个简单的HelloWorld工程来分析: 1、.gradle和.idea         这两个目录下放置的都是Android Studi...
  • xhbxhbsq
  • xhbxhbsq
  • 2017年01月19日 14:19
  • 3508

android高薪之路--笔试面试题汇总

1.        下列哪些语句关于内存回收的说明是正确的? (b ) A、 程序员必须创建一个线程来释放内存   B、内存回收程序负责释放无用内存    C、内存回收程序允许程序员直接释放内存 ...
  • tangnengwu
  • tangnengwu
  • 2014年11月27日 14:45
  • 897

android studio修改工程包名

今天做项目时,要求更改程序的包名。于是经过查资料与摸索。 有了一点成果,写成博客,供自己参照,同时非常乐于与大家分享。 情况1: 直接修改包名的“尾巴”,也就是包名的最后一级。 比如:一个包名叫z...
  • YukimineRyuu
  • YukimineRyuu
  • 2016年07月20日 15:30
  • 4190

Android Studio目录结构及工程项目结构解析

Android Studio目录结构 新建工程项目后AS的Product目录结构如下所示:.idea://AS生成的工程配置文件,类似Eclipse的project.properties。 app:...
  • tpnndhqc
  • tpnndhqc
  • 2016年04月17日 11:21
  • 12964

如何让Android Studio运行Eclipse结构的工程(保持原有结构)

最近想用Android Studio运行原来Eclipse的Android项目,网上搜到的资料都是需要转换项目结构的(需转成AndroidStudio结构).但由于一些历史原因,暂时还不能整体的把项目...
  • allen1648
  • allen1648
  • 2016年07月23日 16:47
  • 905

Android开发学习之路--Android Studio项目目录结构简介

既然已经搭建好环境了,那就对Android Studio中项目目录结构做个简单的了解了,这里以最简单的Hello工程为例子,新建好工程后看如下三个工程视图: 1、Android工程 manifes...
  • eastmoon502136
  • eastmoon502136
  • 2016年01月28日 13:00
  • 24177

Android Studio工程目录结构分析(下)

前言         不同于Eclipse,AndroidStudio是采用Gradle来构建项目的。Gradle是一个非常先进的项目构建工具,它使用了一种基于Groovy的领域特定语言(D...
  • xhbxhbsq
  • xhbxhbsq
  • 2017年02月04日 15:31
  • 1341

Android Studio 项目基本结构

记录 Android Studio 中 Android 项目的基本结构,主要是介绍新出现的 Android Project View。...
  • dujnan
  • dujnan
  • 2015年03月28日 23:09
  • 2158
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android之路——走进Android(工程结构剖析)
举报原因:
原因补充:

(最多只允许输入30个字)