安卓Android教程与源码zt
安卓Android教程与源码
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用"安卓"或"安致"。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。
安卓Android是一个移动开发平台,包括Linux操作系统 Java中间件和一些关键服务与丰富的API。Linux kernl + dalvik JVM虚机机。
安卓开发需要安卓SDK,使用Eclipse开发和相应插件。
安卓开发之前,首先需要搞明白构建块,不但完成java代码,还有一些配置:
Activity
编写安卓应用程序是从一个Activity开始。 Activities活动系列类似扑克牌,只能有一个是活动的,只能有一个是可见的,新的活动总是在最前面,类似windows的窗口概念。每个活动代表一个应用程序,类似MVC模式中Controller。正如Struts的Action必须配置XML一样,Activity类必须在AndroidManifest.xml中注册方可使用。
下面是Activity生命周期:
Activity有三个状态:
- 活动的Activity:当它在屏幕前台时(位于当前任务堆栈的顶部),它是激活或运行状态。
- 暂停Activity:当它失去焦点但仍然对用户可见时,它处于暂停状态。
- 停止Activity:完全被另一个Activity覆盖时则处于停止状态。
Activity的相应按键和触屏两种事件:
- 键按下 :boolean onKeyDown(int keyCode, KeyEvent event)
- 重复按键:boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event)
- 长按键:boolean onKeyLongPress(int keyCode, KeyEvent event)
- 按键释放:boolean onKeyUp(int keyCode, KeyEvent event)
- 触屏事件:boolean onTouchEvent(MotionEvent event)
事件的消费者是通过View的setOnXXXListener()
- OnClickListener 监听点按
- OnKeyListener 监听键按下
- OnCreateContextMenuListener
- OnLongClickListener 监听长按
- OnFocusChangeListener
- OnTouchListener
View视图
用户界面是由View和ViewGroup对象构成。一个Activity可以包含几种这种界面组合:
实现只要继承android.view.View类。如下代码:
public class PKbestEventActivity extends Activity implements OnTouchListener {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在Activity中启动一个View视图界面 在屏幕上绘制View界面
setContentView(R.layout.main);
TextView tv = (TextView) findViewById(R.id.tv);
tv.setOnTouchListener(this);
}
public boolean onTouch(View v, MotionEvent event) {
//处理消费touch事件。
return false;
}
}
Intent意图
Intent提供了一种通用的消息系统,相当于消息或事件,它允许在你的应用组件如Activity与其它的应用组件间传递Intent来执行动作和产生事件。比如如果要在两个Activity之间切换,实际效果是两个界面之间切换,:
Intent intent = new Intent();
intent.setClass(A.this, B.class);
startActivity(intent);//开始新的Activity
A.this.finish();//关闭A的Activity
Intent有显式和隐式区分。
安卓的应用组件有四种类型:
- Activity:最基本的模块,称之为"活动";控制视图、监听系统事件、启动其他的Activity、Service等
- ContentProvider:操作共享数据的标准组件。实现CRUD增删改查。
- Service:后台运行的"服务"程序, 通常用来播放媒体文件或检测设备状态等无需界面的任务,不能自己运行,需通过Activity或Context对象来启动: Context.startService() 和 Context.bindService()。
- BroadcastReceiver :对外部的事件做出响应的组件;没有界面,只能通过NotificationManager来通知用户事情发生了。既可在xml中注册, 也可在代码中用Context.registerReceiver()注册。