从零开始,手把手带你实现一个「专注睡前的APP」。睡觉之前如果能有一个APP,能让我们写一写这一天的见闻或者心得,同时又能看一会段子、瞄一会好看的妹子,放松一下疲惫的身心那该多好,这也是我完成这个APP的原因。APP的全部代码我已经分享到Github上了,需要的直接点击这里,如果喜欢的话,麻烦给个赞,谢谢啦。
在开始写正文之前,先来一波效果的展示,看看五天过后我们能实现怎样的效果
本次的教程分为5天,内容分别为:
Dayone,准备
功能需求
可行性分析
Daytwo,UI及公共类的封装
界面的设计及实现
公共类的实现
Daythree,日记模块
日记的展示
悬浮菜单的实现
日记增删改的实现
Dayfour,妹子模块
的获取
的展示
详情页面的展示
Dayfive,段子模块
段子数据的获取
段子的显示
Dayone
俗话说,万事开头难,在开始敲代码之前,先让我们来做一些必要的准备,这样才能事半功倍嘛!
一、功能需求
既然要做一个APP,那我们首先还是得把APP的功能都列出来,有了方向才能更好的努力,因为我想做的是一个专门给睡觉前用的APP,所以我觉得应该有以下的这些功能
1、日记的增删改
2、显示一些有趣好玩的段子
3、瀑布流展示漂亮的妹子
4、保存日记的内容以及缓存妹子
虽然说需求不多,但是却要运用到网络、数据存储、缓存、UI设计等内容,相信整个APP完成下来,必定能巩固我们的Android基础。
二、可行性分析
我们这个APP主要有三个模块,日记模块主要是运用到了数据库的知识,难度不大。但是,段子模块和妹子模块的数据要从哪来,这便是要好好考虑的了。幸好现在是个开源的时代,很多的数据,网上已经开源出来了。
我们先来看一下数据的内容
上面那两段代码分别是段子和妹子模块的json类型的数据,我已经将一些没用的字段去掉了。剩下的都是我们想要的数据。可以看到段子数据中,有着段子的内容,以及发布者的头像和名字。而妹子数据中有着的url、id、以及的类型。相信有了这么丰富的数据,我们想要完成这个APP也是有底气了。
Daytwo
一、界面的设计及实现
既然我们想要完成一个好看的APP,那么好看的界面便是必不可少的,这里我强烈推荐APP界面的设计必须尽量遵从Google提出的MaterialDesign,在这个推荐一个能够让我们实现MaterialDesign变得更加简单的网站materialdesignpalette,我这个APP的配色就是用这个网站完成的,贴几张,让你感受一下它的强大。
借助这个网站便能让我们完成APP的配色以及图标的收集,为下一步功能的实现,先打好了基础,至于界面的设计就仁者见仁智者见智了,篇幅有限,我就不多讲了。
APP的最终设计效果如下:
二、公共类的实现
因为这个项目有三个模块,有一些东西其实是可以通用的,如果我们先把这些能够通用的东西,封装起来,供给所有的模块调用的话,相信会大大提高我们的开发效率。
1、网络工具类的封装
这个APP中,很多地方都要用到网络请求,因此也就很有必要将网络请求封装起来,因为这个APP的规模比较小,因此我选择了Volley这个网络框架作为我们网络请求库,把网络请求封装起来,哪个地方需要,调用一下就行了。对于网络请求,我觉得每个程序员都该懂点HTTP,这里附上一篇有关HTTP的文章程序员都该懂点HTTP。
先让我们来写个将网络请求进行回调的接口
然后将网络请求封装起来
2、Json解析的帮助类
因为我们这个APP中,获取到的数据都是Json格式的,因此也就有必要将有关的Json解析封装成一个工具类,传入一个String类型的数据,直接得到数据实体类的List。
3、HomeActivity(主页面)的封装
主页面我用的是TabLayout+ViewPager+Fragment,也是现在主流APP主页面的显示方式。主界面底部是我们三个模块的图标和名称,通过左右滑动能实现界面的跳转。
底部图标的实体类CommonTabBean
ViewPager+Fragment通用的Adapter
Daythree
关于日记模块的实现,其实我是复用了以前写过的一个日记APP,具体的思路和做法,可以参考我的这篇文章Android一款十分简洁、优雅的日记APP
Dayfour
一、的获取
1、根据返回的数据来编写的实体类
2、的展示
可以看到我是用瀑布流的方式来实现的展示,效果还不错,但其实实现起来也是很简单的
先写个的布局作为RecyclerView的Item
可以看到我在ImageView的外面加了一个CardView,这个一种卡片式布局,能让看起来就像一张卡片一样,相当的优雅、美观。
接着编写Adapter,将数据和界面进行绑定
最后在Fragment进行数据的获取,以及布局的初始化就行了
3、详情页面的展示
干巴巴的,整个模块只能显示妹子的怎么行呢!!!怎么着也得能查看大图,根据手势放大缩小,以及浏览下一张才行嘛,说干就干。
因为需要有根据手势来放大缩小的功能,因此我便想到了PhotoView,这是网上一个大神写的,继承自ImageView的一个自定义控件。加载我用的是
Glide,如果没了解过这个库的,强烈推荐,一行代码就能搞定加载,你确定不研究一下。
Dayfive
一、段子数据的获取
段子数据的获取其实跟妹子模块的方法基本一样
先编写实体类
写好实体类之后,使用我们之前已经封装好的网络请求工具以及解析工具,便能将返回的数据,解析成一个包含段子实体类的List。
二、段子的显示
老规矩,先写个RecyclerView的Item
然后编写将数据和界面进行绑定的Adapter
最后段子页面中进行数据和获取以及界面的初始化
可以从三个开发软件了解学习来完成。
一:Appmakr
AppMakr是一个可以让你在几分钟之内创建应用程序的一种服务,无需编码能力。使用该工具,你可以创建iPhone和Android应用。还有一些可供选择的功能,包括将网站连接到你的应用程序、HTML5功能、推送通知和广告支持。通过AppMaker账户,你可以创建无限数量的应用程序。
目前Appmakr是国外比较流行的应用生成工具,在国内也享有一定知名度。
二:AppCan
AppCan属于移动应用开发平台,应用引擎支持HybridApp的开发和运行。并且着重解决了基于HTML5的移动应用目前\"不流畅\"和\"体验差\"的问题。使用AppCan应用引擎提供的Native交互能力,可以让HTML5开发的移动应用基本接近NativeApp的体验。
与Phonegap支持单一webview使用div为单位开发移动应用不同。AppCan支持多窗口机制,让开发者可以像最传统的网页开发一样,通过页面链接的方式灵活的开发移动应用。基于这种机制,开发者可以开发出大型的移动应用,而不是只能开发简易类型的移动应用。
三:appBook
appBook平台是多平台移动应用制作工具,可以广泛用于书籍制作,个人杂志发行,宣传手册,支持iPad、iPhone、Andriod等平台,不支持pc平台。真正做到了一次编译多平台发布。目前appbook平台有:iebook平台、及、appbook应用制作平台
1、首先打开电脑查看一下自己的显卡是n卡还是a卡,常见方法有打开电脑的设备管理,就可以看到显卡是n卡了,如下图所示:
2、以N卡为例,然后进入到n卡的控制面板中,如下图所示就是n卡的控制面板中心:
3、找到3d设置,选择使用优先选择,侧重于性能,如下图画圆圈所示:
4、在管理3D设置中,找到垂直同步点击关闭,如下图所示:
5、将电源管理模式设置为最高性能即可,如下图所示:
一、系统属性设置
1、进BIOS将开机启动顺序设为硬盘启动。
2、禁用闲置的IDE通道
右键点击“我的电脑-属性”--“硬件”--“设备管理器”,在其中打开“IDE ATA/PATA控制器”然后分别进入主要和次要IDE通道,选择“高级设置”,将“设备类型”设置为“无”,将“传送模式”设为“DMA(若可用”。
3、优化视觉效果
右键单击“我的电脑”--“属性”—“高级”,在“性能”栏中,点击“设置”--“视觉效果”,调整为最佳性能,或去掉一些不需要的功能。
4、优化性能
右键单击“我的电脑”--“属性”—“高级”,在“性能”栏中,点击“设置”—“高级”—将“处理器计划”、“内存使用”,均点选“程序”。
单击“虚拟内存”区“更改”--在驱动器列表中选中系统盘符--自定义大小--在“初始大小”和“最大值”中设定数值,然后单击“设置”按钮,最后点击“确定”按钮退出。虚拟内存最小值物理内存15—2倍,最大值为物理内存的2—3倍。
5、启动和故障恢复
"我的电脑"--"属性"--"高级"--"启动和故障修复"--“设置”,在“系统失败区中,去掉"将事件写入系统日志","发送管理警报","自动重新启动"前边的勾;将"写入调试信息"设置为"无";点击"编辑",在弹出记事本文件中:[Operating Systems] timeout=30 //把缺省时间 30 秒改为 0 秒。
6、禁用错误报告
"我的电脑"--"属性"--"高级"--点"错误报告",选择"禁用错误汇报",勾选“但在发生严重错误时通知我”—确定。
7、关闭系统还原功能
单击“开始”--右键单击“我的电脑”--“属性”—“系统还原”,为了兼顾系统性能和系统安全,建议关闭 XP系统盘以外的分区磁盘的系统还原功能,点击“设置”,将“要使用的磁盘空间”设为最小。
8、关闭自动更新
单击“开始”--右键单击“我的电脑”--“属性”—-“自动更新”--选择“关闭自动更新”或选择“有可用下载时通知我……”。
9、关闭远程桌面
开始--右键单击“我的电脑”--“属性”--“远程”,去掉“远程协助”和“远程桌面”里的“允许从这台计算机发送远程协助邀请”和“允许用户远程连接到这台计算机”前边的勾--确定。
10、禁用消休眠功能
单击“开始”--“控制面板”--“电源管理”--“休眠”,将“启用休眠”前的勾去掉。
二、设置显示属性能
1、右击桌面空白处—属性 –将“背景”和“屏幕保护程序”设为“无”;去掉“开启桌面壁纸自动转换”前边的勾;
2、右击桌面空白处—属性 –-外观—效果—去掉“为菜单和工具提示使用下列过渡效果”前边的勾,勾选“使用下列方式使屏幕字体边缘平滑”—确定。
3、右击桌面空白处—属性 –设置—“屏幕分辨率”可设为800×600或1024×768;“颜色质量”一般不要设的太高,以设“中”为好。
4、右击桌面空白处—属性 –设置—高级—监视器—将“屏幕刷新率”纯平设为“75—85HZ”,液晶自动。
5、右击桌面空白处—属性 –设置—高级—“疑难解答”—将“硬件加速”调到“全”—确定。
三、关闭“Internet时间同步”功能
右击任务栏通知区时间—选“调整日期/时间”--“Internet时间”,取消“自动与Internet时间服务器同步”前的勾—确定。
四、关闭一些启动程序 开始-运行-msconfig---启动 ,除杀毒软件、输入法外一般的程序都可以关掉。
五、禁用多余的服务组件
右键单击“我的电脑”--“管理”--“服务和应用程序”--“服务”,在右窗格将不需要的服务设为禁用或手动。
六、关闭华生医生DrWatson
单击“开始”--“运行”--输入“drwtsn32”命令,或者“开始”--“所有程序”--“附件”--“系统工具”--“系统信息”--“工具/Dr Watson”,调出系统里的华生医生DrWatson ,只保留“转储全部线程上下文”选项,否则一旦程序出错,硬盘会读很久,并占用大量空间。
七、修改注册表
1、加快开机及关机速度
在[开始]-->[运行]-->键入[Regedit]-->[HKEY_CURRENT_USER]-->[Control Panel]-->[Desktop],将字符串值[HungAppTimeout]的数值数据更改为[200],将字符串值[WaitToKillAppTimeout]的数值数据更改为1000另外在[HKEY_LOCAL_MACHINE]-->[System]-->[CurrentControlSet]-->[Control],将字符串值[HungAppTimeout]的数值数据更改为[200],将字符串值[WaitToKillServiceTimeout]的数值数据更改1000
2、自动关闭停止响应程序
在[开始]-->[运行]-->键入[Regedit]-->[HKEY_CURRENT_USER]-->[Control Panel]-->[Desktop],将字符串值[AutoEndTasks]的数值数据更改为1,重新启动即可。
3、清除内存内被不使用的DLL文件
在[开始]-->[运行]-->键入[Regedit]-->[HKKEY_LOCAL_MACHINE]-->[SOFTWARE]-->[Microsoft]-->[Windows]-->[CurrentVersion],在[Explorer]增加一个项[AlwaysUnloadDLL],默认值设为1。注:如由默认值设定为[0]则代表停用此功能。
4、加快菜单显示速度
在[开始]-->[运行]-->键入[Regedit]-->[HKEY_CURRENT_USER]-->[Control Panel]-->[Desktop],将字符串值[MenuShowDelay]的数值数据更改为[0],调整后如觉得菜单显示速度太快而不适应者可将[MenuShowDelay]的数值数据更改为[200],重新启动即可。
5、加快自动刷新率
在[开始]-->[运行]-->键入[Regedit]-->[HKEY_LOCAL_MACHINE]-->[System]-->[CurrentControlSet]-->[Control]-->[Update],将Dword[UpdateMode]的数值数据更改为[0],重新启动即可。
6、加快预读能力改善开机速度
在[开始]-->[运行]-->键入[Regedit]-->[HKEY_LOCAL_MACHINE]-->[SYSTEM]-->[CurrentControlSet]-->[Control]-->[SessionManager]-->[MemoryManagement],在[PrefetchParameters]右边窗口,将[EnablePrefetcher]的数值数据如下更改,如使用PIII 800MHz CPU以上的建议将数值数据更改为4或5,否则建议保留数值数据为默认值即3。
7、利用CPU的L2 Cache加快整体效能
在[开始]-->[运行]-->键入[Regedit]-->[HKEY_LOCAL_MACHINE]-->[SYSTEM]-->[CurrentControlSet]-->[Control]-->[SessionManager],在[MemoryManagement]的右边窗口,将[SecondLevelDataCache]的数值数据更改为与CPU L2 Cache相同的十进制数值:例如:P4 16G A的L2 Cache为512Kb,数值数据更改为十进制数值512。
8、在启动计算机时运行Defrag程序
在[开始]-->[运行]-->键入[Regedit]-->[HKEY_LOCAL_MACHINE]-->[SOFTWARE]-->[Microsoft]-->[Dfrg]-->[BootOptimizeFunction ],将字符串值[Enable]设定为:Y等于开启而设定为N等于关闭。
9、关机时自动关闭停止响应程序
在[开始]-->[运行]-->键入[Regedit]-->[HKEY_USERS]-->[DEFAULT]-->[Control Panel],然后在[Desktop]右面窗口将[AutoEndTasks]的数值数据改为1,注销或重新启动。
10、加快宽带接入速度
在[开始]-->[运行]-->键入[regedit]-->在[HKEY_LOCAL_MACHINE]-->[SOFTWARE]-->[Policies]-->[Microsoft] -->[Windows],增加一个名为[Psched]的项,在[Psched]右面窗口增加一个Dword值[NonBestEffortLimit]数值数据为0。
11、加快宽带网速
打开注册表编辑器,找到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip \ parameters, 右击parameters在右边空白处,选择左“新建”—>DWORD值边,将其命名为“DefaultTTL”,右击鼠标选出择“修改”,值改为 80(十六进制),或128(十进制)。
将 GlobalMaxTcpWindowSize 的值改为7FFF。
12、加速网上邻居
打开注册表编辑器,找到HKEY_LOCAL_MACHINE/sofew
are/Microsoft/Windows/Current Version/Explore/RemoteComputer/NameSpace,删除
其下的{2227A280-3AEA-1069-A2DE08002B30309D}(打印机)和{D6277990-4C6A-11CF8D87- 00AA0060F5BF}(计划任务)。
如果手机使用第三方软件APP时卡顿,可尝试操作:
1点击返回键退回到主界面,然后再次进入该软件尝试。
2若使用时依然出现卡顿现象,建议进入设置-查找“应用程序管理器”-(全部)-查找该软件-(存储)-清除数据及清除缓存。
3检查其他软件是否出现同样的情况。若仅是此款软件无法正常使用,建议检查该软件是否有最新版本,更新版本后尝试。
4若无效,请卸载软件重新安装尝试。
5确认该软件在其他设备上是否可以正常使用,排除是否该软件本身问题。
6若其他设备可以正常使用,建议备份手机中数据(联系人、信息、等),将机器恢复出厂设置尝试。
若问题依然存在,请您携带购机发票、包修卡和机器送到三星服务中心检查。
一、开启强制进行GPU渲染的选项
一般情况下,我们手机APP运行都是需要渲染画面的。不过这个渲染画面,CPU正常都能够帮我们代劳了,CPU会一边运算一边渲染。
不过遇到大型游戏的话,就需要GPU出马了。而GPU是什么呢?就相当于是电脑的显卡。如果有GPU帮忙的话,手机游戏就会运行的更流畅。
不过GPU常常会偷懒,把工作都给CPU。如果同时开启多个软件的话,CPU就会承受不来。因此,我们强制进行GPU渲染,就是为了减轻CPU的负担,如果开启这个你的GPU会一直工作来处理所有app的渲染,这样CPU压力就会小些。
二、调节窗口、过度动画速度
窗口动画这些是什么意思呢?众所周知,我们在打开软件的时候,会有一个短暂跳动画面,这就是窗口动画。其中有05x、1x、2x、5x、10x等等的参数,参数调的越大的话,这个画面就会停留更久,看起来就会相当卡顿。
反之,把参数调低,调为05x的话,过度动画减少,进入软件的速度将会变得更快。所以,我建议窗口动画和过度动画,都调成05x。当然,你想更快,简单暴力的话,直接关闭动画也行。(不过要注意,直接关闭的话会导致拍照的时候对焦圆圈很快消失 ,从而不能调节曝光数值大小,而且大光圈模式下光圈大小也不能调节。)
三、后台进程设置
这个设置就比较好理解了,我们手机会卡顿就是因为后台同时开启的软件太多。
可能很多小伙伴不解,我都有在后台把这些软件关了啊,怎么还会卡顿呢?
这其实就是安卓的通病,那些软件你后台点击关闭后,他们并不会真正关闭。而是会在后台休眠,并且占据你一部分的运存。
说白了吧。这些软件你根本关不了,他们都在后台偷偷运行呢?可能是在窃听,或者通过摄像头在观察你,或者是看你手机里面的信息。所以,除非你关机重启,要不然这些流氓软件就会一直在。
当然,他们留在你后台,也不完全是坏事,毕竟能让你开启软件的速度更快。
因此,希望能关闭后台,使手机卡顿缓解的小伙伴就可以使用这个后台进程限制。把标准限制改为不得超过1-4个进程。具体多少,就得看你平常用的软件到哪里去了。
四、停用HW叠加层
这是搭配“强制GPU进行渲染”这个功能一起用的。
那HW叠加层是什么意思呢?就是辅助CPU来进行运算,以达到减少使用GPU渲染,从而有效避免一直硬件加速带来的高功耗。
不过,你按照祺祺上面说的,已经点开了强制进行GPU渲染的话,就需要停用这个功能,才能充分发挥GPU的实力,提升手机性能。当然,有利也有弊,提升性能的同时也会带来功耗的增加。
总而言之,手机同时开启这4个开关后,会有效的提升手机性能。但有舍有得,既然手机厂商一开始没给你开启,要等你跟发现宝藏一样去挖掘的话,说明这些功能一般情况下,是无需开启。如果一定要开启的话,也是要损耗电量来支撑。
欢迎分享,转载请注明来源:品搜搜测评网