Android考试知识点考试
- 格式:doc
- 大小:14.16 MB
- 文档页数:22
. . a 考试知识点(Android闭卷考试)
1. 理解Android常见的几种布局。 几种布局的高和宽,制定 LinearLayout,线性布局,布局中的控件在线性方向上依次排列。默认控件水平方向排列。 android:orientation=”horizontal” android:orientation=”vertical” 注意: 当是水平方向排列,控件宽度不能设置为android:layout_width="match_parent" 否则控件会把水平方向沾满,其他控件无法会控件覆盖(无法放置) 当是垂直方向,内部控件不能将android:layout_height="match_parent"指定为match_parent android:layout_weight="1",使用比例方式来指定控件的大小
RelativeLayout,相对布局,是通过相对定位的方式让布局中控件可以出现在布局的任何位置。
内部控件,三种属性, 属性值是true或false android:layout_centerHrizontal 水平居中, 属性值是”id/*“ android:layout_below 在某元素的下方 属性值是数值 . . a android:layout_marginLeft 离某元素左边缘的距离 FrameLayout,帧布局,简单,应用场景少,和碎片一起使用,没有定位方式,所有控件默认在布局的左上角,后面的会覆盖前面的。每一个组件都代表一个画面 用该布局可以实现动画效果 PercentFrame(Relative)Layout 百分比布局:布局中可以不用wrap_content,match_parent等方式来指定控件的大小,直接指定控件所占的百分比,实现平分布局甚至任意比例分割布局。 注意百分比布局需要添加库依赖 support:percent:24.. 由于LinearLayout本身支持按比例指定控件大小,所以百分比布只为RelativeLayout和RelativeLayout功能扩展 表格布局(Tablelayout)采用行列的形式管理UI组件,无需明确地声明它的行列数, 而
是通过添加TableRow、其他组件来控制表格的行数和列数 GridLayout是Android4.0之后新增的布局管理器,因此正常情况下需要在
Android 4.0 之后的版本中才能使用,如果希望在更早的版本中使用的话,需要导入相应的支撑库(v7包的gridlayout包)。 Grid Layout 网格布局,和前面所讲的 Table Layout(表格布局) 有点类似,不过他有很多前者没有的东西,因此也更加好用: - 可以自己设置布局中组件的排列方式 - 可以自定义网格布局有多少行、列 - 可以直接设置组件位于某行某列 - 可以设置组件横跨几行或者几列 Absolute Layout 它不提供任何布局控制,而是由开发人员自己通过X、Y坐标来 . . a 控制组件的位置。运行Android应用的手机往往千差万别,屏幕大小、分别率、屏幕密度等都可能存在较大的差异,使用绝对布局的话很难做机型适配--已经被废弃 2. 理解Android应用程序开发过程中,常见的四种设计模式及各自的使用场合。 ListView-Adapter、Builder-Dialog、Factory-选项卡、Listener-事件监听。 1适配器模式: 简介:将一个类的接口转换成客户希望的另外一个接口,从而使原本因
接口不匹配而无法再一起工作的两个类能够在一起工作。不同的数据提供者使用一
个适配器来向一个相同的客户提供服务。 举例:ListView或GridView的Adapter。 2建造者模式: 简介:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的显示,但其根本还是不变。 举例:AlertDialog.Builder.AlertDialog.Builder, 使用该Builder来构建复杂的AlertDialog对象 工厂模式:
定义一个用于创建对象的接口,让子类决定将哪一个类实例化。
外部不需要关心工厂是如何创建一个复杂产品的过程 示例:BitmapFactory位图工厂,专门用来将指定的图片转换为指定的位图Bitmap。 监听器模式 事件源经过事件的封装传给监听器,当事件源触发事件后,监听器接收到事件对象可以回调事件的方法.Listener-事件监听
观察者模式:定义对象间是一(Subject)对多(Observer)的依赖关系,当一个对象发生变化时,其它依赖该对象的对象都会收到通知,并随着变化。广播机制就是观察者模式
ListView和BaseAdapter组合时,当BaseAdapter的item改变时,我们经常会调用notifyDataSetChanged(),通知Listview刷新
3. Android中可支持网页的缩放的视图(View)及其功能
在Android系统中,内置了一款高性能的浏览器,其内核就是WebKit,WebView . . a 网页视图,就是在这个基础上封装的一个控件,我们可以直接用这个控件在应用程序内去显示Web页面,直接用HTML文件做为布局文件,可以和JavaScript交互调用。 显示和渲染web页面 (1).直接显示网页 设置在当前应用中打开网页,如果不设置的话会使用手机浏览器打开网页 mWebView.setWebViewClient(new WebViewClient() { Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { view.loadUrl("https://.baidu./"); return true; } }); mWebView.loadUrl("https://.baidu./");
(2)和js交互 设置支持Javascript WebSettings settings = webView.getSettings(); settings.setJavaScriptEnabled(true);
(3)可以利用html做界面布局 4. 理解View和ViewGroup的用途及两者之间的关系。 继承结构: . .
a View是ViewGroup的父类类。View是所有UI组件的基类,而 ViewGroup是容纳这些组件的容器,其本身也是从View派生出来的. View中所有的子类成为widgets,viewgroup的子类成为layout。 View和ViewGroup之间采用了组合设计模式,可以使得“部分-整体”同等对待。ViewGroup作为布局容器类的最上层,布局容器里面又可以有View和ViewGroup。 对于setContentView(R.layout.layout的xml文件)方法,Activity其实不是显示视图(直观上感觉是它),实际上Activity调用了PhoneWindow的setContentView()方法,然后加载视图,将视图放到这个Window上,而Activity其实构造的时候初始化的是Window(PhoneWindow),Activity其实是个控制单元,即可视的人机交互界面。
Activity是一个工人,它来控制Window;Window是一面显示屏,用来显示信息;View就是要显示在显示屏上的信息,这些View都是层层重叠在一起(通过infalte()和addView())放到Window显示屏上的。而LayoutInfalter就是用来生成View
的一个工具,XML布局文件就是用来生成View的原料。 (2).Activity、Window、View之间的关系: Activity是Window和View之间的桥梁,将View的内容信息显示在Window窗口上面。
5. 理解Android网络编程中,常见的数据传输格式。
网络传输中最常见的有xml和json ,还有protocol buffers,gzip,Thrift Xml通过Pull,SAX和Dom方式解析 Json用JSONObject和GSON解析。 Protocol Buffers 一种数据描述语言,类似于XML能够将结构化数据序列化——类似于XML,但更小,更快,更简单 经常用到json、xml等格式的数据,这些数据在传输前可以进行压缩,这时候就会涉及到一种压缩格式—Gzip。Gzip的压缩比率非常大,有的甚至能达到70%以上, . . a 可以大大减少传输内容,提高用户的传输速度,进而提高用户的体验
6. 理解基本组件Activity的相关知识(如重载方法等)。 Android应用有四大组件Activity、Service、BroadcastReceiver、ContentProvider ContentProvider组件:用于Android应用之间实现实时的数据交换。常和
ContentResolver一起使用
BroadcastReceiver组件:广播消息接收器,类似于事件编程中的监听器,但是不同的是普通的事件监听器监听的事件源是程序中的对象,而BroadcastReceiver监听的事件源是Android应用程序中的其它组件。 Service组件: 通常位于后台运行,一般不需要与用户交互,所以没有图形界面。Service组件运行起来后会有独立的生命周期,它通常用于为其他组件提供后台服务或监控其他组件的运行状态
(1) activity是一种可以包含用户界面的组件,主要用于和用户进行交互 表现形式是一个屏幕,功能是显示界面,消息传递 整个生命周期:onCreate()-onDestroy() 可见的生命周期:onStart()-onStop() 前台的生命周期:onResume()-onPause()
运行,暂停(不在栈顶,但可见),停止(完全不可见,有可能因内存不够被回
收),销毁(从栈中移除 覆盖了activity生命周期的每一个环节