云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

消息队列_企业网站设计服务_排行榜

小七 141 0

国外主机_阿里云_云计算iaas服务

DR:最佳实践只是一个领域中可以接受的专业标准。在这里,我们将研究与Android开发相关的实践。介绍Android平台目前在运营着移动市场。在2017年5月的Google IO期间,谷歌宣布每月有20亿台活跃的Android设备。据StatCounter统计,截至2018年2月,这约占移动操作系统市场份额的74%。这是近期Android开发者大量涌现的主要原因之一。由于移动平台的大量用户,我们构建移动解决方案的方式也非常重要。如果你是为数十亿用户而构建的,我们必须超越仅仅为功能而构建。我们必须考虑其他因素,如可伸缩性、更好的用户体验等。最近,自从Kotlin正式推出以来,Android的开发有了很大的希望。2017年5月,还是在谷歌IO期间,谷歌宣布支持该语言。Kotlin是一种运行在Java虚拟机上的静态类型编程语言。它是静态类型的,因为变量的数据类型在编译时是已知的。该语言具有许多新功能:零安全。聪明的推理。与Java的互操作性。它可以被编译成JVM字节码或JavaScript。Kotlin帮助我们编写代码的速度是Java的两倍。Android甚至发布了一组扩展函数,使Android上的代码更加简洁。从2010年第1.30版开始,该版本一直是当前版本。在本文中,我们将研究Android开发中的一些最佳实践,以帮助我们构建更好的应用程序。我们还将在片段中使用Kotlin。我们马上跳进去!设计模式设计模式是对软件设计中给定上下文中常见问题的通用、可重用的解决方案。它更像是解决方案的模板。除了作为一个问题的潜在解决方案之外,它还有助于开发人员之间的沟通,因为当您都熟悉要遵循的约定模式时,团队工作变得更加容易。设计模式并不是从袋子里跳出来的,而是从那时起就存在了。Javamann在StackOverflow上说:"我们在80年代使用设计模式,建站系统哪个比较好,只是不知道它们是设计模式。"在开发Android应用程序时实践的一些模式包括依赖注入、单例模式、关注点分离模式等等。我们将简要介绍其中的两个。依赖注入依赖注入(DI)是一个对象不需要配置自己的依赖项(对象)的概念。相反,依赖关系由另一个对象传入。DI建议在其他地方初始化对象并将其提供给请求对象。注射有多种形式:构造函数注入-依赖项通过构造函数传递。字段注入-依赖关系直接发送到类字段,等等。最后一个很难自己实现,因此建议使用DI库Dagger2。下面是显示依赖注入实例的快速片段:类MainActivitySample(私有变量mainRepo:主要活动报告) {有趣的表演(){mainRepo.fetchData()}}在这里,靠谱云服务器,这个类MainActivitySample有一个依赖项MainActivityRepo,它不负责初始化它。相反,对象在别处被初始化,并通过构造函数提供给类。这是构造函数注入的一个例子。从长远来看,DI可以帮助我们创建轻耦合和可测试的应用程序。这是因为,如果一个对象发生了变化,比如说MainActivityRepo发生了变化,那么从单个源重新配置该对象要比转到所有使用它的类都要容易得多。关注点分离(SoC)这是一种鼓励将代码解耦为具有明确职责的不同单元的模式。在Android这样的平台上,活动、片段、服务、内容提供商和广播接收器等组件都由Android操作系统控制,忽视这一点会对我们构建的应用程序产生影响。这就是架构模式的用武之地。体系结构模式有助于将数据表示与数据处理分离开来。存在各种体系结构模式,例如模型-视图-视图-模型(MVVM)、模型-视图-呈现器(MVP)等。我们将简要介绍一下MVP架构。该体系结构由三个不同的部分组成:视图:这是向用户显示内容的部分,云 服务器,如进度条、对话框等。模型:它负责向应用程序提供来自数据库或web服务的数据。这应该是你唯一的真相来源(数据)。Presenter:这个部分处理业务逻辑,比如调用模型来获取数据,然后更新视图。在这种架构中,建议演示者不要依赖任何Android SDK。典型的MVP流程如下所示:你的应用程序首先显示一个进度对话框。这是观点的责任。在显示对话框时,它需要在UI上显示数据,以便通知演示者。Presenter调用模型,在获得数据后,它将返回给Presenter,Presenter又将数据返回给视图。在使用架构时,一定要在整个应用程序中保持这种结构。当您像这样成功地分离代码时,维护、发布新特性和测试就变得容易了。Android文档提供了一个关于如何使用架构组件的正确架构的深入教程。这是另一个指南,它让你对Android的设计模式有一个很好的概述。用户体验这里的用户体验是指用户对你的应用程序交互的满意度。我们都同意,最近,人们对移动设备更好体验的需求不断增加。在改善我们的应用程序体验时,需要注意以下几点:出色的用户界面一个应用程序可爱的感觉和体验始于一个好的设计。一定要得到一个符合谷歌材料设计原则。其中一些原则包括:提供向上导航按钮。颜色组合的一致性。使用适当的图标来描述功能等。处理配置更改配置变更似乎是大多数Android开发人员的切身之痛。当你旋转你的设备和屏幕改变方向时,Android通常会破坏应用程序的现有活动和片段并重新创建它们。这样做是为了让应用程序可以根据新的配置重新加载资源,这基本上就像重新启动一样。对该场景的不当处理是不良用户体验的一个实例。这会让你失去很多用户。解决这一问题的一个办法并不遥远。随着ViewModel作为Google在2017年发布的架构组件的一部分,你可以在不丢失数据的情况下对应用程序的方向改变感到舒服。ViewModel旨在以一种有生命周期意识的方式存储和管理UI相关的数据。有了它,您的数据可以经受住配置更改。要使用它,需要依赖项:将此添加到项目中生成.gradle文件:所有项目{存储库{jcenter()谷歌()}}把这个放到你的应用程序里生成.gradle文件:有条不紊的实施"android.arch.lifecycle:viewmodel:1.1.0"注释处理器"android.arch.lifecycle:编译器:1.1.0"然后,互联网大数据,创建一个扩展ViewModel的类:类MoviesViewModel:ViewModel(){私有val moviesRepository:moviesRepositoryval popularMoviesLiveData:LiveDataget()=moviesRepository.RxGetPopularMovies()初始化{这个.moviesRepository=电影存储库()}}然后您可以将其连接到数据源以获取数据。下面的图像显示了与ViewModel相比活动的生命周期。ViewModels不持久化数据。它们保存的临时数据在你的手机旋转时仍然存在。另一个需要考虑的解决方案是,在从远程数据源获取数据后,将数据保存在数据库中,淘客系统,这样当手机旋转时,可以快速从数据库中获取数据,而不必再次获取数据。尊重UI线程另一个糟糕的用户体验是不定期冻结应用程序。从某种意义上说,这是一种粗心大意或另一种粗心大意。这可能是由于在错误的线程上执行任务造成的。这就引出了我最喜欢的一个短语——"尊重UI线程"。需要很长时间才能完成的操作通常会冻结我们的应用程序,因此需要在主线程之外处理。后台任务的典型示例是数据库操作。在后台处理此问题的代码段可以是:Executors.newSingleThreadExecutor().执行{//长时间运行的任务}此代码段留出一个线程在后台执行该操作。如果您使用RxJava,您同样可以利用库附带的调度器,如下所示:api.getData接口().观察(AndroidSchedulers.mainThread()).订阅(调度程序.计算())在上面的代码片段中,订阅是在另一个线程上完成的,而结果是在主线程中观察的。如果长时间运行的任务在关闭应用程序后仍然有效,则应考虑使用服务,特别是IntentService。此服务自然地在后台线程上运行,并以意图的形式处理任务。下面是一个IntentService示例:类SampleIntentService:IntentService("SampleIntentService"){覆盖fun onHandleIntent(意图:意图?){如果(意图!=空){//处理这个漫长的过程}}}"尊重UI线程!始终将长时间运行的任务移到后台线程。"在推特上留言