这个问题是Best Solution Architecture中的问题的扩展,基本上我想知道什么是处理桌面和移动应用程序所涉及的解决方案的最佳架构。在这个时候我想知道,如果我们决定讨论Java技术,我们如何构建这个解决方案,以便尽可能多地重用代码。
解决方案必须运行在windows,linux和mac机器上(我们知道分别使用java和swing技术作为业务和GUI,我们可以完成这个requeriment)。当我们决定将Android OS用于我们解决方案的移动功能时,问题就出现了,我们如何重用为桌面应用程序编写的代码?当我们试图避免安装Web或应用程序服务器时,如何将我的业务类公开为服务?是否可以归档SOA以避免Web应用程序服务器?为了尽可能多地重用代码,最好的开发技术是什么?。
如果你的家伙有任何文件或任何评论指出我正确的方向来解决这个问题我会批评它。
答案 0 :(得分:2)
如果您试图避免托管运行代码的Web服务器,那么我建议您创建一个好的旧时尚JAR库。
将所有用户界面代码保留在JAR之外,并将业务逻辑编程为API。在J2SE 1.5中对其进行编码,但请确保在桌面和移动环境中对其进行测试。然后,您可以在创建完整的桌面应用程序和Android应用程序时使用业务逻辑JAR文件。
有关在Android中使用JAR文件的信息,这应该有助于: How to add external jar libraries to an android project from the command line
有关一般JAR文件和桌面应用程序的信息,请参阅此处:http://java.sun.com/developer/Books/javaprogramming/JAR/basics/
答案 1 :(得分:0)
这是一个PHP脚本:
<?php
/* MOBILE DETECT */
$mobile_browser = '0';
if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i', strtolower($_SERVER['HTTP_USER_AGENT']))):
$mobile_browser++;
endif;
if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))):
$mobile_browser++;
endif;
$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));
$mobile_agents = array('w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',
'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',
'newt','noki','oper','palm','pana','pant','phil','play','port','prox',
'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',
'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',
'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',
'wapr','webc','winw','winw','xda','xda-');
if(in_array($mobile_ua,$mobile_agents)):
$mobile_browser++;
endif;
if(strpos(strtolower($_SERVER['ALL_HTTP']),'operamini')>0):
$mobile_browser++;
endif;
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0):
$mobile_browser=0;
endif;
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'iemobile')>0):
$mobile_browser++;
endif;
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']),' ppc;')>0):
$mobile_browser++;
endif;
if($mobile_browser>0):
echo "mobile";
else:
echo "nix mobile";
endif;
?>