![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
移动架构
文章平均质量分 84
qczg_wxg
这个作者很懒,什么都没留下…
展开
-
王学岗------隔离层的设计
假设我们开发一个APP,版本一访问网络用的是HttpClient,版本二访问网络要求改成OKHttp,这种需求是不是很蛋疼,没关系,等我们学会了隔离层设计。这个问题就会迎刃而解。隔离层有三种实现方式:1,代理模式 轻量级,耦合度高2,HILT注入 重量级 耦合度低3,SPI机制 零耦合 内存消耗大............原创 2022-06-06 16:03:09 · 314 阅读 · 0 评论 -
王学岗移动架构(三)————Binder机制详解以及手写的实现
(一)Binder核心原理1,先看一张图,这张图是我从网上下载下来的从图中可以看出,上层的Binder通信是依赖于底层的。服务端提供了一个Binder对象,这个Binder对象是需要我们自定义的 。我们自定义的Binder指向的是native层的BBinder。指向BBinder的时候需要在Service Manager中注册服务。然后调用ioctl进行数据方面的操作。这是服务端。再看下客户端,客户端提供了一个BinderProxy。通过ioctl进行数据的交互2,Binder是什么?从IPC原创 2020-06-24 14:33:15 · 858 阅读 · 0 评论 -
王学岗移动架构(46)————jetpack技术之WorkManager
作用:1,确保重要的后台任务一定会执行比如下载的时候手机没电了,这种情况下workManager已经做了处理2,省电添加依赖 //workmanager implementation "android.arch.work:work-runtime:1.0.0-alpha06"第一,先看一个简单的例子package com.example.workmanagertest;...原创 2020-02-10 19:25:38 · 318 阅读 · 0 评论 -
王学岗移动架构(45)——————jetPack的Paging
一加载本地数据布局文件<?xml version="1.0" encoding="utf-8"?><androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schem...原创 2020-02-10 16:59:07 · 1187 阅读 · 0 评论 -
王学岗移动架构(45)——————jetPack的Navigation
Navigation主要用于Activity和Fragment之间的导航我们创建三个fragment,三个framgnet之间可以相互跳转。同时修改回退键,让回退键回退的是Fragment(默认回退键回退的是Activity)。先看下目录结构先看下gradlle的依赖 //navigation def nav_version = '1.0.0-alpha01' implem...原创 2020-02-10 16:04:36 · 210 阅读 · 0 评论 -
王学岗移动架构44jetpack的使用————room数据库
在app的gradle里面添加如下依赖 def room_version = "2.2.0" implementation "androidx.room:room-runtime:$room_version" // For Kotlin use kapt instead of annotationProcessor annotationProcessor "androi...原创 2020-02-08 19:53:47 · 259 阅读 · 0 评论 -
王学岗csdn(10)————动态式换肤框架分析,与手写实现(一)
换肤分为两种,内置换肤和动态换肤内置换肤:在APK包中存在多种资源(图片、颜色值),用于换肤时候切换,缺点是自由度低,文件大。比如我们app常见的日间模式和夜间模式。动态换夫:运行时动态加载皮肤包(皮肤包就是一个apk),下载apk到sd卡或者其它存储路径,然后加载进来。是如何采集皮肤的呢?我们打开setContentView 的源码。跟踪下去,发现如下代码: @Override...原创 2020-02-06 10:25:31 · 239 阅读 · 0 评论 -
王学岗csdn——————跨进程通信Hermes
跨进程不会共享数据,我们看个很简单的例子<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.hermestest"> <application...原创 2020-02-05 20:25:05 · 157 阅读 · 0 评论 -
王学岗csdn移动架构(6)———————Android AOP架构设计
1,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP在编程历史上可以说是里程碑式的,对OOP编程是一种十分有益的补充。AOP像OOP一样,只是一种编程方法论,AOP并没有规定说,实现AOP协议的代码,要用什么方式去实现。OOP侧重静态,名词,状态,组织,数据,载体是空间;AOP侧重动态,...原创 2020-02-04 16:57:40 · 225 阅读 · 0 评论 -
王学岗csdn 移动架构(4)————Android AMS服务(上)
我们先看下Android启动流程图应用程序的启动原创 2020-02-04 13:29:49 · 191 阅读 · 0 评论 -
王学岗csdn 移动架构(3)————Android Binder机制
看代码目录服务端代码// DNAIdl.aidlpackage com.dn_alan.service;// Declare any non-default types here with import statementsimport com.dn_alan.service.Person;interface DNAIdl { void addPerson(in ...原创 2020-02-03 14:39:34 · 1339 阅读 · 0 评论 -
王学岗移动架构43MVVM设计模式
随着5G技术的流行,MVVM一定会大火起来。支持5G的手机肯定有更好的性能。而MVVM恰好对性能要求很高,MVVM内存消耗大,但开发速度为各种模式之最。M是model,V是View,VM是viewmodle,MVVM有一个双向绑定的功能,在view和model之间,有一个叫做databinding的组件,这个组件负责把View和modle绑定。是一种数据驱动的形式,对应的modle层数据发生变化...原创 2019-11-13 22:45:54 · 252 阅读 · 0 评论 -
王学岗移动架构16————组件化(一)
一:android Library可以打包为jar和aar,java library只能打包为jar二:模块化,组件化,与插件化的区别模块化:根据不同的关注点,将一个项目的可以共享的部分抽取出来,形成独立的Module,这就是模块化。模块化不只包含公共部分,当然也可以是业务模块。比如:图片加载模块组件化:组件化是建立在模块化思想上的一次演进,一个变种。组件化本来就是模块化的概念。核心是模块角...原创 2019-10-28 15:28:46 · 169 阅读 · 0 评论 -
王学岗移动架构35-IOC框架设计之Butterknife
我们平时写代码,都是java文件,然后转化为class文件,在java虚拟机中运行,我们上一篇文章写的 IOC,都是运行时候绑定的。今天,我们用一个APT的东东,我们在java转化为class文件的时候,我们使用APT,可以做很多事情。在编译阶段使用注解是无需反射的,性能会提升。ButterKnife的用法我就不介绍了,很简单,我们现在手动写一套Butterknife框架。我们的模块分为以下几个...原创 2019-10-24 19:32:34 · 162 阅读 · 0 评论 -
王学岗移动架构34——IOC注入框架设计
本框架可以在Activity和Dialog中使用,并且已有代码示例。fragment读者自己加上就可以了,没写代码package com.example.lsn_34;import android.app.Activity;import android.os.Bundle;public class BaseActivity extends Activity{ @Overri...原创 2019-10-23 12:58:29 · 205 阅读 · 0 评论 -
王学岗移动架构26——RXJava2响应式编程框架设计(一)
一:参考资料:https://www.jianshu.com/p/a51aa39c30abGithub地址:https://github.com/ReactiveX/Rxjava什么是RxJava:一个可观测的序列来组成异步的、基于事件的程序的库。(简单来说:它就是一个实现异步操作的库)RxJava好在哪里:RxJava 其实就是提供一套异步编程的 API,这套 API 是基于观察者模式的,...原创 2019-08-27 11:09:34 · 245 阅读 · 0 评论 -
王学岗移动架构27——RXJava2响应式编程框架设计(二)
这篇文章我们主要讲源码原创 2019-08-31 21:15:31 · 139 阅读 · 0 评论 -
王学岗移动架构28——RXJava2响应式编程框架设计(三)
背压,上下游在不同的线程,上游发送的数据多余下游的处理,导致时间越来越多,最后导致OOM(数据是放在缓存池中);原创 2019-09-02 09:20:44 · 158 阅读 · 0 评论 -
王学岗移动架构29——RXJava2响应式编程框架设计(四)
一:泛型 List<? extends Person> list = new ArrayList<>(); 与List<? super Person> list的区别super 只能写, 如果是读(读出来的是object(需要强转))使用场景: 参数传递extends 只能取,不能写 使用场景:返回值...原创 2019-09-03 11:26:36 · 130 阅读 · 0 评论 -
王学岗OKHttp原理讲解
看下类RealCall//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package okhttp3;import java.io.IOException;import java.util.ArrayList;imp...原创 2019-09-08 15:56:32 · 650 阅读 · 0 评论 -
王学岗41jetpack的使用
新建项目注意勾选Androidx一,监听生命周期package com.example.lsn41_jetpack_20190920;import android.util.Log;import androidx.lifecycle.Lifecycle;import androidx.lifecycle.LifecycleObserver;import androidx.life...原创 2019-09-21 11:14:04 · 284 阅读 · 0 评论 -
王学岗移动架构(2)————Android消息机制
1,android 消息机制主要是指Handler的运行机制原创 2019-07-13 21:06:24 · 237 阅读 · 0 评论