# 基于Android的生活助手APP的设计与实现
# 摘 要
随着移动互联网的高速发展,Android操作系统在移动设备中地位已经被牢牢稳固。然而大量的Android设备高速普及过程中,与其配套的Android应用的开发速度和项目质量极为令人担忧。本课题的研究目的是通过114生活助手系统的开发,寻找Android应用快速迭代开发和高质量保证的开发方式。
在课题的研究过程中,通过对114生活助手系统的开发。实现了手机端的交通信息查询,建立了简易的在线交易市场,并实现了一套基于位置的周边信息查询系统。在开发的过程当中寻找和发现实现Android应用快速开发和高质量保证的技术和方法。在整个的课题研究过程中,尝试采用了众多最新的开源框架技术。这些技术包括EventBus、AndroidAnnotation、Robobinding、picasso、bolts、gson。并且采用了Android官方以及Android社区中普遍认同的最佳实践模式。这些模式包括大量使用Fragment实现解耦、使用Genymotion进行项目调试、等等。
在课题研究的最后阶段,发现采用这些最新的开源框架技术和这些新颖的实践模式,大大加快了过去原有的Android开发速度。同时保证了项目的质量。在各个模块之间的耦合也比按照原有开发模式有了巨大的提升。
**关键词**:生活助手;android;依赖注入
# ABSTRACT
With the high-speed development of mobile Internet, the Android operating system status in the mobile devices has been firmly.A large number of Android devices appear. However, Android application development speed and quality is very bad.It make us very worry.For example,in the application market, the application like LifeAssistant always are bad.They are bad performance,ugly design,information wrong.this research purpose is to find the way to make the Android application development more efficient.
In the research progress , we find the way to Improve the quality and speed for the android application development by develop the 114 life assistant.In the project,i try to use some newest open source project.like EventBus、AndroidAnnotation、Robobinding、picasso、bolts、gson.And i have try to use the best practise which has been proposed in the Android official and Android community.these best practise include use fragment to decouping and use Genymotion to debug.
In the end of the research,it is be proved that use these open source project and best practise will greatly improve the develpoment of the android application.And make the application high quality.
**Key words**:LifeAssistant; Android ;DependencyInjection
# 第一章 绪论
随着移动互联网的井喷式爆发,自从2008年推出第一款Android手机之后,Android操作系统以一种不可思议的速度不断的快速成长着。目前每天都有上百万部的Andorid手机被第一次激活,每月亿万次的App被下载。Android操作系统已经成为当今发展最快的移动设备操作系统。其设备的覆盖已经不仅仅只是手机。随着最新的Android5.0的推出,Android操作系统已经可以在手机、平板、电视、可穿戴设备、汽车上面运行。这些的成就都归功于Google公司和众多厂商的支持。然而在这个技术井喷的背景下面,Android开发的技术要求也越来越高,项目也变的越来越复杂。为了能够更好的支持最新版本的操作系统,为了能够在众多不同尺寸,不同分辨率屏幕上面表现优异。开发者需要付出更多的精力和成本。
本课题的研究目的就是,通过针对114生活助手的系统开发,寻找研究Android的快速高效的开发方式。在本课题中将会采用最新的开源项目,这些项目都是专门针对Android系统设计,目的是简化众多Android开发中的繁琐的过程,提高开发效率,简化代码的耦合性。同时将会根据Google官方最新提供的开发指南以及Android开发社区中最新流行,并被证明有效的最佳实践方式进行项目的开发。这些框架和方式并没有被普遍的证明是行之有效的,或者是万能的。在课题的研究过程中,将会通过114生活助手这个项目本身检验这些方法,这些项目是否是真实有用。
该课题的研究过程当中,将会采用Android最新的开发技术。其包括使用Gradle进行项目的编译和打包,使用AndroidStudio替代Eclipse开发,使用Genymotion作为调试用的虚拟机。并且在开发中将会使用git作为版本管理工具,记录开发的所有历史记录。在涉及的开源项目当中,将会使用到AndroidAnnotation,Gson,Picasso,Bolts,EventBus,ApacheCommons这些开源项目。这些项目有的是专门针对Andorid的框架,有的则是针对Java的框架。使用它们的目的在于尽最大的可能简化项目的开发过程。
## 1.1 安卓应用开发的目前现状
如今,世界上的190多个国家当中运行着数以亿计的Android设备。他已经成为被安装最多并且成长速度最快的移动操作系统。每天都有百万的用户第一次开启他的Android设备并寻找应用和游戏。Android为开发者提供了一个可以为全世界所有人提供应用和游戏的开发平台。这个基于Linux的开源操作系统,拥有超过300家的硬件,软件,运营合作伙伴[1]。Android的开源政策也广受开发者和用户的喜爱。这也直接促进了Android应用的大量需求。Android用户每月从Google Play中下载超过1.5亿的应用。在这些背景的驱使下,Android持续不断地推出最新的硬件和软件,为开发者和用户提供最新的功能。
在最近的Google IO大会上,Google推出了他最新的Android操作系统-Android 5.0 Lollipop。这个版本的操作系统为开发者提供了数以千计的最新的API。他适用于所有的Android设备,包括手机、平板、电视、可穿戴设备、汽车。在Android5.0当中,使用最新的ART虚拟机替代了原先的Dalvik虚拟机[2]。ART虚拟机实现了AOT,大大增强了GC的性能,提高了应用的调试能力。Android5.0还带来了最新的Material设计以及配套的一系列开发工具。这使得开发UI更加的方便和高效。最新的3D技术使得你可以更容易的开发出实时阴影这样的效果。最新的RenderThread线程使得你可以更加平滑的运行应用的动画效果。
然而在这些新技术层出不穷的背后,是开发者技术的止步不前。最新最好的技术不断的出现,但是开发者却依旧停留在过去的开发模式当中。这些老的模式造成了开发效率的不断降低,开发质量的不断恶化,项目进度的不断推迟。同时由于Android的高速发展,其碎片化带来的问题使得Android的开发难度不断的增大。不同版本的操作系统,不通尺寸和分辨率的屏幕,不同类型的设备。这些由于高速发展带来的问题导致了Android开发的难度不断增大[3]。
以Android的操作系统为例,目前市场上普遍存在10个以上的不同版本的Android核心版本。其占有率如表1-1和图1-1所示。4.0以上的版本已经占据安卓设备的80%以上。而另外的份额依旧被3.0以下的份额所占据。而最新推出的Android5.0操作系统,所占据的份额不到10%[4]。
| Vesion | Codename | API | Distribution |
| ----------- | ----------- | ---- | ------------ |
| 2.2 | Froyo | 8 | 0.4% |
| 2.3.3-2.3.7 | Gingerbread | 10 | 6.4% |
| 4.0.3-4.0.4 | Ice Cream | 15 | 5.7% |
| 4.1.x | Jelly Bean | 16 | 16.5% |
| 4.2.x | | 17 | 18.6% |
| 4.3 | | 18 | 5.6% |
| 4.4 | KitKat | 19 | 41.4% |
| 5.0 | Lollipop | 21 | 5.0%