android使用mina需要注意的问题
1.第三方jar包的使用
如果在Java Build Path中使用Add External JARs这种方式,运行时会有找不到类的错误(我的上面有,如果你没出现,恭喜你),上网查了几种方式,我这边运行通过的方式如下:
在项目中建个lib文件夹,把需要的jar包复制进去,在 Java Build Path中使用 Add JARs ,选择项目下的lib包中的jar文件即可,发布apk文件时会自动打包进去。
网上还有一种方式,在 Java Build Path 中使用 Add Library, 选择 User Libaray -> 新建一个User Libaray的方式,这种我没试,有通过的同志们说下。
本人推荐项目建文件夹的方式。
2. mina包的使用之日志
我使用的是mina2.0.2,如果没有特殊需求,使用mina-core-2.0.2核心包就可以了。
关键点在这里:模板
mina中使用slf4j作为日志框架(不知道slf4j的同志们请google下), 这个只是一个日志框架,是没有实现的,你需要一个具体的实现,比如说log4j(具体使用方法我就不说了,很简单,实在不知道给我发站内信)。使用 mina必须把slf4j的jar包也引入,那么你也要引入一个实现日志的包,在普通客户端开发这个不是问题,但在android中,已经有了一个日志实 现,而且配合logcat,其功能是很强大的,那么怎么配合slf4j来使用呢?(ps:slf4j是必须的,mina要用到)
这里就要感谢网络了,我在slf4j的官网居然发现有一个slf4j-android的jar包
http://www.slf4j.org/android/ 同志们可以去看看,(强烈推荐去看看)下载这个包,引入到项目中,注意啊,这个包是不能和slf4j-api包共存的,我的解决方式是只使用slf4j- android这个包,其余的日志相关的包都删除,(其实别的日志包也没什么用,我们有android提供的日志类),这样mina就不会报日志类找不到 的错误了,而且日志都输出到logcat,调试程序也方便。这方面我们要感谢slf4j,如果没有这个实现,mina使用就麻烦了,我能想到的方式就只有 更改mina源代码,重新编译了,当然你也可以自己提供日志实现类。 http://www.huiyi8.com/moban/
android的日志类中有一个限制,tag不能超过23个字符(你不知道tag,我也不知道该怎么说了...),slf4j也给解决了,官网上面有介绍。(再建议看下官网)
3. mina包的使用之NioSocketConnector
在android2.1中好像没有问题,但在android2.2中会有Bad address family的异常,这个异常是由于IPv6引起的,这个bug已经在 http://code.google.com/p/android/issues/detail?id=9431 (同志们看看吧),android2.2不支持IPV6,在使用nio 时会有问题,有建议是使用io,可以解决,但我们如果一定要使用nio呢,解决方法如下:
设置系统属性: System.setProperty("java.net.preferIPv6Addresses", "false"); 就这一行解决问题,有同志可能要问,在哪加啊?系统开始的地方加,比如说是service,在onCreate()中启动mina前加上就 行,activity中也一样。
android使用mina需要注意的问题的更多相关文章
- Android集成Mina NIO Socket
Mina简介 Apache MINA(Multipurpose Infrastructure 多功能框架 for Network Applications) 是 Apache 组织一个较新的项目,它为 ...
- Android Mina框架的学习笔记
Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络 ...
- 使用Mina框架开发 QQ Android 客户端
Apache MINA是一个网络应用程序框架,用来帮助用户简单地开发高性能和高可靠性的网络应用程序.它提供了一个通过Java NIO在不同的传输例如TCP/IP和UDP/IP上抽象的事件驱动的异步AP ...
- Mina框架的学习笔记——Android客户端的实现
Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络 ...
- android开发学习——Mina框架
Apache Mina Server 是一个网络通信应用框架,对socket进行了封装. http://www.cnblogs.com/moonandstar08/p/5475766.html htt ...
- 基于SuperSocket的IIS主动推送消息给android客户端
在上一篇文章<基于mina框架的GPS设备与服务器之间的交互>中,提到之前一直使用superwebsocket框架做为IIS和APP通信的媒介,经常出现无法通信的问题,必须一天几次的手动回 ...
- 【原创】NIO框架入门(四):Android与MINA2、Netty4的跨平台UDP双向通信实战
概述 本文演示的是一个Android客户端程序,通过UDP协议与两个典型的NIO框架服务端,实现跨平台双向通信的完整Demo. 当前由于NIO框架的流行,使得开发大并发.高性能的互联网服务端成为可能. ...
- Mina、Netty、Twisted一起学(十):线程模型
要想开发一个高性能的TCP服务器,熟悉所使用框架的线程模型非常重要.MINA.Netty.Twisted本身都是高性能的网络框架,如果再搭配上高效率的代码,才能实现一个高大上的服务器.但是如果不了解它 ...
- 71.Android之长连接实现
转载:http://blog.csdn.net/qq_23547831/article/details/51690047 本文中我们将讲解一下App的长连接实现.一般而言长连接已经是App的标配了,推 ...
随机推荐
- JAVA Eclipse创建Android程序界面不显示怎么办
一般是由于你创建的Android应用程序版本太高导致的,请设置4或以下版本,对于已有的项目,可以在属性-Android中修改目标生成的版本号 ...
- IP反查网站,ip反查接口,旁站查询接口大全,通过IP查域名汇总:
http://cn.bing.com/search?q=ip%3A220.181.111.85 http://dns.aizhan.com/?q=www.baidu.com http: ...
- vue2 axios 接口函数封装
封装 axios 工具,编辑 src/api/index.js 文件 首先,我们要使用 axios 工具,就必须先安装 axios 工具.执行下面的命令进行安装 npm install axios - ...
- struts2获取服务器临时目录
CreateTime--2017年9月7日08:57:39 Author:Marydon struts2获取服务器(tomcat.WebLogic)的临时目录 需要导入: import java. ...
- 七款Debug工具推荐:iOS开发必备的调试利器
历时数周或数月开发出来了应用或游戏.可为什么体验不流畅?怎么能查出当中的纰漏?这些须要调试诊断工具从旁协助.调试是开发过程中不可缺少的重要一环.本文会列举几个比較有效的调试诊断工具,能够帮助你寻根究底 ...
- Java NIO之Charset类字符编码对象
介绍 java中使用Charset来表示编码对象 This class defines methods for creating decoders and encoders and for retri ...
- ubuntu16.04----jdk---install----config
1.下载jdk. 2.验证java是否安装,使用java -version命令,如下图所示说明没有安装: 3.在usr目录中创建一个jdk-8目录,如下图所示: 4.配置系统环境变量,编辑/etc/p ...
- 深入Asyncio(七)异步上下文管理器
Async Context Managers: async with 在某些场景下(如管理网络资源的连接建立.断开),用支持异步的上下文管理器是很方便的. 那么如何理解async with关键字? 先 ...
- linux crontab 定时任务解析
-----------crontab定时任务---------------------- 检查crontab工具是否安装 crontab -l 检查crontab服务是否启动 service cron ...
- 【TensorFlow-windows】(七) CNN之VGG-net的测试
主要内容: 1.CNN之VGG-net的测试 2.该实现中的函数总结 平台: 1.windows 10 64位 2.Anaconda3-4.2.0-Windows-x86_64.exe (当时TF还不 ...