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.基础知识
(1)Activity: Activity(活动)是一个包含应用程序的用户界面窗口。一个应用程序可以有零个或多个活动。Activity 是所有程序的根本,所有程序都运行在Activity之中,Activity具有自己的生命周期,由系统控制生命周期,程序无法改变。
(2)Android 操作系统: Android是一种基于Linux的开源的收集操作系统。
(3)Android 四大组件(Activity,Service,Broadcast Receiver,Content Provider)
(4).Activity:应用程序中,一个Activity通常是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。在Intent的描述结构中,有两个重要的部分:动作和动作对应的数据。
(5)Service:和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方法来区分这两种不同的情况。
- Android基础知识总结
- android linux 基础知识总结
- android linux 基础知识总结
- android linux 基础知识总结
- android linux 基础知识总结
- Android linux 基础知识总结
- android linux 基础知识总结
- Android基础知识总结
- linux ,Android基础知识总结
- android linux 基础知识总结
- android linux 基础知识总结
- android linux 基础知识总结
- android linux基础知识总结
- android linux 基础知识总结
- android linux 基础知识总结
- linux ,Android基础知识总结
- linux ,Android基础知识总结
- android linux 基础知识总结
- JAVA 带缓存的输入/输出流
- Vivado Implementation - ERROR: [Chipscope 16-119] Implementing debug core dbg_hub failed
- 第15周第一项目——阅读程序
- Android | 将内容分享到自己的app
- php中pdo数据库操作工具类
- Android基础知识总结
- 看完上千个交互设计神作后,我总结了这5个设计技巧,免费赠你
- 理解本真的REST架构风格
- LeetCode-171 Excel Sheet Column Number
- JPA联合主键并做从表外键
- SVN XXX.xcode xcodeprojcannot be opened because the project file cannot beparsed。
- Mac/Linux多版本Python共存之Pyenv,PyCharm多版本切换
- 密钥对,公钥,证书,私钥,jks,keystore,truststore,cer,pfx名词说明
- java ArrayList与Vector