Tag Archives: Mobile

在新的Android工程中调用已经编译好的so库文件代码

  依旧是Android,NDK,JNI相关的问题。
  照着ndk帮助的说明,运行<ndk>/samples目录下的hello-jni工程后,你一定想知道如何在自己的项目里调用别人已经编译好的.so库文件。于是新建一个Android工程,将hello-jni例子中ndk-build后的结果:libs文件夹(包括其下所有内容)拷贝到新建工程的根目录下,仿照hello-jni的代码,调用native方法:

   1: package com.my.SoTest;

   2:  

   3: import android.app.Activity;

   4: import android.os.Bundle;

   5: import android.widget.TextView;

   6:  

   7: public class SoTestActivity extends Activity {

   8:     /** Called when the activity is first created. */

   9:     @Override

  10:     public void onCreate(Bundle savedInstanceState) {

  11:         super.onCreate(savedInstanceState);

  12:         

  13:         TextView tv=new TextView(this);

  14:         tv.setText(stringFromJNI());

  15:         setContentView(tv);

  16:     }

  17:     public native String stringFromJNI();

  18:     static {

  19:         System.loadLibrary("hello-jni");

  20:     }

  21: }

  运行后,logcat记录以下错误:

No implementation found for native Lcom/my/SoTest/SoTestActivity;.stringFromJNI ()Ljava/lang/String;

java.lang.UnsatisfiedLinkError: stringFromJNI

  在hello-jni的代码注释里明确说明,UnsatisfiedLinkError错误是由于native代码中没有该方法的实现而引起的,但stringFromJNI这个方法,在c代码中是有的;前一个错误就比较明确了,是在Lcom/my/SoTest/SoTestActivity中去找这个方法实现的,打开hello-jni.c文件看看该函数头,其中有这样的字样:Java_com_example_hellojni_HelloJni_stringFromJNI,而com.example.hellojni恰好是例子工程的package name,HelloJni则是class的名称。也就是说,我们.so中函数声明涉及到的package name和class name与调用它的package name和class name不符。google一下印证了这个猜测,但提供现成解决办法的不多,总不能自己工程的package name必须和.so里的一样吧。
  搜索看到了一篇NDK的教程,Using NDK to Call C code from Android Apps(需翻墙),里面写明了在一个普通Android工程中,如何从零开始组装自己的native代码。大致的步骤是,首先写一个java类,里面声明一些需要实现native方法(函数签名即可),然后用javah命令来生成对应的header文件,里面的内容是自动生成的native函数声明,然后照着这个声明实现各个函数,最后编译,用最初的java类调用。
  受此启发,我们在拿到别人已经编译好的.so文件后,可首先新建一个java类,所在package的名称和class名称都与.so文件中函数签名提示的一致,在这个类中加入native方法的声明。这样在别处就可以用这个wrapper调用so库中的函数了。

Windows Phone 7 解锁/破解/越狱步骤 NODO版本有效

  为什么要解锁windows phone机器?不解锁只能通过zune marketplace来下载和安装市场上的软件,解锁后才能用windows phone developer tools里的application deployment工具将自己的.xap程序部署到手机上。当然只是临时做测试用,有条件还是需要注册微软每年99美元的开发者账号,来绑定自己的机器以部署程序吧,大家懂的。
  现在国内市面上还没有windows phone行货,有消息称最早在今年8月份行货机器有望上市。目前windows phone有4个版本,去年发布时最初的第一个版本7.0.7004.0,今年2月份的第一个更新版本7.0.7008.0,4月份的NODO版本(7.0.7390.0),和最新的7.0.7392.0安全更新版本。这两天拿到了htc的hd7机器做测试,是未解锁的NODO版本,无奈中文资料比较少,只好上神坛xda找答案。
  目前wp的解锁工具只有一个,就是http://www.chevronwp7.com/放出的ChevronWP7,但是该工具只适用于7004和7008版本,7390以上版本无效,必须刷回之前的版本才能解锁。解锁之后需要额外的步骤,保证zune同步时机器不会重新被锁,并且升级到NODO版本后,解锁依然有效。现将完整步骤整理如下(主要参考http://forum.xda-developers.com/showthread.php?t=1043000此贴中TechJunkiesCA的回复)。

一、将7390版本刷回最初的7004版本(如果你是7004或7008版本,可跳过此步骤)

  按照http://forum.xda-developers.com/showthread.php?t=876451这个帖子中的说明,首先确定手机的原始运营商:

In order to identify your HD 7 phone ROM version see in your phone settings>about>more information:
Firmware revision number: 2250.09.15401.728
Your phone ROM version will be: 1.54.728.01
The characterisric value (CV) is: 728
Your Operator name and CIDs i.e.: hTC_Asia_SEA operator, with CIDs HTC__044, HTC_621, HTC__622, HTC__038 can be found with this CV from following classification:
1. 666 : BellMobilty operator, with CID BM___001
2. 707: hTC_Asia operator, with CIDs HTC__044, HTC_621, HTC__622, HTC__038
3. 728: hTC_Asia_SEA operator, with CIDs HTC__044, HTC_621, HTC__622, HTC__038
4. 401: HTC_Europe operator, with CIDs HTC__001, HTC__203, HTC__102, HTC__032, HTC__405, HTC__304
5. 207: O2_DE, with CID O2___102
6. 206: O2_UK, with CID O2___001
7. 841: Telstra operator, with CID TELST001
8. 901: TIM operator, with CID TIM__401
9. 531: TMOUS operator, with CID T-MOB010

  这台机器Firmware最后三位数字是207(对应O2_DE),可得知是销往德国(de)的o2机器。找到帖子下面贴出的对应rom,RUU_Schubert_O2_DE_1.61.207.01_Radio_5.52.09.16_22 .33a.50.10U_by_ansar,下载,解压。
1、长按电源键,关机
2、按住下音量键不放,按电源键,进入bootloader(三色屏)模式(此时可松开下音量键)
3、用usb线将手机与电脑连接
4、等待windows系统自动查找并安装驱动程序
5、驱动安装完成之后,确保手机屏幕上白色屏部分显示“usb”字样(驱动安装之前是“serial”)
image
6、此时可以运行下载好的ROMUpdateUtility.exe(ruu工具),严格按照屏幕提示操作
  如果你之前用过HTC的RUU刷windows mobile机器或者刷android机器,那么最后一步应该非常熟悉。刷机完成之后,检查OS Version应当是7004或者7008。

二、利用ChevronWP7对手机进行解锁

  首先到http://forum.xda-developers.com/showthread.php?t=938106这个帖子中下载必要的工具:Windows Phone 7 Developer ToolsChevronWP7工具TCPView for Windows。WPDT对于开发者来说不是问题,肯定已经安装了(否则你需要先安装vs2010,然后安装WPDT)。下载ChevronWP7工具,压缩包中会包含ChevronWP7.exe,ChevronWP7.cer和ChevronWP7.reg三个文件。之后可以开始:
1、在电脑上运行ChevronWP7.reg。会将注册表中[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsPhoneProxyPorts]的DeviceReg一项值改为dword:000069c5
2、在手机上安装ChevronWP7.cer证书。可将ChevronWP7.cer做为附件发送到自己的邮箱,然后在手机上用浏览器打开该附件,屏幕会显示黑底的小白盾,继续点击“Install”即可
3、确保你机器的443端口没有被占用。运行tcpview.exe工具,查看Local Port一列中显示为https的程序(会占用443端口),全部结束之
4、将手机设置为飞行模式
5、将手机利用usb线与电脑连接,使用Zune软件进行非guest方式同步。如果没有安装Zune(windows自己的itunes),需要提前安装。如果同步方式那块显示的是“Guest Sync”,点击之,运行一下向导,使得你的计算机变成该手机的主要同步电脑(非guest方式同步)
6、以管理员身份运行ChevronWP7.exe进行解锁。确保手机屏幕没有锁定(可在设置中将桌面锁定设为never),处于开始画面;以管理员身份运行ChevronWP7.exe,将两个方框打钩,点击unlock。顺利的话不到5秒钟即可完成,按钮会变成relock。此时最好不要拔出usb线,接着进行下面的第三步。
  至此已完成解锁。可利用WPDT自带的Application Deployment工具,在手机屏幕处于非锁定的状态下,部署任意的.xap文件了。
image

三、确保下次用Zune同步时,手机不会重新被锁

  仅仅利用ChevronWP7.exe解锁后,如果断开与usb线的连接,以后再次插入usb,用Zune同步后,机器可能再次被锁,还需要进行解锁步骤。为防止此情况发生,需要进行以下步骤,确保以后用Zune同步时,机器不会被再次锁定。下面的步骤只适用于htc机器(因为touchxplorer只能在htc机器上运行),其他手机请参考这里
1、按照http://forum.xda-developers.com/showthread.php?t=913748此贴中的说明,依次下载TouchXplorerHTC Connection Setupunlockit(其实是XBMOD.Files.Deployer)三个.xap文件,分别解压并且将它们安装到手机中
2、在手机上运行XBMOD.Files.Deployer。会将CustClear.provxml和restoreCustClear.provxml两个文件解压到My Documents/My Ringtones目录下
3、运行TouchXplorer工具(wp里的资源管理器),将上述两个文件拷贝到Windows目录下
image
4、运行HTC Connection Setup工具,点击ok,此步骤可选。如果你的手机里有sim卡,需要执行此步,否则可跳过
  至此已经完成了所有的步骤。可以利用Zune同步后将你的手机升级至最新的7392 NODO版本,也不会被再次锁定了:)
image

如何部署大于64M的.xap文件到手机上?

  下载了大名鼎鼎的The Harvest(xap大小86.4m)想尝试一下,但用Application Deployment部署时会提示“Error-设备没有连接”。搜索xda,发现有人说在更新NODO后,大于75M的xap便无法部署了,大家纷纷跟帖表示确有此问题。但万能的xda网友toothfish再次给出解决办法
1、备份你的xap,以防万一
2、用解压缩工具打开xap文件,将其中体积较大的一些文件,比如Content文件夹解压缩出来,并从压缩包里删除之
3、记下WMAppManifest.xml文件中的productID的值(一个guid)
4、将修改过后的xap(体积应该小于64m)部署到机器上
5、使用Windows Phone Device Manager自带的Touchexperience工具,将第二步中分离出来的那部分文件,拷贝到手机的ApplicationsInstall”Product ID”Install目录中,注意维持与原xap文件中同样的目录结构
6、你已经将大xap文件部署成功了~
  其实原理比较简单,做过windows phone开发的朋友都知道,一般会将程序中用到的资源文件,比如一些媒体文件,以Content方式编译到xap中单独的文件夹里;而windows phone程序部署的真正过程也如上所示,只是将xap解压到了特定的文件夹中。因此便可以用上面的办法来移花接木了。
  还要提醒一点,我的机器上已经安装了mango sdk,所以会和Windows Phone Device Manager程序有冲突,因此我用Advanced Explorer来完成拷贝文件到手机中的过程。  image

  无法部署大xap的情况好像只会在机器上既装了mango sdk,并且手机版本为NODO时才会出现,否则(比如将手机还原到7008版本)应当可以直接部署成功。

打个广告:2011 Esri中国开发者大会

http://developer.esrichina-bj.cn/

2011 Esri中国开发者大会将于6月16日北京开幕。

大会期间您将与来自全国各地的GIS开发者和GIS应用专家以及多位Esri中国工程师欢聚一堂,共同探讨和分享基于ArcGIS的应用开发技术,您将与众多国内业界同仁抢先接触ArcGIS 10的应用开发技术和技巧。此外,您还将聆听到其他与会者带来的成功经验和故事,与众多业界开发人员及Esri中国多位一线资深工程师充分讨论ArcGIS应用开发中遇到的技术问题。大会将为GIS技术决策者、开发者、IT专业人员奠定ArcGIS应用开发的成功基础。

大会期间,您将体验:

  • Esri当前技术及技术发展趋势
  • Esri技术专家带来的GIS开发思考与建议
  • ArcGIS开发平台及可用资源整体框架
  • ArcGIS 10新的产品许可授权机制与技术改进
  • 如何开发出高效的Geodatabase操作程序
  • 多元化的移动终端开发技术(ArcGIS API for iOS、Android、Windows Phone)
  • ArcGIS 富互联网应用(RIA)开发技术
  • ArcGIS Server高效生产力实现

  其中两个半主题由我来讲。对于大家比较关注的ArcGIS全新移动产品(iOS/Windows Phone/Android),将会涉及到完全离线应用,跨平台开发选择,产品发布计划等方面内容,欢迎大家关注。
  亲们,来就包两天四星级自助哦,ipad2,kindle等你拿哦:)

Mobile Atlas Creator简介

update:2011.06.08
  看起来Mobile Atlas Creator现在遇到了点麻烦。作者在sourceforge论坛上发帖说,由于收到了很多地图厂商的邮件,要求他从工具中撤下这个或那个地图数据源。。。这也是能理解的,商业公司毕竟在花大力气维护这些地图,人家不让用了我们还能怎么着?所以作者从1.9 beta2版本开始,在MAC中只保留了基于OpenStreetMap的数据源,并且取消了以前版本软件的下载。
  不过作者也善意提醒大家,如果有需要,大家可以主动尝试联系数据厂商,看看能否让自己通过MAC获取离线地图。。。当然,MAC依然继续会是一个开源的java程序,也有网友指出,既然有openstreetmap的dataprovider,从技术上讲,就可以添加别的dataprovider,大家都懂的~
=========================================================
  如果你使用过手机上的地图或导航软件,那你一定知道最头疼的问题就是如何方便地搞到离线地图。比如Google Maps,如果你没有离线地图,最高兴的就是移动运营商了,流量大把大把的。网上有不少下载Google Maps离线地图的软件,但要不然收费,要不然就是会有各种各样的问题。这里给大家介绍一个完全免费,并且功能强大的离线地图下载软件,Mobile Atlas Creator。
  Mobile Atlas Creator是一个为各种手机地图软件创建离线地图的开源应用程序。它能够用最简便的方式把常用的数据源下载成相应软件的离线地图文件,这样的话你的手机在没有联网的情况下,也能显示完整的地图了。它支持的数据源有很多,包括Google Maps, Bing Maps, Yahoo Maps, OpenStreetMap等近30种数据源。
image

  它支持的软件也很多,比如Windows Mobile系统上的OZI Explorer CE,Android平台上的OruxMaps和RMaps/BigPlanet等,这几个软件是我认为各自平台上最好用,功能最全面的离线导航软件。
image

  使用方法见下图:
MobileAtlasCreatorIntro

  下载完成后,它会生成你选择软件格式的离线地图文件,比如我这里选择RMaps,生成后缀名为.sqlitedb的地图文件。一张地图一个文件,拷贝和使用起来非常方便。
image

  值得一提的时,Mobile Atlas Creator在下载时使用了多线程(默认4个,最多15个),可以充分利用你的带宽。除了Google Map的卫星影像图片会限制IP外(如果下载速度过快,会报错),其余常用地图比如Google Maps街道图,Bing Maps的影像(完全可以用这个代替Google Maps的影像图)和街道图,都可以正常下载完成。
  根据网友建议,下载你感兴趣区域遵循以下原则即可:世界1-4级,中国4-7级,城市8-17级。当然,如果你有时间,硬盘够大,完全可以把整个Google Maps搬回家~
  去年夏天我就是用它创建的离线地图横穿了陕西,河南和河北三个省~

手机在于折腾

        先缅怀一下远走的touch 3g。。。
        新换了Android系统的HTC Legend机器,水深火热地折腾了两天,现在总结有关事宜。
        对于自己,拿到手机后除了软件安装,就是要学会刷机。wm刷机可以换字体,换精简系统;android刷机更是有必要,比如获得root权限。获得root权限能干嘛?比如完整备份系统的sprite backup软件,锁定cpu频率的set cpu软件都需要root权限来运行。目前来说要获得root权限,华山至今只有一条路,就是刷具有root权限的rom。刷rom之前又要准备好金卡(goldcard),因为htc为了限制销往不同地区的手机相互刷rom(与最初dvd锁区一样),在刷机时会检测本机的shipment信息,刷非本地区的rom就会出错。金卡能够骗过这个检测步骤,达到天下rom随便刷的目的。所谓的金卡其实就是具有特殊引导信息的tf卡。下面列出有关几个问题的操作方法,本人亲测,放心使用。

  • 金卡制作方法:英文原版中文配图版。ps:1、制作金卡的tf卡理没有容量要求,质量好即可;2、制作金卡的过程不会影响卡上原有的内容;3、如果tf卡之前做过了app2sd,也就是拥有fat32和ext3分区,那么必须删除ext3分区,全部格式化成fat32后才能继续制作,否则肯定失败;4、验证办法:制作完成后拔出/插入tf卡,如果仍然能认出来,则制作成功;如果提示tf卡损坏(手机上)或无法识别(电脑上)则制作失败;5、金卡制作好以后,就可以用官方的ruu程序刷原版rom(不带root权限)了;
  • root你的android(刷具有root权限的rom):英文原版中文配图版。ps:1、亘古不变的一句:刷机风险(手机变砖)自负;2、一般具有root权限的rom都是国外首发的,国内高手会在其基础上按个人喜好进行定制,喜欢原版rom(当然已经具有root权限)的朋友还是使用英文教程里的rom为好;3、刷完rom之后机器就有了root权限,以后再刷其他rom的步骤大致如下:用usb线连接手机;将具有root权限的新rom(*.zip)拷贝到存储卡(确保是金卡)根目录;关机,然后按住回退键开机;选择bootloader;选择recovery(手机显示红色三角形,无响应);运行前面的脚本文件recovery-windows.bat(进入Android system recovery菜单);选择flash zip from sdcard;选择你刚才传入的rom文件(*.zip);开刷;4、上面的步骤熟练后手机基本5分钟内可刷好,达到js级水平;
  • 获得root权限后,可以进行app2sd。方法:中文配图版。ps:1、android默认程序都装在机器的rom中,app2sd就是允许你将程序装在存储卡中;2、app2sd的原理:存储卡分成两个区,一个fat32格式,用作普通存储卡,一个linux的ext3格式,用来安装程序。app2sd的过程相当于将原来手机中存储程序的app文件夹转移到卡上,然后用ln命令将原目录与新目录做符号链接;3、具有root权限的rom一般都可以自己完成app2sd,如上面链接中方法所示;4、app2sd后的好处,不受限于手机本身的rom大小,理论上能安装和你存储卡容量一样多的程序;恢复出厂设置或重刷rom后,在adb shell下将你卡上的ext3分区mount进系统,用ln做同样的链接,你原来所有的程序就都恢复了,不用重新安装。
  •         据传5月19号即将放出的android 2.2会原生拥有app2sd功能,所以不放心的朋友可以等等再说~

    用google sync管好你的联系人

            在阿帆的唆使下完成了一项壮举。
            现在人们不怕丢手机,怕的是丢了上面的联系人。虽说大部分手机都能利用软件把联系人备份到电脑上,但如果电脑不在跟前或者硬盘坏了。。。如果你经常使用gmail,还有着一个不是太旧的手机,那google sync刚好适合你。
            以现在使用的windows mobile手机为例,可以按照以下步骤完成手机联系人和gmail联系人的同步:

      1. 打开ActiveSync;
      2. 点击“设置您的设备与之同步”;
      3. 填写gmail地址,并把“尝试自动检测Exchange Server”选项去掉,下一步;
      4. 服务器地址填写“m.google.com”,勾选ssl,下一步;
      5. 用户名填写完整gmail地址,填写密码,域留空,下一步;
      6. 如果之需要同步联系人,则只勾选“联系人”,完成。

            以上步骤是添加同步服务器,进行一次即可。联网之后一会就可完成同步工作。手机联系人会全部添加到gmail的通讯录中,根据自己需要可以与邮件联系人进行合并,整理完成后,再次与手机进行同步,345个联系人就大功告成了。这下手机的联系人中不仅有了电子邮件地址,连我gmail账户里的头像都同步下来了。
            现在google sync支持iphone,windows,nokia,blackberry手机平台,所以即使以后换手机,也可以快速同步联系人了。
            ps:同步时会将上次同步后改动一方的内容同步到未改动的一方。比如同步后,将手机上的联系人全部删除,同步,那么gmail里的联系人也会被删除;
            pps:如果想要重新从gmail上获得所有联系人,则需要:1、删除手机上所有联系人;2、删除m.google.com的同步服务器;3、重新建立m.google.com的同步服务器;4、同步;
            ppps:进行实验前强烈建议首先分别备份本地和gmail上的联系人,可别怪我没提醒哟。

    Happiness only real when shared:电脑通过PPC上网

            如果你的WM手机可以上网,而又想在出差找不到网络的时候让电脑上网,推荐你看这篇文章;如果你拥有移动的不限流量包月卡,不知道怎么发挥它的最大作用,强烈建议你看这篇文章;如果你对移动表示不满,想尽可能的减少在它身上的损失,那你千万别错过这篇文章。
            笔记本插上3G手机卡后可以无线上网,网速客观,但是资费也很可观。无米之人自有吃饭的办法,现在就看看如何通过移动手机卡的GPRS/EDGE上网方式,带动电脑上网。就跟《Into the Wild》里的那句话一样,happiness only real when shared,当你的电脑能通过手机共享上网它俩才是幸福的。针对本文手段,要达成目的,必备条件如下:

    1. 具有Windows Mobile 6.0以上操作系统的手机一个;
    2. 移动手机卡一张;
    3. 安装了ActiveSync 4.5版本以上软件的电脑一台。

            现在,把大象塞到冰箱里总共分为以下几个步骤:

    1. 在ActiveSync的“连接设置”里,去掉“允许USB连接”的选择,也就是在将手机通过usb线连接电脑的时候不进行同步;
    2. 用usb线把手机和电脑连起来。从手机上“开始”–>“程序”–>“Internet共享”,其中“PC连接”选择USB,网络连接选择你手机的上网连接,然后点击“连接”;
    3. 这时电脑会发现新的本地连接(Windows Mobile-base Internet Sharing Device),不用管它。在IE中设置代理,http代理为10.0.0.172,端口80;其它软件也许要设置同样的代理,或者在软件代理中选为“使用IE设置”(设置这个的目的是让软件走cmwap方式上网,避免产生cmnet流量,包月上网部分wap/net的同学可以无视);
    4. 没了,大象已经塞到冰箱里了。

            ps:安装了win7的系统可以略过上面所有涉及到ActiveSync的步骤,因为win7已经内置了Windows Mobile Device Center。
            如果你使用的是5块钱或10块钱包流量的移动卡,记得上网后不要在线看大片,免得移动后来问你要米,出差时查资料,收发邮件,聊qq,看博客订阅都是没有问题的;如果你的移动卡是包月不限流量的,那么,你看着办吧。
            经测试,可进行ftp、http下载(暂不能使用BT下载),通过网页代理浏览网站(暂不能使用VPN代理软件),EDGE上网速度可达20-30KBps,经过缓冲后,观看新浪在线高清大片也是可以的。

    不得不说的《银河时代》!

            先说结论:人生的道路上会碰到各种各样的东西和事情,先来的总比后到的给自己留下的印象要深刻;如果又是在一定的时期,比如珍贵的童年,碰到了吸引自己的东西,那么ta们留给你的印象和感觉则是,不可磨灭。
            现在看来,我没有沉溺于电子游戏之中,不是因为自己不喜欢玩游戏,而是,幸好是,早在之前把玩电子游戏的激情用光了。最早电子游戏当然就是小霸王游戏机(日本人起名叫做fc, family computer),那时候幼儿园都还没有毕业,每次按电源键都有李阳叔叔的一句:啊哈,小霸王其乐无穷!还记得第一次从舅舅家拿来小霸王的时候,全院子(那时候是平房)的小朋友还有邻居的大人都围过来看(这种场面以后再也不会有了:(),而第一盘卡带我还记得清楚,是白色的二合一:魂斗罗一代和台球……后面就有三合一四合一的卡带,还有一盘比较经典的是42合一,四个选择画面,超级玛丽是第四个画面中的第一个游戏……那时候真是其乐无穷!上了小学以后就天天盼着星期天,因为星期天的时候爸爸同意可以玩半天的游戏;到后来我就天天盼寒暑假,因为寒暑假的时候可以天天玩小霸王!当然也是趁家长上班去的时候,所以一般假期的情况就是,早上装睡,等父母上班刚一出门,就爬起来开始打游戏,等到差不多他们快下班回来的时候,提前半个小时关机(得让机器凉下来),开始做假期作业,早上下午都是如此。结果就是假期作业人家早早做完,而我的总是拖到最后几天……上初中以后小霸王就退休了,换了新的裕兴学习机,而我觉得这个机器所有的学习功能都很失败,唯一成功的反倒是它的游戏功能,因为它把很多的fc游戏放到了3.5寸的软盘里,一般是二合一,去陵园路北段那有个裕兴代理商,里面有报纸,上面印着所有的游戏目录,一个软盘的游戏玩完了可以再去更换,两块钱换一张盘,相比之前的一盘卡动不动就100块以上,那是划算极了。于是每个星期天我就骑车子去那换盘,不过都要搭一盘学习软盘回来掩人耳目……
            直到有一次,让我换到了《银河时代》这个中文RPG游戏(现在才知道它其实就是鼎鼎大名的Final Fantasy系列第一代),现在回想起来当时的情景可谓是玩得天昏地暗。一个人玩不过瘾,把院子里的mc也叫过来一起参谋,尤其在寒暑假,日以继夜,夜以继日……后来就把报纸上带RPG字样的游戏都挨个换回来玩,又陆续玩了《宇宙战将》(FF2),《甲A足球》,《英烈群侠传》,《镜花缘》,《天使之翼》等,每个游戏都够玩上一个假期。再后来才知道RPG是role-playing game的缩写……现在我也才知道,在国外,想玩到这个游戏至少有人花了75美元,因为有个帖子的标贴是“The best $75 I ever spent”
            以前的c600上也有fc的模拟器,也玩了以前没有玩过的《封神榜》,但是熟悉的几个游戏的rom读取都有问题,十分可惜。这两天终于找到了在ppc上可用的《银河时代》《宇宙战将》的rom,结果就是昨天手机的电一天就用完了。
            好时光就到这吧,最后贴上几个这几天反复研究的帖子,碰巧和我有同样经历的朋友们可以收藏起来,以备后用:)


            《最终幻想1》FF1图文攻略
            《最终幻想1》详尽攻略
            最终幻想1全资料
            国外的一个网站gamefaqs里的FF1

    touch 3g上的google map

            话说换ppc,最主要的目的之一还是能够用上内置的gps,用上功能完善的gps软件,比如强大的ozi。先分析一下两类主流的“导航”软件。
            凯立德、灵图天行者、道道通、route66、城际通等。这些软件的功能和购物电视上讲的一样,抛开ppc不说,本身硬件带有导航功能的,也就是所谓的车载导航,电脑城里现在到处都是,价格从当初的3、4千块掉到现在的3、4百,功能上也集成了什么mp6,mp7的。优势是使用矢量地图,可以做到真正导航,包括最优、最短路径分析,路径规划后语音提示等,对于在陌生城市开车的人来说,应该是具有很大的参考价值。但缺点也很明显,属于终端软件,就是软件在终端上,地图数据得不停更新,否则遇上修路会把你导到沟里。对于所谓商务人士来说,这项工作有一定难度,此乃致命缺点。
            gpsdash2、gps melody、ozi explorer等。这些软件没有真正意义的导航功能,更适合野外一些所谓驴友使用。他们强大之处在于可以记录gps轨迹,或者gps点位,即使到了没有地图的地方也照用不误(上面那些软件可能会把你强行“拽”到附近的某个城市)。为什么说这个功能有用呢?除了可以把自己走过的轨迹回放到google earth上,颇有成就感之外,还能根据你拍摄照片的时间,找到轨迹上相同的时间点,然后把该时间点的gps信息写入照片的exif里(需要相应软件,也可自己编写),这样上传到panoramio或者flickr等网站时,会为照片自动定位。除非你买尼康的那款什么相机,内置gps功能,也就完成此任务而已。这些软件可以自己找来栅格地图进行配准,然后根据gps定位来调用相应的地图,非常方便,网上就有ozi专用的“很大很大”版全国地图,由各地网友共同合力完善,驴友一家亲啊。再或者可以用“电子地图一把抓”之类的,把google map上的卫星图抓下来,拼接成一个分辨率为几万乘几万的大图,然后在配准,那放到ppc上后就成了离线的google map了,对于没有网络流量的人来说也是不错的选择。这类软件的缺点就是栅格地图,没有这正的导航功能,缺乏diy精神的人看到后可能立马崩溃。
            再看看这回要说的google map手机版吧。符合云计算的特点,自己这边什么都不需要准备,但是功能还一个都不少。要配准的栅格图,好,有google map卫星图;要能导航的矢量图,好,有google map的地图;要导航功能,好,有google的周边和搜索功能。直接上图吧,一看就知道这个手机版的google map能实现哪些功能了(在室内,用的是基站定位apgs,精度在800米之内,如果在室外用gps定位,经度可在10米内):
    随时可以在矢量图和卫星图之间进行切换


    比如说搜索一下附近的atm取款机:



    可以查看每个结果的详细信息:




    选择一个远一些的,来看看路径导航功能。有驾车,公交,和步行三种方式,驾车和步行都很常见了,看看公交:





    注意看,连怎样过立交都画的很清楚:


    这是出发的公交站点,很准:


    这是到达的公交站:

    往回再折几十米,就到目的地了(我看这个功能也就差列出票价了):

    除了这些,还支持将地图上任意一点设为起点或终点,从而进行导航。比较神奇的时,通过和本地网站的合作,还可以在搜索周边的同时,尽可能详细的列出结果点的相关信息。比如这个:




    不过上述所有的功能都得益于mapabc的数据,mapabc也是个人认为做得最好的国内地图网站了。在当年搜狐,yahho n多公司推出网络地图,蜂拥而至,现在基本都销声匿迹了,只有极少数几个脱颖而出,mapabc应该是佼佼者了。接下来看看国内因为数据保密工作出色,而只有在国外才有的功能:

    图上除了实时的道路交通流量信息,连在实时的事故信息都有!:


    最后,手机上居然也能使用street view:

            国内也有热心人做了一个google navigator,这个就是弥补google map本身缺少的打点和记录轨迹的功能,不过软件本身没有google的许可,获取地图时会遇到封ip的提示,而且这两个功能估计google map也会推出的。
            咱也算是业内人士了,浅谈一下吧。gis以后被人们所熟知,必然也是通过此种途径。就好比我们学习电脑都是从玩红警,仙剑等游戏开始的,之后才知道它能做许多促进生产力的工作,比如工程制图或者gis项目;认识互联网都是从oicq,邮箱,icq开始的,后来才知道它能进行云计算……虽说大部分人口袋都被腾讯掏了,可是oracle依然是世界上最牛的软件公司,赚的钞票依然是qq软件所望尘莫及的;虽然说在gis领域,大部分的钱都让google,微软等地图提供商赚了,但esri依然是最牛的gis公司,它提供的功能和能力,自然而然最后在gis领域获得的收益,也是其他人所羡慕的……当然,排比的后半部分只是美好的愿望,不过依现在看来,esri也是朝这方面努力的。希望能保持住,就像《荒岛余生》里,汤姆汉克斯在小木筏上喊得一样:”Wilson! Hold on!” ESRI! Hold on!