探索应用开发的基础之android工程目录结构
1. android应用的文件和文件夹
在一个android工程机构中,最常编辑的文件夹有:
- src -与你项目相关的java源文件,这包括“控制器”的Activity文件,也包括你的models和helpers。(译者注:这里涉及到了我们常用的MVC模式,在android中视图主要是靠view来表现,而activity主要是逻辑控制层,而一些特定的类,就是我们所说的model,helper这个主要用在数据库方面)
- res- 与你项目相关的资源文件。所有的图像,字符串,布局文件和其他存储在res目录下的资源文件的层次结构中的资源文件
- res/layout -存放为每个Activity和局部视图(比如列表项)去描述视图和布局的XML布局文件。
- res/values -存放各个量属性值的XML文件,这些文件包括:string.xml, dimens.xm., styles.xml, colors.xml, themes.xml等等。(译者注:string.xml 是存放字符串资源的文件,dimens.xml是存放长度的资源文件,后面依次是风格,颜色和主题的资源文件)
- res/drawable -这里我们存储的是在我们应用中被使用的各个与密度无关的图像。(译者注:可以放图像文件,也可以存放selector等XML的布局图像,主要用在按钮的状态变化是图片的变化)
- res/drawable-hdpi- 为各个分辨率定义了特定去使用的图片一系列的文件。(译者注:res文件夹下主要有drawable-hdpi/mdpi/ldpi三个文件夹,他们分别对应不同屏幕分辨率,h,m,l分别是高,中,低三个英文单词的首字母,分别大致对应的屏幕分辨率为480*854,320*480,240*320,不过随着android手机屏幕的越来越大,还出现了drawable-xhdpi/xxhdpi文件夹,用来存放比如960*720,1280*720等不同屏幕尺寸,用来显示的图片资源)
最常编辑的文件有:
AndroidManifest.xml - 这是android应用定义文件,它包含有关android应用的信息,比如android的最小版本,访问android设备功能的权限,比如网络访问权限,使用电话的权限等。(译者注:这个文件是android工程一个很重要的文件,所有Activity,Service的声明,广播接受,对每个Activity的控制,比如全屏,锁定方向和定义它加载的模式)
res/layout/activity_foo.xml - 这个文件是描述activity界面的布局文件,这意味着在一个应用屏幕中每个视图对象的放置。(译者注:这个里面主要是用xml文件写的某个布局)
src/.../FooActivity.java - "控制器"Activity使用视图来构造它,处理所有的事件分发,和对一个应用屏幕的视图逻辑。(这里面放的是程序的逻辑控制,也就是我们所说的java源文件,处理点击事件,逻辑处理等都在这些文件中)
其他很少编辑的文件包括:
- gen - 生成的Java代码文件,这些库只被Android内部使用。(译者注:这个地方的文件都是Eclipse自动生成的,不要改动)
- assets - 与你工程有联系的为编译的源文件,很少使用。(译者注:这个地方可以放置一些资源,如果我们使用过第三方的ShareSDK就会发现这里其实常常被用到,还有一些作用,比如存放另一个APK,然后在我们的应用中,现将这个APK拷贝到SD卡,然后可以安装这个应用,在为了用户使用ROOT的时候,我曾经用到过)
- bin - 一旦应用被创建,这里存放的是与你工程最终生成的应用程序包文件。(译者注:这里会生成一些文件,一般我们进行调试的时候,eclipse都会生成一个以.apk结尾的包,这个包就是安装在你真机上和模拟机上的程序包)
- libs - 包含一些你可能想链接到你的应用中的附带的库(jars)。(译者注:这里翻译的有些蛋疼,其实就是我们常说的第三方库,就是不是系统自带的,别人写的库。)
参考文献:
- http://developer.android.com/tools/projects/index.html#ApplicationProjects
- http://www.codeproject.com/Articles/395614/Basic-structure-of-an-Android-project
- http://mobile.tutsplus.com/tutorials/android/android-sdk-app-structure/
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。