【诞生背景】
Socket是一种很少用的东西了,而且又是阻塞性的,
So,MINA 出现了(socket进行的第三次封装)。
为什么是第三次封装?
答: 第二次封装是NIO 用法,太过复杂,所以进行了第三次封装。
【概念】
Apache MINA ,是一个网络应用程序框架,用来帮助用户简单地开发高性能和高可扩展性的网络应用程序。它提供了一个通过Java NIO在不同的传输例如TCP/IP和UDP/IP上抽象的事件驱动的异步API。
【为什么用?】
a.MINA 在网上的资料比较全,用的也比较广泛。
b.提供了事件驱动、异步操作的编程模型。(备注:Mina 的异步IO ,默认使用的是 JAVA NIO 作为底层支持)
【android+mina 开发环境搭建 】
1.服务器端:
a.引入json-lib-2.0-jdk15.jar,mina-core-2.0.4.jar,slf4j-api-1.6.3.jar,slf4j-simple-1.6.3.jar,
b.这个直接右键项目,properties ---> javabuild path ---> add external jars
2.客户端:(注意:很容易报NoClassDefException的错误 !!!)
a.在android工程下新建文件夹Libs,
b.在libs上右键useas source folder(这个很重要),
c.将mina-core-2.0.4.jar,slf4j-android-1.6.1-RC1.jar 放到libs下,
d.右键这两个jar,addto buildpath
e.配置完成
备注:
下面提供的Demo,不需要自己搭建服务器环境。因为安卓手机,同时充当客户端和服务器,代码主要是为了了解,框架中的类的操作,熟悉原理。
【开发常识了解 - 课外概念】
掌握JAVA IO、JAVA NIO、JAVASocket、JAVA 线程,并发库(java.util.concurrent.*)
【MINA 基本类的描述】
IoAccepter 相当于网络应用程序中的服务器端
IoConnector 相当于客户端
IoSession 当前客户端到服务器端的一个连接实例
IoHandler 业务处理逻辑
IoFilter 过滤器用于悬接通讯层接口与业务层接口
【Demo下载】
http://download.csdn.net/detail/zgxzgxzg/8907029