1、关键词:手机锁 滑动开锁第一部分 分组选题一、选题概述1、选题介绍SliderLock是一款Android系统手机平板的锁屏的保护程序。启动程序服务后可以在开机和休眠后对平板开启保护功能。任何android手机平板用户可以通过滑动屏幕上的图标进行解锁。可操作性和简单性极强。2、已有项目分析前一阵大家非常热衷于下载各种屏保软件,有的是在屏幕上画图案进行屏幕解锁的,有的是用密码解锁的,有的是用声音进行解锁的。但是过了一阵之后,大家还是会选择用比较简单的解锁方式,这一点我有深刻的体验。有事后频繁的开锁解锁会让人厌烦,如果这时候的开锁过程很复杂的话就更加容易引起人们的厌烦情绪。起初可能是因为好奇或者追
2、逐新奇事物会选择一些复杂的开锁软件,但是后来大多数人还是会回到最简单的开锁方法。因此我仿照某屏幕保护开锁功能设计这个屏保解锁软件。只需要用户在屏幕上滑动图标就可以进行屏幕解锁。二、项目功能简述用户通过点击程序获得屏幕保护解锁服务,每次点亮屏幕或者开机的时候使用本程序的屏幕解锁功能,滑动解锁界面上的图标,滑动到一定的位置就能解锁屏幕。三、软件核心技术框架1、基本技术组成Google最新ADT集成开发环境。 Java语言。2、候选方案分析候选方案1:点击解锁直接在屏幕保护界面上添加按钮或者其他控件,用户通过点击这些控件就能进行屏幕解锁,符合简单快捷的开锁原则。但是这样的开锁程序用户体验会很低。没有
3、娱乐性和界面效果的程序不会受到用户的青睐。候选方案2:图案解锁图案解锁是一些用户现在坚持在使用的解锁方式,大多因为他的保密安全级别较滑动解锁高,使得用户之外的人没办法轻易使用用户的设备。可操作性也很强,界面效果很好。但是安全级别越高,解锁过程就越复杂。就算是设备本身的用户要想解锁的话也会有几次解锁不成功的,因为有些用户希望这些解锁能快一些,很容易跟初始设置的解锁图案不同,用户的安全需求越高,方便性就越低,造成了很多一般用户抛弃这种解锁方式。3、关键技术难点分析软件最重要的技术难点:图像重绘、服务的使用、消息传递突破方法: 参考Android开发书籍和代码示例进行编写示例代码,先弄清楚Andro
4、id消息传递和图形重绘机制,实现消息传递和拖动图标的功能。然后参考网上的使用服务的程序,弄清楚服务的配置,注册,消息的注册和使用方法。四、开发计划1、开发计划制定2、开发语言及工具和环境Android语音识别API1.6调用 。PC:Windows 7 64位旗舰版。android设备:Android4.4模拟器。五、成果提交方式1. 每次屏保启动的都是本程序的开锁界面。2. 界面友好,界面美观。3. 可进行滑动图标解锁4. 滑动距离不够时屏幕不解锁。5. 滑动距离不够使图标按轨迹回到初始位置。第二部分 设计与开发一、 前期准备工作 收集界面图片素材,了解Android消息传递机制,了解And
5、roid服务使用方法,了解Android消息姐广播与接收机制。 收集界面图片素材 收集的界面图片素材包括解锁界面的背景图片,滑动图标,滑动轴背景图片等。背景图片是480*800的一张背景图,滑动轴背景图片是128*40的图片,两边是圆角,滑动图标是两张图片组成,一张是正常情况下的图标,另一张是点击后的图标,两者只有上面的图片颜色不一样,让用户知道是点击状态下的。Android消息传递机制 Android通过Intent进行类之间的消息传递。Android利用Handler实现消息的传播,通过重写Handler中的HandleMessage函数进行处理消息。Android服务的使用方法 建立一个
6、类继承与Service类,实现程序中运行于后台的服务。在AndroidManifest文件中的activity标签之后application标签结束之前将这个类注册。Android消息广播与接收 通过静态或动态(我用的是动态)注册BroadcastReceiver变量进行捕捉系统的广播消息,用于检测屏幕的状态变化。二、对于屏幕解锁程序的认识屏幕解锁程序一般是在屏幕关闭后打开或者开机是打开的屏幕保护程序,防止手机在没有人的主动意愿的情况下的操作,如在口袋里放着就启动了某些功能。用户通过金丹或复杂的屏幕操作想设备表示制动操作意愿,解锁屏幕后可以对设备上的程序进行操作。根据用户对于手机安全级别的需求
7、,屏幕解锁程序有简单到复杂。用户对本人安全级别越高屏幕解锁程序的解锁方式就越复杂。由于Android操作系统的市场的领导地位,用户体验的要求不断提高,许多屏幕解锁程序的可玩性极高,传统的按开机键解锁已经完全不能满足用户的需求,在操作屏幕解锁时用户对界面的炫酷感要求很高。三、技术关键和需要解决的关键问题 技术关键是前面讲到的Android消息传递,广播的接收和处理,服务的使用。需要解决的关键问题是主程序类和界面类,服务类之间的消息传递和处理。主程序类和界面类之间的消息传递 主程序类用于控制整个程序,主程序类初始化是首先会初始化解锁界面,初始化界面类,界面类中的各种操作在界面类中实现,但是一旦界面
8、类完成解锁操作就要想主程序类发送消息,告诉主程序类这个解锁成功了,让主程序类完成下面的功能,否则继续在界面类中重复解锁操作。主程序类和服务类之间的消息传递 主程序类在初始化时回启动解锁服务,这样服务就会在后台运行,检测系统的广播消息,接收广播消息,处理广播消息。一旦接收到SCREEN_ON或者SCREEN_OFF广播时就会通过Intent启动主程序类,显示解锁界面。四、程序的基本构成主程序类用于空着整个程序,界面类用于完成界面的布局,解锁过程中的界面事件的处理,服务类用于后台运行和监控系统的广播消息。五、解锁程序的实现主程序类 主程序类用于监控整个程序,在主程序类初始化的时候设置全屏,去掉设备
9、的TITLE。然后初始化界面类,显示解锁的界面。然后初始化服务类,开启解锁服务。声明一个Handler并且将这个Handler与界面类公用,用于监控解锁是否成功,如果解锁成功就向这个Handler中传一个消息,结束解锁程序。界面类 界面类在主程序类初始化的时候初始化,将activity_mian.xml中的布局文件显示出来,然后接受用户的屏幕消息。通过重载onTouchEvent来获取用户点击的区域。如果点击区域在滑动图标所在的区域并且有移动动作(MoveAction)时保持纪录移动的位置坐标,当位置坐标中的横坐标发生变化时重绘滑动图标,滑动图标只接受保存位置坐标的横坐标值,纵坐标值一直保持为
10、滑动轨道内。如果滑动图标的横坐标也就是当前保存的位置坐标的横坐标值到达某一阈值的时候表示滑动解锁成功,向主程序类的Handler发送消息,结束屏幕保护。否则表示滑动解锁不成功,滑动图标返回到初始位置,屏幕保护不结束。服务类 服务类在主程序类的初始化过程中被创建并且一直运行在系统的后台,监听系统的广播信息。通过注册BroadcastReceiver 类型的mScreenOffReceiver变量来接收系统的广播消息。重写BroadcastReceiver 的onReceive方法来处理接收到的广播消息。如果是SCREEN_OFF或者SCREEN_ON消息就向主程序发送Intent消息,开启屏幕保
11、护。六、源程序的实现要素本系统的设计源文件为MainActivity.java、LickService.java、SliderLayout.java,界面设计文件为activity_main.xml,系统配置文件为AndroidManifest(见源码)。其他图片资源在res目录下的drawable文件夹中。第三部分 开发成果分析一、模拟器的程序二、解锁界面三、滑动过程中四、解锁成功总结与体会本次实习并没有花费很多的时间,在初次跟老师联系确定课程设计的题目之后的一个星期我就做完了。一本分原因是我上学期做的也是解锁的程序,虽然失败了,但是从上学期的程序中我得到了很多的知识,比如使用Keyguar
12、dManager,Intent的消息传递,注册服务等都在本次实习中用到了。上学期的实习的失败主要原因是Google云的语音识别不能本地回传造成的,的框架并没有变,本次实习的解锁过程比上学期简单很多,都是本地的简单操作。操作完成就可以解锁,这个程序的难度不是很高。本次实习让我更加熟悉使用类间消息传递的方法,接收广播消息的方法,图形重绘的方法,和屏幕解锁的方法,收获还是很多的。通过本次实习我对Android的消息机制有了更深的了解,对各种广播消息也有了一些学习,希望在以后的学习工作中能够帮助我。出于我不在信工院的原因和自身回家比较早的原因,只做到这种程度我感到很愧疚。希望在以后的学习和工作中如果遇到Android开发的时候能够有更好的学习。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1