androidactivemq
1. 由于Android对JMS的支持很差,请问有哪些方案可以实现Android与ActiveMQ的通讯可否提供Demo
用这个rabbitMQ,网上有教程
2. android studio 怎么用activemq-5140
随便输入了个logd、Toast、starter、tag就蹦出这么多代码,你说酷不酷,这就是Live Templates
啥,你说你输入tag,没反应,OK我们来定义一个就是,按照如下顺序
3. 在Android上怎样实现java和JS交互
java和js交互分为三种情况,分别是:
1 调用网页上的js代码
Android中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true,,然后通过loadUrl就可以直接进行调用,如下所示:
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.loadUrl("javascript:test()");
2 网页java代码的方法
在网页中调用java代码,需要在webview控件中添加javascriptInterface。如下所示:
mWebView.addJavascriptInterface(newObject(){
publicvoidclickOnAndroid(){
mHandler.post(newRunnable(){
publicvoidrun(){
Toast.makeText(Test.this,"测试调用java",Toast.LENGTH_LONG).show();
}
});
}
},"demo");
在网页中,只需要像调用js方法一样,进行调用就可以
<div id='b'><a onclick="window.demo.clickOnAndroid()">b.c</a></div>
3 Java代码调用js并传参
首先需要带参数的js函数,如functiontest(str),然后只需在调用js时传入参数即可,如下所示:
mWebView.loadUrl("javascript:test('aa')");
4.Js中调用java函数并传参
首先一样需要带参数的函数形式,但需注意此处的参数需要final类型,即得到以后不可修改,如果需要修改其中的值,可以先设置中间变量,然后进行修改。如下所示:
mWebView.addJavascriptInterface(newObject(){
publicvoidclickOnAndroid(finalinti){
mHandler.post(newRunnable(){
publicvoidrun(){
intj=i;
j++;
Toast.makeText(Test.this,"测试调用java"+String.valueOf(j),Toast.LENGTH_LONG).show();
}
});
}
},"demo");
然后在html页面中,利用如下代码<divid='b'><aonclick="window.demo.clickOnAndroid(2)">b.c</a></div>,
下面是安卓无忧中js 与安卓相互调用的效果图,可以网络一下安卓无忧,点击源码,看看里面的源码。
4. Windows下安装的ActiveMQ关闭的问题 安装的是apache-activemq-5.10.0
参考如下内容:
使用activeMQ进行Android推送
activeMQ下载地址:http://activemq.apache.org/download.html
下载后是一个压缩包:apache-activemq-5.9.0-bin.zip
启动方式:
解压缩,进入apache-activemq-5.9.0-bin\apache-activemq-5.9.0\bin,双击activemq.bat,即可启动activeMQ服务
启动之后:
android客户端推送采用mqtt(paho-mqtt-client-1.0.1.jar),依赖包见附件
但是为了测试,我写了一个swing图形界面,充当手机客户端,依赖的jar包仍然是paho-mqtt-client-1.0.1.jar.界面如下:
5. java工程师是做什么的
对于java工程师是做什么的华清远见教育认为想要了解一个职业是做什么的最好的方法就是在先看一下这个岗位的职责,java工程师职业一样也不例外。
1、负责客户端APP产品中服务器后端的工程设计,架构设计以及开发工作
2、研究业界最新技术及其应用,解决创新研发过程中的关键问题和技术难点
3、根据项目任务计划按时完成软件编码和单元测试工作
4、按照开发流程编写相应模块的设计文档
5、与产品经理、测试工程师、其他团队沟通合作,保证产品研发工作的质量和进度
6、协调或指导团队里其它开发人员的工作。
7、一种主流后端语言编程经验:Java,或Scala,或Node.js,或Python
8、精通主流Web应用开发框架(Spring,Play!,Express,Django,等等);熟悉SOA和Web Services(REST,SOAP)系统框架;熟悉主流应用服务器(Tomcat,JBoss,Apache,Nginx,等)
9、精通数据库设计和性能优化;熟悉主流RDBMS和NoSQL数据库(MySQL,MongoDB,Memcached,Redis等),以及数据库编程(SQL, JDBC, iBatis,OpenJPA, 等)
10、熟悉常用工程工具:Jenkins, Maven/Sbt/Npm/Ant,Git/SVN,Eclipse/IntelliJ,等等
11、熟悉设计模式,熟练掌握面向对象编程和事件驱动编程风格
12、有热情,酷爱技术,有良好的计划、沟通、组织协调能力、语言表达能力;较强的逻辑分析能力和应变能力;良好的团队合作精神
6. 如何使用ActiveMQ+MQTT实现Android点对点消息通知
2013-12-20
实现点对点消息通知的关键问题
ActiveMQ使用MQTT协议,加上android上的paho包,即可简单实现消息通知功能,但是mqtt协议只支持topic,而且不能用selector,使得点对点的消息投递变成问题。
有两个解决思路:
1、每个clientId,建一个topic...这个办法对解决消息点对点投递非常有效,但是有两个大问题:
随着用户数增多,topic数量增多,对管理性要求增大,对内存的管理也有问题。
消息广播操作也变得非常麻烦,只能一个个的发送了。
2、另一个思路,就是在消息广播的基础上,进行点对点控制,实现某些特征的消息投递到指定的订阅者。
这个的实现比较简单,而且没有上面方案的大问题。代码稍微改下即可:
其实就只添加了一个新的类: ClientIdFilterDispatchPolicy
可以git clone所在版本源码,然后加上这个类,mvn package以后使用。
使用说明
本修改实现mqtt协议使用单个topic,来做消息广播和点对点的投递。
1、将本文件夹下的activemq-broker-5.9.0.jar、activemq-spring-5.9.0.jar换掉apache-activemq-5.9.0\lib下的jar。
2、参考本文件夹下activemq.xml,在topic上配置
<dispatchPolicy>
<clientIdFilterDispatchPolicy />
</dispatchPolicy>
3、对于此配置下的所有名称以.PTP结尾的队列,
如果要投递消息的properties里包含PTP_CLIENTID,则系统只会将此消息发给clientId为此值的订阅者;如果当前没有此clientId的订阅者,消息不会被任何人接收到。
如果投递消息的properties里不包含PTP_CLIENTID,则消息广播给所有的订阅者。 跟正常消息投递一致。
其中后缀.PTP和键值PTP_CLIENTID,是可以配置的:
<dispatchPolicy>
<clientIdFilterDispatchPolicy ptpSuffix="" ptpClientId="clientId"/>
</dispatchPolicy>
如上配置,使得此policy下的所有topic都起作用,且消息的properties里获取clientId的key变成clientId。
消息发布者,如果要对所有人广播消息,直接发送消息即可。
如果要对指定的消息订阅者发消息,请在消息里设置接收者的clientId:
message.setStringProperty(PTP_CLIENTID, clientId);则此消息只有指定的订阅者可以拿到。
简单测试
两台android设备使用MQTT协议订阅到ActiveMQ的同一个topic,clientId分别为mqtt-1001和mqtt1002;
写代码发两条消息,设置消息属性中PTP_CLIENTID分别为mqtt-1001和mqtt1002;
两个设备分别接收到自己的消息通知,相互之间没有影响。还可以测试下如果消息没有PTP_CLIENTID,两个都能收到。
7. Java/Android:关于ActiveMQ与MQTT的关系是什么
mq是队列
tt是推送
mqtt是
推送队列
mq是单纯的队列
推送的话
不能一下子全部推送完
也是需要队列一个一个来推送
8. ActiveMQ 消息消费者不主动监听消息队列是否有消息,只监听是是否有消息进去消息队列
Queue模式获取之后,消息队列中消息就应该会被删除:
Topic模式 在持久化之后,才可能被拿走之后,依然存在
9. java自学到什么程度就能找工作了
看了众多幼稚的回答,我实在是忍不住要说两句了
首先既然你选择了java就要知道最核心要学习的是一个叫做面向对象的思想,至于这个思想你那个比较好的同学说每天12小时看书属于一个干扰选项,毫无关系。
对于计算机编程尤其是面向对象思想来说,属于一个典型的领悟性知识,不是你看书多长时间就可以的,从这个层面来说这个和佛教看经书一样,你觉得没悟性的人每天看12小时金刚经就能领悟么?
多的不说,捞干的讲,所谓CS和BS结构是在互联网飞速发展以后出现的,CS就是传统的客户端服务器应用,而BS是浏览器服务器应用,都需要有服务器,严格说单机版的软件(完全不上网)不属于这两种,那么就要知道java究竟适合做什么
如果要做CS结构软件这个是比较麻烦的,因为多数用户使用windows系统,如果要做CS结构的软件需要让客户在本机上安装java的运行环境(jre或者jdk)才可以运行软件,虽然很多优秀软件比如Eclipse都是java开发的,但是要做到和C,C++,C#媲美的桌面应用图形界面要做的工作非常艰巨
而BS结构就是java的优势了,对于微软来说他们的BS程序只能跑在IIS服务器上而IIS服务器又只能在windows上安装,但是java就不同了,java的特点是跨平台无论你是Linux,Unix,MacOS还是windows都可以安装java应用服务器(最着名的tomcat,JBoss,WebSphere,WebLogic),由于浏览器服务器的软件结构,用户是完全感受不到你服务器端使用的是什么系统,但是由于java如此灵活在服务器端就可以实现一次编写处处运行
两种软件结构说完了,再说说现在java的趋势,java发明之初是用在洗衣机上的,由此java起初是一款嵌入式编程语言,而现在很多手机依然使用java来编程,这里就涉及到java类库的三个版本java SE,java EE,java ME,其中ME就是专门给手机之类移动设备使用的,而如今Google推出了android以后让java更上一层楼,android其实是一款使用java语言的Linux手机系统
另外java最新版本javaFX,正在挑战RIA行业两个老大flash/flex和Silverlight,另外这个版本的后续应该会非常容易移植到android上,这样就造成一次编写在BS结构服务器端可以跑放在android手机上也可以跑
另外一楼说的SSH已成明日黄花,struts正在逐步被淘汰,取而代之是struts2,虽然名字只相差1个数字,两个框架是完全不同的struts2其实是围绕着xwork来开发的比struts1.x强的不是一星半点现在还有人用struts完全就是历史遗留项目而言
至于spring,尤其内容很庞大而大家通常使用的组件又很少造成很大程度的冗余,Google guice就是一款非常不错的AOP组件可以代替spring的AOP组件(spring最常用的组件)
另外你朋友在北京应该做的是BS javaEE或者手机,这两块javaEE要赚大钱难,你需要有团队而你只是个棋子,团队赚钱,你分残羹而言,对于手机来说如果你开发android完全可以做个freelancer,可以赚很多,不过建议是少看书,每天12小时写代买加思考,书这种东西尤其是字典一样厚的技术书要当做工具书来翻,通读是浪费时间而且你根本记不住,只要知道有问题哪里找即可
另外所谓985只能证明你高中很会应试而已,建议你起北京不要老把这事挂嘴边,你知道身边谁是北青人大的?
此外推荐一本杂志《程序员》每期都要看,比看12小时书有意义的多
10. Java/Android:关于ActiveMQ与MQTT的关系是什么
实在看不下去了,网上怎么竟是些胡说八道的呢。太坑人。MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,activemq只是apache下一个队列项目,不仅仅支持MQTT协议,也支持其他比如AMQP等协议。MQTT是协议,协议只是定义好的规则,比如文档也是协议。activemq只是实现了MQTT协议的一个程序