opoojkk

Be open to new experiences!

协程与Kotlin协程对比

协程到底是什么呢? 这是我看到Kotlin协程之后的第一个问题。在回答是不是什么之前,先弄清楚什么是怎么定义的,协程也是一样。 在搜索引擎得到的答案都是"轻量化线程"、“非阻塞”、“协作式"之类的关键字关键字,真的是这样吗?

WebView JavaScript接口实现原理

在工作中有和前端混合开发的项目(前端的代码运行在Webview中),混合开发涉及到前端和客户端之间方法的调用,花了点时间弄明白是实现调用的。 实现 # 我们都知道是通过WebView的addJavaScript方法将Android的方法添加进Webview,之后前端才可以调用到的,因此入口从它开始。

理解Android插件化

12年我还在上初中,AndroidDynamicLoader已经只吃了Fragment的插件化实现。之后不断演变,从dynamic-load-apk,到DroidPlugin,再到Atlas。 说来惭愧,时至今日才有机会接触到,不禁想一探究竟。

Android序列化方案对比

从开始学习Android,到现在看过很多次有人争论Android为什么用Parcelable,而不是Java提供的Serializable接口。 除了使用两者的方式不同外,国内(大陆)目前最普遍的观点是认为Serializable用了大量的反射,导致速度要比Parcelable慢。

Mac终端中使用VS Code打开文件

最近排查ANR日志,用grep找到包含特定内容的日志后,还要找文件在哪再打开,觉得很繁琐,简单搜了下,还有平时常用的命令,一并记录下来以便后续用到查找。 1 2 3 4 5 6 7 8 9 10 11 # 用特定软件打开某个文件 open -a "软件名称" path/file # finder中打开当前文件夹 open . # grep递归匹配特定内容 grep -r "特定内容" # grep递归匹配特定内容,只显示文件名 grep -rl "特定内容"

DialogFragment取消机制解析

某天(周六)测试反馈一个本该不能用返回取消的弹窗,是可以用返回手势取消的。心中满是疑惑,代码中已经写了dialog?.setCanceledOnTouchOutside(false)怎么不生效呢? 带着关键字查Google,都说用setCancelable(false)就可以了,大为震惊。日思夜想睡不着,今天一定要查个明白。

2024:我的成长与思考

我没有忘写年终总结,但是忘了去年写在哪,今天才找到。按照惯例总结下去年在各方面,写下新一年的目标。 工作 # 23年11月份入职,到元旦一年出头,时间算不上长。与之前相比,感受最明显的还是流程,在上一家需求评审完了就可以开始干活了,在这里才刚开始。到真的开始写需求,需要经过预沟通(和领导们,没我什么事)、需求评审、技术预审、技术内审、技术外审后才是真的开始写代码。这背后的是对风险的把控,时间都是算好的,每一个齿轮都要按照争取的节奏转动。

Context是什么

Context是什么?这是从我开始学习Android就有的疑问,刚入行时找了无数的文章,也没有谁能解答我的疑问,有的是不断的告诉我Context是上下文,这不废话吗,我查不到Context的意思是上下文吗?我的意思是什么的上下文。

Android代码混淆

在Android应用开发完成,上架前,一般是要经过加固和混淆两个步骤的,加固的原理我不懂,整理了混淆相关的知识和文档。供自己和有需要的朋友查阅。 目的 # 一定是有什么作用,否则是不会加入的。混淆的作用是什么呢?

理解View焦点机制

本篇内容探讨View的焦点。怎么算有焦点,同一时间有几个View有焦点,焦点的分发又是怎么回事。 焦点 # View有个方法叫hasFocus,返回值是boolean类型的,用来判断View是否有焦点。hasFocus只做了简单的一件事,判断flag中是否包含PFLAG_FOCUSED。