zoukankan      html  css  js  c++  java
  • Android开发学习之路--Android Studio项目目录结构简介

          既然已经搭建好环境了,那就对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的项目工程简单的介绍就在这里了。

  • 相关阅读:
    hihocoder 1049 后序遍历
    hihocoder 1310 岛屿
    Leetcode 63. Unique Paths II
    Leetcode 62. Unique Paths
    Leetcode 70. Climbing Stairs
    poj 3544 Journey with Pigs
    Leetcode 338. Counting Bits
    Leetcode 136. Single Number
    Leetcode 342. Power of Four
    Leetcode 299. Bulls and Cows
  • 原文地址:https://www.cnblogs.com/wuyida/p/6299977.html
Copyright © 2011-2022 走看看