好好复习喽,写个复习博客
这门课程其实还是蛮难受的,一者在于这门课程在实验上偏向于移动端开发,但是我其实并没有兴趣在安卓和IOS开发,二者在于这门课程在理论上有很多东西是通信原理上面的,我们软件学生学了没有用,不学还拿不到分,而且知识很杂还没有课本,复习起来是非常难受。不多bb,来看课件:
1. 移动互联网概述
1)移动互联网的定义
2)移动互联网的特点:
3)移动互联网的体系结构
移动终端,移动网络,网络接入,业务接入,移动网络应用
4)移动终端应用类型
6)移动互联网开发技术
- 网络通信技术
- 多媒体技术
- 智能架构技术
- UI技术
- 利用浏览器内核webkit技术
2.移动终端与操作系统
1)移动终端的组成(软硬件)
硬件组成技术:
芯片组技术:高集成度,高速率,支持多种操作系统,多制式,低功耗是未来的发展方向
屏幕技术:显示屏技术和触屏技术
电池技术:续航能力
摄像头技术:低噪声,高像素
传感器技术:提高精度
软件组成技术:
操作系统是基础,基础中间件,业务中间件,通信中间件实现应用支撑。
2)安卓操作系统
activity的状态:激活或运行状态,暂停状态,停止状态
activity中相互调用的问题:
使用Intent,Intent.setClass(this,OtherActivity.class);
start(Intent);
3)IOS
IOS是一个基于UNIX内核的操作系统
移动通信技术
1)移动通信的特点和基础技术
所谓移动通信,就是指通信的一方或双方在移动中实现通信
移动通信的传输必须使用无线电波,电波传输环境恶劣
基础技术:
1.蜂窝组网:移动通信的基础
2.移动管理:切换管理,位置管理
3.移动IP
4.WI-FI
2)发展历史
1G-2G-3G-4G-5G
3)数字调制技术(2ASK,2FSK,2PSK)
调制是基带信号加到载波上的过程
波特率:调制速率,即单位时间内载波参数变化的次数
比特率:数字信号的传输速率
2ASK:幅移键控
信号为1的状态载波接通,传输信道上面有载波出现,信号为0的时候没有载波出现,接收端根据载波的有无来还原出数字0和1
调制信号的带宽(频带带宽)是基带波特率的2倍。
- 传码率是1000baud,载波信号是3000bit/s,所以每个码元包含3哥载波周期,是八相调制
- 频带宽度是传码率的两倍,2000MHZ
2FSK:频移键控
使用两个不同频率f1和f2的振荡来表示1和0,传码率(波特率)为fs,那么2FSK的信号带宽为
f1 是3600 ,f2 是1200 ,fs 是1200,那么根据公式,频带带宽是4800MHZ
2PSK:相移键控
用载波相位来表示0和1,比如说相位偏移为0()的是0,相位偏移为(0)的是1
带宽是绝对脉冲序列的2倍
数字调制技术的比较:
特点 | |
---|---|
2ASK | 设备简单,频带利用率较高,抗噪声性能差,对信道特性变化敏感 |
2FSK | 抗干扰能力较强,不受信道参数变化的影响,适用于衰落信道;缺点是频带利用率较低 |
2PSK | 抗干扰能力最强,不易受信道特征变化的影响,在中,高速数据传输中广泛应用 |
4)多址接入技术(TDMA,FDMA,CDMA)
多址接入技术就是指多个用户接入并共享同哟个无线通信信道,以提高频谱利用率的技术
频分多址FDMA:按照频率的不同给每个用户分配单独的物理信道
时分多址TDMA:给不同的用户分配不同的事件按照时隙来划分信道
码分多址CDMA:按照码型来划分信道
移动互联网接入技术
1.WLAN(无线局域网)
利用无线通信技术在一定的局部网络内建立的网络,WLAN就是符合802.11系列协议的无线局域网技术。
无线局域网的最小构建是基本服务集BSS(basic service set),基本服务集的基站就是接入点AP(acess point),我理解就是路由器
胖瘦AP:
利用胖AP组建大,中性无线网络时,配置工作量大
进行软件升级时,需要手动每台进行升级,维护工作量大
保存着设备配置信息,当设备失窃时造成配置信息泄露
胖AP适用于小型无线网络部署
隐藏站/暴露站问题:
隐藏站问题:如上图(a)所示,因为AC相聚较远,所以AC不能相互听见,当A想给B发数据的时候,A并不知道C正在给B发数据,所以导致A给B发数据失败。
暴露站问题:如图(b)所示,A正在给其它一个主机发数据,此时B想给C发数据,B-C的信道已经和A发数据的信道没有冲突了,但是B可以检测到A发出的数据,所以B认为现在它不能发数据,这就是暴露站问题。
CSMA/CA:
当发送端想要发送数据的时候,它先监听信道,如果信道忙就实验二进制指数退避算法随机等一段时间再发送,如果信道空闲那么发送端就发送一个信道预约帧RTS,接收端接收到RTS那么就发送一个CTS帧告诉大家信道被发送方占用一段时间。发送方开始传递数据,当数据传递完全之后接收端会发送一个ACK帧告诉发送端数据发送成功。如果接收端没有接收到数据那么超时重传。
通过RTS/CTS的交互,可以避免隐藏站点问题
接入过程:
扫描阶段,认证阶段,关联
无线接入第一阶段:扫描阶段
分为主动扫描和被动扫描:
主动扫描:(能迅速找到)无线客户端依次在11个信道发出probe request帧,寻找与STA有相同SSID的AP,若找不到相同的,则一直扫描下去
被动扫描:无线客户端被动等待AP每隔一段时间发送的beacon信标帧,该帧提供AP所在BSS相关信息
认证阶段::就是验证wifi密码
关联阶段::
2.WPAN:无线个域网
范围较小(只有几米)的计算机网络,被看作最后几米的解决方案
蓝牙技术和802.15标准:
蓝牙技术时一种支持短距离通信的无限电技术,工作与2.4GHZ,数据速率是1Mbps,采用时分双工传输方案。802.1.1
UWB:超宽带:基于802.15.3,抗干扰性强,传输速率大,带宽大,消耗电能低,保密性好
802.15.4:低速无线个域网,低能量消耗,低速率传输,低成本,ZigBee
MAC层是负责无线信道的使用方式,是构建Zigbee协议底层的基础
3.无线城域网WMAN
无线城域网可提供最后一英里的宽带无线接入
无线城域网的两个正式标准:
1.固定宽带无线接入空中标准
2.移动性宽带无线接入空中标准
WiMAX:
全球微波互联接入:新型的宽带无线接入技术,数据传输距离最远可达50km
提供面向互联网的高速连接,数据传输距离最远可达50km
802.16:
移动IP
为什么移动IP:
以人为本:不用重配置
通信的持续:不用中断通信
无所不在:无论何时何地与任何人都可以无约束地通信
Internet路由机制:
到某一目的地的IP包,将被路由转发到前缀可达性的路由器
移动IP的概念,实体,术语
移动节点在改变接入点之后可以继续与其它节点进行通信
移动节点只要与接入点连接就能用原来的IP地址通信
移动节点能与不具有移动IP功能的其它节点通信
术语:
移动节点:MN,mobile node
家乡网络HN:home network
外地网络FN:foreign network
家乡代理HA:home agent
外地代理FA:foreign agent
永久地址PA:permanent address
转交地址:COA
家乡链路HL:home link
外地链路:foreign link
每个移动节点MN有两个IP地址:一个固定的IP地址,一个可变的转交地址
转交地址COA:
COA是隧道的出口,所有给移动节点的数据报通过隧道投递给COA
共享式COA,专用COA
移动节点是隧道的终点
移动IPV4:
代理发现
注册
分组路由
注销
过程:
(1)移动代理通过代理通告信息告诉MN移动代理的存在,MN也可以通过当前访问网络发送代理请求获得代理通告消息。MN接收到代理通告消息后,可以确定它是在家乡网络还是外地网络上,如果是家乡网络,其操作与固定主机一样;如果是从其它注册的网络回到家乡网络,则通过和家乡网络代理交换注册请求和注销应答消息在家乡代理进行注销。
(2)如果MN发现自己已经移动到一个外地网络,它将获得外地网络上的一个转交地址。
(3)移动到外地网络上的MN随后让FA与家乡代理注册交换注册请求和注册应答消息,注册转交地址COA
(4)HA截获发给MN家乡地址的数据分组
(5)HA将数据通过隧道技术发给COA
(6)FA或者MN对报文进行拆封之后交给MN
(7)MN发出的报文通过标准IP路由给目标节点,不需要经过HA。
FA的作用:
为MN生成COA
给HA发消息告诉HA移动节点现在的COA
移动IPv6:
目标:MN总是通过家乡地址寻址,不管连接在家乡链路还是移动到外地网络
新特性:节点改变其连接链路时,运行在节点上的应用程序不需要修改和配置仍然可用
这一特性使得MN总是通过家乡地址进行通信,这种机制对于IP层以上的协议层是完全透明的
过程:
移动IPv6相邻节点搜索中定义的路由器发现报文包括:
1)路由器请求报文
2)路由器通告报文
MN通告检查收到通告中的网络前缀实现位置和移动检测
移动IPv6布告使用绑定更新,绑定应答,绑定请求3类消息
IPv6相比于IPv4的改进:
地址数量大幅度增加
不再需要FA
路由优化
输入过滤
地址结构层次更加优化
内嵌安全机制
能够有效管理地址自动配置
服务质量提高
移动检测
HA地址发现
隧道技术:
数据报从CN(外部节点)发到MN的家乡网络
HA接收到该包之后通过隧道转发给MN的COA
在FA侧数据报被拆封,然后递交给MN
MN发送的数据报采用标准IP路由
UI技术
6种界面布局格式:
框架布局:FrameLayout
线性布局:LinerLayout
表格布局:TableLayout
相对布局:RelativeLayout
网格布局:GridLayout
绝对布局:AbsoluteLayout
框架布局是最简单的布局方式,所有添加到布局中的视图都以层叠的方式显示,第一个加入的视图放在最底层,最后一个放在最顶层,上层视图会全部或者部分覆盖下层视图
图形控件的常用属性
android:id=@+id/value
标识控件的id,以后在代码或者布局文件中可以使用,
fill_parent/match_parent
控件高度或者宽度尽可能满足父控件
wrap_content:
控件高度和宽度根据控件内容确定
android:background
设置控件的背景色和背景图,设置背景图的格式为@drawable/resourceId
android:onclick
制定当前装在布局文件的activity类中单机实践的方法名
常用图形控件:
EditText是TextView的子类,拥有TextView类的一切属性及方法
RadioButton用于单选,通常将该标签放在RadioGroup标签中
是button的简洁子类,可以用button的属性
ToggleButton:开关状态按钮控件
事件和日期控件:
进度条ProcessBar
拖动条:SeekBar
评分控件:RatingBar
ListView:普通列表控件
以列表形式显示数据,采用MVC模式将前端显示与后端数据进行分离。
listview控件在装载数据时并不直接添加数据,而是需要制定一个adapter对象,而listview则相当于MVC模式中的v,用于显示数据,提供数据的数组相当于M
使用方法
- 定义listview
- 创建Adapter对象
- 将Adapter与listview进行绑定
OnItemClick
ListView控件
Spinner:下拉列表框
ScrowView支持垂直滚动,只包含一个控件,通常在标签中定义一个标签,将其属性android:orentation设置成vertical,在标签中放置多个控件,如果控件所占用的总高度超过屏幕高度,则出现滚动条
Gallery水平显示图像列表,支持水平滑动效果
ImageSwitcher切换动画,需要一个视图工厂(一些图片)来创建用于显示图像的ImageView对象
菜单
对话框:
AlertDialog,Toast,Notification:提示信息框
自绘界面设计
安卓存储技术
简单存储SharedPreferences:键值对
使用步骤:
- 得到SharedPreferences对象
- 得到editor对象
- editor.putXXXX()
- editor.commit()
文件存储:
文件存储的核心是输入输出流:
读写文件要记得加入相应的权限
创建并保存数据文件的步骤
- 调用openFileOutput()方法,确定文件名和操作模式
- 使用write()方法向文件写入数据
- 调用close()关闭输出流
从文件中读取数据的步骤:
1.调用openFileInput()方法,确定读取的文件名
2.调用read()方法读取文件
3.关闭文件输入流
数据库存储
SQLite是一款开源嵌入式轻量级数据库软件
操纵SQLite需要继承SQLiteOpenHelper类
OnCreate方法一般用于在新创建的数据库中建立表,视图
使用OnUpgrade方法升级数据库
如果需要将表中数据显示在ListView,Gallery等控件中,可使用SimpleCursorAdapter。
与SimpleAdapter使用方法非常接近,只是将数据源由List对象换成Cursor对象
SimpleCursorAdapter与SimpleAdapter的使用方法非常接近,只是数据源由List对象换成了Cursor对象
跨应用数据源:
content provider提供了应用程序之间共享数据的方法
content provider提供了对内容和外部数据进行增删改查的功能,相当于跨应用的数据操作
安卓网络通信技术
1.webview
webview是一个使用WebKit引擎的浏览器控件,可以用于显示本地或Internet上的网页。可将WebView当作一个完整的浏览器使用
不仅支持HTML,CSS等静态元素,还支持JavaScript,在JavaScript中还可以调用Java的方法
浏览网页是WebView的基本功能,通过WebView可直接装载任何有效网址,不仅可以浏览Internet上的网页,也可以浏览本地的网页或任何WebView支持的文件
2.访问HTTP资源:
请求步骤:
- 使用java.net.URL封装HTTP资源的url,使用openConnection方法获得HttpUrlConnection对象
- 设置请求的方法,例如GET,POST
- 设置输入输出及其它开关
- 设置HTTP请求头
- 输入和输出数据
- 关闭输入输出流
socket:
假设HostA要给HostB发送数据,那么建立socket,A将数据写入socket,socket的内容被A的网络管理软件访问,并将信息通过A的网络接口卡发送到B,B的网络接口卡接收到信息后,传递给B的网络管理软件,软件将信息保存到B的socket中,然后B才能在socket中读取这段信息。
getInputStream:得到服务器发回的信息
getOutputStream:得到发给服务器的数据
服务器socket:
蓝牙:
BluetoothAdapter:
发现其他蓝牙设备
查询绑定了的设备
使用已知MAC地址实例化一个蓝牙设备
建立一个BluetoothServerSocket
BluetoothSocket:
蓝牙套接字,可以与服务器建立连接,获取输入流,获取输出流,获取远程设备,与服务器断开连接
连接WiFi的步骤:
WiFi启动
开始扫描
显示扫描的AP
配置AP
连接AP
获取IP地址
上网
Service
Service的生命周期
OnCreate()->OnStart()->StopService()->OnStop()
或者
开机启动Service:BroadCast Receiver
跨进程调用
调用系统服务:
Hybrid(混合)应用开发技术
移动互联网应用安全
应用安全主要采用的安全措施包括:
- 应用访问控制
采用安全隧道技术,不经过安全隧道的访问请求一律丢弃 - 内容过滤
- 安全审计
五种攻击类型及其防范方法:
1.拒绝服务攻击:
1.1假冒FA向MN发起拒绝服务攻击
1.2向主机发送大量数据包,使得主句忙于处理这些无用的数据包而无法响应有效的信息
1.3对MN的通信进行干扰
防范:
2.假冒攻击:
发出一个伪造的注册请求,假冒COA,拦截通过隧道发给MN的数据报,可以看作第二种拒绝服务攻击
防范:
因为攻击者是向HA发送假冒的COA,所以
3.重放攻击
防范:
MN为每一个连续的注册消息标识域都产生一个唯一值,该值使得HA可以知道下一个值是多少,这样攻击者就无能为力,因为他保存的注册请求消息会被HA判定为已经过时
4.移动IP隧道中的安全威胁
网络窃听攻击:攻击者被动偷听它人的数据包
防范:杜绝信息的明文传输
主动的会话攻击:假扮合法节点将数据窃取过去
防范:MN与FA之间有链路层加密
来源:CSDN
作者:canaryW
链接:https://blog.csdn.net/cobracanary/article/details/103672613