最近做个网站,需要判断用户是通过手机浏览或PC浏览,找了很多资料,总是判断不全,我把我的代码贴出来,以后慢慢补充吧……
String userAgent = ""; String userAgents=request.getHeader("user-agent"); if(userAgents != null ){ userAgent = userAgents; userAgent = userAgent.toUpperCase(); } //out.print(">>>>"+userAgent); if (userAgent.indexOf("NOKI") > -1 || // Nokia phones and emulators userAgent.indexOf("ERIC") > -1 || // Ericsson WAP phones and emulators userAgent.indexOf("WAPI") > -1 || // Ericsson WapIDE 2.0 userAgent.indexOf("MC21") > -1 || // Ericsson MC218 userAgent.indexOf("AUR") > -1 || // Ericsson R320 userAgent.indexOf("R380") > -1 || // Ericsson R380 userAgent.indexOf("UP.B") > -1 || // UP.Browser userAgent.indexOf("WINW") > -1 || // WinWAP browser userAgent.indexOf("UPG1") > -1 || // UP.SDK 4.0 userAgent.indexOf("UPSI") > -1 || //another kind of UP.Browser userAgent.indexOf("QWAP") > -1 || // unknown QWAPPER browser userAgent.indexOf("JIGS") > -1 || // unknown JigSaw browser userAgent.indexOf("JAVA") > -1 || // unknown Java based browser userAgent.indexOf("ALCA") > -1 || // unknown Alcatel-BE3 browser (UP based) userAgent.indexOf("MITS") > -1 || // unknown Mitsubishi browser userAgent.indexOf("MOT-") > -1 || // unknown browser (UP based) userAgent.indexOf("MY S") > -1 || // unknown Ericsson devkit browser userAgent.indexOf("WAPJ") > -1 || //Virtual WAPJAG www.wapjag.de userAgent.indexOf("FETC") > -1 || //fetchpage.cgi Perl script from www.wapcab.de userAgent.indexOf("ALAV") > -1 || //yet another unknown UP based browser userAgent.indexOf("WAPA") > -1 || //another unknown browser (Web based "Wapalyzer") userAgent.indexOf("OPER") > -1 || //Opera userAgent.indexOf("DOPOD") > -1 || //多普达 userAgent.indexOf("SYMBIAN") > -1 //symbian系统 ) { //通过手机访问 }
转载声明:共同学习,方便查阅
地址:
http://hi.baidu.com/fox_message/blog/item/0aed4ef98378da06d9f9fd8d.html
安装APK文件到Android模拟器和Android sdcard的使用
2009-08-01 10:40
安装APK文件到Android模拟器
Android手机使用的执行文件为APK格式,类似于Windows平台的exe文件。在Android模拟器中安装APK文件有多种方法,如果你是开发人员,可以通过Eclipse+ADT,使用DDMS可以传输文件。大多数可以直接在Windows的cmd中操作就可以了。
一、首先在Android SDK的Tools文件夹中找到emulator.exe文件并运行,这时Android模拟器就启动了,
二、 将android123.apk文件复制到Android SDK的Tools目录中(点击下载Android123.apk文件),使用cmd的cd命令定位到Android 模拟器目录Tools中,执行adb install android123.apk命令,这时模拟器将会自动执行安装。
三、在Android模拟器中可以找到我们安装好的文件-Android手机之家。
四、 用鼠标单击这个文件就可以看到Android手机之家网站的演示程序。
写在最后我们可以发现安装Android软件到模拟器很简单,只需要执行adb install命令就可以了,当然其实我们做的是复制文件到Android模拟器的/data/app文件夹,并创建了一个快捷方式。
Android sdcard的使用
(下面是在linux运行的,而且是在sdcard的镜像文件同一目录下进行操作的)
这两天在实现播放器列表实现,其中需要使用到Sdcard,在网上收集到了一些sdcard的使用,发现几乎都是错误的,最后经过小组几个人的探讨,终于将sdcard使用成功了。下面就将使用sdcard的使用步骤总结下来:
我们在网上会发现,很多人都是这样来操作sdcard的:
1、首先是生成sdcard镜像文件sdcard.img或者是其他的名称。命令为:mksdcard -l sdcard capacity directory
例如:mksdcard 1024M D:\sdcard.img
directory 指的是镜像文件存放的目录,capacity就是要创建的镜像文件的容量。这里将镜像文件放在当前目录下。
2、之后,启动模拟器:emulator -sdcard sdcard镜像文件的目录
例如:emulator -sdcard D:\sdcard.img
3、打开另外一个终端,输入下面命令来将资源放入到sdcard里面
adb push source-file sdcard的镜像文件目录
这个时候会发现这是不能成功的,会得出Read Only System 这样的错误失败提示。
这里,来分析一下为什么会失败。
在创建sdcard镜像文件的时候,生成的sdcard.img只是一个镜像文件,而不是一个真正的目录,所以如果要将资源文件放入到sdcard的镜像文件中,当然是错误的,而我们会发现,sdcard是Android中的存储模拟设备,类似于计算机的硬盘一样,这样我们可以向其中放入资源文件,即可以将命令adb push <目录/audio.mp3> </sdcard/audio.mp3>的镜像文件目录
改为adb push <目录/audio.mp3> </sdcard.之后,我们进入adb shell中检查是否将文件放入了sdcard中,使用命令adb shell,ls一下,找到sdcard,检查一下sdcard中,这时,sdcard中已经拥有资源了,即我们的push命令运行成功。
以上就是sdcard存储资源的使用。
adb命令的使用
adb(Android Debug Bridge)是Android 提供的一个通用的调试工具,借助这个工具,我们可以管理设备或手机 模拟器 的状态 。还可以进行以下的操作:
1、快速更新设备或手机模拟器中的代码,如应用或Android系统升级;
2、在设备上运行shell命令;
3、管理设备或手机模拟器上的预定端口;
4、在设备或手机模拟器上复制或粘贴文件;
以下为一些常用的操作:
1、安装 应用到模拟器:
adb install
比较遗憾的是,Android并没有提供一个卸载 应用的命令,只能自己手动删除 :
adb shell
cd /data/app
rm app.apk
2、进入设备或模拟器的shell:
adb shell
通过上面的命令,就可以进入设备或模拟器的shell环境中,在这个Linux Shell中,你可以执行各种Linux 的命令,另外如果只想执行一条shell命令,可以采用以下的方式:
adb shell [command]
如:adb shell dmesg会打印出内核的调试信息。
3、发布端口:
可以设置任意的端口号,做为主机 向模拟器或设备的请求端口。如:
adb forward tcp:5555 tcp:8000
4、复制文件 :
可向一个设备或从一个设备中复制文件,
复制一个文件或目录到设备或模拟器上:
adb push
如:adb push test.txt /tmp/test.txt
从设备或模拟器上复制一个文件或目录:
adb pull
如:adb pull /addroid/lib/libwebcore.so .
5、搜索模拟器/设备的实例:
取得当前运行的模拟器/设备的实例的列表及每个实例的状态:
adb devices
6、查看bug报告:
adb bugreport
7、记录无线通讯日志:
一般来说,无线通讯的日志非常多,在运行时没必要去记录,但我们还是可以通过命令,设置记录:
adb shell
logcat -b radio
8、获取设备的ID和序列号:
adb get-product
adb get-serialno
9、访问数据库SQLite3
adb shell
sqlite3
10、通过gsm call命令可以像Android 模拟器打电话 ,除了在EclipseADT 的DDMS中通过按钮Dial外,还可以通过DDMS外壳调用gsm call命令直接拨打,我们首先需要启动AndroidEmulator,然后在cmd环境下执行telnet localhost 5554 下面就可以向Android模拟器 拨号,参数为gsmcall < phoneNum> ,比如给10086打电话 为gsm call +10086
做Android开发不知不觉做了半年,折腾广告平台也折腾了小半年,之前曾经写了一篇《国内移动广告平台的现状对比》的小文,也引起了很多朋友的讨论。年底了,小总结一下,把网友的意见也补充进去,希望能给同行更多一点参考。
做手机软件开发要赚钱,无非就是两条道路,一是收费,二是靠广告。靠用户付费赚钱在iphone平台上相对可行一些,但Android平台上,靠收费盈利几乎没有什么指望。“愤怒的小鸟”这个游戏够牛吧?到哪里都是排名第一的游戏,在iphone平台上卖的热火朝天,Android版本却是免费的,都是要靠广告来赚钱。当然,它的广告费据说每月高达100万美金,对我们这些草根开发者来讲,绝对是高山仰止的存在。
做移动广告,就不能不提到admob。在国外,广告平台自然是首选admob,不过admob的广告在国内显示率很低,单价也非常低,特别是从10月份开始,单价下降了 3 - 4 倍,并且每天都在持续下降中,如果做中文软件、游戏的话,可以说用admob几乎是赚不到什么钱的。另外根据我做iphone平台的朋友说,admob的广告在香港地区的显示率很正常,至少跟北美差不太多,但在国内就缩水的太厉害了,看来admob对国内市场真的没什么看重的意思。
至于国内市场,我所知道的现在国内的移动广告平台有:有米(youmi)、哇棒(wooboo)、架势(casee)、微云这几个,加上最近我接触的一个来自香港的移动广告平台:天幕(tinmoo)。总的来讲,这几家都各自有各自的优势,有的朋友比较喜欢有米,有的则对wooboo偏爱多一些,其他各家也都有着各自的拥护者。其实这也很正常,这是一个新兴的市场,没有哪个能做到绝对垄断,也没有哪个做到绝对优势,各家的策略不同,自然会吸引不同群体。
有米(youmi)、哇棒(wooboo)、架势(casee)、微云这几个在我之前《国内移动广告平台的现状对比》的一文中有过较为详细的介绍和对比,里面表格数据都很齐全,有兴趣的朋友可以搜来看一下,这里就不多说了,这里简单说说我最近认识的一家:天幕(tinmoo)。
年底的时候,大概是10月份11月份的时候,经过做iphone开发的朋友介绍,认识了天幕(tinmoo),天幕总部据说是在香港的,他原先主要是做面向iphone平台上的广告,今年下半年才开始做Android,所以国内基本上没有什么名气。天幕的网站看起来比上面那几家简陋多了,跟wooboo美轮美奂的网页设计比,差得不是一点半点,刚看到的时候,我还嘀咕了半天。但听我朋友说他还是可以的,所以我先转了一个软件过来试试。令我意外的是,天幕的价格竟然是国内最高的,我Android平台上的CPC广告单价是0.35元,不但比有米、架势的高,也比admob的都高。据我的朋友透露,iphone平台上的广告单价更高,达到0.6~0.7元,这还不算完,在香港地区的更是高达1.2~1.3港元,折合人民币1元左右!好几倍的价差啊!搞得我差点想转到iphone去了,呵呵。
Tinmoo的广告请求响应率也很高,跟国内的有米、wooboo没什么差别,应该都有90%以上。跟admob比是好的太多了。他的后台数据更新还是很快的,基本上几分钟刷新一下,可以看作是即时更新,这样也免除了大家都担心的做数扣量的问题。不过我发现他Android上的广告有点少,好像iphone平台上的广告就多一些。现在因为刚做,收入还不多。如果Tinmoo能保持这个价格的话,我想将会是一个很有竞争力的选择。
除了上面介绍的广告平台之外,也有别的朋友在我原先的帖子里补充了几个:亿动(madhouse),mobus,果合等等,因为我没有对这些进行深入的了解,所以就不再多嘴,免得误导大家,有熟悉的朋友可以给大家介绍一下。
另外,鉴于admob的势头越来越差,在一棵树上吊死可不是我们的风格。所以我也搜了一下国外的移动广告平台,作为备用:
millennialmedia :http://www.millennialmedia.com/
inmobi :http://www.inmobi.com/
zestadz :http://www.zestadz.com/
最后,有什么好信息,希望大家都能共享一下,能一起发点小财就最好了,哈哈。