Android四大组件是一个android app 最基本的组成部分,这篇博客主要给大家简单的介绍一下四种组件

(1)Activities

(2)Services

(3)BroadcastReceiver

(4)ContentProvider

(1)Activities

我们先看看 android api guide 对Activities的简单介绍

就像上面所描述,你所使用的App中所看到的屏幕内容其实就是一个Activity,至于Activity的生命周期分析以及注意点,大家可以从我的博客《Android开发艺术探索》读书笔记之Activity的生命周期了解,今天这里主要是想和大家研究一下另类的Activity—”Fragments“

Fragment非常的类似于Activity,有着自己的生命周期,拥有自己的布局,本身可以作为事件监听器,在android 3.0(API lever 11)并没有Fragment,都是用Activity来表示用户页面,这就造成了一个问题,想象一下,同样的一个程序,在小屏幕手机上可能看起来非常的合适,但是你把程序移植到平板电脑上呢,这时候很有可能图片变形啦,感觉分辨率变低啦,控件之间的间距变大啦,为了给用户在大屏幕手机上更好的用户体验,Android在android 3.0(API lever 11)的时候引入了Fragment,Fragments嵌套在Activity中使用。先简单介绍下fragment的生命周期。

onAttach():当该Fragment被添加到Activity时被回调,该方法只会被回调一次

onCreate(Bundle SavedStatus):创建Fragment事被回调,该方法只会被调用一次

onCreateView():每次创建,绘制该Fragment的View组件时回调该方法,Fragment将会显示该方法返回的View组件

onActivityCreated():当Fragment所在的Activity被启动后回调该方法

onStart():启动Fragment时被回调

onResume():恢复Fragment时被回调,onStart()方法后一定会回调onResume()方法

onPause():暂停Fragment时被回调

onStop():停止Fragment时被回调

onDestroyView():销毁该Fragment所包含的View组件时被调用

onDestroy():销毁Fragment时被回调,该方法只会被调用一次

onDetach():将该Fragment从Activity中被删除,被替换完成时回调该方法,该方法只会被调用一次。

Activity,Fragment两者都有自己的生命周期,上面说了Fragment是嵌套到Activity中使用的,那两者的生命周期有什么联系吗?
API里的一张图很好的说明了两者之间的关系。

那么到底怎么把Fragment添加到Activity中呢?主要有两种方法,一种是静态加载,另外一种是动态加载,先来看看静态加载Fragment,静态加载Fragment就是将Fragment当成普通的UI控件放到界面Layout中,如下面

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="1"> <fragment
android:name="com.keranbin.androidtrain.LeftFragment"
android:layout_width="0dp"
android:id="@+id/left_fragment"
android:layout_height="match_parent"
android:tag="LEFT"
android:layout_weight="0.3"></fragment>
<fragment
android:name="com.keranbin.androidtrain.RightFragment"
android:layout_width="0dp"
android:id="@+id/right_fragment"
android:tag="Right"
android:layout_height="match_parent"
android:layout_weight="0.7"></fragment>
</LinearLayout>

使用静态方式加载Fragment,当Activity创造Activity的Layout时,它会通过android:name找到相应的Fragment然后再在其onCreateView中取得该Fragment的页面布局文件加载在当前<fragment>中,另外需要注意的一点是,每个Fragment都需要一个独一无二的标志以便系统能找到该Fragment,其中有三种方式来赋予Fragment一个标志。

1:android:id

2:android:tag

3:android:id 和android:tag 这种情况下,系统会使用android:id,其实和1一样。

除了静态加载Fragment之外,还有动态加载Fragment,个人觉得,动态加载Fragment更加的灵活点。

package com.keranbin.androidtrain;

import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; public class MainActivity extends AppCompatActivity {
FragmentManager fm;
FragmentTransaction ft; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); initFragments();
} /**
* initiate the LeftFragment and RightFragment
*/
private void initFragments() {
fm=getSupportFragmentManager();
ft=fm.beginTransaction(); LeftFragment lFragment=new LeftFragment();
ft.add(R.id.left_fragment,lFragment,"LEFT"); RightFragment rFragment=new RightFragment();
ft.add(R.id.right_fragment,rFragment,"RIGHT");      ft.commit();
}
}

Fragment暂时就介绍这么多,具体的会在Demo中讲诉。

(2)Services

看看 android api guide 对Activities的简单介绍

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA3cAAAC0CAIAAAC4xULGAAAgAElEQVR4nO2dz6vlxpn3B/xfeDnLWWaZ5ey8zEpkmVUxq4tXIquzLO+OdyfQECXQIDMQ1AuDgiFUg+EVXmkGQ0QgUEPg9nHbbVfiTEZNelHvQlL9UD1V0jlX995z+n4/GNz3SKp66qmnnvqqVDrnXzQAAAAAAABb8y+PbQAAAAAAAHgPgcoEAAAAAADbA5UJAAAAAAC2ByoTAAAAAABsD1QmAAAAAADYHqhMAAAAAACwPVCZAAAAAABge6AyAQAAAADA9kBlAgAAAACA7YHKBAAAAAAA2wOVCQAAAAAAtgcqEwAAAAAAbA9UJgAAAAAA2B6oTAAAAAAAsD1QmQAAAAAAYHugMgEAAAAAwPZAZQIAAAAAgO2BygQAAAAAANsDlQkAAAAAALYHKhMAAAAAAGwPVCYAAAAAANiex1WZqi12u6JVpxyUNd/xWt67bQAAAAAA4Hy2VJldybIsO7R98ixZZVnGG6W11qrdM7YTkjzROeheI6s8Y8VCJQAAAAAA4FHZTmX2bZFl2bLMdBXjWs65BgAAAAAAPB6bqcy+PWRZzvkuy7iwcrCX9f6GZVnGeNEcB7k4UkmtGj78Q9Z5luXDc/BBrh7a43hwdo2nOFVb7W9YlrEbPj1btzXazwAAAAAAwMOylcpUgmcZq+RR7Ixc1IN4ZLxsGnHIs4yV/3XsxCHLsl3ZdsfeqszhzJ1QWutuEJn9dLD3r3FUpqyG4oWoD6NK7dsiy9hetF0r9izLcnHcqIUAAAAAAGA9G6nMSWRqb1VSVswsO/ZS1HXdKn9fplGZw3W8UcNFh7b3Dnr7Msd/T2uevSkpr6Vq91nG9kKqfmCb9gEAAAAAgJPYRmUOa5ZlN/s3uZ0yojKH64pWit0oHZdU5nDco5Jaq7bgbPiT8VpCZgIAAAAAPAKbqExZsbney4rOX8vUSnbd7Im3pzLH1UzOp/XJlWuZzbRqOSxcTuuX6tiW+bi+CgAAAAAAHpgtVGZXsixjvKhHyn0+PsoO9mV2Wiuxy7KMF7WQvacyh7NnD8GHg+41juLsiqFi0baiPPBDo8YH9mUjpWzK3NkiCgAAAAAAHpC7q8y+PWQzNacEz8ZXzWfvmGs9fNs6yzJ2aJWvMkeZOX0TknvQucZ7DN/L+pBPL5QP5eMdcwAAAACAxwe/MAkAAAAAALYHKhMAAAAAAGwPVCYAAAAAANgeqEwAAAAAALA9UJkAAAAAAGB7oDIBAAAAAMD2QGUCAAAAAIDtgcoEAAAAAADbA5UJAAAAAAC2ByoTAAAAAABsD1QmAAAAAADYHqhMAAAAAACwPVCZAAAAAABge6AyAQAAAADA9kBlAgAAAACA7YHKBAAAAAAA2wOVCQAAAAAAtgcqEwAAAAAAbA9UJgAAAAAA2B6oTAAAAAAAsD1QmQAAAAAAYHugMgEAAAAAwPZAZSZRR9WffuiJ06ujOvES1fCskvdhzENANVhWGW9OdcM9sm24SrG/YdkVd9l2XFHoTnH6uCanIvEEy67I76eQ8M4ZedWwfTp6fP9bC+7imRnXlNlMsy9tsplzrSqzbw9ZXst7KNkZPX1bsENL9p499Pij7Tzuze6j2LGivRBjHgLbYKcZFzbw24LtxDF6+DRrZZ3nZXcv91iq4ZnPpYfF9YSuidNHNTkZiRHLqPC8Hr8v4jQv4R0yzSQ5Kx2dUfgjYSxYmHFOSG73mNm2xzb7wiabgCtVmUrwPM9Z2W1ftKzYST126vmXwuNnCYeLMuZ8LldlLnCiyry/tqmGX5Pf9FWG7uWa/ORV5iqgMk+y4BSVeVVZ23DpZl+nypR1zsWxK7JDO913qIZnZdMWnGUZu9kLGVx0bArOsixjvDDrk6ot+A0zn8lqWkHJa6n7tsiKTmtZZsVUjxLcOeSdL0vb1bLO3ZVWWWW8rIsdG0dFYMp4wvhhNdxNza4i7O9lvb+Zt4ksXLTDk4DhQ3fFyC877TniaGiCHfxhxeMVk311OZ7qJgyqn1KWmD682QvZr/E28Vk6fGSd78RofVuYblYNZ5UcjZ/5lG77Oqd6ScP+QV0xud98phqeFbXgzM87ppTQLhvEQUVul46FfvHFLHTohkhxyCPBSsfY1Jm0yrTXmvLmvRw61nYt248XdQUbxyUxdGSV8bqpjWuOY0nGYHKUrg3dwDzjhsXUFXpu0dTkwCSn54hDYlnJ/9CgGp4VwjFGydofA05wH5tiN55XD6OKcEUYnrYmymtz/zpjd5w4FOlSso/yw5BSorUlyyHT82xkzJo3eocymkgz/91wd2raMdur69LRzMJgXiBc4iaatEfGavr2kBWdaYqxcVqeIb2UdKHTxPjskY4ews5Y49d2/VI7qardpJ0cNbG8YSfaoYqkMx+Nq1SZsmJcKK1dmakanrG9OPZaayWCqapvC8aHo0fBh2jo22K6ou/KMf3IOp8unYa6aveTZJRVfmh7N3XZ80fNobXWXcHmc3yWl63q+7HavJK91lq1xdASWWXZaF4vq3xolnsVdVHfFtlgtFbN3nxGFp6Xw4jvyin83Rtd85ygl1WwQtyVU4nO1datgQle8AcV9+0h47U0LZ3lCcp+60bCTlnlYxVaNXt2aPtlbxOfLYSPrCah0hVZNmb2vi1YJd0G+4sHhNNXOZVWmWTj65ztm3HW5KzszDiQQ+vDImm7nBoph80Kde2jGqLavR1Y1XC/RZhKQapMe61WbZnnldSzMWUg40c1nBXdECtjRwluSjS97Q7CrsyzKbL7tmC76ChdF7oTpLsWYo/w3KKpVANTKnPRIV5WCj70+i+fVK3gWTY9gDRZ10ZinbPCjlyjMglXxNYyw1MJ/zqKbRKZyWAc+nEYaUexZ8Z3YW3JcsguIEaG1zxntM+NptJM3x4mmakEnyeZpXREdjp5C0IknyWP2KFqJ0Yldtm00W2cOKkZJOlConnOjEPNZFT0kCnllECjU2+8nVTVXtJOj5pY3vDTd9KZj8g1qsyunPxn/+UPDmqk2NlIllnRaa3Ezllv7I/dcVBzWTl8aP8pKzbK0kM+TSjjIed8s+apBM/jskG1e3PLY4740d0VWTGoJbNqRl2ku5LlZXvsbfuWCzd/OD5SgrO9kNP97XxbivOBu147mBqYQN5imT9Uu7d331pWM5VJt3OCsNO/UVSyO/aL3iY/WwifrhhHe7ETrdgVw3w7hEVMZVLrkaucSl5LN96ueIx1q4abgKSKpO2yn5I9MCvUKyNsiGr3ztn9sZOKNJVivi+zkrNmmiUD8ilRLH6U4DnnuTMsrdnGGt81TqdMZ5CjdF3oGoh+T8ce6blFU6kGLqxlLjiEyEr2Qx1cG/xh9JP5P7Ppd7q5iFy++MScarb1r9jtzArCcLeQCEa/Hye5R9a2FNSBS6mR4TfPpue50XSaMQtozhoH5aJIOiI6nQwOIvkse8QYN7VFiV3RtkVeS61Vw4cziRkk5UKqeY5nqJmMiB7azhMCjez6ZDvJqp2knR416bxhzko789G4PpXZtwd/JWVIVUsy4dgMz1WzLMuynVCePrT4S5nTWGyLnVDOB9S/TEDJKg+D2p8HPNj4QMNeE6pD8iKttepEwXOWMV40x1WFUypT6/7YVofdDWM3+2Gd0fO4rIeHPNSDh8CEBZXp9UyoMiPtNKbM7PSCYa23Y5+lwmdct+zKvJZa1nnRaVnnwwR7nspMODU2Jcw7yXkcNLBvFTlJnKIyqR6YFeqrzKAhsg6eYpOmBkZqKzdI270/aZUZjZ+uzLxlNy8fUCpzFkShynQU+JrQjbprUWUSnls0lWpgWkgsOYT2e3AjeILKdK7cUGUS40oJzoXSSuzsGm00GGfOSemApaAOXEqNDL953o2RZzSdZiaFND1XibkoEjBEp0cSSJB8Yh4hhuo4SyrBi7YfJtN+FGFaEzNIyoVU8zx/hDMZqTJJO09RmVTXp9tp6gquXKMyU3nDVQoJZz4aV6cylZi/hDpfPp7/oafn5WPQjctSqt275wzCn1zK1IOgaItpKYReyhwWM5vmkAeDdL66FqjbNWuZxAqVuVuZltGXCydVpnPHKPgsVyrBmdniEY7CwIS0ypz2uprPwrVMop1BZcbO2aaXcYkv7W3ys8Wl8LbI67oaUoas81IInkr/aZWZdip97WLjo7brWB6NrGUGPRBXmVRD5kX0w7ovvbZH1LRi4SFYU5suj8SPrPP8cOD5dKwrGZ8mocha5qLKJNYyE6E7lkT1++JaZtjORVOpBqZU5rJDNl/LdLcebqUyI+NKCc5FK3bjbUYyGMO1zLyOqsxUUBMupUaG3zx/aLlGR1Tm8IpA0xAiczEdkZ1OJ5Aw+axdy2z7wYtFXfNDOzwu5EJUxt5wBkm5kGqeu7ZLzGTr1jLb+dRBeHGx61PttFWvvWOyBi3kDWJxmtqm9Whcm8pUYthiZZC13SYSTdXudg2xHwNMCT59eBTjphrV8OmLJLz9FF3BmA0Oby+m88UTquGMUbsh/Pv2dm/GTi9FNaZes19HVjkbn8h6aim4yAk9K/HowiMqc/z6B2cwhyrT+XIH1Zb5bOmCMiGlMgfBH9+XSdlvoOyUVZ6b9zD2LFjoIR0XfraoMsfOnZJ2nTOTp/z0P/o0rTKTTnWllmqLPJgSvMZPyUe1VS37yCSxQmVOcUw6LKoyyYaodj9teuqnvZCEqVorKd12+033vGXK6+yGXEJl0vEj6zwv5fD/Smpv/1IvxZ6tV5nhKE2GrnkoaltCuCsde5TnlkwlG5gQElGHkFkp/NDrv3UqM7ovk1aZwff70JN/ZFwNg9esZZPB6PiCuSlltinSrTpVDt0FxMjwmjfrS9doMs1oPU5OlKJYSEd0p88KH6sIk0/EI9RQ1VrLyk6gfXtgbJrFqRkk6UK/ebN4JmcyKnoidq5fNI90fbSdTtULSZsaNQt5w+hOwpnzFPQYXJnKnL27rfVwI3Jo+6VUXU/vb9XOO8LTi2P2fSwpdiwLVwVV4+ztdg+Z84e/yox8r2EevM77YubZp/Pi5hiys6uCi7RWXWXeKKNesrSFE1OSag83k+1SmGuqLlg4GV9NvDkIUTB/lwlhQlplDgljfH+u4MRjGqKdjimhneYd8/wgwmojBc4/W1aZWomd7Vx3V5lzuvVpWmUuOFWr5nATxCvVePedQrNn4nSVOY6P8f4icFhcZcYaMr5J6w6twFQtK8Zmo5lUmfba2Tvm5EJS0LWCGylkZvZx6GeMV6Kev5cyL95dywxGaTJ0QyMJdy2voxOeWzCVamByuSrmEDIrBR/aYtarTCf/7otil1KZfngma4qMK+c1mYhLXeh3zCnDUuVQLiVHhtM8r2N9o8k0o7XWuisi2zOW0hFp4azw6Zp58lnyiNdArTsjGCcha9pFTWJJF84rdU2hkiQRPRE7T9iaEen6eDvDqumkTY6adN5wJvXAmdE8+YBcmcq8bMatNGdwCaHwCDzRZoPr5ORwVQ2/n5+OeBjI9t7LmFUN+c4aWEVHPS4HQF9ICoLK3AzV7M/+mvgnJLfaYud889DjjwAAVnLqKO3bIvLTYdfB/arMo+DxJ+9gNeNXOAMQchkpCCpzE2SVZYzHv2x6xfVPRWXGHqkAcOE8pVGq9f2vZXoPpjcp8akhK3aneQeABwAqEwAAAAAAbA9UJgAAAAAA2B6oTAAAAAAAsD1QmQAAAAAAYHugMgEAAAAAwPZAZQIAAAAAgO2BygQAAAAAANsDlQkAAAAAALbnCavMyC8+3zO9Osa+0jhxCNw/6qion4+/M/f5Xd7vQwyPv1X84N93bvrlMsadsWKrPiXLuZeAWV/og8XrySE6jf4H5jEG8IP+uMBjje513M0VjxQz18eTU5nOD8s/1AB3KzqKHSta8jTn0Mrgf2q/RXKvtAXbiaO+BpX5PsVw3xYZF48RxJOBieY8INaKM/tU1nl2cH+l0SnnngNmqdCHideTQ9S9wIz+BybtkA3dRUbDnYta4vFG9zru5IrHipnrAyrz/jm9IqjMRwQqk+DeYvhxVmO1vtzRc55HupLlee7O6E9ZZd7PBffAe64yL8HFKS41B7xnXKHKNL9+e7Mff8BVVhkXrRh+Hdv5cWzvd3L74dfGR3ijVMOzshkW9G1Z7u9su+WXdbFjsxETWqKHRwTm8l413NRZSTPs+vaQFd1UYXtgZTcd8oz874rl9VR0VzhDwm+LXv55cCkOOcs8BxGXqIZnhWisU9R0zniKanhW1KOvbw7mXo6snnJQ6F6H6aC1Mta3RC+4FqaaQNZjE04q86yOvb6rxvrr6hCWhxiejPKDOGhuzPIxDDkLot80g+hjsl/MTBjrSllP8VWX4aRJu7pubMwdj828g0Lb7HzszMxk51AM7pdiZz1N9sWKgPFSgWms/ePYFLvx4rqwHqQKDbt4fbw63EeIzi9wBj1lS7QjZJ3vRmXftza2VcOZcdcsoL3QdcVfzdnejo25heTYILsjaMKsqMVU4+be2chbaRXR9ZFz3TrWZO50VBj88Jhd4de+yhWxlN0oNwS0lvV4p5eIaG+CsX+smiznee86uDqV2ZUsr2Svte67MmfT9JDlZau8D/u2YHnV9Vrr/ij2bOwV/76a7cWx11orwSeNUefjWO9lzVnZOeX3/ZIlWlb5aIlWzZ4d2t5P19O/+7aY8l/fFqzsInebss6niaMr2SyynHC1ZmvVlnk+mwtVu5+a2nfVUCR5iWp4lk8Tn+BZlpddr7XWR8Gzopud0OxHAUGWJet8vLqXVT66knCvtVKYPGs6hOxby9DLstdaq7ZgXKjlJpD1rFGZq2NPNTzj1t3z8hDDTp87BdPNJS0fGy6HT4kGk31M9ourMqkuOGS8llMUZ5kfgDFXm1rKPJueGfZtwXZC0bYRKpMaPzSqmRrtyMzoWmYqYGapIFCZss6ZM/qt7WGhjpPOiFfD/YWoe4Ed/VSHJjpCVmw/GNIVWZYVbT/WNVYfBrQXupMNqtm7EjPswsjYoLqDdKcfDbFU4yXSSM5Ytoo8dcXoXs7c6ahwOiUIj3Tty66g5rLK+HuSmZPITEY0qTJXTpZ+3rsWrk5lase9sjRKJOg21e7dwDSREHl6Y7JoxeyNif2Q1B2kJe5AU7I7RtKf1t2Y/6bsF3mm4RgejGFnInfN9m/htdZatfuslObwsZMqcklkAcPxq/cMZJzWImUJzvZCTktC/dxO4nGKdSnp+6Aj/F4eDi82gaxn1VrmWbFHlIcYNjhXRJpLWq4abiOajqqwj+l+CSPAOara/agcxg/9iF129eRVv62EbaH4IcYPjRJGSwg7pS0/MScDJpkKpLsurZpAIc9r8Hy5qvrw8nsLUUplkrYkO2KqoCt2ohW7ou21lhUrulhAe6GrGp5VrayCdYFZM+iiyO6g3Rl7Yp5KWZGcsWQVeeqa0b0mc08QUWE/CMNjTW5JuYIKAXOxErsxv00iMxnR5JS2crL0gudquEKVKevh0a9diidjxe9bYiqJZLzMZ99GR1toSd8ST0cj6U93JSs7rbuCBUnPrXBKKHUelOyqTK/eucGynj8ojV1yqso0T+XI6vtjWx12N4zd7IflINK9DsdmeNBBPsqiVKbzACfLsixjw3OXpVwV1rNOZZ4Te5TKRAwTBUeaG1WZbr8SURX2Md0vaZU5vySYMBZcTc+iKdvcpaL5+CGRtV3MUYJP7wCdojLXpgLvzO1UZjIp3FuI0iqTtCXREeO6ZVfmtdSyzotOyzov5qurtr7ABzkvi/1uQWWSRZHdQTdhSWUSiXSFyowkKOqTFaP7JJUZplBziAiPNbkl5QoqBJywFpwLpZXY2SXSeERH8sOqyZIYXVfAtalMJTgzWyWc1LBiHWh8trt4Xx0OLHqeoy3xLu/n6d77d1eysm2L6W40mgfqfCcaYoJOr2V6r5t6a5mDXfQlm61ltr23YiP4OAET7jV0JeNTEl+/ljm/tVvOVVQ9K1TmmbEXGo0YdkxIrXYMOztWqMywwVQfn7GW6Txy1aTKXHI1NYuSthFTdzh+KLqSzWajcYXlLmuZkVTgrVZtuJYZTwr3GKKRtUzClmRH9G2R13Vltg6VQvCxB8iADnxQSq1Vu2f+M+GZrWRRZHfQTVixlhmskZ2xlunsC57VumJ0r1eZZFQ4dgfhsSa3pFxBhYBzsRKci1bsxhu89DRH54d1kyVU5kNgty9o1ZZ5fIZ2N2Jo1ezZuDlKVtn49QN0TMsqz83+97aqxzcuiLmEskTLKncrNbeR09dqzGdHZh95+HnA+Y4EJXaMUWHrnObsrOq7cBOXas22n356PENeskpluntegn2ZtixnMnVGZujeCedrL3op9myFytSq3ZtKeimqyBqMdzlZD6Eyxydx1t2rY081qX2ZiGG3A53C6OYuq0yiwXQfk/2SVJm6bwuW2pe55GpiFiVtI8QPNX60ktL3RVcy77ti+vYwlE72RSRgyOwhK5YP020vBR8fLcT2ZS6ozJPj1Vx7fyHqXuCM/tAWsiMsquGMTavJss6Z0exkQEe85aRot+TJwsjYIPdlUu50iqJTVphIUyozaZV/6vrRvV5l0lFhD4fhsSK3pFxBz2We6Ywx801iqYi2d2daq7bIg5WP1GQJlfkwSPt+sxh308fSOvn62/DG6Hzx2fnDff+zOc6KXLBEa/t2W36YXhVT7eGGDQvvs9nRvfnzbq0nI4cjYkcvr7mnrXzH3D28/sVS6wTVOO+Y70YHxaqXwrw2V3WzSq17LeNX+GaMV6IeNnwvqEztvZtXy/lzKjpXEfWEKpOaLlfHnn0xuRI1nxuNGDbMvBx5D3RBZVINpvqY7Je0yhyU4PgOasHnKnPR1eQsSthGLrGF40dWjLnLRX178L8lU5NrZqsDxhu+4wv5/tv1yrwhXhS7dSrznHh1Lr63EHUucLqJsoVKZBYldva23tsrGXvHnPSWaoPXZxwLI6mA6A66CbaoxVTjPLIlp51lq8yZJ43u9SozFhWOiUF4LOaWlCvosehcPH9+mIporZrD9Oa4/WKAVZMlVCa4J8x+jwvgOsP8HGTFinaeNsGZXFIMn010M8WTZHraCy4CdAe4UKAyL56+K/P5csXj8WRUpqz3T6KdD8JlxfBJtMUu2CDydDkKPn0jmqxy3IY9MugOcAVAZV40qt1nbEc+AX8knozKBBtxeTF8GktbUZ4Y3nPHxzYGoDvAxQOVCQAAAAAAtgcqEwAAAAAAbA9UJgAAAAAA2B6oTAAAAAAAsD1QmQAAAAAAYHugMgEAAAAAwPZAZQIAAAAAgO2BygQAAAAAANsDlemhjuq+fz3h9Coe9YvQe3VUj27EMg/023+TNxZY3ccP5dX7ds/4q8KxptxH9e/Xrz1uHgjGPW7Iet00/gL2e+REsMRCn1/amErlUfLYyvwcRYpCHP2yL9llk52X1m9zoDJd2oLtxPyn7R+pChs5jynwjmLHivaRjVjBw4wz440068PoclXmKZbJOs/Lbp7znTo36537KDNB3x6yh/lNyXtTmU7Iet3Ut0XGxcb+u/AkEee0YLrWZtJ97rTmEtSKY0Mqj9pjzgUr83ME1e53lfTrJV3m9v9juszYeQn9lgIq81K5DJVpuAgj4lz6OIvwnqhMsvTrV5lK8DzPWdnday1DVfe2lhn56F4i78KTRJynoTJpuy9XZd7TBTR9W+RJ59AfXoLLLsOIBFeoMu3vCu+HX25VDWf78ReGu4LltdSq4VlRi/G8g7khCq7Vssp4WRc7llXS7S36TNGOZdqfNJbikLPM+4i42DBVoRqelc2wGh+cJqtsgjcqdmqilpj9dVMb+4/jT+A6l08X2caYAUUOt/D8yZ/Db+vyquujHxJQLTI/1Ou2UrUFNyf28c6xeL/32xtTqWvMqUE5jhNIs0aW+vgoDmOdVbGbCqTC+oQYJhrSd9VYc10d7P3+vHXh1arhJv5mfR64kT7XD+CogakADn4/fF2ZQftGN3I2eIAI2Riyzrk4dkV2aG3Apvo9LNtL/65EnieNZDpIVuEdDXt8DFm/m2auXHQaHZy+vWuCxjSMjO1YwFuCYR9NQalcMDMn7oy5uZxl/IsvTmgmYYlqeFZM8aTEjs0KmUd9PDTSoycYqEEzp7Kd1pyQEclAjGfOyAWzDiWGeKO0lnW+M+uJss65mI7NLnAnqbU2W0+YpxamXsJl8zA/fRKhDqqGZ4Vw5mMl63mRdHg1SkdU5maj7u5cncqUdc72U+bj4zqDajgrOq1lledGE+WmB/dsCCDqWlllWV62qp+0ytBtiTO11n1X5qySWqt2z/bi2Gut+67K49VY+x0FMl2qBA+jxF/LDE9N1xKxn0+2lnk2PQno24LthNJaCT5eZKtJqUzqfK8WWeXDDE1+uKpru5LllZxsHlOyrPKxI7Rq9uzQ9mTnWPq2YPkgbvuj2DNranDNcOogoNqC+U9LjBPsw8deVsFqV7qPZZW7oWkKnLf99Bj2GqIabru7ykeNRbSOdh11V0G7cd1aZlhFMoCdo1q15TisF8sk2jd2glR97z0AU82eJR8Zy2o47srMVL9TZZMqk0oai+lAax0ZcfYo1eOxlSrn8yWnxYIztJe8FaWGMBnbdMC7HRIM+2gKiucCsgsd18TMte5Y30zKkr49TDJTCR4aF0T9Gek/MlDXrGWuy4hUrKczJ91RQYfSjyscmTmKTOc05wLTlLU2ux7Lysk1VIkRj50xiVAHvdAXPMumrS1HwbMiNhGmVOZmo24Lrk1lyorZ2xqnt5XgOefTZDQLDiV2eS3pa8l5YO2Zqt3b2NT9sZOxi50GBNmfjuXIE3NrTaKWFfaX/u3ZcHVv9zyPny2sZQbnzwK+K7Ji0IDhh3PoFtkqjM2yYk5pSnbHnu5Gc0q7H4bqeHjMWdQ1/qlBQcYbgrO9kGruBv+y9R1HfXi3GCYbQn5Iu466q6DduE5lBqoFJlMAAB+aSURBVFUsDRPn6DAzd8tlUu1TDXfGaFeyvGyP4zpY6hWtrpxmB/uvdL8TZceMDJLGYjqYTg9HnPmADN1llbnotMXgTCcJagiTsU1+aKGG/XIKCmKT7EL3rIi5tsvWN5O0xASzagKRSUX96ek/NlBPe2KezIhhrKczJ9VRdIeSQ1yJ3dCESWSmVeZamy2eLSeqzNMmEToxR4e/uToVXlQC3mjUbcL1qczMZ3pUrrsys2sOM9cNf5HXRlTmujNlzcIYjJvoVnF3lZmoZX1L/fKPzfAAwz4QSE8g4fmzgKeETESURFrUy3p4uGgeXPTtIbw+rTJ925PizHkgkmVZlnnzgLsAdGyrw+6GsZt9LU9TmcRcT7X9bjHsX51q3XqVSbvxbJW5ZpjM/lxSmUT7gim4EwXPWcZ40cSfDnlB1pX2Dj/V72HZZMOppLFWZRIjjiziFJW55LTF4FxSmcEQpvMz+aEthRr2yymIiE2iCz2VuWTu+mbSlozqsW+L+eNyMupPT/8xc89TmZGMOI/1dOYkOirSofQQV4JzobQSu0BbUipzpc0Rz99ZZaZcQR5cozIT4UWqzE1G3TZcn8pkRGRqLes8Pxx4Pt5xxtaBwmtja5mrzvSXJcb7h5iJfikbrGXGa1nfUrfIrmR8Srtr1jKp82cBf+JaZmC0EpzZHbB07/SzO2BCZQb39nkt1yw0zSFXfQX3BdKiyqTXMsO23ymGo2uZQevusJY5aq9z1zKTwyRY1Rm3XiRVJtG+WUNMxxEPU52LxGwqmCaKZL+HZa8xsp+2ty6rTHLEGYPusJaZdNpicCZlDDmE776WObhtOQUlF9VMF7qrZovmrm9mxJK+LbKiaQKRSUf96ek/NlDPXsskMmIQ6+nMSXUU1aHRIa4E56IVu2khaXEtc43Nls3XMqOuIA8uqsx0eIVBvtmo24RrU5na2dWmVVsNkSvrPC/l8H+T7twtH+OeNuJaOhGsPVO1+2m7SW82hZIm6lkVa1Tmzu7PDU9dqGVtS22Rzr6VXopxw2BiAiHP17Iym4h6WeVsEgfhh+OzwqTRzpevqLbMnd4ZXyFSzZ4lF2onU5l7xfyhi9sv7d7kw16KyivHOMFJmqeqTE3vywzbfscYVg21S49oXVxlzr8UhHZjQmVO3wcSuZVLBLC7Q63v3P1zyTKJ9vmdYJOvs4vqKGdfvafEsM/bs6bs0v1Ola0as3tStYXTCfOkQYbK9BDR8T8x4qwBZI8vqsxFp8WCk1aZ86AhhzAZ23TAOyUFwz6aghK5gOxCG1dRc2cqc1Uzo5Z0BWOMuMehov6M9B8ZqHGVOX3X1dqMSMZ6InPGOirI4/EhrhrOGLM7pF2VOV1gA3GlzZ6BJ+3LnPr/jEmEsm1JZabDK0zA2426Lbg6lam9N8WGtXrBWWFucfJ8XAY2L07t7PJ4cG00Eaw+c3xd1L4TSF5sWK0ytaw5SzydStZySkvdsWleAxf1sOs4vUwRnq9l5b5OPg6m6IczbUK0SNq330Rh7vTNu4n5YXh/bmH9IvqOOXWN83LeTPq4U7YwJ1XdrK6lPj42xc60Kdqbd47hfoigsXuirYtcrdrDDZs/9qLcGFOZNoATBsYDmHjbdk2ZQfvmCqGrTJ3j69Ltnh282wS7SmuNaQ/ji2yJfg/L1lo1h+kl2rqwqzTzpEGFCrmcHI4432XzHl+hMpedRgcnEdpk0BBDmIztWMD7zfeGfTQFpXIB1YU2rmLmum1a28y4JV0RDC3f0+nQIPvEgxqokTVy25oTMiIV64nMGYncsEOjQ9x9bcq3zl7gNnCtzdaxwTvmUZc5/X/6JEIdXPHEPBVeVALebtTdnStUmWu4n+0FYBlScVAfusMaECCGnziyYtTOkveBxQeR7ztd+LgcPC4d9X2Z7xWPNuqgMsGmrFWZfVv4C0hgBmL4aSPr/Xvb/U9cZSqBO+zLQ7X73XvdK1CZ2/J0EtalsXotEyyAGAbvK09YZcqKZYxHv3YfPCbj75i/p0BlAgAAAACA9wioTAAAAAAAsD1QmQAAAAAAYHugMgEAAAAAwPZAZQIAAAAAgO2BygQAAAAAANsDlQkAAAAAALYHKhMAAAAAAGzPe6Ey7ReL3tvXf6ujmv3Wm2qKKviB0ivnaXwv8vvOg/ViOCgMvTqeNgxPvuCRg3Vq+wP94AB+1+AxmYIzEXKnx+8Kzgvx8SfD7xAv78E8cClNSOTIpwNU5iragu2GHwVwalDNwi9SySrzufSJ4lKG5hPjxKile8kWcq+96NhqB0XAUexY0Z5gjL0gjVPcowarafs9yj+3geurwRjeHBOccd+ujd/TOKcv+7bIuDgjIr2Z7RJi6E5D6zKakMqRF2Pj/QOVeSJeDUrw1ICWVXZdUfRkwv6yuFKVuYqNjbkUlWmAynxCPLRvz6nvbBuhMh+aa7BxE65QZR6bgrMsy9jNfvw1WFJl9rLe37AsYze8aJXWWss6342asG8Ld0ixSlLlWoZynbXJaUIXPI8vZ9IqMzRMq4ZnRS04C4aVMWo8V5Z5Ps2ygrPhw6lEc9ZgcN2MFfGiPY4FmcbJKuNlPRVedb3vyLBmCqJir/3ikM+OhleohmeFcKxT0po9u8pYP3NYquuoo9HGF7UYKzqEd6CqLbixoo+1R1YZF62YNyFmTRhTgbluY/+n4eZ8G1p+IarhWdm0fn9TXlzsylkHzmwdB5szrLSWdc6FGgNJecaqhmdFO/pNiR1zh4aJvIT7/OL0Wc0MwvqU8JuNr0ZpeiqMBHkQW2QYkm2NuWVW0/wql8RgdDLReXnDc2x+MKODGpdE9yTSSCwcgryYzu1uccnmkUab4IzLgjXxG/XT6NMdG4o4isN4dVXspvpCt82umj6LZZNodcR1kaGVGFneMLB/rAoAavYLGkLEKulVt1CiCXTnOrWvzB60B8KB4Up3b/qgBnjgwHlgrJiSL5KrU5ldyfJhP2TflTmbDX6b/Ouc7Ucl2E7KTFZsP3RPV2TZOOX1bcEqqWWd52XXa617WeWs7LxabQzMZhVvip1DqUzSMNXwjO2FVL23h6Nvi6mxqi3YsGwqy2keHxujBDclCm4nv4yL4+SnbHqI0rcF2wnlnyCrPDu0veNIsuY5ZMX2aLtn+8mCKs9rSV+hGp7l02QseJaN3aCPgmdF57mslzVnZTdzGBUSFupotPHGkGbPZrcPssrz0h4dLiHaI6ssG08kzCHDzI0pwtx5dKxZy5xc70RE6MV0V1Id6NlqcqEdA6PIdEx0jO3bwyQzlfBnf2+WTrhvvpZ5YjOJsF4Ov9j4iqnMxSA3sUWGIdlW2i2kZWR0UH0ZSZHn5I3RsUNcH8WeTXERxDrRPc4jXtXsZ7mGbDeVnVK53S8u2bz0/LJOZSbil/STuabv9ZBnnEgZSyWi2ruKsGRddZ5v3LXMYGglRxYtktYFQGT281INFavOmWFFZBNinWtqT7YxPdHQA8PJE8T0EXtY4ahM01OrpuQL5epUpnZCUZY2h/sqU1bMEX99exgmjK6Y/r8TrdgVba+1rFjRjRlbSBVUot1yg1klueg925c5rP9QhqmGZ2VQimr3g7kzE7qCcT5pTN9a75baBm1p/5jO8NvRFVnR9uZgrOY5RMWu8bZJ/bEbXBte4V3p/TGtlbkuG0/wHUaEBGmkOZps/FiR2HkyU1bMuUTJ7tjT7Ync1ZtiiTDzzgrNnUfHSU/MrVmhF2kvTS6mO5BQmVqJ3VD2JDJplWnH4XyJKRq4oYSLPDFf1UwqrBfDj/LN0lpmOshNbJFhSLY15hbCMio6qL6kM9GZecNz7HTbQcQ62T1dyfKyHcbTPPNS7aazUyK3x4ojmpeeX1auZUbjl/aTdxrpociHZFp2R8hydbRvqEGRTiBks1cGAD37+ZMuOZ3bNocV0eM60rlT7euTZDjR0IPZESTh9LFGZdqV0HVT8kVyhSpT1sOjH7ucTqlMf8Vx/HO8t+3KvJZa1nnRaVnnY27vj2112N0wdrOv5y+PR1UmJWvcq+ZxShtGZy93UT3LsiybZmYleHbjSKBjM6zFO4/KosmOzlEzO6I1zyAqNiXWjErI4RUrVKZvS7ZvfW1AhYQDcTTZeMKSIbNR/Ry2Z0EmUWHmq8zA3EAsnacyQy8mGxLpQEplTvuTldgFJnjGjPNDsMS0pcpMNJMK6zUqMzW+qHy/EOTpMUi2NeYWwjIqOqi+pDPR3fLG3PAg1iPdozpR8JxljBeNv1GFVJlkdkrm9lRxM1+n5pc7q0zaT77KdC5JRvUKlblcHe0bWmWmEkjsLmhNAMS8Gp1012TViMpMiYflJJmaaOjBPP6fnj5OUpkrp+SL5NpUpt2MqJ17pjVrmdMjlLyuq/GBVZ2XQvBwWUDweXidv5YZqEzKsIjK9FYgtL2oYPvD3twbdSXjk15ZTnar1zKpu0sfsuKY8X0fuWLNWmYwQN3zyJCwZ1JH77yWOUYL1Z4FmUSFmZtMCHM3UpmhFy1EQ8gOjKjMQWa2Yjc9842oTN23RVY0TSAyt1zLjDeTCutllZkeX6GJi0G+2VomadnyWubQl3QmOjNvBItmeS2pWKe7x5wXPoiMrWXSeTGW25PFec1Lzy/br2UGcRBbywzdds5aJhF2VHmRtcxEAqGbvS4A1qhMejo3hBVRTVgQD0tJMj3RnLKWOdp76lrm8pR8oVybyrQ7MLRqyzymMt2NHH3n7LNUDWdsSmSyztkUvk7GXlKZ7lcT2D1p/VHOvxmLUJm0YZFxptq9MaqXomrUoDGHu6NiKMfZ1tRLYTbyrJgtzE4tWeWs8DaKUDXbx8QDdMWe8VNDZZXnlaSvWJ7mnZ1KWrVVLX1FSIaE6+/waLTx7tYZYl+meU9oz/atotuTlklkmDkxRZlLqczwW1NsIbRHCS8a6I4JO3Bmqx9WjDGzsdBXma6xXcHsAPTbtFZljsWd3kwqrBfDb2F8BSZGgzyMLTIMybaSbqEtI6OD6ksyE52XN9wNgNpsrqRinRrLdvJepzLp7JTI7QvFec1Lzi/OIm0ng7hcEb+kn+bXUPsyiaheVplrqvN8M43syA1camQ1ZmO+aos8uAtKBkBcZTppkZzOR4iKSKGcFg8RP1t70hMNOTCcPBFMH95QJR3oRSgV9ITouESuTWVqLe2bmmLcsk2oTB17KU2JnY1RWTlaQgrz/ljVxbOTrDkzS+mqmd4xV+2eHcIXJInhE3nHnL5Hdl5qq2WvdVcYi1Uz7v0fv4U3Y7wS9fTGzJo1CftK3DREHTvmNRNGUhV77R9ea3UbGl6x5pGl+xJqcwxsIULCsyI4Gm28eQ94N390Nxp/w8bXNaMeWJBJZJi5MRWaS6wTH25Y8MjEFBLzaODFWdvCrgw70LXVa5y/wOAtqPjGdgX1sGetynSKO6eZYVivCL/k+CJNJIM8jC0yDMm2RtxC9hodHVRfRt4xPz1veI513jGnYp3oHtVV5qPZq7sxe4LspHUqty8V504hifmFjlIdPULpuchL385px6bYGQviUb1CZa6qzjrHjOzIoEiOLNUcpjeoa/OS/6oAiM5+blpceMc8qChyD5oSDxE/e7XEJxp6YHirkcT04QxVwoFhYMymZEJ0XCLXpzIviYXvy7xkYqkmdcV8seVqIRuf3PwAtqILH5e//yxtcrgertHmzbGLCwAMYGDEgco8H9Xsr1VjnjEoZL1/b9QBVOZjkf6C2fcWqMz3ib4trmEFCTwkGBhxoDLP5cp/x/xJDwqozMdAVixjnPiu4/cfqEwA3mswMOJAZQIAAAAAgO2BygQAAAAAANsDlQkAAAAAALYHKhMAAAAAAGwPVCYAAAAAANgeqEwAAAAAALA9UJkAAAAAAGB7oDIBAAAAAMD2QGUCAAAAAIDtgcoEAAAAAADbA5UJAAAAAAC2ByoTAAAAAABsD1QmAAAAAADYHqhMAAAAAACwPVCZAAAAAABge6AyAQAAAADA9kBlAgAAAACA7YHKTNCro4odU0fVn1TYugtOLtZDVhlvoiY/DqrhWSUf2wqtT/DOA7lRtQVn2eX12L1xieFpuWzrzuCeRl4qK+pzMthDZoh/Hv/yt4j1kUNv/iZ/fHfXajeIrYsJT7L/L8Y6cIFcq8rs20OW13L7gp2UdxQ7VrT0aW3BduKo9erxZS+4+1lRHmqsnzIvQGXS9G2RcbFxLT9+9vz2Z1/+uHie/PLVvz7/Tm5b+XKtFz0VXbZ1Z3DnkUcWYLMieXh1BrPuPt9O9dXxg1+/jqRow98/K28/+ZPWWut/fP/xs9tf/YU6yz30p9cflN8dtdb6/37/u9t//8PfzjHO5T1SmfSseCnWgUvkSlWmEjzPc1Z225d8asq7pPEFlZnislRm1C9vX764/ej5Ny/fLlz/q1+/buYfnq8y2z/cfvqnxevuxiUNlZDLtu4M7kdlblX+Birzx988v/3Jr29/+XV6qDgqcyVWZW7Ee6QyaS7bOvC4XKfKlHXOxbErskM7PZ1RDc/KZngGyW72Qs6vOTYFZ9nsoGoLfjNd0auGZxOVNNlP1vnOLDrJOudCjaNKVuZ83ihZMbu82hX+sLPDsJf1/oZlWcZ40c4G5nSWanhWiMa2Ro0XTdeohmdFLYbPbg7j6oE71qdqTHtllfG6scUcj03gLfIi0Qqn7pmTPNfaBh3FYbykKnbBHEK6gOygZO/Fi/OS3vTH3AHmuDjk0auJiinrV9nHbpwanMDxTn77/S9/96Z5efvJn9LP6X745FmoMs+n+fy0mZj2uR8qw4ldNUZZXR381qqGZ8U0gpXYsUpqx5X5QcjhINmdLkEXUgYupAiy11M9PI5BzjLeqHThi+NZU1GiZZXxsi52bBxBhFmJDgkq1cmKfAf/TzjMbVMqSWQB34tJf/jhHzs1SEYz/vz6J8+/7b7+5oP/fOM44++/f/Hq357dfvDs9ud/UOrNdz97dvvB8N/nP2j9wyfPXn325l37xe2/v/ybW44cD+nm8+n86c+fffl3rbXW/9vUtuRea63fqT++/vmvbz94dvuvz7/5/evZgI1E/qwTqdmFarvTRUQH0vMBUY4XtK61x6bYjSfWhU2YwbBz7gnoBqaCFDxJrlJlyopxobR2ZaZqeMb24thrrZXg8zHUlSyvZK+17rsyH6YzLas8L6eMvGeHtvcGkfmnkwimNGAHoDMUZZ1PMrMrmW/BdJrzoFQ1ezZ7ZuoO5XyaLATPsrzseq21PgqeFd3shGY/ylvHqjpn+2bMV5yV3ZDa+eCgvivzbDKjbws2NC9y0egjx3Hu6kPfFpNrVVuw0Tu5a9xMZSrBx2qcnpJ1Praxl9V8lZrsvQnKozGVmU3FHKeKVbufwqbvqqH/7NVExWR1KeOtV7VqyzyfR5dP//U3P//y71q+/unnP0yf2cnsg2evG+1OhGb61PpPr4c/p0lR67ff//KZWRN9+/LFsOrzwyfDVWa1Zrpw+u91o3X/9Tcfvvh+HFs/vvmP2XNJqgvJUFENt0FX5bNh2beHSWYqwVklx2jqxj7aj4MorTKpLqQMXEgRplwqoqkIHMuTqu+XCl8cz3SUTC7t+4hZyQ4ZTJrKLKYyIxURDiZD1H5IHnYzWMLZ87XM8FQiGXm8az6//ejlj/rt9x8/O74YC3/b1rc/ffH98Z3Wb//2WXn7i6/+4a9ljlJSy9c/+e23g+3tF7cfvfzRHtLeWuakMt+1X9x+WH4n32n9o/r0+e0vv36rf3zzH89e/ebVP7X+p/zy1YfPv3WdQUc+0YnU7EK03fiL7MDIfBCW4wWt0xt1ztyMvUJlkg1MBil4olyjyuzKKXrtv/yUR+Q/Z1DJchpErhJUsjtGVKZWYmd02FAhqTJtwvCL9k7rSpaX7bGfW+WdFW/NeIbfQiV2vjySFbM3yOO5fs4o7R9mzXbxImL6Ue1+mCadM6iCPGyzbc4SnO2FVPMTgr9dywcIj0bXMu2VXZHtW6XafVYa6/pjJ/0TiYqJ6lLGe84YdFUX88swd/7mldb6h09+Owm7V99+9Ntvfv969liQXss8fvnKqkyrLLV++/3HrlJ8893P/GeC87VMR6Gqr44fvZw/hQ+7kPI5FR1eKZM7VMNZJWfnm/GUVJlkF1IGLqQIM/ZIm4lAUA23FacLXxzPdJS4TV10Zbq901rxckXbqcxUPo49MU8lI5e33//y2TBS3r58cTvF5w+fPHv12eupca/Vy79EVKb+229+O1z+109/PY24lMr84ZOxOq21Pn756oPPfxhs+OVXf1Nv32n9Vv3ojnu6u8hPg9mFbLvNYlQHkvMBVY4XtE5nOI/hVMOJhDnvWLopC0EKniTXpzL71nn60JXT6FhUmbIeHqqZx5ReQQZSZWolOBdKK7ELtKU/FIdpUdb5vGTnNNWJgucsY7xoZpt/zlWZ84neeSQ1sG9VdKp2rl550cxJHqyS3kXUDHNsho0K3hO3/thWh90NYzf7Ws5VZtB7HoFHV6jMURDX85VW/2qyYqID48bPUm16Crfi8u3LF7efSq3nwtE5c1llav3n1z998X2vdf/1Nz/94q/280WVqd+1X9x+/PVbrf/x4j+JTaJhF5Iq02skMeuMs2TfFiwURkkBayC7kDJwrcokIpoMhHh556hMKkrmozQ0a3V7ydtGuvoLUZlhMnKt+OpohGD/9TcfDndQ6s0vjFK0kCpTy5e3H738Ub/69t/HcpZVprfkP5zw5vtf/e7VT5/d/uvzbz77i6cyycinO3E+u5Btp7NYcj6gyqHTTpCxV6hMqoFLQQqeJFenMpWYxXFmH18lsrzgzOwSce4K3fE6LkuRKnNIBK3YTU/oIypzkJlNKDKd08yiA/H0d8O1zIQFsz+c5YOVF83WMuf3xgvrEF3J+CTF7FFnLUZwf04he88h9OiZa5ljUbadZMVEByaMJ9Ye2p70i9b6T68/dGayn3zxV31Hlal//M3z141+13z+yqzEaL1GZWr96tuPXnzfqzefvAzesaW68Jy1zGEDQtE0xTiKg7XM2RYGohSyCykDT1jLnEc0GQjbqkwqSuZrmeEi1MRiexNrmbOKLkVlhsnI8uNvnvua79mwj9lby9Rv/0/9458xlalfffvR829//3J4qq5XqEyn5IF3vfrHcPv1T/X1Nz955u4qia9lEp04m13ItifWMts+upYZ3pDTKtPdHHrHtcx4kIInyrWpTCU4c6YhrWWdm/0m8axmN85p1Za50WL5uAdMq2bP9u04iMYvapgXyRgz20A9lel+dYcSO8YSScKZr+6qMt09pcG+TLszUqu2qmVsJnHLX32R4ySt2r2Z4HopqiE9JfZlOhsbeymmo840GQo1svesx0OPmkSptWqL3CTNzO75c/dljvJfVsMuJyvWiYqp6lLGu/uo+s7u2iTS/bvm82H5UGut9ZvvfjZsHfvz65/89vXLH//pnav/+umvb3/1l9mHhCSVL1998sfvP/HekCBUZvvF7Ud/+Kv2+Ptn5fFXf3j9Yh7LdBdG56T4vkyttdZdwRibxoGzL1PbfctkdxqILiQNXKkyqYgmI3BLlUlHib/ERAy0ZIeoZmFfpq2IdrA7zImmkIdPUZlj3qRPJZKR4dW3Hz375uU/zN/v2i9uP3zxfT/sy/z8e/VO63c/flbe/vz//X1Qmf/xX8PljpTUf/+svP3Q7un0VeZvXw/DdFKZb9v69qe/eyPfvtP6rfzq9ad//D/96tuPnh1fvPmn1u/UH2cqMxL5kU4MZpew7W5SojuQmg+CcmiVSe/LJKPCFEA2kG6fklIFVYInw5WpTOf9mom+PWSHtl/KatK+fycKczdo3jHPD9NrjKo93LCMjVtYbCnOmwray/+y5sx5oKPEjppLnVv3rjIvg8bec12lMs07hbvpwa07K7nvnDZHHVEBs/LXXmSdpLX3+u00GZg3Fg9CFPO+GL+OPGO8EjWf7oilMKVU3XxJlew9Ux7hUdUcbohXJu075qOU0Xp6Qdl7A9x0LlExVV3KeOqdUDJG1ae/Pv7eboA0W8f67stvPnJezdFaa/1OfjV9+PkPetgr5i3tmFLffPz89uOvpjnZfevWvDmktX795uPnsyq0+ur4wUyeTkfCLoyESj+Mj/FMan2qK7wHa8Q75mR3ugRdSBm4VmVqKqKJQNhUZS6/+k2aZWug22vfMafeO/bCkXCwP8wD66nDq1WmzZuxU4NkNPKu/eL2J1/MUsCbX4x60b5j/ovxTXB9/Or4b89uP6x/8FXmLLydQ29/+PT57QfPXr1Q9DvmH734rvuH1vqd/Nq8Y378zZ/DbT5U5JOd6M8uVNv9bTzJd8x31l1BORGVaQKI3eyLwsxgRFT4HUQ0kBg7FWP38d3W4Eq4MpV5Bdi9m/daSyxZALAR7/739y9efSrv/MMnS3QFdm8BcBe2nA9UQ70gBMC5QGVuS9+V+aHtl0+8I1CZ4D4Zvizp46/C/aBbowS/lx/xAuDpcNf54Cj49GVgsspZ8QBTGHgyQGVuh2r3Gds9zFfRQmWC60dWLGOc/MptAMBq7j4feBtVtjEKAK01VCYAAAAAALgPoDIBAAAAAMD2QGUCAAAAAIDtgcoEAAAAAADbA5UJAAAAAAC2ByoTAAAAAABsD1QmAAAAAADYHqhMAAAAAACwPVCZAAAAAABge6AyAQAAAADA9kBlAgAAAACA7YHKBAAAAAAA2wOVCQAAAAAAtgcqEwAAAAAAbA9UJgAAAAAA2B6oTAAAAAAAsD1QmQAAAAAAYHugMgEAAAAAwPZAZQIAAAAAgO2BygQAAAAAANvz/wHgql3r/lc4/wAAAABJRU5ErkJggg==" alt="" />

ANDROID培训准备资料之四大组件的简单介绍的更多相关文章

  1. Android(Lollipop/5.0) Material Design(一) 简单介绍

    Material Design系列 Android(Lollipop/5.0)Material Design(一) 简单介绍 Android(Lollipop/5.0)Material Design( ...

  2. Android基础整理之四大组件Activity

    最近准备系统的重新整理复习一下Android的各方面的知识,本着知识分享的原则,我就把梳理过程中一些东西给记录下来,权当一个学习笔记吧. 下面步入正题..... 什么是Activity Activit ...

  3. Android基础知识、四大组件(转)

    Android应用程序使用java语言编写的.Android SDK工具将所有的数据和资源文件以及代码进行编译,打包称为一个apk文件.一个apk文件中的所有代码被认为是一个应用,android系统的 ...

  4. Android四大组件之一Service介绍-android学习之旅(十二)

    基本概念: service是android四大组件之一,运行在后台执行耗时操作,并不提供用户界面.其他组件如acticity可以通过startService启动该组件,也可以通过bindService ...

  5. Android回炉系列之四大组件之首Activity

            有段时间没有认认真真研习过android了,android毕竟是我进这个软件开发圈子接触的第一门技术,android已经成了口头禅之类的东西了.当初学习android的时候大都是草草了 ...

  6. Android四大组件:BroadcastReceiver 介绍

    介绍 BroadcastReceiver 即广播组件,是 Android 的四大组件之一.用于监听和接收广播消息,并做出响应.有以下一些应用: 不同组件之间的通信(应用内或不同应用之间). 多线程之间 ...

  7. Android中有四大组件的简单总结

    Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器. 一:了解四大基本组件 Activity ...

  8. Android培训准备资料之五大布局简单介绍

    本篇博客主要简单的给大家介绍一下Android五大布局 (1)LinearLayout(线性布局) (2)RelativeLayout(相对布局) (3)FrameLayout(帧布局) (4)Abs ...

  9. ANDROID培训准备资料之项目结构简单介绍

    Android Studio项目结构初步主要介绍下面几个文件夹,后续再补充 (1)java文件夹的介绍 (2)Res文件夹的介绍 (3)R文件的介绍 (4)Manifests文件夹的介绍 我们先看看整 ...

随机推荐

  1. Android框架之EventBus的使用

    简介 EventBus是由greenrobot组织贡献的一个Android事件发布/订阅的轻量级框架.EventBus是一个Android端优化的publish/subscribe消息总线,简化了应用 ...

  2. CDH预警配置QQ邮箱

    一. 在QQ邮箱中开启POP   二 .关闭主机的sendmail,开启postfix (本机若没有两个服务,就需要先安装)本地安装sendmail和postfix [root@Slave1 ~] ...

  3. [20191012]组成rowid.txt

    [20191012]组成rowid.txt --//昨天做了拆分rowid的测试,链接http://blog.itpub.net/267265/viewspace-2659613/=>[2019 ...

  4. [20190523]修改参数后一些细节注意2.txt

    [20190523]修改参数后一些细节注意2.txt --//上午想模拟链接遇到的情况,链接http://blog.itpub.net/267265/viewspace-2645262/--//就是修 ...

  5. docker卷管理(四)

    什么是数据卷 overlay2存储卷 docker镜像是由多个只读层叠加而成,启动容器时,docker会加载只读镜像层,并在镜像栈顶部添加一个可写层 如果运行中的容器修改了现有的一个已存在文件,那该文 ...

  6. [PHP] 安装PHP报错“Primary script unknown”的解决方法

    当安装完最新版的nginx和最新版的PHP以后,使用niginx默认配置文件中的PHP配置会有错误访问指定目录下的php文件时,显示File not found.错误.查看nginx的错误日志显示 9 ...

  7. 经典损失函数:交叉熵(附tensorflow)

    每次都是看了就忘,看了就忘,从今天开始,细节开始,推一遍交叉熵. 我的第一篇CSDN,献给你们(有错欢迎指出啊). 一.什么是交叉熵 交叉熵是一个信息论中的概念,它原来是用来估算平均编码长度的.给定两 ...

  8. 浅谈字符串Hash

    浅谈字符串Hash 本篇随笔讲解Hash(散列表)的一个重要应用:字符串Hash. 关于Hash Hash是一种数据结构,叫做Hash表(哈希表),也叫散列表.关于Hash的实现,其实与离散化颇为类似 ...

  9. 安装QTP之后造成环境变量java冲突问题的解决方案

    参考:http://www.cnblogs.com/yhcreak/p/6340125.html

  10. Introduction to Semidefinite Programming (SDP)

    https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-251j-introduction-to-mathe ...