android 整体复习笔记(一)

来源:互联网 发布:出货单打印软件 编辑:程序博客网 时间:2024/05/16 06:33

这里是第一章到第五章的笔记。

 

第一章 环境搭建
0、同一个view添加两个事件监听时,仍然会执行各自的事件。不同view拥有同一个事件监听时,可以单独写成一个类,实现事件监听接口;把多个view传递过来,进行事件注册和监听。
1、安装和使用。
2、系统架构。应用层、框架层(API)、函数库、Linux内核
3、虚拟机,Dalvik;与java的JVM的区别。
   都是虚拟机,android应用是用java写出来的。不同:Dalvik是在JVM基础之上进行改良后的虚拟机;体积小,运行效率高;Dalvik不能解析.class文件;只能运行.dex文件。不能运行大型的应用程序,不能和JVM一样运行大型的应用程序。
4、开发环境。工具,JDK、eclipse、Android SDK、ADT。
5、Android SDK目录结构。adb服务是pc电脑和手机之间通信的服务或桥梁。
adb start-server
adb kill-server
adb decices
adb install apk路径  (路径不能包含中文)

adb -s emulator-5554 shell
linux服务器没有界面,只能远程使用shell命令;系统比较稳定,可以长时间运行,内核是完全开源的,军用系统;而windows系统不稳定,只能短时间运行。

第二章 第一个android应用程序

1、res文件里的内容都会生成R.java,会打包进行编译,但是raw不会被编译。不需要生成R.java的文件可以放在assets文件,该文件夹不会被编译。
2、xml:布局内容是动态的,可以再代码中编译。非动态的内容一般都会使用xml文件
3、AndroidManifes.xml:配置四大组件,权限
4、发布应用,签名。
5、Tree View。查看应用整体布局效果。

<UI界面>

  第三章 资源访问
1、TextView 和Button不需要自定义;其他大多数组件都应该选择自定义,不使用系统原生组件。
2、开发过程中,注意使用string,做到国际化、方便更改。
3、R.java文件不必认为修改,自动生成。xml文件组件更换顺序后,需要删除R.java文件,重新生成。
4、尺寸  dp;字体  sp
5、Drawable资源,xml。bitmap,背景平铺。按钮按下弹起(StateListDrawable);LayerDrawable,层叠;ShapeDrawable,自定义文本框。ClipDrawable,截取一个片段的图片


第四章 用户界面
1、getLayoutflater.inflate(),利用这种方法把布局文件加载到内存。setcontentView(layout),也是加载到内存。
2、Alertdialog对话框会阻塞,是早期的API。Alertdialog.Bulider多一些方法,中间按钮,现在大都使用Alertdialog.Builder。
3、对话框、消息框需要show();
4、布局管理,布局嵌套不能太多,一般嵌套三层即可。

第五章 组件详解
1、autoLink,自动的打开相对应得程序
2、AutoCompleteTextView 利用集合、数组存放数据,会用到适配器ArrayAdapter.该适配器也可以传集合。该组件不适合BaseAdapter适配器。
3、选项卡可以放Activity。画廊视图只适用于图片切换,已过时。ViewPager(适配器PagerAdapter)不仅可以切换图片,也可以切换其他View。
4、进度条,用于等待时间长;转圈的进度条,等待时间比较短。进度条刻度;利用线程取进度值。
5、ImageView,src与background。图片要拉伸,缩小,一般使用src。
5.1 ImageSwitcher相当于一个容器。专门对图片进行切换。其实,用动画也可以实现图片切换。
5.2 为ImageSwitcher设置动画效果。如下:
inAnimation=""
outAnimation=""
5.3 ImageSwitcher添加图片
setFactory(new ViewFactory){
 public View makeView(){
  
  return view;
 }
}
6、ListView和gridView
6.1 焦点:某个时间同一个地方只有一个焦点。与用户在交互过程中触发的行为才会残生焦点。
listView 父view焦点:descendanFocusability=""
其他地方:requestFcous(),请求焦点
6.2 gridView 拉伸、列行的间距

第六章 适配器与事件
1、ArrayAdapter 适用于简单的应用
   SimpleAdapter 可用性不强
   BaseAdapter getItem(),得到指定的哪一行的对象;getItemId(),得到指定哪一行的id。listView显示行数有限,还没有显示的数据会在互用滑动过程中延迟加载、已经显示的数据则从集合中移除;list加的减,相当于缓存的效果。
2、监听器(委托事件模型)  事件源、事件、注册监听
   回调事件处理,onTouchEvent()是典型的回调事件机制。通过回调机制处理事件会传播,子view传播到父view;返回false表示传播;true表示不传播。
3、手势Gesture。首先,通过一定速度或移动距离可以判断用户滑动的方向和是否触发。其次,要有合适的容错性。
   在onTouchEvent()中返回gesture.onTouchEvent(event)
   滑动式必定会调用onScroll();而onFling()要满足一定条件,达到一定速度,手势必须要抬起来才会调用该方法。
4、Configuration 响应系统设置。只有在ActivityManifest中设置了Configuration change时才会调用。
   横屏和竖屏。
5、Handle消息传送机制。在非ui线程中不能设置组件的属性,只有利用Handle通知主线程(UI线程)设置组件属性。handle.postDlayed()多少时间后执行什么,这个方法可以对组件做操作。延迟多少时间再操作主线程,也会阻塞后面的代码执行。(lesson18)。例如,等待图片的加载,只有等待部分图片加载到内存后,才能设置显示图片。否则,设置的图片不会显示出来。
6、线程处理方法。Thread必须依靠Handle、message。
   任务线程:AsyncTask<T>。doInBackground(bject... values)和onProgressUpdate(Object... values);里面的参数实际上就是一个数组。可以传多个参数。如:publishProgress(1,2,3,4)。线程结束后的操作:onPostExecute()。

 

 

原创粉丝点击