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協議的一個程序