上一篇博文中提到了自己写一个网络工具类,然而自己的能力明显有限,封装的工具类无论从功能还是性能上都比不上前辈大牛们已经完善好的网络框架,但是我们又想更加方便的使用大牛们的框架,怎么办呢?我们可以二次封装一下网上的网络框架,让它们使用起来更加的方便,这里以目前很流行的Volley为例:直接使用Volley的Get请求时的步骤:1.首先要创建一个全局的Volley队列,我们可以写一个MyApplica
转载 5月前
47阅读
在上一篇文章《Android Retrofit + RxJava使用详解》中,我们学习了Retrofit的一些基本用法,但在实际的项目使用中,还是会出现一些问题,今天就让我们一起来探讨一下如何对Retrofit进行封装吧!如果你使用的是MVP,这篇文章可能不太适合你,请移步《Android 谈谈我所理解的MVP》。1.背景介绍首先来回顾一下Retrofit的基本使用流程,直接上代码:/** *
转载 2023-08-25 14:02:36
93阅读
前言想了解一个新事物我会按以下步骤来:1、它是什么;2、它有什么用(出现的理由),且有什么优缺点。而这里对mvp阐述分为以下步骤:一、MVP出现原因;二、MVP简单例子;三、MVP总结       1、mvp是什么;       2、mvp有什么用?    &
转载 2023-08-31 20:25:27
60阅读
代码打包签名Android Studio为大家集成了代码打包混淆的功能,具体操作流程如下组图所示:1、点击Android Studio上方工具栏的  Build -> Generate Signed APK  选项,弹出如下右图所示的对话框:                 2、这里
这几年 MVP 在 Android 开发中已经开始被广泛使用,逐渐成为一种主流的设计思想。在 MVP 出现之前,我们使用最多的可能就是 MVC 了,那么我们为什么要使用 MVP,它解决了 MVC 使用中的那些痛点呢,那我们先从 MVC 说起。一、浅谈 MVCMVC 的全称是 Model-View-Controller,这三部分在 Android 中可以按照如下的层次划分:Model(数据模型层):
转载 2023-10-03 10:02:39
80阅读
使用项目的原话:Android和Java中类型安全的HTTP客户端 项目地址:https://github.com/square/retrofit这里Retrofit还需要导入它的Gson依赖库,因为返回的数据需要Gson来处理1、Get请求 2、Post请求 3、单、多文件上传演示提供的接口(该接口不支持post方式)get请求(支持普通请求)get请求(支持键值对参数)Post请求(支持键值对
转载 2023-07-10 10:05:48
73阅读
上篇文章 Android Architecture Components(AAC)1 数据库架构Room 我们介绍了room的基本使用以及它的优缺点,接下来我们继续对room这个数据库框架分析。 先从dao类入手这里我们添加了一个baseDao这个dao作为所有dao的父类分装了共通化的数据库处理。@Dao public interface BaseDao<T> { @Ins
转载 2023-08-30 21:41:07
69阅读
1.前言上一篇文章介绍了ToolBar的使用方法,在日常开发中ToolBar会在很多的Activity中同时使用,所以我们有必要把ToolBar进行封装,方便调用。2.ToolBar的封装基本思路是写一个单独的ToolBar的文件,再写一个基类Activity重写它的setContentView()方法,在这个方法里添加ToolBar。具体代码如下:package bcjm.myapplicati
Jetpack组件系列文章Android架构之LifeCycle组件Android架构之Navigation组件(一)Android架构之Navigation组件(二)Android架构之Navigation组件(三)Android架构之Navigation组件(四)Android架构之ViewModel组件Android架构之LiveData组件Android架构之Room组件(一)Androi
转载 2023-07-27 22:10:52
234阅读
Room在SQLite基础上做了ORM封装,使用起来类似JPA,不需要写太多的sql。准备,导入依赖//room def room_version="2.4.2" implementation "androidx.room:room-runtime:$room_version" annotationProcessor "androidx.room:room-compiler:$room_versi
综述 对于MVP (Model View Presenter)架构是从著名的MVC(Model View Controller)架构演变而来的。而对于Android应用的开发中本身可视为一种MVC架构。通常在开发中将XML文件视为MVC中的View角色,而将Activity则视为MVC中的Controller角色。不过更多情况下在实际应用开发中Activity不能够完全充当Controller,
写在前面:   进入新公司,所在部门维护的产品是一个挺老的项目,前期由eclipse开发,现在转为AS。许多代码采用MVC模式,梳理起来挺费劲。虽然也有某些方面使用MVP处理,但是封装的并不太好,由此萌生自己写一个MVP供自己使用的想法。   下面开始我的mvp封装之路。MVP1.什么是MVPMVP 即 Model-View-Presenter, M:业务逻辑和实体模型 V:对
转载 2023-08-31 11:25:12
41阅读
介绍Room是Google提供的一个ORM库。Room提供了三个主要的组件:@Database:@Database用来注解类,并且注解的类必须是继承自RoomDatabase的抽象类。该类主要作用是创建数据库和创建Daos(data access objects,数据访问对象)。@Entity:@Entity用来注解实体类,@Database通过entities属性引用被@Entity注解的类,并
此篇文章主要记录下自己使用Retrofit后简易的封装,和相对全面的请求类型的注解使用方法,也是对知识点的一个总结和复习。Retrofit是什么?简单来说Retrofit是一个网络请求框架,基于OkHttp做了进一步封装,更好的适用于RESTful URL格式风格,通过注解配置参数,可以灵活的设置URL、请求头、请求体等。优点超级解耦处理速度快使用灵活方便可以使用注解控制请求的参数封装public
转载 2023-09-06 22:52:38
54阅读
Android 简单封装一个 MVP 基类对于 MVP 架构我想大家都不陌生吧, 对于现在的主流框架非 MVP + RxJava + Retrofit 莫属了, GitHub 上也有很多优秀的开源项目对其进行了很好的封装有时候看一些优秀的开源项目是一种享受, 但自己如果能从这里学到并实现一些自己想实现的需求我想那更是一种享受这里很简单的去实现一个 MVP 的基类, 其它扩展功能可以自行添加Mode
上篇文章我们封装了基础的BaseActivity、BaseFragment和最最最基础的BaseViewmodel。那么疑问来了BaseViewModel暂时没有看到任何用处,那么我们可以用来干嘛呢?那么这篇博文就来解答这个问题前言Retrofit 是一个 RESTful 的 HTTP 网络请求框架的封装,网络请求的工作本质上是 OkHttp 完成,而 Retrofit 仅负责 网络请求接口的封装
转载 2023-06-14 23:27:13
1060阅读
封装点网络Log设置(OKHTTP拦截器)url统一追加参数(OKHTTP拦截器)header统一追加参数(OKHTTP拦截器)body统一追加参数(OKHTTP拦截器)错误处理,统一错误处理(flag/error)返回值统一剥离外层包装缓存设置超时错误重连机制不同的BaseUrl使用不同的Retrofit实例,同一个BaseUrl下使用同一个Retrofit实例所有Retrofit实例公用一个O
转载 2023-06-14 23:29:21
110阅读
前言MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负 责显示。下面这篇文章主要给大家介绍了关于Android从实现到封装MVP的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。MVP之间的联系大概简单的解释就是M->module处理数据,V->Act显示界面
1、首先,就是封装IBaseView,这里面没什么需要做的,所以就只要一个方法,就是显示错误信息        public interface IBaseView { /** * 显示错误信息 * @param msg */ void showErrorMessage(S
转载 2023-05-29 22:52:10
122阅读
关于Mvp封装比较简单的代码java利用构建器来创建实例而不是构造器对于类而言,为了让客户端获取他本身的一个实例, 最传统的方法就是提供一个公有的构造器。一个类中重载多个构造器客户面对多个构造器这种API永远也记不住该用哪个构造器, 并且每次调用构造器必然会创建新的对象, 如果程序需要重复使用对象,构造器无法避免创建不必要的对象。原文链接:```java <html> <head
转载 2023-07-25 19:27:05
76阅读
  • 1
  • 2
  • 3
  • 4
  • 5