主题
上回已经搭建好了Andoird应用程序的开发环境,Android这么好玩,怎么能不自己开发一个程序玩一下呢。呵呵,笔者写了个小程序。主要就是一个时间显示功能,提醒自己活了多久,不要忘记一切都是从蛋蛋开始的,是不是既人文又邪恶。潜台词是Just do it。
技术介绍
说一下Android应用程序的基本开发流程,说一下笔者是有JavaSE Swing界面开发基础的,所以感觉就不那么吃力了。
(1)android的源程序文件组成
是由Java程序、资源文件、XML布局文件组成。所以要理解这三者怎么写,和相互之间的关系。虽然多了资源文件、XML布局文件,但本质就是java程序,因为最后都被编译成class文件,再变成dex执行。你可以理解成系统自动帮你把资源文件、XML布局文件变成Java程序了。
(2)android应用程序的包的结构
src,bin,res呀神马的都是干嘛的,最后在哪里生成了一些新内容,也要注意一下。
给个参考文章 http://msquirrel.diandian.com/post/2012-09-12/40038585654
(3)怎么查资料
笔者的资料只有《疯狂Android讲义》和http://www.ostools.net/apidocs/apidoc?api=android/reference ,里面把界面编程的只是讲得很清楚,控件,布局器,事件响应,动画 怎么用啊一查就知道了。因为笔者的小程序只用到了这些知识,所以只看了这么多。当然了,万能的谷歌娘和度娘,是你永远的帮手。
发现
在这里说一个 发现,Java里面 GregorianCalendar 类是用来表示日历时间的,笔者需要计算两个GregorianCalendar实例的时间差,却发现老是算不对。最后测试了一下以下代码
GregorianCalendar now = new GregorianCalendar();
System.out.println(now.get(Calendar.YEAR)+" "+now.get(Calendar.MONTH)+" "+now.get(Calendar.DAY_OF_MONTH)
+" "+now.get(Calendar.HOUR_OF_DAY)+" "+now.get(Calendar.MINUTE)+" "+now.get(Calendar.SECOND));
发现 now.get(Calendar.MONTH) 的结果总是真实月份减一,实际呢,Calendar.MONTH是从0开始的,1月份是0。
所以当你在 初始化的时候,记得要减一,不然表示的月份不对。比如今天是2013年4月12日号,初始化为GregorianCalendar(2013,4-1,12)。