Android框架式编程之架构方案】的更多相关文章

目前移动端应用市场已经是百花齐放,很多独角兽公司都是通过App创业发展起来的,现在App类型更加丰富,功能越来越完善,基本上涵盖了各个行业的每个角落.为了开发出更加有竞争力的App,不仅需要功能上有创新,内容也需要更加多元化,这样就出现了相对巨大的工程.这些工程代码不停添加,如果没有一个好的架构,那么所有代码都会强耦合在一起,功能之间也会出现很多依赖,那么就会出现很多问题,例如: 1.修改功能困难,牵一发动全身.很多地方如果api写的不好,封装不优雅,那么就会出现改一个地方需要改很多地方的调用.…
一般的,在开发的时候,写过的代码在需求变更后,发现需要改动非常多的地方,那么说明之前的代码的架构肯定是存在问题的. 下面我们结合面向对象的六大基本原则谈Android 框架式编程.首先先介绍一下面向对象的的六大基本原则: 1. 单一职责原则 单一职责原则的定义为:就一个类而言,应该仅有引起它变化的原因.简单来说,一个类应该是一组相关性很高的函数.数据的封装. 2. 开闭原则 开闭原则的定义为:软件中的对象(类.模块.函数等)应该对于扩展是开放的,但是,对于修改是封闭(关闭)的. 当软件需要变化时…
1. 当前Android开发面临的问题 Android开发不同于传统的桌面程序开发,桌面程序一般都有唯一的快捷方式入口,并且常作为单进程存在:而一个典型的Android应用通常由多个应用组件构成,包括不同数量的Activity.Fragment.Service.Content Provider.Broadcast Receiver等. 此外,用户在移动设备上常常会在多个App之间切换.例如,如果用户想要在一个社交应用上分享一张图片,那么一般的流程是首先该社交应用可能会使用Intent的方式通过A…
配置 compile 'com.jakewharton:butterknife:(insert latest version)' annotationProcessor 'com.jakewharton:butterknife-compiler:(insert latest version)' 使用 Android 开发过程中,我们需要写大量的findViewById()和setonclicktListener()等事件, 那么现在有一个框架可以很好的解决这个问题 ---- BufferKnif…
Hello World 源码: import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.support.v7.app.AppCompatActivity; import android.os.Bu…
MVP(Model-View-Presenter)模式.是将APP的结构分为三层:View - Presenter - Model. View 1. 提供UI交互 2. 在presenter的控制下修改UI. 3. 将业务事件交由presenter处理.注意:View层不存储数据,不与Model层交互. Presenter 1. 对UI的各种业务事件进行相应处理.也许是与Model层交互,也许自己进行一些计算,也许控制后台Task,Servic 2. 对各种订阅事件进行响应,修改UI. 3. 临…
Room是Google官方出品的ORM(Object-relational mapping) 框架.当前我们也知道当前还有很多的ORM框架,例如GreenDao.OrmLite.Litepal等.目前并没有深入了解这些框架,没办法比较各个框架的优缺点,但是相对而言,Room比较官方出品,且能够更好的与LiveData及RxJava等框架结合使用,还是推荐各位学习和使用Room框架作为数据存储的基础框架的.官方文档: https://developer.android.com/training/d…
一.Retrofit 简介 Retrofit 官网地址: https://github.com/square/retrofit Retrofit(即Retrofit,目前最新版本为2.6.0版本),是目前非常流行的网络请求框架,底层是基于okHttp实现的.准确来说Retrofit是对okHttp的进一步封装,它功能强大,支持同步和异步,支持多种数据的解析方式(默认为Gson),支持RxJava. Retrofit 最大的优势就是简洁易用,它通过注解配置网络请求的参数,采用大量的设计模式来简化我…
一.LiveData 介绍 LiveData是 Google 推荐的 Android 架构组件之一,是一个基于观察者模式的数据容器,但与一般的被观察者不同的是,它是有生命周期感知功能,解决了Android开发者需要去手动处理生命周期的痛点. 它具备如下特点: ① 数据可以被观察者订阅. ② 能够感知组件(Fragment.Activity.Service)的生命周期. ③ 只有当组件处于活跃状态(STARTED或RESUMED)时才会通知观察者数据发生了变化. 官方对其优点说明概括如下: ① U…
Lifecycle官方文档地址:https://developer.android.com/topic/libraries/architecture/lifecycle. 一.为什么要使用Lifecycle? Activity 和 Fragment 是有声明周期的,开发时我们的很多操作需要写在声明周期的方法中,比如,下载.文件操作等.这样很多情况下会导致,我们在 Activity中 的声明周期方法中写越来越多的代码,从而使得 Activity 或者 Fragment 越来越臃肿,代码维护越来越困…