Evil Mouth

Kotlin Value Class 技巧

November 21, 2021

inline-classes https://kotlinlang.org/docs/inline-classes.html 如何使用 思考 内联类是什么 内联类必须明确声明一个参数,目的是为了运行时内联成该参数(在上述例子中 john 实际上就等于字符串 “John…

Android 多模块启动方案

October 28, 2020

前言 在项目模块化后,为了解决模块之间互相依赖问题,通常会引入路由框架,通过路由框架将各个模块联系到一起。模块化后各个模块还可以独立运行,这时会有这样一个问题,当模块有各自的初始化任务(比如用户信息),通常会把这些初始化任务放在 Application#onCreate…

从 Hexo 到 Gatsby

September 17, 2020

没错,最近将博客从 Hexo 迁移到 Gatsby 了,为什么要迁移,有许多原因 喜欢折腾 最近将所有编辑器改成亮色,据说暗色亮色切换看(编译器和浏览器)容易加深散光,那博客也换吧 既然折腾起来了,那干脆试下 Gatsby(前段时间了解到) Gatsby 相比 Hexo…

Flutter InheritedWidget

September 04, 2020

分析 Flutter 非常特殊的 InheritedWidget,仅次于 StatelessWidget 和 StatefulWidget InheritedWidget 介绍 Base class for widgets that efficiently propagate…

Flutter runApp

September 03, 2020

runApp 过程介绍以及 Binding 的作用,需要先了解 mixin 概念 runApp runApp 作为 Flutter 启动 App 入口,具体做了哪些操作,通过源码一步步分析 ensureInitialized 负责创建一个 WidgetsBinding…

Flutter State

August 14, 2020

Flutter 状态管理介绍 State 是什么 与 Android 不同之处 在 Android,比如想要动态改变一个 TextView 的 text,则需要在通过 id 获取 TextView,并通过 TextView 提供的 setText(newText…

Fun Flutter Widget

August 14, 2020

本文介绍日常开发中比较实用的 Flutter Widget Placeholder 占位图 常用在异步加载请求时先使用 Placeholder 代替显示,请求结束后替换 Form 表单 例如登陆页面,利用 Form Widget 将用户名和密码两个输入框包起来,通过 Key…

Android View - Flutter Widget

August 13, 2020

主要列举 Android 常用的 View 对应 Flutter 的 Widget TextView - Text 富文本 在 Android 实现,比如部分文字是可点击的、不同颜色的,是通过 Spannable 实现,而在 Flutter 通过组合 TextSpan…

差分包

July 12, 2020

调研 Android 差分包过程记录 前测 目前市场差分方案有 bsdiff - 最常见的差分方案,例如国内应用市场的增量更新 archive-patcher - 谷歌推出的基于 bsdiff 的优化方案,使差分包更小 apkdiff - Github…

ARouter @Autowired 自动注入

May 31, 2020

前言 ARouter 有一个@Autowired 的注解,能自动帮我们赋值一些变量,例如 通过就能将 Activity 传输的一些值自动帮我们赋值上对应变量,省去我们手动去调用 inject(this) 那么看下它做了什么,翻了几下发现,ARouter 会做以下几步操作…

支付宝小程序指定页面跳转

March 11, 2020

支付宝小程序支持从外部调起,具体做法是通过,如下 alipays://platformapi/startapp?appId=[appId]&page=[pagePath]&query=[params] appId 是小程序唯一 Id pagePath…

前前前后后后

February 29, 2020

. 前言 这两个星期是我最完整的一次全栈开发经历,前端,后端,服务器,域名。虽然之前也搭过服务器(本博客网站),但是这次也遇到了些许问题,包括、、等等,让我慢慢一一道来 eggjs…

Kotlin androidExtensions findViewById缓存问题

September 26, 2019

用的肯定很爽,少了一堆的编写,插件本身为我们生成代码,并且还会缓存起来,通过调用代替,避免频繁调用,看起来方便又高效,实际上有一个需要注意的点被忽略 0x0…

智能合约真好玩(二)

January 09, 2019

address vs address payable 在 solidity 5.0 版本之后,address 被拆分成 address 和 address payable 在 5.0 之后,address 将失去功能,得声明成 address payable 才有 msg…

智能合约真好玩

December 29, 2018

吐槽一下 Mist 客户端 mac 版,网络连接异常+是不是崩溃,不过智能合约开发起来真好玩 这几天学习了智能合约开发语言 solidity…

Android Glide踩坑记 - AppGlideModule

November 06, 2018

在最新的中,应该是开始吧,官方改变了的请求结构,许多 api 包括常用、、等都需要通过去配置,从而导致从迁移过来一路坎坷。所以官方为我们提供了让我们保留以前的流式调用,然而… 0x01 You cannot call Glide.get() in…

AndroidX TabLayout点击效果兼容问题

October 24, 2018

近期升级了一波,发现原先取消掉的点击阴影效果又出现了,以为是改了主题遍翻了翻改动,发现并没有可疑的修改导致,最后在源码里面发现真凶! 0x00 support-27.1.1 此前的点击效果是通过设置进行取消 0x01 support-28.0.0 升级到 28.0.…

Android AccessibilityService - 链式结构

August 27, 2018

提供一种链式结构 AccessibilityService 的方案,相比于正常使用 AccessibilityService,有着几大优点:结构清晰、调用链一目了然、方便调试等 0x00 AccessibilityService…

Android WebView注入Js预览图片 - 微信公众号文章

August 21, 2018

通常的做法是通过,然后遍历元素拿到为图片地址。但是针对微信公众号文章就不适用了,尤其是其图片元素采用懒加载方式,所以取到的为空,但是在微信客户端能够正常取到所有图片,所以对文章进行分析 0x0…

更简单的方式上传jcenter

August 10, 2018

整理了一下使用流程和步骤,结合项目结构,整合出一份通用并且更简单的使用方式 一键上传 支持多 Library 上传 0x00 注册 bintray 注册这个步骤就不打扰了https://blog.zyhang.com/maven-jcenter/ 0x0…

Android浏览器们Scheme跳转App总结+魔窗分析

August 08, 2018

偶然得知魔窗这款产品,其中的企业级深度链接解决方案,在当今存在十几款浏览器的 Android 市场下,也是对浏览器跳转 App 提供了很好的兼容 之前也是做过浏览器跳转 App,利用 Scheme 机制,对 Activity 加来实现,只不过看到魔窗 mLink…

flutter-StatelessWidget与StatefulWidget的解耦

June 13, 2018

和是的基础组件,日常开发中自定义都是选择继承这两者之一。 两者的区别在于,面向那些始终不变的 UI 控件,比如标题栏中的标题;而则是面向可能会改变 UI 状态的控件,比如有点击反馈的按钮。 就没什么好研究的了,的创建需要指定一个,在需要更新 UI…

亚马逊S3`POST`上传策略

June 07, 2018

前言 最近在写后端,需要后端生成给前端直接上传文件到,减轻服务器压力,记录一下踩的坑,附上官方文档 https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/API/sigv4-UsingHTTPPOST.html…

摆脱Observable.zip烦人的zipper参数

May 28, 2018

开发中难免遇到单页面多任务的情景,比如详情页的信息可能需要从多个接口获取,虽然以用户体验来看多个接口返回数据互不影响,哪个接口先返回数据就先显示,但在某些特殊情景下,需要多个接口都成功返回数据再统一更新 UI…

使用POI读写Excel

May 27, 2017

比较出名的两个方案 jxi 和 poi,由于 jxi 只适用 Excel 2003,所以肯定选择 poi,但是 poi 又跟 android 不兼容,不能通过 maven 依赖方式拉取,所以只能自己重新打包 jar 文件并导入到项目中才可以使用,在网上找了下找到个 3-1…

上传项目到jitpack

May 08, 2017

需要发布个人仓库方便其他项目使用,最容易的方法估计也就是了 官网其实就有教程https://jitpack.io/docs/ANDROID/ 添加 maven 插件 在根配置插件 配置 library 在的添加 创建一个 release 为你的仓库创建一个 拉依赖 最后

上传项目到jcenter

May 08, 2017

记录一下开发发布项目到的过程 Android 开发过程中需要拉很多依赖,比如官方的库,通常都是一句话调用,非常方便 之前也使用过,比起方便很多,不过使用的人没有用的多,新建 Android 项目也不会自己配置,如果你想用,可以看这篇文章上传项目到 jitpack…

git本地多ssh key管理

March 04, 2017

之前在 mac 配了多 ssh key,一直用的很爽,然而前几天因为不当操作,导致 ssh 失效,一怒全部删除,准备重配的时候命令什么的已然忘记,还得再重新查,这记性,所以又是备忘录。 生成第一个 ssh key 假设从来没有配过 ssh,以下是生成默认 key 1.配置 git…

使用Hexo搭载博客

February 24, 2017

记录一下通过 Hexo 搭载个人博客过程,不得不说 Hexo 真的强大。 官方文档 https://hexo.io/zh-cn/docs/index.html 安装前提 系统环境必须有 Node 和 Git https://nodejs.org/zh-cn/ https…

使用SnapHelper帮助RecyclerView滑动停留

February 13, 2017

现在做项目早已抛弃而选择,而且使用起来也已经得心应手,但是有很多隐藏功能比较少用到,比如接下来的 偷偷截下 Google Play 的图 如上图所示,上面的 banner 就是中对齐的效果,下面的游戏列表就是左对齐的效果 官网 support…

初试Google Agera database

February 10, 2017

(内白:第一次真正意义上写博客,这几年来开发路程遇到过许多问题,但都是简单标记一下,并没有记录下来,等过段时间遇到同样问题脑袋一热都忘了又得翻翻翻,特此开始写博客记录我的开发路程,老了,记忆力下降了,再过几年连代码都不会打了。。。 0 0) 进入主题,最近打算用 agera…

Hello World

February 09, 2017

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the…