当前位置: 首页 > news >正文

Android项目工程目录详解



1. Src:该目录中存放的是该项目的源代码,这个目录包含了你即将创建的Java源代码文件,这个目录里的文件是根据package结构管理的,它与普通java项目中的/src目录很相似。

2.Gen:自动生成的文件目录。该目录下的文件全部都是ADT自动生成的,一般并不需要去修改,实际上该目录下只定义了一个R.java文件,该文件相当于项目的字典,为项目中用户界面、字符串、图片等资源都会在该类中创建其惟一的ID,当项目中使用这些资源时,会通过该ID得到资源的引用。

3.Android {版本号}:这个目录包含了项目需要的库文件(Jar文件),这和普通Java项目中的/lib目录很相似。同时其中还包含项目打包时需要的META-INF目录.


4.Android Private Libraries: 所有的第三方JAR包引入都被放入了Android Private Libraries中

5.assets:资源路径,不会在R文件注册。该目录用于存放项目相关的资源文件,这个目录和res包含的xml文件差不多,也是应用中引用到的一些外部资源。但主要区别在于这些资源是以原始格式保存,且只能用编程方式读取。例如文本文件,视频文件,MP3音频等媒体文件。

6.bin:编译生成目录。二进制文件,包括class、资源文件、dex、apk等



7.res:该目录用于存放应用程序中经常使用的资源文件,其中包括图片、布局文件以及参数描述文件等,其中包括多个目录


a)其中以drawable开头的三个文件夹用于存储.png、.9.png、.jpg等图片资源(.9.png是Android特有的图片格式,可以根据情况进行拉伸,达到不变形的效果),他们的分变率从高到低,如果你打算在android应用中包含一个图片或者图标,就应该把它们放在这个目录。

b)layout文件夹存放的是应用程序的布局文件,这些layout是以xml形式保存的,关于layout的进一步信息,你可以参考android文档中的UI layout


c)raw用于存放应用程序所用到的声音等资源。raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;相比较assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。


d)values 这个目录也包含了一些xml文件,但主要是应用中要引用的key-value对。这些XML文件声明了数组(Array)、颜色(color)、度量(Dimension)、字符串。之所以把这些东西分别放在单独的xml文件中主要是考虑到这些值能够在不更改源代码的情况下用于多语言环境。例如,根据用户语言的不同应用程序中的信息可以有多种语言版本。

8.AndroidManifest.xml:清单文件 这个XML文件包含了android应用中的元信息,是每个android项目中的重要文件。在软件安装的时候被读取 ,Android中的四大组件(Activity、ContentProvider、BroadcastReceiver、Service)都需要在该文件中,以及运行这个android应用程序需要的用户权限列表,例如:电话、短信、互联网、访问SD卡,同时也详细描述了android应用的项目结构。

9. proguard-project.txt:代码混淆相关文件

10.project.properties:工程属性的配置文件,配置编译的版本等。ADT14 以后, project.properties和default.properties合并成了project.properties。供Eclipse使用,读取该项目使用Android版本号





相关文章:

  • 实现HTML页面在手机浏览器上全屏的方式
  • 判断手机号码格式的正则表达式
  • Linux下Tomcat控制台输出及日志中文乱码问题的解决
  • C#操作Excel,权限问题
  • Unable to convert MySQL date/time value to System.DateTime
  • org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 52 in XML document from
  • Extjs页面加载非常慢的处理
  • 如何将struts2中Action的默认后缀由.action改为.do
  • [SetContextPropertiesRule]{Context} Setting property 'source'
  • problem中Project'XX'is missing required library:'[路径]\XXX.jar'解决方法
  • struts2动态方法调用 无效问题
  • powerDesigner Non SQL Error : Could not load class com.mysql.jdbc.Driver
  • HttpClient 4 和 HttpClient 3 设置超时
  • tomcat的目录结构
  • struts2中改变struts.xml默认路径
  • Android系统模拟器绘制实现概述
  • classpath对获取配置文件的影响
  • css系列之关于字体的事
  • emacs初体验
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Js基础知识(四) - js运行原理与机制
  • js中forEach回调同异步问题
  • maya建模与骨骼动画快速实现人工鱼
  • Redis 懒删除(lazy free)简史
  • Redis 中的布隆过滤器
  • tweak 支持第三方库
  • 从0实现一个tiny react(三)生命周期
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 前端自动化解决方案
  • 如何在 Tornado 中实现 Middleware
  • 王永庆:技术创新改变教育未来
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • Mac 上flink的安装与启动
  • 带你开发类似Pokemon Go的AR游戏
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #ifdef 的技巧用法
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (6)设计一个TimeMap
  • (7)STL算法之交换赋值
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (转)ObjectiveC 深浅拷贝学习
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • /etc/sudoer文件配置简析
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • [ C++ ] STL_list 使用及其模拟实现
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择
  • [C/C++] C/C++中数字与字符串之间的转换
  • [C++]类和对象【下】
  • [CTO札记]盛大文学公司名称对联