Android 网络编程 记录
简单介绍
看了深入理解Android网络编程感觉不错。今天对Android网络编程进行了要点记录。
内容
Android基于网络技术和编程实践
要点 | 定义 | 描写叙述 |
IP协议 |
用于报文交换网络的一种面向数据的协议 | |
TCP协议 | 传输控制协议,传输层通信协议。 | |
UDP协议 | 用户数据报协议。传输层协议。 | |
SMTP协议 | 简单邮件传输协议 | |
SOCKET 套接字 | 应用层与TCP/IP协议族通信的中间软件抽象层。 | 类型有两种:TCP套接字和UDP套接字。 |
TCP套接字 | 在保证可靠性上,採用超时重传和捎带确认机制,在流量控制上,採用滑动窗体协议;在拥塞控制上。採用慢启动算法。 | |
UDP套接字 | 将网络数据流量压缩成数据包的形式。 | |
FTP协议 | 文件传输协议,传输协议的应用层。 | 可直接操作Apache的包 |
Telnet协议 | 远程登陆服务的标准协议 | 可直接操作Apache的包 |
C++和JAVA 套接字的差别 | Socket是Winsock里的原始套接字开发接口Api。 | 1、接口不同,java本身无socket通讯底层实现,而是调用系统底层的winsock api二次封装;C++更接近系统层面的winsock,能够进行很多其他的底层扩展和控制。 2、java开发出来的能够在支持java虚拟机上执行。 |
UDP和TCP差别 | 1、tcp可靠,udp不可靠 2、tcp支持的应用协议有:telnet,ftp,smtp,tcp可用户数据传输量大 3、udp支持的应用协议:nfs(网络文件系统),snmp(简单网络管理系统),dns(主域名称系统),tftp通用文件传输协议等,用户数据传输量少。 4、tcp是java.net.ServerSocket(用于server端)和java.net.Socket(用于client);UDP是java.net.DatagramSocket。 |
|
Android基本Web技术和编程实践
要点 | 定义 | 描写叙述 |
HTTP协议 | 分布式超媒体信息系统的应用层协议。 http://主机[":"port][路径] |
特点: 1、支持C/S模式 2、简单高速 3、灵活 4、无连接 5、无状态 两类报文:请求报文,响应报文。 |
HTTP编程 | 支持的功能有:自己主动转向、https协议、代理server,方法(get、post、put、head、opption、connect) | 实现:数据请求,数据上传,数据删除等操作。 可操作的类:HttpClient和URLConnection。 |
JSON | JavaScript对象表示法。轻量级的文本数据交换格式。 | 可操作的类: JSONObject、JSonArray、JSONArray、JSONTokener、JSONStringer。 |
SOAP | 简单对象訪问协议。应用层协议。 | 包括的元素:Envelope、Header、Body、Fault。 |
HTML | 超文本标记语言 | 解析Html文档的方法有: 1、正則表達式 2、字符串定位 3、HTML Parser解析器 4、Jsoup解析器 |
怎样加密? | 数据传输可加入某加密算法进行加密 | 加密算法有:自己定义位移(其他)、MD5(不可逆)、对称加密(DES、AES)、非对称加密(RSA) 可引入crypto包。 |
Android常见网络接口编程
要点 | 定义 | 描写叙述 |
XML | 扩展性标记语音 | 使用XmlSerializer创建XML文件 |
DOM解析 | 一种解析XML的方式,特点:将XML文件的全部内容以文档树的方式存放在内存中,然后用户使用DOM API遍历XML树、检索所需的数据。 | 所需的类: DocumentBuilderFactory、Document、Element、NodeList. |
SAX解析 | 一种解析XML的方式,特点:基于事件驱动,边载入边解析。 | 所需的类: XMLReader、ContentHandler、DTDHandler、ErrorHandler、EntityResolver |
PULL解析 | 同上 | |
RSS | 简易信息聚合。一种描写叙述和同步站点内容的格式。订阅:博客、新闻。 | |
Email编程 | 顾名思义:发送邮件。 | 1、使用系统自带的邮件服务。 2、採用javamail功能包进行发送邮件。 |
加解密 | 加密是通过加密算法和加密密钥将明文转变为密文的过程,解密相反。 | 1、Base64加密(字符表示二进制数据) 2、DES 是数据加密标准 3、AES是高级加密标准 4、MD5使用确保信息传输完整性 |
OAuth认证 | 一个开放标准。同意用户第三方使用。 | 四个步骤: 1、获取未授权的请求token 2、获取用户授权的请求token 3、用授权的请求token换认证token 4、使用认证token訪问 |
DOM和SAX的差别 | 载入方式不同。DOM一次性载入全部内容。SAX边载入边读取。 | |
Android网络模块编程
要点 | 定义 | 描写叙述 |
USB编程 | 通用串行总线,一种主从结构。 | 涉及的类: UsbManager、UsbAccessory、UsbDevice、UsbEndpoint |
WIFI编程 | 802.11b标准,无线通信的工业标准,特点:速度快、可靠、距离远。 wifi直连技术是通过wifi直接互通。 |
相关类:WirelessSettings、WifiSettings、AccessPointDialog、WifiEnabler、WifiLayer、WifiManager、WifiState、WifiService、WifiMonitor、WifiNativie、ScanResult、WifiInfo、wifiConfiguration。
用户角度看五层:硬件驱动程序、wpa_supplicant、JNI、Wifi Api、WifiSettings应用程序。 |
蓝牙编程 | 一种支持设备短距离通信的无线技术 | 涉及的类:BluetoothAdapter、BluetoothDevice、BluetoothSocket |
NFC编程 | 近距离无线通信的技术。3种工作模式:主动、被动、双向。应用:接触通过、接触支付、接触连接、接触浏览。 | 涉及的类:NfcAdapter、NdefMessage、NdefRecord |
基于Sip协议的Voip应用
要点 | 定义 | 描写叙述 |
sip协议 | 会话发起协议。用于建立、改动和终止包括视频、语音、即时通信、在线游戏和虚拟现实等多媒体元素在内的交互会话。 | 应用层的信令控制协议。 |
使用什么协议传输的? | UDP协议和TCP协议 | |
H.323协议和SIp协议的比較 | 1、H.323採用ASN.1和压缩编码规则的二进制方法表示其消息,sip基于文本协议。 2、h.323由多点控制单元,全部终端都向mcu发送控制消息。sip是分布式的呼叫模型,具备组播功能。 |
|
sip会话的构成? | 四个组件: 1、SIP用户代理(终端设备) 2、SIP注冊server(包括域中全部用户代理的位置的数据库) 3、SIP代理server(接口UA的会话请求并查询SIP注冊server,获取收件方UA的地址信息) 4、SIP重定向server(同意Sip代理server讲sip会话邀请信息定向到外部域) |
|
基于XMPP协议的即时通信
要点 | 定义 | 描写叙述 |
XMPP协议 | 可扩展消息处理现场协议 | 一种以xml为基础的开放式实时通信协议。 |
Android的XMPPclient地址 | http://asmack.freakempire.de/ | |
Android对HTML的处理
要点 | 定义 | 描写叙述 |
HTML处理关键类 | Android HTML处理关键类在源代码frameworks/base/core/java/android/webkit文件夹下 | |
关键类以及描写叙述 | 1、AccessibilityInjector 为WebView注入能够訪问的javaScript和其相关内容。
2、AutoCompletePopup 依据输入内容自己主动不全 12、DataSorter 日期排序 20、GeolocationService 封装位置监听。 |
33、MimeTypeMap MIME类型映射 34、MockGeolocation 模拟地理位置信息 36、MustOverrideException 扩展执行时错误 37、OverScrollGlow 用于实现OverScroller结果 38、Plugin 定义插件的类 39、PluginData 插件数据 40、PluginFullScreenHolder 获取插件视图的容器的大小。负责显示等操作。 41、PluginList 维护插件列表 42、PluginManager 插件管理类 43、PluginStub WebView的实现插件的接口 44、QuadF 定义一个四边形 45、SearchBox 搜索对话框接口 46、SearchBoxImpl 搜索对话框接口实现 47、SelectActionModeCallback 选择动作回调 48、SslCertLookupTable 存储用户是否使用一个证书的决定 49、SslClientCertLookupTable 保存client证书的用户选择 50、SslErrorHandler 处理SSL错误 51、URLUtil URL使用处理类 52、valueCallback 异步返回数据值的回调接口 53、ViewManager 视图管理类,管理插件视图 54、ViewStateSerializer WebView视图序列化和反序列化 55、WebBackForwardList WebView对象中显示的历史数据列表 56、WebBackForwardListClient 浏览历史处理的client接口 57、WebChromeClient Chromeclient 58、WebCoreThreadWatchdog WebCore看门狗 59、WebHistoryItem 一条网页数据 60、WebIconDatabase 图标数据库管理对象 61、WebIconDatabaseClassic WebIconDatabase 扩展类 62、WebResourceResponse 封装资源的响应信息 63、WebSettings WebView的管理设置数据。通过JNI接口从底层获取。 64、WebStorage 数据库 65、WebSyncManager 数据同步管理对象。用于RAM数据和FLASH数据的同步操作。 66、WebTextView 在HTML文本输入控件激活时显示系统原生编辑组件。 67、WebView 视图对象 68、WebViewClient Web视图客户对象。在web视图中有事件产生时,该对象获得通知。 69、WebViewDatabase 数据库 72、ZoomControlBase 缩放控件接口。 |
Android 网络处理分析
要点 | 定义 | 描写叙述 |
网络处理关键类 | Android HTML网络处理关键类在源代码frameworks/base/core/java/android/net文件夹下 | |
关键类以及描写叙述 | 1、ConnectivityManager 用于查询网络连接的状态。 2、Credentials UNIX身份信息 3、DhcpInfo 一个Dhcp请求结果的对象 4、LocalServerSocket 创建下行unix域套接字的非标准类 5、LocalSocket 在unix域命名空间创建一个非serversocket 6、LocalSocketAddress socket地址 7、MailTo 解析mailto协议格式的url 8、NetworkInfo 描写叙述网络接口状态 9、Proxy 訪问用户及默认代理设置的类 10、SSLCertificateSocketFactory 实现了ssl操作的额外细节 11、SSLSessionCache ssl会话缓存 12、TrafficStats 网络流量统计 13、Uri 一个不可变的url引用 14、Uri.Builder 创建url引用的辅助类 15、UrlQuerySanitizer 过滤url查询 16、UrlQuerySanitizer.IllegalCharacterValueSanitizer 用它们包括的字符过滤非法值 17、UrlQuerySanitizer.ParameterValuePair 參数值对的简单元组 18、VpnService 应用扩展和建立自己的vpn解决方式的基类 19、VpnService.Builder 创建一个vpn接口的辅助类 |
|
Android封装的http处理类 | 1、AndroidHttpClient(本质上是Apache DefaultHttpClient类在Android上的实现) 2、DefaultHttpClient(一个Httpclient) 3、SSL认证信息处理类(SSL协议的实现与数字证书相关,涉及的类:SslCertificate、SslError) |
1、AndroidHttpClient不能在主线程中执行,DefaultHttpClient在主线程中执行。 2、AndroidHttpClient通过静态方法newInstance获得实例。而DefaultHttpClient创建对象。 3、DefaultHttpClient默认启动Cookie,但默认不保留Cookie,如要保留需添加CookieStore到HttpContext中。 |
Android RTP协议 | 实时传输协议。用来为ip网络的语音、图像、传真等多种实时传输的多媒体数据提供端到端的实时传输服务。
RTP协议具体说明了传递音频和视频的标准数据包格式。 |
涉及的类:AudioCodec、AudioStream、AudioGroup、RtpStream。 |
总结
该书具体解说了Android开发要点。并用源代码案例进行了具体说明,使笔者从原理上加深对相关知识点的理解。
Android 网络编程 记录的更多相关文章
- 【Android 应用开发】Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介
Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- An ...
- Android 网络编程 API笔记 - java.net 包 权限 地址 套接字 相关类 简介
Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- An ...
- Android网络编程只局域网传输文件
Android网络编程之局域网传输文件: 首先创建一个socket管理类,该类是传输文件的核心类,主要用来发送文件和接收文件 具体代码如下: package com.jiao.filesend; im ...
- Android网络编程基础
Android网络编程只TCP通信 TCP 服务器端工作的主要步骤如下.步骤1 调用ServerSocket(int port)创建一个ServerSocket,并绑定到指定端口上.步骤2 调用acc ...
- Android网络编程系列 一 TCP/IP协议族
在学习和使用Android网路编程时,我们接触的仅仅是上层协议和接口如Apache的httpclient或者Android自带的httpURlconnection等等.对于这些接口的底层实现我们也有必 ...
- Android网络编程系列 一 Socket抽象层
在<Android网络编程>系列文章中,前面已经将Java的通信底层大致的描述了,在我们了解了TCP/IP通信族架构及其原理,接下来我们就开始来了解基于tcp/ip协议层的Socket抽 ...
- Android 网络编程 Socket
1.服务端开发 创建一个Java程序 public class MyServer { // 定义保存所有的Socket,与客户端建立连接得到一个Socket public static List< ...
- Android网络编程概述
Android网络编程概述 首先,应该了解的几个问题: 1)Android平台网络相关API接口 a) java.net.*(标准Java接口) java.net.*提供与联网有关的类,包括流.数据包 ...
- Android网络编程http派/申请服务
最近的研究Android网络编程知识,这里有一些想法,今晚学习.与您分享. 在实际的应用程序的开发非常需要时间appserver请求数据,那么app怎样发送请求呢?以下的代码就是当中的一种情况.使用H ...
随机推荐
- [oldboy-django][2深入django]FBV + CBV + 装饰器
FBV django CBV & FBV - FBV function basic view a. urls 设置 urls(r'^test.html$', views.test) b. vi ...
- java-dispose方法
今天在编一道JAVA例题时,看到 dispose 这个方法,在程序中是用来关闭一个GUI页面的.这也让我想到了setVisible(false)方法.在网上查了意思,dispose()即释放所有本机屏 ...
- 【转】Unity3D学习日记(一)使用UGUI制作虚拟摇杆
http://blog.csdn.net/begonia__z/article/details/51170059 如今手机游戏玩法多种多样,尤其使用虚拟摇杆进行格斗类游戏开发或者是MMORPG成为了主 ...
- 【转】网页游戏能用PHP做后端开发吗? PHP Libevent扩展安装及应用
网页游戏能用PHP做后端开发吗? 当然可以.最好走HTTP,也可以做网络编程,而且写代码超简单,1个函数就可以建一个服务器端.stream_socket_server()多线程不是什么好主意,你可以用 ...
- 排列计数(permutation)
排列计数(permutation) 题目描述 求有多少种长度为n的序列A,满足以下条件: 1) 1~n这n个数在序列中各出现了一次 2) 若第i个数A[i]的值为i,则称i是稳定的.序列恰好有m个数是 ...
- python数据结构元组与集合
元组 1.()来定义 2.有序,同列表 3.元组一旦创建,不能被修改 注:元组的标识是逗号,不是括号 元组的定义 a = (1,2) type(a) <class 'tuple'> 元组的 ...
- sql2008游标FORWARD_ONLY STATIC 的使用方式
CREATE TABLE #xms_staff_department ( id int, name varchar(128), parent_id int, parent_path varchar(5 ...
- hdu 2824(欧拉函数)
The Euler function Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- 16Aspx.com-PHP企业整站源码 景观石材大理石类织梦模板 含手机移动端 完整源码 APP+PC
=============================================== 源码站长资源交易专业网-商业源码下载,VIP源码,程序交易,毕业设计交易,站长交易|- 16aspx.c ...
- Java IO 学习(零)概述
参考文献 Doug Lea的 <Scalable IO in Java> Java NIO trick and trap IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇) 网络编程释疑 ...