Android开发学习笔记

一、基础

 

1. Android是个多用户系统

2. 默认情况下, Android为每个应用分配一个独立的用户名, 只有Android系统知道这个用户名, 应用系统本身并不知道, Android为这个用户分配应用所需的权限。

3. 每个应用运行在独立的VM中,所以不同的应用之间是无法无法访问的。

4.默认情况下, 每个应用程序运行在独立的Linux进程中, 当应用中的任何组件被执行时,Android将启动这个进程。

 

应用之间的交互:

1. 两个应用程序可以被指定共用同一个用户名, 这样两个程序就可以访问彼此的文件。

2.所有的应用程序可以在安装时候申请联系人, 短信息,内存卡等的访问权限。

 

应用组件:

1. Activity : 一个Activity对应一个显示页面,一个应用程序中的Activity可以被其它应用程序调用。

2. Service : Service是一个后台运行的组件, 它没有UI, 其它组件可以启动它。

3. ContentProvider : 提供一种数据交互的方式

4. BroadcastReceiver : 用于响应一个系统级的通知,没有UI,但是可以生成一个状态栏通知。

 

各种组件之间的互动:

1. 可以通过传递Intent到startActivity或是startActivityForResult来启动Activity

2. 可以通过传递Intent到startService来启动Service,或者通过传递Intent到bindService来绑定到一个Service

3. 可以通过传递Intent到sendBroadcast, sendOrderedBroadcast或sendStickyBroadcast来初始化一个Broadcast

4. 可以能过调用query方法来访问ContentResolver

 

AndroidMenifest.xml

Android在启动一个应用的组件前, 必须通过AndroidMenifest.xml文件来加载组件, AndroidMenifest.xml文件必须放在应用程序的根目录。

*定义应用中所有的组件

1. 声明应用的用户名所需要申请的权限

2. 定义所需的API的最低级别

3. 定义所需的硬件及软件

4. 应用所需的Android之外的其它API

 

## 声明包含组件

<activity>, <service>和<provider>必须在Menifest中声明, 否则, 这些组件将不能被访问。

<receiver>可以在Menifest中声明, 也可以动态在代码中通过registerReceiver定义。

 

通过在一个组件中声明<intent-filter>,可以指定该组件所响应的Intent.

 

Activity的状态:

1. Resume - 前台Activity并且拥有用户焦点的状态, 或叫running 

2. Paused - 其它Activity位于前台并拥有用户焦点, 但是该应用未被完全覆盖, 该应用的所有属性都将保存在内存中, 但是当内存极度缺少时系统会终止该应用。

3. Stopped - 后台运行的Activity, 状态被维护在内存中, 但是系统可能会释放其内存。

 

Activity回调函数:

1. onCreate - 当Activity被创建时执行

2. onStart - 当Activity即将可见时执行

3. onResume - 当Activity已经变为可见后

4. onPause - 另一个Activity变为当前状态

5. onStop - Activity不可见时, 状态已为Stopped

6. onDestory - Activity即将被销毁

在重写以上方法时需要先调用super的对应方法。

 

Activity完整生命周期: onCreate -> onDestory

Activity可见生命周期: onStart -> onStop

Activity前台生命周期: onResumt -> onPause

 

Activity A启动Activity B时的生命周期:

1. A的onPause被调用

2. B的onCreate, onStart, onResume顺序被调用

3. 如果A已经不显示, 则A的onStop被调用。

 

 

 

 

 

 

posted @ 2011-05-22 13:22  moonsnow  阅读(124)  评论(0编辑  收藏  举报