Android学习笔记1

来源:互联网 发布:知床观光协会 编辑:程序博客网 时间:2024/06/08 19:03

1.android系统架构,分为四层:

  1. linux内核层:为硬件设备提供底层驱动
  2. 系统运行库层:通过C/C++为android提供了OpenGL,Webkit等主要特性支持。android运行时库,包含了Dalvik虚拟机
  3. 应用框架:提供了构建程序所用到的API
  4. 应用层:所有手机上的应用程序属于应用层,包括通讯录,短信,以及开发的程序。

2.android特性:

四大组件:Activity活动,Service服务,BroadcastReceiver广播,ContentProvider内容提供器

  1. 丰富的控件系统
  2. SQLite数据库:轻量级,运算速度极快的嵌入式关系型数据库
  3. 地理位置定位
  4. 强大的多媒体
  5. 传感器

3.Intent:

 1. Android程序中各组件进行交互的一种重要方式,不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。一般用于启动活动,启动服务,以及发送广播等场景

2. 显示Intent跳转:通过StartActivity(),隐式Intent跳转:通过在标签下的中配置action和category,只有action与category同时匹配时,Intent才能响应。可在中配置标签,指定当前活动响应的数据类型,只有标签中指定内容跟Intent中Data携带内容相同时当前活动才会响应Intent
3. 通过Intent向下一个活动传输数据,使用putExtra方法将数据存入Intent,使用getStringExtra,getIntExtra等方法取值。向上一个活动传输数据:startActivityForResult(intent,请求码),请求码只要是唯一值就可以。setResult()方法用于向上一个活动返回数据,接收两个参数,第一个为RESULT_OK或者RESULT_CANCELED,第二个参数为带有数据的intent,然后调用finish销毁当前活动。由于使用startActivityForResult方法来启动活动,活动被销毁之后会回调上一个活动的onActivityResult方法,因此需要在上一个活动中重写这个方法得到返回的数据
4. onActivityResult方法带有三个参数,requestCode:活动启动时传入的请求码,resultCode:返回数据时传入的处理结果,data:携带着返回数据的Intent。一个活动中可能通过startActivityForResult启动很多不同活动,每一个活动返回的数据都会回调到onActivityResult方法中,因此通过requestCode来判断数据来源,通过resultCode判断处理结果是否成功,最后从data中取值
5. 若用户通过按下Back键返回上一个活动。则重写onBackPressed方法实现数据传输

4.Activity四种状态:

  1. 运行状态: 活动处于栈顶。
  2. 暂停状态:活动不处于栈顶但任然可见,只有在内存极低的情况系统才会考虑回收
  3. 停止状态:活动不处于栈顶且完全不可见。系统会保存活动相应的状态和成员变量,但不可靠,其他地方需要内存时停止状态的活动可能会被回收
  4. 销毁状态:活动从返回栈中移除。系统会回收来保证手机内存充足。

5.Activity生命周期:

  1. onCreate:完成活动初始化操作,加载布局,绑定事件等。
  2. onStart: 活动由不可见变为可见时调用。
  3. onResume:活动准备和用户交互时调用,此时活动一定处于栈顶并且是运行状态。
  4. onPause:在系统准备启动或恢复另一个活动时调用,通常在这里释放资源保存关键数据,不适合处理耗时操作
  5. onStop:活动不可见时调用,启动对话框式活动只会执行onPause不会执行onStop
  6. onDestory:活动销毁之前调用,onSaveInstanceState方法可在活动销毁之前保存临时数据,方法携带Bundle类型参数,Bundle提供putString,putInt等方法用来保存数据,方法传键值两个参数。在onCreate中通过getString等方法取出数据

6.Activity启动模式:

  1. standard:默认启动模式,启动新的活动会在返回栈中入栈并处于栈顶,每次启动都会创建新的活动。
  2. singleTop:启动活动时若活动已经处于栈顶则不会再创建活动实例。
  3. singleTask:启动活动时会检测返回栈中是否已经存在该活动,若存在则直接使用,并将该活动之上的所有活动统统出栈。
  4. singleInstance:启动活动后会产生一个新的返回栈来管理此活动

7.控件

8.布局

9.像素密度:屏幕每英寸所包含的像素数

10.动态加载碎片:

  1. 创建待添加的碎片实例。
  2. 获取到FragmentManager,在活动中直接调用getFragmentManager得到。
  3. 开启一个事物,通过beginTransaction方法开启。
  4. 向容器中加入碎片,一般使用replace方法实现,需传入容器id和待添加碎片实例。
  5. 提交事物,调用commit方法完成。

11.碎片与碎片通信:

先得到与碎片相关联的活动,通过活动去获取另一个碎片

碎片与活动之间通信:活动中获得碎片实例,Fragment fragment=(fragment)getFragmentManager().findFragmentById(R.id.fragment)。碎片中获得活动的实例,Activity activity=(Activity)getActivity();

**12.

  1. 碎片的回调方法:**onAttach,onCreateView,onActivityCreated,onDestoryView,onDetach
  2. 碎片的生命周期:加载碎片onAttach-onCreate-onCreateView-onActivityCreated-onStart-onResume碎片以激活-onPause-onStop-onDestoryView-onDestroy-onDetach碎片被销毁

13.动态加载布局:使用限定符,可按照屏幕大小,分辨率,方向


参考书籍:《第一行代码》

0 0
原创粉丝点击