深圳大学考试答题纸
(以论文、报告等形式考核专用)
二○ 二三 ~二○ 二四 学年度第 2 学期
课程编号 1502180002 课序号 03 课程名称 移动互联网应用 主讲教师 解为成 评分
学 号 2022150054 姓名 王雅贤 专业年级 软件工程 22级
教师评语:
《移动互联网应用》课程项目设计,根据如下题目完成项目设计和报告:
题目:我的ONE一个APP
- ONE一个APP界面
基于已完成的“APP调研报告”相关的经验总结,尽量模拟如下ONE一个APP(华为应用市场:ONE一个)的功能,即参考如下的界面展示形式及功能模块:
图1 ONE一个APP;功能模块及其高清图可以去APP查看
- 具体要求
模拟图1所示ONE一个APP,介绍该APP与服务相关的一些知识点并能提供相应功能:
1) 建议包含的一些功能:活动之间的转换与数据传递;能适应不同的展示界面;有登录功能,强制下线功能;数据有多样化的持久化功能;能跨程序提供与共享数据;有展示一些多媒体的功能;
2) 较好的实现了书本上介绍的一些较成熟的功能,并能较好的把这些功能融合在一个完整且无大bug的APP里; 3) 能在此基础上构建自己的报告亮点,如实现了书本不一样的功能模块,或者为某个知识点找到适当的新的应用场景,或者能解决同学们普遍存在的一些问题等;
4) 模拟的APP不局限于所参照APP的功能,即只需尽量模拟这些功能,不要求将每个界面或功能都实现,如果某个界面或功能不能体现已学知识点,可以不用考虑,当然如果能想办法实现出来,可以作为报告亮点;即不必与这些界面或功能完全一样,可在此基础上进行变通,达到类似的效果就可以;如果设计了一些该APP没有的功能,请说明清楚这些功能的实现方式、潜在的用途等;
5) 总体目标是考察同学们是否已掌握课程内容,是否能灵活利用所学的知识点,做到每个功能各种实现方式的丰富化(如数据的持久化的三种实现方式都能在APP中有所体现),并且能了解并总结不同实现方式的优劣,且能通过APP的实现体现出来;
- 部分参考
1)功能实现参考:图第1-2列尽量参考第6章数据持久化技术的各个知识点;第1列尽量参考布局及活动之间的跳转,碎片的实现,多媒体展示功能;顶部与底部菜单可以利用Tablayout、ViewPager或RecyclerView等实现;
2)设计Android基于位置的服务,比如能根据用户所在位置将用户进行分类;添加一个小功能,整合网络技术的应用,比如“阅读”,“问答”或“关注”的功能的线下保存;利用数据后台下载的功能,比如长篇小说的下载等;
3)可以借鉴的部分章节内容,第12章(第二版)可以让你的APP界面变得更美观;第14章展示了一个大型的工程,可以学习下多个功能怎样在一个工程里体现;
- 其它要求
1)构建的APP要格式工整,美观;个人补充的新的功能或界面可以与“APP调研报告”的总结对应上;
2)实验报告中需要有功能的描述、实验结果的截屏图像及详细说明;结果展示要具体,图文交叉解释;代码与文本重点要突出,代码的展示要适当少一些;建议报告采用白色背景的形式;
3)也欢迎采用课程后续章节的知识点完成本次大作业,如果实现的功能言之合理,会考虑酌情加分;
4)每位同学在最后一次课都需要上台报告,并且最好能现场演示APP的功能等,没上台报告的同学分数会受一定的影响;
5)报告由个人独立完成。
- 评分标准
-
APP协议完成度高,与参考APP有一定的相似度,功能完善、丰富。能实现活动的编写、自定义用户界面的开发、碎片开发、广播机制、数据持久化与共享技术、网络技术、后台服务的应用等(60分)
-
模拟APP结构合理,代码规范,界面美观易用。项目报告撰写规范、美观整齐,内容详实且能准备描述项目内容和设计思想、原理、框架等,项目报告要求5号字、除前两页试题要求外A4版面不少于10页的长度,但也不应超过45页。(15分)
-
提供程序源代码和可执行程序(或安装程序);报告文档采用单独的word文档,项目所有代码(不是整个工程文件,应该总共不超过5M)在第17周结束前打包作为附件进行上传blackboard系统;纸质版交到任课老师处。(10分)
-
项目报告能够详细,准确的描述项目内容,并在最后一堂课有较好的展示效果。(15分)
1. APP的构建过程及结果
一、总述:
本APP模仿ONE一个的界面,实现了类似的界面与功能。功能方面,实现了活动之间的跳转,碎片的切换,内容的实现使用了RecyclerView,登录活动实现了记住密码的数据持久化功能。登录后可以点击Exit来发送强制下线的广播。App兼容平板和手机,不同设备间会有不同的界面。
二、具体活动:
1.初始活动界面start,点击后就可以进入主活动界面。
2.主活动main,就是app的主要内容
3.登录活动,点击登录按钮后会跳转到登录活动来进行登录。
均在注册文件中注册:
三、活动视图:
视图文件总览:
三个activity对应三个活动。Option1~4代表主活动的四个碎片布局。member分别是recyclerview的成员设计。 这是主活动布局设计:
登录碎片界面的设计:
圆形按钮的设置:
按钮视图:
“android:background="@drawable/btn_login_bg"”此句让按钮的形状为圆形,后面引号内在drawable的xml文件这样设置的: 右击drawable,新建安卓资源文件:
如图选择这两项
生成的xml文件中设置形状即可:
然后使用线性布局结合相对布局设计界面以控件的位置:
运行:
为“注册”两个字设置下划线,提示用户可以点击:
设置初始界面的背景图片:
通过“画图”软件的取色填充来模仿出的图片:
2.请详细说明APP的功能、出现的关键问题及解决方案
1.主活动切换页面:
点击下方导航栏可以换到不同的界面,浏览不同的内容。并且点击后会高亮,实现方法是点击哪个,就把对应的imageview的src图片换为深色,同时用了一个变量来记录上一个访问的界面,并且将其图标换为浅色即可。(此时当前页面就是下一次切换后的上个界面,此时就可以做记录)
2.登录功能: 点击登录按钮,若没有勾选同意协议则无法登录并提示:
注册以及下面三种登录方式按钮可响应:
勾选后点击登录即可跳转到登录界面:
这里勾选checkbox即可存入输入的账号密码到SharedPreferences,并在下次访问时自动填入EditText 中,实现了数据持久化。
登录成功后,将主活动的一个static变量置为了1,这样下次点击导航栏中“我的”选项,会到个人界面。(即替换碎片为登录成功界面):
3.广播强制下线: 点击登录后界面中的EXIT,即向所有活动show一个AlertDialog:
我们所有活动都继承自自定义类BaseActivity,这个类继承了AppCompatActivity。在BaseActivity中用了类ActivityCollector的static全局变量List来收集了我们所有访问过的活动。这样我们就可以来实现强制下线功能了。
此时点击OK按钮,就会将所有收集的活动进行finish,然后用Intent回到初始start活动了。登录标记变量也会置为未登录状态。
平板设备也有同样的功能:
遇到的一些问题及解决:
1.“我的”选项只是app的一个碎片界面,app不登录也可以阅览,但我由于审题不仔细,以为这个是最开始的活动界面,所以整个活动需要重新实现了。
2.切换碎片时,碎片的XML布局应是framelayout,否则切换后,之间的页面仍在下方甚至可以看见与点击。
(此处写你的过程,比如遇到的错误,以及解决方法,你的所想、所得)
通过已学知识并查阅资料,成功按题目要求模仿“ONE”app构建了类似界面的app,并运用了相关知识实现了一些功能。
不过实验仍有不足,只是搭了个最基本的框架,并没有特别的功能,界面也不是很精美。
通过此次实验,熟练掌握了LinearLayout,RelativeLayout,FrameLayout控件,能熟练运用ImageView,TextView等布局,能够模仿设计一些布局。
再次练习了活动之间的跳转,碎片的切换,RecyclerView的使用,数据持久化功能,强制下线广播,不同设备兼容不同的视图。