慧版备忘录
1 功能需求及技术可行性分析
在开始编码之前,我们需要先对程序进行需求分析,想一想慧版备忘录中应该具备哪些功能。将这些功能全部整理出来之后,我们才好动手去一一实现。以下是我认为备忘录应该实现功能。
1. 可以实现获取当前时间
2. 可以自定义设计铃声
3. 可以实现备忘内容输入
4. 可以设置提醒的周期
暂时可以实现的四个主要的功能点,但如果想要全部实现这些功能却需要用到UI、网络、数据存储、服务等技术,所以在设计时也是比较复杂的。
分析完了需求之后,接下来就要进行技术可行性分析了。这个备忘录本就是比较简单功能的组合,只要将简单的功能组合在一起就可以实现,比如备忘内容的输入,只需要获得输入权限就可以了,其他部分也比较容易实现。
确定了技术完全可行之后,接下来就可以编码了。以为备忘录需要有时间的设计,所以要使用GitHub来进行代码托管。
2 获取安卓设备的当前时间
因为要涉及时间问题,所以第一步要实现的便是获取安卓设备的当前时间。Android的文件有建议用Time代替Calendar。用Time对CPU的负荷会较小。在写Widget时特别重要。Time t=new Time(); // or Time t=new Time("GMT+8"); 加上Time Zone资料就可以实现对时间的获取,并将安卓设备的时间同步到备忘录。实现效果如下图:
在下面的源码中会有具体的编码内容。
唯一不足是取出时间只有24小时模式.
long time=System.currentTimeMillis();
final Calendar mCalendar=Calendar.getInstance();
mCalendar.setTimeInMillis(time);
取得小时:mHour=mCalendar.get(Calendar.HOUR);
取得分钟:mMinuts=mCalendar.get(Calendar.MINUTE);
3 创建数据库和表
从本节开始,我们就要真正地动手编码了,为了要让项目能够有更好的结构,这里需要在com.DeskClockApp-4-10.app包下再新建几个包。
其中activity包用于存放所有活动相关的代码,db包用于存放所有数据库相关的代码,model包用于存放所有模型相关的代码,service包用于存放所有服务相关的代码,util包用于存放所有工具相关的代码。ADT帮我们自动生成的MainActivity和activity_main.xml文件就不需要了,这里直接将它们删除掉。
4 UI界面设计
正如以上两个图片所示,图片中利用UI当中的layout.main.xml对页面进行主要的布局设计,分为上半部份的备忘录功能部分设计以及下半部分的简要功能部分,同时在上半部分中添加了输入文字的方法,以便用户输入自己想要的内容。同时添加了在安卓设备中添加铃声的接口。