本帖最后由 Android_Robot 于 2016-10-19 14:47 编辑
Android开发新手学习总结(六)——android开发目录结构 【图文版】
既然已经搭建好环境了,那就对Android Studio中项目目录结构做个简单的了解了,这里以最简单的Hello工程为例子,新建好工程后看如下三个工程视图:
1、Android工程
manifests: AndroidManifest.xml:APP的配置信息 java:主要为源代码和测试代码 res:主要是资源目录,存储所有的项目资源 drawable:存储一些xml文件,-*dpi表示存储分辨率的图片,用于适配不同的屏幕。 -mdpi:320x480 -hdpi:480x800、480x854 -xhdpi:至少960x720 -xxhdpi:1280x720 layout:存储布局文件 mipmap:存储原声图片资源 values:存储app引用的一些值 - colors.xml: 存储了一些color的样式 - dimens.xml:存储了一些公用的dp值 - strings.xml: 存储了引用的string值 - styles.xml: 存储了app需要用到的一些样式 Gradle Scripts:build.gradle为项目的gradle配置文件
2、Project工程
build:系统生成的文件目录,最后生成的apk文件就在这个目录,这里是app-debug.apk libs:为项目需要添加的*.jar包或*.so包等外接库 src:项目的源代码,其中android test为测试包,main里为主要的项目目录和代码,test为单元测试代码
3、Packages工程
4、AndroidManifest.xml
AndroidManifext描述了package中暴露的组件像activity,serveice等,他们各自的实现类,各种能被处理的数据和启动位置。此外还能声明程序中的contentproviers,intentreceivers,还能指定permissions和instrumentation等等。 xmlns:android:定义android的命名空间。 package:指定本应用内java主程序的包名,这里就是com.example.jared.hello了。 application:声明了每一个应用程序的组件及其属性。 android:allowBackup:将程序加入到系统的备份和恢复架构中。 android:icon:显而易见表示APP的图标了。 android:label:许可列表。 android:supportsRtl:启用各种RTLAPI来用RTL布局显示应用,这个是android4.2的新特性。 android:theme:android的主题。 activity:android:name表示当前的activity的名字,因为工程为MainActivity,所以这个名字就为这个,之后有新的activity的话,也需要添加才可以使用。 intent-filter:包含了action,data和category三种。 action:只有android:name属性,常见的是android.intent.action.MAIN,表示此activity是作为应用程序的入口。 data:指定了希望接受的intent请求的数据URI和数据类型。 category:android:name属性,常见的是android.intent.category.LAUNCHER,决定应用程序是否显示在程序列表里。 关于本应用的manifest基本上没啥问题了,以后遇到了别的google查阅就好。
5、layout的activity_main.xml
RelativeLayout:相对布局。 xmlns:android定义:android命名空间。 xmlns:tools:tools命名空间,用来预览一些布局属性的添加喝删除后的效果。 android:layout_width:指定了控件的宽度,可选择match_parent,fill_parent,wrap_content,其中match_parent和fill_parent的意思相同,官方更加推荐使用match_parent。match_parent表示让当前控件的大小和父布局的大小一样,也就是由父布局来决定当前控件的大小。wrap_content表示让当前控件的大小能够刚好包含住里面的内容,也就是由控件内容决定当前控件的大小。 android:layout_height:同上。 android:paddingLeft,android:paddingRight,android:paddingTop,android:paddingBottom:站在父view的角度描述问题,它规定它里面的内容必须与这个父view边界的距离。此外还有margin,它是站在自己的角度描述问题,规定自己喝其他的view之间的距离,如果同一级只有一个view,那么它的效果基本上就和padding一样了。 TextView:android的控件。 android:text:textview显示的内容,这里就是hello world了。 至此,androd的layout简单介绍了下,至于之后遇到的种种,google等着你。
6、MainActivity.java
- package com.example.jared.hello;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- }
- }
复制代码 通过上面的介绍,应该不难理解这段代码了。首先MainActivity继承了AppCompatActivity,最后还是继承Activity。- public class AppCompatActivity extends FragmentActivity
- public class FragmentActivity extends BaseFragmentActivityHoneycomb
- abstract class BaseFragmentActivityHoneycomb extends BaseFragmentActivityDonut
- abstract class BaseFragmentActivityDonut extends Activity {
复制代码 然后再看下onCreate方法,这个是android的一个设计模式ioc,android的架构基本上就是用了这个模式。用户看不到onCreate之前干了什么,只要完成这个函数,并且在里面调用需要调用的东西即可。 super.onCreate方法是调用父类的onCreate方法,然后setContentView方法就是为当前的activity引入了一个activity_main的布局,这个布局上述已经有了介绍。
好了,关于Android Studio的项目工的介绍就在这里了。
其他精华资源推荐:
【强荐!】2016年最新Android学习路线图——按此路线图学习月薪过万{ 火速收入}
【新手连载】一:使用AndroidStudio搭建Android集成开发环境
[新手连载]二:MAC下AndroidStudio开发环境搭建
【SDK分享】AndroidSDK19-22下载地址及安装
[持续更新]2016最新Android视频教程+源码+技巧/经验+软件+面试
|