
Android开发
文章平均质量分 96
open-Xu
这个作者很懒,什么都没留下…
展开
-
Retrofit流程及设计模式全解析
版权声明:本文为openXu原创文章【openXu的博客】,未经博主允许不得以任何形式转载本文基于Retrofit 2.9.0版本源码分析,根据Retrofit源码窥探请求流程及框架设计中使用到的设计模式1. 代理模式在文章开始之前先介绍一下代理模式,因为这是Retrofit的入口,其他设计模式参考文章末尾的概括代理模式:为对象提供一种代理以控制这个对象的访问。某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。组成:抽象角色:通过接口.原创 2021-04-12 19:17:32 · 1215 阅读 · 6 评论 -
记录ViewPager+Fragment懒加载+LiveEventBus的Sticky事件在Fragment中只能收到一次的问题
问题背景项目中使用LiveEventBus时遇到一个非常隐蔽的问题,花了很多时间才定位到原因,我觉得这个场景使用情况还是很多的,在此记录该过程。首先介绍一下使用场景,app主页面采用TabHost+Fragment构成下方的4个Tab,其中第一个Tab的Fragment中采用了TabLayout+ViewPager+Fragment,可以看到首页中有综合、电、水等Fragment。首页的每个子Fragment在请求统计数据之前,需要先选择上方的Spinner作为参数,而Spinner的数据也是从服务原创 2021-02-23 18:30:47 · 1176 阅读 · 0 评论 -
关于https你了解的还不够多
文章目录1. HTTPS1.1 密码学1.2 HTTP安全问题1.3 CA机构(Catificate Authority)1.4 HTTPS工作流程2. 网站支持https2.1 SpringBoot2.2 开启SSL2.3 自签名证书2.4 获取网站的数字证书3. Android 9.0强制使用https3.1 usesCleartextTraffic允许使用明文通信3.2 代码配置网站证书3.3 android:networkSecurityConfig网络安全性配置4. 双向证书验证4.1 Sprin原创 2020-11-19 13:42:53 · 891 阅读 · 1 评论 -
AndroidX全解析
目录一.Android Jetpack二.AndroidX2.1 在项目中使用androidx库2.2 老项目迁移到AndroidX开发模式三. MVCModelViewController四. MVP五. MVVM5.1 Android架构组件5.2 appcompat5.3 ViewModel5.3.1 ViewModle的使用5.3.2 ViewModel的优势5.3.3 ViewModel的生命周期5.4 LiveDate5.4.1 LiveData的优势5.4.2 LiveData的使用5.4.3原创 2020-08-17 17:38:47 · 4591 阅读 · 2 评论 -
Android Studio将项目发布到Maven仓库(3种方式最新最全)
转载请标明出处: https://blog.youkuaiyun.com/xmxkf/article/details/80669218 本文出自:【openXu的博客】目录:1、Maven是什么?2、Maven仓库在哪里?3、本地仓库3.1 . uploadArchives3.2 . 执行uploadArchives3.3 . 使用本地仓库中的类库4、局域网私有...原创 2018-06-13 09:30:10 · 35203 阅读 · 9 评论 -
RecyclerView使用全解析
转载请标明出处: http://blog.youkuaiyun.com/xmxkf/article/details/79488089 本文出自:【openXu的博客】目录:简介:1、快速上手2、通用Adapter && 点击事件3、间隔样式ItemDecoration3.1.getItemOffsets()3.2.onDraw() & onDrawOver...原创 2018-03-08 18:22:56 · 1882 阅读 · 0 评论 -
Android动态换肤(一、应用内置多套皮肤)
动态换肤在很多android应用中都有使用,用户根据自己的喜好设置皮肤主题,可以增强用户使用应用的舒适度。 Android换肤可以分为很多种,它们从使用方式,用户体验以及项目框架设 计上体现了明显的差异。 接下来几篇文章分别讲解其中比较主流的换肤方式。应用内置皮肤实现动态切换在技术上是最容易实现的,但有很多局限性,比如不能在使用过程中增减皮肤,除非升级应用,扩展性很弱;如果需要原创 2016-04-07 10:42:52 · 6466 阅读 · 1 评论 -
Android动态换肤(二、apk免安装插件方式)
在上一篇文章 Android动态换肤(一、应用内置多套皮肤)中,我们了解到,动态换肤无非就是调用view的setBackgroundResource(R.drawable.id)等方法设置控件的背景或者文字等资源,跟踪源码看看这些方法都是怎么根据资源ID找到对应的资源的:View: @RemotableViewMethod public void setBackgroundResource(i原创 2016-04-11 16:18:15 · 2030 阅读 · 1 评论 -
Android动态换肤(三、安装主题apk方式)
相比之前免安装的方式,这种方法需要用户下载并安装皮肤apk,程序写起来比免安装的要简单很多,像很多系统主题就是通过这种方式实现的。 这种方式的思路是,从所有已安装的应用程序中遍历出皮肤程序(根据特定包名区分),然后选中某个主题后,将此皮肤应用的包名保存到主应用中,需要获取资源时,通过皮肤包名得到皮肤应用的Context,然后便可得到Resources,从而获取到皮肤apk中的资源。下面看看关键步骤原创 2016-04-12 17:05:15 · 3438 阅读 · 1 评论 -
Android Studio搞定Git配置实现协同开发
转载请标明出处: http://blog.youkuaiyun.com/xmxkf/article/details/51592322 本文出自:【openXu的博客】目录:一 Android Stutio配置git二 将项目分享到github设置github账号密码share project on github三 其他git托管平台以优快云上的CODE为例为项目创建git仓库将项目原创 2016-06-06 14:04:52 · 48543 阅读 · 7 评论 -
Android Stutio中使用java8的Lambda表达式
目录:为什么要使用Lambda表达式让Android Stutio支持Lambda函数式接口Functional interfacesLambda表达式的目标类型以及匹配Lambda表达式语法1 基础语法和语法简化2 Lambda表达式的词法作用域3 变量捕获 Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁 ,他是一种函数式推导语言,能够大量减少匿名内原创 2016-05-29 14:36:47 · 9059 阅读 · 5 评论 -
Android 导入v7包常见错误,以及项目引用v7包错误解决
android下v4 v7 v21等包是android系统的扩展支持包,就想windows的系统补丁一个道理。android的扩展包主要是用来兼容低版本的,比如android3.0以后出现了actionbar,如果要使用actionbar,那么手机系统必须在3.0以上才能使用,这样将会导致很多用户不能安装apk从而损失用户;(有人会想,为什么不直接将新出来的东西全部打包到sdk中而是原创 2015-05-22 18:32:25 · 5451 阅读 · 1 评论