您的位置:首页 > 移动开发 > Android开发

自学Android历程->Android项目基本目录解析以及基本的组件

2017-02-14 18:48 302 查看
一、目录概解:

1、layout目录下的activity_main.xml:
     该文件用于定义Andriod应用用户界面,其中TextView代表一个文本框,Button代表一个普通按钮,Andorid:id指定该控件的唯一标识,Andorid:layout_width指定该界面组件的宽度,Andorid:layout_heigth指定该界面组件的高度;

2、app/src目录:
     该目录是Android项目的源代码,并且在main/java/org/crazyit/helloworld目录下有一个MainActivity.java文件它就是Andorid项目的java文件 .
     

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        //使用ctivity_main.xml文件定义的界面布局
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {

            @Override
           
public void onClick(View view) {

                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)

                        .setAction("Action", null).show();
            }

        });
   
}
3、res目录解析:
     res目录存放Android项目的各种资源文件,比如layout存放界面布局文件,values目录下则存放各种XML格式的资源文件,例如字符串资源文件:strings.xml,颜色资源文件:colors.xml,尺寸资源文件:dimens.xmldrawable-ldpidrawable-mdpidrawable-hdpidrawable-xhdpi这4个子目录则分别用于存放低分辨率、中分辨率、高分辨率、超高分辨率的4种图片文件;

4、AndroidMainfest.xml文件:
     这个文件是Android项目的系统清单文件,用于控制Android应用的名称、图标、访问权限等整体属性,除此之外,Android应用的ActivityServiceContentProviderBroadcastReceiver这4大组建都需要该文件中配置;

5、build目录:
     用于Android Studio自动生成各种源文件(包括R.java也放在该目录的子目录下);

6、lib目录:
     存储Anroid项目所需要的第三方JAR包也就是各种so库;

7、src目录详解:
     存储Android项目开发的各种源文件,包括各种Java源文件(放在main/java子目录下)、各种资源文件(放在main/res子目录下)、和AndroidMainfest.xml文件,除此之外,src目录还包含一个Androidtest子目录,该目录下存放的是Android测试项目;

8、对于Adnroid开发者而言,重点关注以下两个目录:
     src:对于Adnroid Studio项目的 app/src/main/java 子目录的各种java文件;
     res:对于Android Studio项目的 app/src/main/res 子目录的各种资源文件;
     
9、在Android项目中的build.xml文件包含了如下常用生成的target:
     clean     :清除项目生成的内容,恢复项目到原始创建状态;
     debug   :打包一个Android应用的debug调试apk包,使用debug key进行签名;
     release  :打包一个发布用的Android应用apk包;
     test       :运行测试,要求该项目必须是一个测试项目;
     install    :将生成的调试用的apk包安装在模拟器上;
     uninstall:从模拟器上卸载该程序;

10、AndroidMainfest.xml文件清单以及说明:
     

<?xml version="1.0" encoding="utf-8"?>
<!--指定该Adnroid应用的包名,该包名可用于唯一标识应用与该程序-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="store.tvos.com.helloworld">

    <application
        android:allowBackup="true"
        <!--指定该Andorid应用程序的标签以及图标-->
        android:icon="@mipmap/ic_launcher"

        android:label="@string/app_name"

        android:supportsRtl="true"

        android:theme="@style/AppTheme">

        <activity
           
<!--定义Android应用的一个组件,Activity,该Acti
c056
vity的类为HelloWrold,并指定该Activity的标签-->
            android:name=".MainActivity"

            android:label="@string/app_name"

            android:theme="@style/AppTheme.NoActionBar">

            <intent-filter>
               
<!--指定该Andorid应用程序的函数入口-->
               
<action android:name="android.intent.action.MAIN" />
               
<!--指定该Andorid应用时运行该Activity-->
               
<category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

     
二、基本的组件介绍:
 Android应用通常由一个或多个基本组件构成
1、Activity
     这个组件是Android应用中负责与用户交互的组件,通过调用setContentView()来显示指定的组件,这个方法接受以对象作为参数以及布局管理资源的ID作为参数;

2、View
     这个组件是所有UI控件、容器控件的基类,他们的关系是Activity通过调用setcontentView()方法,这个方法的参数是一个以View对象为参数的函数;

3、Service:
     这个和Activity是并列的,只不过Activity是可以 直接显示给用户的,而Service是运行于后台,看不见的,主要为其它组件提供后台服务货监控其它组件的运行状态,同样这个组件要继承一个基类:Service

4、BroadcastReceiver:
     这个是Android中一个很重要的组件,顾名思义:广播消息接收器,类似于编程过程中的时间监听器,

5、Contentprovider:
     对于Android应用而言,他们是相互独立各自运行在各自的进程中,没有数据的交互,而Contentprovider就是将两个或者多个程序组建起来进行数据的交互,比如让A进程里面需要被外部访问的Data放在第三方缓冲区,然后进程B进行数据访问,这样就实现了进程间的数据交互;
     ->insert(Uri,ContentValues):向Contentprovider插入数据
     ->delete(Uri,ContentValues ):删除Contentprovider中指定的数据;
     ->update(Uri,ContentValues ,Srting,String[]):更新Contentprovider中指定的数据;
     ->query(Uri,String[],String,String[],String);从Contentprovider中查询数据;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息