Android程序编写初体验

八月 10, 2010 by · Leave a Comment 

上上个星期垂涎已久的Milestone终于到手,关于这个机子就不多说了,Google之,一大把。Android可玩性肯定是相当高的。但是对于我来说唯一不足的就是那蛋疼的邮件附件不能自由上传下载,这个可以说是相当悲剧的,要知道很多人发邮件不是只发发照片的,对于我使用的专业格式更加不用说。好在还有个不太完善(据说完善的要钱的)的blackmoon attachsave(菜市场搜)可以临时解决。但这个也比较蛋疼,首先是文件名还得用猜的,然后就是数据内容也有可能变掉,这个后面会说。

我的目标就是要在Android上面实现一个DST查看器,这个早已在用QT/C++、PHP+SVG实现。那啥,这也算是跨平台了。Android编程环境的构建也是一搜一大把,一个下午就很顺利地(一个下午也叫顺利-_-!!)搭建好了,并且HalloWorld。接下来就是进入正题了,开始打算利用一个libsvg-android来实现矢量绘制的,后来发现这个似乎还不成熟,并且有的杀鸡用牛刀的感觉,刚才自己直接画。由于真机被LD在周末就拿走了,说是晚上无聊看电影用,我只能在模拟器上调试。过程其实非常顺利,两天时间就搞定了对文件的解析和绘制,对初试Java的我来说甚感欣慰。不得不说编程思想要高于语言,语法搜搜就知道了,这也归功于Android的开放性和流行程度,基本上没有你找不到的资料。搭建环境的过程中,Installed Packages的过程是比较痛苦的,首先是Http已经众所周知的原因不行了,然后Https上,速度慢到不行,好不容易等到下载完了,还说不行,后来是打开SDK Source的XML文件https://dl-ssl.google.com/android/repository/repository.xml找到地址,通过迅雷下载解压到相关目录的,这里有说明。模拟器新建的时候可以选择虚拟个SD卡,然后可以通过Windows-Show View-other-Android里面的File Explorer打开窗口进行文件上传、下载、删除等操作,其实没事可以把Android里面的全部打开,反正调试什么的都能用用。

经过两天业余时间的奋斗(说时间少,显得自己很高手),基本实现如下界面。

DST Viewer

DST Viewer

大概的思路就是读文件一个个的char放到数组里面缓存,然后3个字节一处理,经过解码格式得到xy的偏移量,然后通过Canvas用Path.lineTo绘制到屏幕。完成后就没时间继续搞了,反正等周末拿真机试,检验代码的效率,因为总是怀疑真机上的速度会慢于模拟器,事实上是真机快于模拟器。到周末真机一试傻眼了,整个一开就崩溃。开始是猜哪里出了问题,一段段的注释一段段的查,结果发现似乎是读取文件的数据的时候出了问题,但还是不知道究竟是哪里出了问题。于是查找怎么在真机上调试。原来Android真机有个设置是打开开发模式的,打开后连接USB显示调试模式。在Eclipse里运行配置或者是调试配置里的Target选择manual。运行会跳出选择框,里面有真机有模拟器。这样真机调试很快就发现了问题,在读取文件时竟然读到了<head>这样的字符串,这不是网页里才有的?我那个文件里怎么会有这样的字符串?马上想到那个蛋疼的blackmoon attachsave。原来他竟然把我那个文件解析,然后识别成了HTML然后格式化后给我保存。这个问题足足困扰了我一天。解决后就顺利了,真机读取速度还真快一个6万个线条的文件一两秒就打开了。然后通过这里解决了如何实现文件关联,并且在Mail附件打开时直接使用我的重新进行查看。文件关联参考这里。这只是个初步的实现,后面还要进行缩放、平移一系列的查看操作的实现。

About 花老鼠