- 博客(35)
- 资源 (69)
- 收藏
- 关注
翻译 Router(四):打造自己的深度链接库DeepLinkSo实战
前言今天是这个系列的最后一篇,如果你还看过之前的内容,可以先阅读:Android:从零开始打造自己的深度链接库(一):ARouter简介Android:从零开始打造自己的深度链接库(二):ARouter源码解析Android:从零开始打造自己的深度链接库(三):自定义XML协议我们将借鉴ARouter的开发思路,扩展新的功能。上一篇我们已经订好了XML协议,并且把XML中的内容...
2020-04-25 18:33:21 661
翻译 Router(三):自定义XML协议
前言之前我们把ARouter的原理分析了一遍,如果你是刚启动的新项目,建议立刻使用,哪天运营有这个需求了,你就可以牛逼的对他说,我早就已经做好了。但是老项目就会有一丢丢的尴尬,所以我们要在ARouter的基础上,独立深度链接的功能,然后打造出加强版的深度链接库,我起名为DeepLinkSo。正文回顾一下ARouter的源码,我们记得他使用的是自定义注解,完成路由的注册和绑定。注解看...
2020-04-25 17:15:50 345
翻译 ARouter(二)源码解析
前言这一篇我们来具体看一下ARouter的实现原理,如果你之前没有接触过ARouter,可以先阅读上一篇:Android:从零开始打造自己的深度链接库(一):ARouter简介废话不多,我们赶紧分析源码。正文首先我们从github下载最新的源码:被选中的三个Module是我们今天分析的重点:arouter-annotation从名称看我们可以猜到这是自定义注解的库,我...
2020-04-25 16:52:17 451
翻译 ARouter(一):简介
前言在应用开发中,原生app经常内嵌Web,节省开发的成本,这种情况我们通过注入JS脚本来解决原生和Web的通信问题。那么相反,在浏览器环境中,Web又如何启动App呢?这就是深度链接的出现的原因。深度链接看着是一个很6的名字,实际上就是隐式启动的一种,所以说有文化就是不一样。隐式启动最大的优势在于不明确指定启动页面的名字,通过各种过滤参数,找到符合条件页面,对匹配的过程解耦,堪称路由模式...
2020-04-25 16:02:31 549
翻译 Tangram 2.0——猫客页面内组件的动态化方案
Tangram 2.0 库AndroidTangram-Android Virtualview-AndroidiOSTangram-iOS Virtualview-iOS背景技术背景一直以来,无线应用都在不断寻求动态化页面的解决方案,在阿里巴巴集团内,除了风风火火地 Weex 项目外,各个团队都有大大小小的解决方案。我们猫客一直持续基于Tangram方案来解决页面动...
2020-04-24 18:57:32 830
翻译 Tangram 的基础 —— vlayout(Android)
前言vlayout 是手机天猫 Android 版内广泛使用的一个基础 UI 框架项目 提供了一个用于RecyclerView的自定义的LayoutManger,可以实现不同布局格式的混排,目标是支撑客户端native页面的快速开发。它也是Tangram 框架的基础模块,现已开源,欢迎移步到github上指教。简介背景Android中UI性能消耗主要来自于两个方面:布局层...
2020-04-21 23:02:11 690
翻译 苹果核 - vlayout使用说明(二)
前言vlayout 的设计思路请参考Tangram 的基础 —— vlayout(Android)。框架已经开源,欢迎移步到github上指教。本文介绍 vlayout 的基本布局样式上的属性说明。margin, paddingMargin, padding就是外边距、内边距,概念与Android系统的margin, padding一样,但也有不同的地方:它不是整个Recy...
2020-04-21 14:25:54 238
翻译 vlayout使用说明(一)
前言vlayout 的设计思路请参考Tangram 的基础 —— vlayout(Android)。框架已经开源,欢迎移步到github上指教。本文介绍 vlayout 的基本使用。默认实现默认通用布局实现,解耦所有的View和布局之间的关系: Linear, Grid, 吸顶, 浮动, 固定位置等。 LinearLayoutHelper: 线性布局 GridLayoutHel...
2020-04-21 14:17:44 577
翻译 RecyclerView 里的自定义 LayoutManager 的一种设计与实现
很久很久以前,我分享过一篇文章,介绍了团队推出的一种异构的自定义 LayoutManger 的实现,它是基于 LinearLayoutManager 扩展实现的,这个项目的名字叫 vlayout,也许你以前听说过,或者在 github 上看到过,虽然还存在不少 bug 和不足,但能得到不少同学的支持,真是感到欣慰。image关于它的设计思路,其实在文章《Tangram 的基础 —— v...
2020-04-21 00:05:28 874
原创 Tangram 知识图谱
为了方便大家对 Tangram 有个全局的了解,做了一张图谱做指导。相关开源库AndroidTangram-Android Virtualview-Android vlayout UltraViewPageriOSTangram-iOS Virtualview-iOS LazyScrollView工具virtualview_tools摘自:苹果核 - T...
2020-04-20 18:58:53 225
翻译 VirtualView Android 实现详解(三)—— 添加一个自定义控件
本系列文章《VirtualView Android实现详解(一)—— 文件格式与模板编译》 《VirtualView Android 实现详解(二)—— 虚拟控件的设计与实现》前文介绍了模板的基本格式、虚拟控件与原生控件混合使用的方式。本文重点在把这两块内容串起来介绍一下,如何实现从模板生成一个运行时的控件,并如何注册一个自定义控件使用。相关开源库AndroidTangram-...
2020-04-19 17:08:49 284
翻译 VirtualView 工具大更新
前文《天猫客户端组件动态化的方案——VirtualView 上手体验.md》都提到了自定义模板编译成二进制数据的过程,在 Android 版的 Playground 里内置了一个编译工具可以实时调测,然而业务开发过程中,不可能在手机上编译,而是在电脑或者后台去编译模板。因此这里提供了一个独立的工具来编译模板,这里介绍下它的使用方法。前世今生工具的源码也提交在github上。在一开始的设...
2020-04-19 16:59:33 182
翻译 提升开发体验,预览 VirtualView
前文《天猫客户端组件动态化的方案——VirtualView 上手体验.md》都提到了自定义模板编译成二进制数据的过程,在 Android 版的 Playground 里内置了一个编译工具可以实时调测,然而业务开发过程中,不可能在手机上编译,而是在电脑或者后台去编译模板。因此这里提供了一个独立的工具来编译模板,这里介绍下它的使用方法。前世今生工具的源码也提交在 github 上。在一开始的设...
2020-04-19 11:45:30 189
翻译 天猫客户端组件动态化的方案——VirtualView 上手体验
在之前的文章《猫客 Tangram 页面内组件的动态化方案》、VirtualView Android实现详解(一)里介绍了 VirtualView 方案,不过内容都侧重与设计和实现原理,在进一步介绍其他细节之前,还是先来直观感受下它是什么、它能实现的效果和它的使用方式吧。VirtualView 简介什么是 VirtualView简单讲,就是我们实现了一系列自定义控件,建立的通过自定义 ...
2020-04-18 20:54:05 739
翻译 VirtualView Android 实现详解(二)—— 虚拟控件的设计与实现
本文介绍 VirtualView 方案里虚拟化控件的原理,包括尺寸计算与布局的实现,以及它与原生控件组合使用时的逻辑交互。相关开源库AndroidTangram-Android Virtualview-Android名词解释 VirtualView:如果还不清楚,可以阅读《天猫客户端组件动态化的方案——VirtualView 上手体验》大概了解下; 原生控件:就是通...
2020-04-18 17:59:38 637
翻译 VirtualView Android实现详解(一)—— 文件格式与模板编译
在之前的文章《猫客 Tangram 页面内组件的动态化方案》里介绍了 Tangram 页面的组件动态化方案,但是有很多细节没有展开讲,鉴于内容比较多,打算建一个系列,分多篇文章介绍。本文介绍编译 XML 模板的过程。AndroidTangram-Android Virtualview-AndroidiOSTangram-iOS Virtualview-iOS名词解释Virt...
2020-04-18 17:20:37 353
原创 android Atomic
atomic的实现原理android AtomicBoolean类的使用Android AtomicInteger使用
2020-04-14 12:32:31 299
翻译 Android App 安全的HTTPS 通信-自定义TrustManager
漏洞描述对于数字证书相关概念、Android 里 https 通信代码就不再复述了,直接讲问题。缺少相应的安全校验很容易导致中间人攻击,而漏洞的形式主要有以下3种:自定义X509TrustManager。在使用HttpsURLConnection发起 HTTPS 请求的时候,提供了一个自定义的X509TrustManager,未实现安全校验逻辑,下面片段就是常见的容易犯错的代码片段。...
2020-04-14 10:24:36 2968 1
原创 Android WebSocket的使用
Android WebSocket实现即时通讯功能Android WebSocket 长连接推送Android使用OkHttp WebSocket基于okhttp和RxJava封装的自动重连的WebSocketgithub:https://github.com/dhhAndroid/RxWebSocket...
2020-04-13 23:33:06 284
原创 Java分布式跟踪系统Zipkin
Java分布式跟踪系统Zipkin系列Java分布式跟踪系统Zipkin(十):Zipkin源码分析-ElasticsearchStorageJava分布式跟踪系统Zipkin(九):Zipkin源码分析-MySQLStorageJava分布式跟踪系统Zipkin(八):Zipkin源码分析-KafkaCollectorJava分布式跟踪系统Zipkin(六):Brave源码分析-...
2020-04-13 13:54:20 242 1
翻译 java.nio.ByteBuffer用法小结
文章目录 简介 初始化 向ByteBuffer写数据 手动写入数据 从SocketChannel中读入数据至ByteBuffer 从ByteBuffer中读数据 复位position 读取数据 确保数据长度 字节序处理 继续写入数据 总结 简介在Java的Socket编程中,若使用阻塞式(BIO),则往往通过Ser...
2020-04-11 17:41:18 580
原创 高等数据加密——非对称加密算法
对称加密算法仅有一个密钥,既可用于加密,亦可用于解密。而非对称加密算法拥有两个密钥,一个用于加密,另一个则用于解密。相比对称加密算法的单钥体系,非对称加密算法的双钥体系更为安全。但非对称加密的缺点是加解密速度要远远慢于对称加密。目前,Java 6中仅仅提供了DH和RSA两种算法实现。通过Boucy Castle可以获得ElGamal算法支持。DH算法的使用DH(Diffie-Hellm...
2020-04-08 14:15:10 466 1
原创 终极装备——安全协议
HTTPS=HTTP+SSL/TLS,位于应用层。SSL/TLS协议本身是带加密信息的传输层协议,数字证书正是为这种协议提供相关加密/解密信息。SSL/TLS协议涉及多种加密算法,包括:消息摘要算法:MD5和SHA1对称加密算法:RC2、RC4、IDEA、DES、Triple DES和AES非对称加密算法:RSA和DH数字签名算法:RSA和DSA模型分析1、协商算法服务端和...
2020-04-08 11:06:02 160
原创 终极武器——数字证书
数字证书也称电子证书,由数字证书颁发认证机构(CA)签发才具备可认证性。数字证书采用了公钥基础设施(PKI),使用了相应的加密算法确保网络应用安全性:非对称加密算法用于对数据进行加密/解密操作,确保数据的机密性。 数字签名算法用于数据进行签名/验证操作,确保数据的完整性和抗否性。 消息摘要算法用于对数字证书本身做摘要处理,确保数字证书完整性。数字证书常用算法1、非对称加密算法:RSA...
2020-04-07 12:28:02 652
原创 初等数据加密——对称加密算法
对称加密算法是当今应用范围最广,使用频率最高的加密算法。根据加密方式分为密码和分组密码,分组密码工作模式又可分为ECB、CBC、CFB、OFB和CTR等,密钥长度决定了加密算法的安全性。DES算法的使用DES(Data Encryption Standard,数据加密标准)算法,是对称加密算法的典型算法。由于密钥长度不足,衍生出了DESede算法(三重DES)。为替代DES算法,又有了AE...
2020-04-07 10:52:31 347
原创 provider.BouncyCastleProvider库导入用于算法和生成证书
关于使用算法找不到类org.bouncycastle.jce.provider.BouncyCastleProvider的问题,本人尝试了网上N多方法都不行后,自己尝试解决了问题,以分享出来。没有JAVA_HOME的需要配置环境,JDK环境变量的配置1、网上搜索的方法基本都是这种,本人没有解决问题找到JAVA_HOME路径 将bcprov-jdk14-145.jar放入JAVA_HOME...
2020-04-06 22:06:38 25357
原创 电子邮件传输算法——Base64
Base64算法的转换方式属于古典加密算法的单表置换算法。一段文字经过Base64编码后面目全非,而经过该算法解码后又能恢复本来面目,这很有加密解密的意味。但该算法充当秘钥的字符映射表是公开的,加密强度并不够高,所以该算法并不是加密算法。Base64算法消息传递模型Base64算法Base64是一种基于64个字符的编码算法,广泛用于电子邮件传输。经过Base64编码后数据为原...
2020-04-06 16:08:38 790
原创 Java加密与解密总结
学习目标:了解加密算法选型,并能使用正确的算法进行加密。学习目录:1、电子邮件传输算法——Base642、验证数据完整性——消息摘要算法——用于验证数据完整性服务3、初等数据加密——对称加密算法——用于保证数据保密性服务4、高等数据加密——非对称加密算法——用于保证数据保密性服务5、带密钥的消息摘要算法——数据签名算法——用于抗否认性服务( 电子商务系统应有效防止商业欺诈行为的发生,...
2020-04-05 14:24:58 327
原创 Okhttp3 研究总结 (面试)
OKhttp3 是最近比较主流的网络请求框架。面试中,常会问道你对okhttp3是否有深入的了解。在这篇文章我总结了下okhttp3的原理(非用法,用法自己百度就行),以及大神们根据源码分析OKhttp3比较好的文章。1.首先是大神们对OKhttp3的源码分析:(转载)Android OkHttp(三)源码解析:https://blog.csdn.net/zxw136511485/arti...
2020-04-03 17:51:46 950 2
翻译 okhttp源码深入解析
OkHttp是一个非常优秀的网络请求框架,已被谷歌加入到Android的源码中。目前比较流行的Retrofit也是默认使用OkHttp的。所以OkHttp的源码是一个不容错过的学习资源,学习源码之前,务必熟练使用这个框架,否则就是跟自己过不去。use -> running source code -> reading & learning the source code....
2020-04-03 17:19:44 2365 1
翻译 OkHttp3源码分析
基本使用从使用方法出发,首先是怎么使用,其次是我们使用的功能在内部是如何实现的.建议大家下载 OkHttp 源码之后,跟着本文,过一遍源码。官方博客栗子:http://square.github.io/okhttp/#examplesOkHttpClient client = new OkHttpClient();String run(String url) throws IOE...
2020-04-02 21:56:34 281
原创 okhttp的使用与封装
一、介绍1、特性OkHttp是一个精巧的网络请求库,有如下特性: 支持http2,对一台机器的所有请求共享同一个socket 内置连接池,支持连接复用,减少延迟 支持透明的gzip压缩响应体 通过缓存避免重复的请求 请求失败时自动重试主机的其他ip,自动重定向 好用的API其本身就是一个很强大的库,再加上Retrofit2、Picasso的这一套组合拳,使...
2020-04-02 16:26:33 903
Android 中MQTT协议的使用Demo
2024-05-07
StarUML Setup 3.0.2.7z
2020-11-23
TabLayout+ViewPager+Fragment复用+Gson解析本地数据
2020-11-19
热门标签等自动换行的流式布局+瀑布流照片墙UI实现的优化方案
2020-10-25
lib_coder.zip
2020-04-08
WindowMangerService原理与定制
2019-02-25
MediaPlayer播放mp3的Demo
2019-02-12
Jenkins入门手册
2016-10-08
软件架构设计
2016-09-08
超仿微信代码
2016-09-05
(修改)Android 完美高仿的微信源码
2016-09-05
MAC反编译APK工具包
2016-08-25
httpclient-4.3.6.jar架包
2016-07-04
android ant 多渠道打包&博客教程
2016-01-21
SDL1.3源码
2014-03-14
图片轮播(Viwepager)+(读取网络图片)+点击图片(WebView)展示
2014-02-14
实现第三方授权登录、分享以及获取用户资料
2014-01-08
第三方授权登录、分享以及获取用户资料
2014-01-08
仿IOS的list下拉刷新pullRefresh
2013-12-30
Navigation Drawer(导航抽屉)模式
2013-11-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人