如何开发一款手机软件?

如何开发一款手机软件?,第1张

从零开始,手把手带你实现一个「专注睡前的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个开关后,会有效的提升手机性能。但有舍有得,既然手机厂商一开始没给你开启,要等你跟发现宝藏一样去挖掘的话,说明这些功能一般情况下,是无需开启。如果一定要开启的话,也是要损耗电量来支撑。

欢迎分享,转载请注明来源:品搜搜测评网

原文地址:https://pinsoso.cn/shuma/981513.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-21
下一篇2023-08-21

随机推荐

  • 那个牌子的护手霜好用啊

    1、凡士林护手霜。凡士林润肤露改善肌肤干燥功效显著,凡士林是享誉全球的原创专业护肤品牌之一。 2、欧舒丹护手霜。法国天然植物护肤品牌,专门制造及售卖个人护理产品及家居产品的国际零售企业,其护手霜享誉界内。 3、露得清护手霜。强生旗下高效护肤

    2024-04-15
    44100
  • 从香港买回来的妮维雅怎么看生产日期呢?

    妮维雅是国外的产品,要是你朋友是在香港SASA、卓悦、龙城一些上市商场买的绝大多数是正品水货。因为香港是免税的,有很多产品是没有经过海关出售的,所以没有中文说明,不过有很多商品是快过期甚至是已经过期的。最好找一个懂得看批号的人看清了再使用。

    2024-04-15
    30800
  • 精华液和精华素有什么区别

    精华液和精华素的区别是质地不同、功效不同。精华素和精华液都是精华类产品,但是它们的质地不同。精华素的质地相对来说要更加轻薄一些,所以它也更容易被皮肤所吸收,能够很好地滋润皮肤。精华液的质地较为浓稠,它可以改善皮肤出现的各种问题。精华液和精华

    2024-04-15
    37600
  • 爽肤水,乳液,精华,保湿乳,调理水的使用顺序

    爽肤水,乳液,精华,保湿乳,调理水的使用顺序 正确顺序是爽肤水、调理水、保湿乳、精华、乳液。护肤品的使用步骤是,按照分子越小越先用的原则,使用方法如下:1、洁面产品护肤保养之前,清洁永远是第一步,不要小看清洁,非常重要。2、

    2024-04-15
    33800
  • 妮维雅和欧莱雅哪个好?妮维雅是哪国的品牌?

    妮维雅这个品牌大家都比较熟悉,很多人都会想到它们家的洗面奶,还经常被拿来和其他的护肤品牌做比较,比如说欧莱雅这个品牌,因为欧莱雅的护肤产和妮维雅一样也是有男士和女士的,那妮维雅和欧莱雅哪个好?妮维雅是哪国的品牌?1、妮维雅和欧莱雅哪个好妮维

    2024-04-15
    29100
  • 神仙水和清莹露区别

    神仙水和清莹露区别:1、外观不同。神仙水颜色比较黄,而清莹露是一种化妆水或清洁水,颜色比较清透,呈透明色。2、使用不同。清莹露需要在洗脸之后使用,用化妆棉浸透后轻轻擦拭脸部,是护肤的第一步。神仙水在之后使用,能够保湿滋润,维稳皮肤。3、成分

    2024-04-15
    27200
  • 妮维雅活力清新爽身气雾

    是一款活力清新爽身的气雾,令肌肤持久保持干爽舒适,令人感受妮维雅始终如一的温柔呵护,鳄梨萃取物,香体同时为肌肤提供滋养。带来一整天的清新感受。有效止汗长达24小时。散发爽朗清新的柠檬草香气,令人精神为之一振。滋润呵护腋下肌肤。不含酒精,任何

    2024-04-15
    33800

发表评论

登录后才能评论
保存