如何开发一款手机软件?

如何开发一款手机软件?,第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、曼秀雷敦曼秀雷敦男士是较早进入国内的专业男士护肤品牌,于2003年推出男士专业护肤系列,以“活炭”配方的洁面乳系列产品著称。2、妮维雅妮维雅男士是妮维雅旗下全球知名男士面部护理品牌

    2024-04-15
    47000
  • 精华液有什么作用和功效?

    01精华液,是护肤品中之极品,成分精致、功效强大、效果显著,始终保持着它拥有的高贵和神秘。含有较珍贵的功效成分,如植物提取物、神经酰胺、角鲨烷等,它的作用有防衰老、抗皱、保湿、美白、去斑等等。精华液分水剂,油剂两种,所提取的是高营养

    2024-04-15
    41000
  • 林清轩适合什么肤质?林清轩适合油性肌肤吗?

    林清轩,山茶花润肤油的开创者,它们家的产品设计主打的是田园风格,主要的材料是来自于花朵和植物,尤其是植物油和手工皂,做的还是很有口碑的,那么,林清轩适合什么肤质呢?林清轩适合什么肤质在使用林清轩的2041人当中,最多31-40岁的M

    2024-04-15
    32800
  • 十大抗衰老精华

    1、宝丽极光幻彩精华液这款产品是它抗衰老系列当中最高端的产品,里面蕴含的成分也是非常的珍贵的,集合了多种核心专利技术,可以从根源上柔弱肌肤。2、莱伯妮鱼子酱反重力精华这款产品主要利用了深海鱼籽精粹作为配方,再结合珍珠囊和五胜肽的复合物,能够

    2024-04-15
    35600
  • 护肤套盒的使用顺序

    护肤品大致分为十种,其使用顺序是:①洁面产品②爽肤水③面膜④精华液⑤乳液⑥眼霜⑦眼部精华⑧润唇膏⑨面霜(分为日霜、晚霜)⑩隔离霜(防晒霜)首先是清洁要做好,选择一款合适的洁面产品,有洁面乳、洁面啫喱、洁面泡沫等等,要清楚自己的肤质是干性、中

    2024-04-15
    27000
  • 屈臣氏有欧莱雅吗?

    屈臣氏是一家专门销售化妆品、保健品和个人护理产品的零售商。在屈臣氏的店铺里,你可以找到一些著名的国际品牌,比如欧莱雅、资生堂、兰蔻等等。那么问题来了,屈臣氏有欧莱雅吗?答案是肯定的。屈臣氏确实有欧莱雅产品。作为国际知名品牌,欧莱雅在全球范围

    2024-04-15
    33600
  • 大牌护肤品对应的平替都有什么?

    清莹露和神仙水的区别为价格区别、外观区别、功效区别、适用人群不同、效果区别。1、成分区别:神仙水是由半乳糖酵母的发酵物过滤液组成,除了丁二醇和其它润肤成份之外,没有其它有效成份。清莹露是用水做溶剂,加入了酵母、甘油、适量的乳化剂和酸类,水杨

    2024-04-15
    26000

发表评论

登录后才能评论
保存