从今年1月份开始研究WM手机的软件开发, 大概一个月左右的时间, 我写了有6,7个软件。其中有5个通过了移动MMarket的测试。 现在已上架销售的有1个,剩下的4个则处于等待上架的状态。
对于熟悉WINDOWS编程的开发人员来说, 我觉得基本上只要你有想法, 那么你就可以很迅速的在一两天内开发出一个WM的软件原型出来。 然后再花一两天的时间用来修改GUI、测试、编写符合移动MMarket规范的文档并提交给移动MMarket进行测试和销售。 整个过程不过1周的时间, 非常的有效率。
我是个忠实的WINDOWS软件开发支持者, 就如同很多C++,C#程序员讨厌学习JAVA一样不想去碰它。 但是,我承认,铺天盖地的宣传Android美好前景的广告贴s动摇了我的信念。 于是我开始下载JDK、Eclipse、OPhoneSDK,并开始阅读《Thinking in Java》、《Hello, Android》...
不得不说, 这个过程是非常痛苦的。 但是,每每看到那些诱人的Android广告宣传贴时, 我就仿佛是一个沙漠迷途者幻想着前方不远有就会有一口甘甜的水井般, 咬牙坚持了下来。 经过三天的努力, 我终于看到了OPhone Emulator上的“Hello, World!”了。 我以为我已经成功了一半, 接下来的一个星期里, 我就可以把我在WM系统上开发的软件顺利地移殖到OPhone上了。
但是,我发现这一过程,比我想象中的要难。
首先是界面设计的便利性。 虽然我在网上找到了DroidDraw这样的工具, 但是我还是非常怀念VS2005的WYS・I・WYG。 我承认XML是很有前途, 但直接用它来设计界面我觉得是再糟糕不过了。
其次是Android 留给开发者的选择。 我的应用基本上都与MIC输入监控有关,根据分析MIC录音的波型来实现一定的功能。 在解决了界面设计及JAVA语言这两关之后, 我发现, Android 1.0 又把我带回到了我来时的沙漠中。 在 Android 1.0 中, 我调用MediaRecorder后, 得到的只有 3GPP_AMR-NB(5.15kbit/s) 格式的AMR录音文件。 而我想要得到一个PCM RAW的WAV(后者可以在WM上轻松的得到) 。
于是我花了一周的时间, 试图将 3GPP_AMR-NB(5.15kbit/s) 转成我所需要的PCM RAW的WAV文件。 然而, 这一次, 我发现我在沙漠中越走越深, 最终被困在了那里。 就在我行将就义的时候, 我看到了Android 1.5, 据称支持PCM RAW的WAV文件的录音。
接下来, 我转变了方向, 舔了舔干裂的嘴唇, 向着似乎是有水的方向开始了爬行。 这一次, 我领略到了Android SDK帮助文档的伟大。
在AudioRecorder的说明中, 它举了三个采样频率的例子: "Examples of rates are (but not limited to) 44100, 22050 and 11025."。 这就如同我找到了三口井, 最终却发现里面都是空的——因为LogCat告诉我,android它不支持这三种频率。。。
我有点抓狂了。
尽管后来我在google搜索的帮助下, 找到了某位不知名的先驱留下的可以调试成功的频率值:8000。 但是, 我觉得, 我已经受到伤害了。
在得到这个频率以后, 我欣喜了大半天。 因为我觉得我就要成功了。 但是....
结果往往是残酷的, 因为我仍然得不到任何有效的波形数据, 截止目前为止, 我所得到的都是 0 (no-sound data)。
我想, 我还得继续探索下去。 希望有一天, 我的程序能够运行在你们的OPhone上。
==========
以上,是我开始Android开始时的一点小体验。 尽管现在都在宣传Android的美好前景, 但它能给我们这些小开发者带来什么?
Google的Android market不支持国内的信用卡, 而国内的移动MMarket上, Android 软件的数量和WM的数量一样小(只有200左右),下载量更是不足以支撑我们的创业梦想。 至少到现在, 我没能从Android上看出它的好处。