zoukankan      html  css  js  c++  java
  • android项目各个文件详解

    res目录说明

       android应用的res目录是一个特殊的目录,该项目里存放了

    android应用所用的全部资源,包括图片资源、字符串资源、

    颜色资源、尺寸资源等。

    /res/value/strings.xml文件:该文件定义了一条一条的

    字符串常量。

    <?xml version="1.0" encoding="utf-8"?> 
    <resources> 
    
      <string name="hello_world">Hello world!</string>
    
    </resources>

    java代码和xml中使用strings.xml资源文件中的字符串

    资源:

      为了在java代码中使用资源,AAPT会为android项目自动生

      成一份R.java文件,R类中为每一份资源分别定义一个内部类,

      其中每个资源项对应内部类里一个int类型的field。

    public final class R {
           public static final class dimen {
             public static final int activity_horizontal_margin=0x7f040000;
         }
       }

    java代码中可以通过R.string.hello_world来引用到字符

    串常量。

    在XML文件中使用资源:

    @<资源对应的内部类的类名>/<资源项的名称>

    例:@string/hello_world

    当我们在XML文件中使用标示符时----这些标示符无须使用

    专门的资源进行定义,直接在XML文档中按如下格式分配标

    示符即可:

       @+id/<标示符代号>

    例如:android:id="@+id/ok"

    上面为组件分配了一个标示符,接下来就可以在程序中引用

    该组件了。

    在java代码中,通过调用Activity的findViewById()方法

    即可。

    在XML文件中获取组件的方法:@id/<标示符代号>

    android应用的清单文件:AndroidManifest.xml

       AndroidManifest.xml清单文件是每个android项目都必须的,

    他是整个android应用的全局描述文件。AndroidManifest.xml清

    单文件说明了该应用的名称,所使用的图标,以及包含的组件等。

    AndroidManifest.xml清单文件通常可以包含如下的信息:

      1、应用程序的包名,该包名将会作为该应用的唯一标示

      2、应用程序所包含的组件,如Activity、Service、BroadcastReceiver

           和ContentProvider(所有组件都要在这里注册)

      3、应用程序兼容的最低版本

      4、应用程序使用系统所需的权限声明

      5、其他的应用程序访问该程序所需的权限声明

    android应用的基本组件介绍:

    Activity组件:android中负责与用户交互的组件。

    View组件:所有UI控件、容器控件的基类,view组件就是

      android应用中用户实实在在看到的部分,但是View组件

      需要放到容器中组件中,或者使用Activity将他显示出来。

    Service组件:Service与Activity的地位并列,他代表一个

    单独的android组件。Service与Activity的区别在于:

    Service通常位于后台运行,他一般不需要与用户交互,因此

    Service组件没有图形界面。与Activity组件需要继承Activity

    基类相似,Service组件需要继承Service基类。一个Service

    组件被运行起来之后,他将拥有自己独立的声明周期,Service

    组件通常用于为其他的组件提供后台服务或者监控其他组件的运

    行状态。

    BroadcastReceiver:android中另外一个重要的组件,代表广

    播接收者。BroadcastReceiver非常类似于事件编程中的监听

    器。不同的是:普通的事件监听器监听的事件源是程序中的对象,

    BroadcastReceiver监听的事件源是android应用中的其他

    组件。

    使用BroadcastReceiver只要实现自己的BroadcastReceiver

    子类,并重写onReceiver(Context context, Intent intent)

    方法即可。当其他的组件通过上下文的sendBroadcast(),

    sendStickyBroadcast()或sendOrderedBroadcast()方法

    发送广播消息时,如果该BroadcastReceiver对该消息“感兴趣”

    (通过IntentFilter配置),BroadcastReceiver的

    onReceiver(Context context, Intent intent)方法会被出发。

    通过两种方法来注册系统级的“事件监听器”:

    1、java代码中通过Context.registReceiver()方法注册

    2、在AndroisManifest.xml文件中使用<receiver.../>元素完成

    ContentProvider:在android中各个应用之间是相互独立的,如

    多个应用之间需要进行实时的数据交换,这时就要使用android

    系统为跨应用数据交换提供的标准:ContentProvider。

    使用ContentProvider时,需要实现如下抽象的方法:

    1、insert(Uri, ContentValues):向ContentPorvider插入数据

    2、delete(Uri, ContentValues):删除数据

    3、update(Uri, ContentValues, String,  String[]):更新数据

    4、query(Uri, String[], String, String[], String):插叙数据

    通常与ContentProvider结合使用的是ContentResolver,一个应

    使用ContentProvider暴露自己的数据,而另外一个应用程序则

    ContentResolver来访问数据。

    Intent和IntentFilter:严格的来说Intent不是android应用的

    是他是android应用中不同组件之间通信的载体。当android

    中需连接不同的组件时,通常是借助于Intent来实现的。

    Intent可以启动应用中另外一个Activity。也可以启动Service,

    以触发BroadcastReceiver。也就是说Intent是Activity、

    Service、BroadcastReceiver三种组件之间通信的载体,只是

    不同组件使用Intent的机制略有不同:

    1、启动Activity:调用Context的StartActivity(Intent intent)

        方法,Intent中封装了需要启动的Activity的信息。

    2、启动Service:调用StartService(Intent intent)或

        bindService(Intent , ServiceConnection, int)这两个方法

       中的Intent都是封装了需要启动的Service的信息。

    3、触发BroadcastReceiver:调用Context的

        sendBroadcast(Intent intent)、

        sendStickyBroadcast(Intent intent)、

        或sendOrderedBroadcast(Intent, String)

        Intent中封装了需要触发的BroadcastReceiver的信息

    Intent可以分为显示和隐式两类:

    显示Intent:显示Intent明确指定了需要启动或者触发的组

                        件的名称。

    隐式Intent:隐式Intent只是指定了需要启动或者触发的组

                       件应该满足怎样的条件

    对于显示Intent,android系统无须对该Intent做任何的

    解析,系统直接找到指定的目标组件,启动或者触发即可。

    对于隐式Intent,android系统需要对该Intent进行解析,

    解析出他的条件,然后再去系统中查找与之匹配的目标组件,

    如果找到符合条件的组件,就启动或者触发。

    android中组件通过IntentFilter来声明自己所需要满足

    的条件

  • 相关阅读:
    《JS权威指南学习总结--6.6属性getter和setter》
    《JS权威指南学习总结--6.5枚举属性》
    django的模板系统
    django额外参数的传递和url命名
    python在图片上画矩形
    当爬虫遇到js加密
    php基础-7
    php基础-6
    php基础-5
    php基础-4
  • 原文地址:https://www.cnblogs.com/heml/p/3558034.html
Copyright © 2011-2022 走看看