Android基础知识总结

来源:互联网 发布:fluent软件免费下载 编辑:程序博客网 时间:2024/06/05 10:27

1.Android体系结构

                                                                                                                                                                                                                                                                                                                                           

如图所示,android 架构分为三层:

(1)最底层是linux内核,主要是各种硬件的驱动,如相机驱动(Camera Driver),闪存驱动(Flash Memory Driver),wifi驱动(Wifi Driver)等

(2)中间一层是库包(libraries)和android运行环境(android runtime),其中库包主要包括一些协议和浏览器内核(webkit)等,android运行环境主要包括核心库包和Dalvik虚拟机

(3)最上面一层是应用层,应用层主要是跟用户直接打交道的各种应用了,如联系人,浏览器,电话等.

 

2.基础知识

1Activity: Activity(活动)是一个包含应用程序的用户界面窗口。一个应用程序可以有零个或多个活动。Activity 是所有程序的根本,所有程序都运行在Activity之中Activity具有自己的生命周期,由系统控制生命周期,程序无法改变。

2Android 操作系统: Android是一种基于Linux的开源的收集操作系统。

3Android 四大组件(Activity,Service,Broadcast Receiver,Content Provider)

4.Activity:应用程序中,一个Activity通常是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。在Intent的描述结构中,有两个重要的部分:动作和动作对应的数据。

5Service:和Activity属于同一级别的组件,不能自己运行只能后台运行,并且可以和其他组件进行交互。Service可以在很多场合的应用中使用,比如播放多媒体的时候启动了其他Activity这个时候程序要在后台继续播放。ps:一个Service是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程序。

6常用的布局管理器:
布局管理器一般有四种:
LinearLayout:线性布局管理器(默认),分为水平(horizontal)和垂直(vertical)两种,只能进行单行布局。
FrameLayout:所有组件放在左上角,一个覆盖一个。
TableLayout:任意行和列的表格布局管理器,其中TableRow代表一行,可以向行中增加组件。
RelativeLayout:相对布局管理器,根据最近一个组件或者顶层父组件来确定下一个组件的位置。

3.Activity状态

Activity有三种状态:active/running、paused、stopped。
  1、active/running状态,在当前屏幕时,即用户可见的Activity,位于当前Task的栈顶。
  2、paused状态,Activity失去焦点但对用户依然可见。也就是说在它上面有另外一个非全屏或者透明的Activity,并成为了当前的焦点。它还没有被其他的Activity完全遮盖住,而paused的Activity依然是alive状态的,它保留着所有的状态和成员信息并连接至窗口管理器,但当系统处于极低内存的情况下,仍然可以杀死这个Activity。

3、stopped 状态,当Activity完全被另一个Activity覆盖时,它仍然保留所有的状态和成员信息。但它不再被用户可见,所以它的窗口将被隐藏,当其它地方需要内存,则系统经常会杀死这个Activity。

4.Activity生命周期


当一个Activity从这个状态转变到另一个状态时,它被以下列protected方法所通知:

public class Activityextends ApplicationContext

         protected void onCreate(Bundle savedInstanceState);

     

         protected void onStart();

     

         protected void onRestart();

     

         protected void onResume();

     

        protected void onPause(); 

     

        protected void onStop(); 

     

        protected void onDestroy(); 

}

1、onCreate -- 当Activity第一次创建时会被调用(未被销毁前不会被再次调用)。在这个方法中可以做一些初始化工作,例如对创建新的View、获取并设置View的一些属性、绑定列表的数据等等。如果能捕获到Activity 状态的话,这个方法传递进来的Bundle对象将存放了Activity当前的状态。调用该方法后一般会调用onStart()方法。此时Activity不可见,所以并不是所有的初始化工作都适合在这里做,例如一些动画的开始。
2、onRestart -- 在Activity被停止后重新启动时会调用该方法。其后续会调用onStart方法。
3、onStart -- 当Activity对于用户可见前即调用这个方法。如果Activity回到前台则接着调用onResume() ,如果Activity隐藏则调用onStop()。此时Activity可能可见,但即使可见,也无法进行交互操作。
4、onResume -- 在Activity开始与用户交互前调用该方法。在这时该Activity 处于Activity 栈的顶部,并且接受用户的输入。其后续会调用 onPause() 方法。此时Activity也不一定可见,需要通过onWindowFocusChanged(boolean)来确定Activity是否可见。

  5、onPause -- 在系统开始准备恢复其它Activity时会调用该方法。这个方法中通常用来提交一些还没保存的更改到持久数据中,停止一些动画或其它一些耗CPU的操作等等。无论在该方法里面进行任何操作,都需要较快速完成,因为如果它不返回的话,下一个Activity 将无法恢复出来。如果Activity 返回到前台将会调用onResume(),如果Activity变得对用户不可见了将会调用onStop() 。

  6、onStop -- 在Activity对用户不可见时将调用该方法。可能会因为当前Activity 正在被销毁,或另一个Activity(已经存在的Activity 或新的Activity )已经恢复了正准备覆盖它,而调用该方法。如果Activity 正准备返回与用户交互时后续会调用onRestart ,如果Activity正在被释放则会调用onDestroy 。

  7、onDestroy -- 在Activity被销毁前会调用该方法。这是Activity能接收到的最后一个调用。可能会因为有人调用了finish方法使得当前Activity正在关闭,或系统为了保护内存临时释放这个Activity的实例,而调用该方法。你可以用isFinishing方法来区分这两种不同的情况。

1 0