我不懂安卓开发,但由于需求,我去简单的学了一下安卓开发。安卓系统从上至下分为四层:linux内核、android核心库及安卓运行时环境应用程序框架及应用程序等。
View是安卓中图形用户界面的基类,提供了可视化界面的展示。安卓的图形界面展示可分为三层:底层是Activity,Activity上面是window,window上面是Views。View又可分为View和ViewGroup,View是指基本的控件,例如按钮,单选框,多选框菜单等;ViewGroup是指布局控件,即用来控制界面中的控件如何布局摆放的。安卓系统中的所有UI类都是建立在View和ViewGroup这两个基础之上的。所有View的子类称为“Wiget”,所有的ViewGroup的子类称为“Layout”。
View和ViewGroup之间采用了组合设计模式,如图
任何视图组件的创建都有两种:一种通过在布局文件中声明创建,另一种通过在代码中创建。
Bundle是安卓开发中的一个类,用于Activity之间传输数据用,也可理解为装载数据的。Intent是Activity和Service的桥梁,通信员,Activity主要操作显示界面,service在后台运行,适合长时间运行,如下载听歌等。Activity是安卓中独有的概念,它是安卓的最小调度单位,Intent是安卓的进程之间,Activity之间线程之间交换数据的载体。
安卓应用系统的界面由Activity、Services\BroadcastReceiver和ContentProvider组成,Activity类,Service类,Application类本质上都是Context子类(1、它描述的是一个应用程序环境的信息,即上下文。
2、该类是一个抽象(abstract class)类,Android提供了该抽象类的具体实现类(后面我们会讲到是ContextIml)。
3、通过它我们可以获取应用程序的资源和类,也包括一些应用级别操作,例如:启动一个Activity,发送广播,接受Intent 信息 等。。)
Activity生命周期中有四个重要状态
1、活动——在屏幕的前面(在栈顶),有焦点可见
2、暂停——失去了焦点,但是它仍然可见
3、停止——失去了交点,不可见
4、销毁——被系统或进程结束
Intent可以启动一个Activity,也可以启动一个Service,还可以发起一个广播(BroadCast),启动方法如下:
Activity启动方法:1)startActivity() 2)startActivityForResult()
Service启动方法:1)startService() 2)bindService()
Broadcasts启动方法:1)sendBroadcase() 2)sendOrderBroadcast() 3)sendStickyBroadcast()
Activity 各种状态及方法调用时机如图所示
可以将Activity生命周期分为以下三个过程
1)整个完整生命周期:从onCreat()方法开始到onDestory()方法结束
2)可见生命周期:从onStart 开始到onStop结束
3)前台可见生命周期:从onResume()方法开始到onPause()结束
安卓提供的几种存取数据的方式:
1)preference(配置)
2)File(文件)
3)SQLite数据
4)网格
Android中各个应用程序组件之间是相互独立的,彼此的数据不能共享。为了实现数据的共享,Android提供了Content Provider组件来实现应用程序之间的数据共享。