Jaqen's Studio

Jaqen's Studio

True mastery of any skill takes a lifetime

达克效应
达克效应(英语:D-K effect),全称为邓宁-克鲁格效应(英语:Dunning–Kruger effect),是一种认知偏差,能力欠缺的人有一种虚幻的自我优越感,错误地认为自己比真实情况更加优秀。简言之即:庸人容易因欠缺自知之明而自我膨胀。 Kruger和Dunning将其归咎于元认知上的缺陷,能力欠缺的人无法认识到自身的无能,不能准确评估自身的能力。他们的研究还表明,反之,非常能干的人会低估自己的能力,错误地假定他们自己能够很容易完成的任务,别人也能够很容易地完成。 参考网上,动手绘制了下面这张图,更为清晰。 从左往右,智慧从低到高,从下往上,是自信程度从低到高。 不是所有...
二零一八年农历十月二十一
昨天同事喊我去参加面试,公司的其他部门技术岗。想来很久没面试了,于是就去试下水。 有几点感受。 首先,发现原来自己真的还差得远呢。随便一个 Http 的知识点就难倒我了。工作中只知道使用,压根没深入学习原理。这也提醒了我多去钻研技术,不要只停留在表面。 其次,技术面试官的更关注的是学历、职级、绩效,这是我很诧异的。因为我发现有时候学历、职级、绩效真得不见得和个人能力成正比,如果是 HR 问这些还情有可原,技术面试官问这些就感觉挺 Low 比的。因为他问我今年绩效拿了几个 D,这个时候我就挺毛躁的了。 上个月的绩效领导给我打了个 D,如果真是如他所说是轮流来,不会这么快就轮到我,我其实知道...
Android 8.0 应用保活实践
虽然我也觉得强行保活应用挺不厚道的,但是没办法,为了完成需求。 一开始尝试的方案是 Android 5.0 后系统提供的 JobScheduler,能够预先设置条件,达到条件时自动启动 JobService,在 Android 8.0 以下都能很愉快的使用。但是在华为的 Android 8.0 上,当应用被杀后,JobService 就不能被系统调用了。 于是采取了双进程服务绑定方式,实现了应用保活功能。 直接看原理图: 原理就是利用 Binder 的讣告机制,如果 Service Binder 实体的进程被杀,系统会向 Client 发送讣告,这个时机就是保活的空子了。所以可以通过两...
Android 音视频基础知识
视频编码通过特定的压缩技术,将某个视频格式文件转换成另一种视频格式文件的方式。编解码标准有国际电联的 H.261、H.263、H.264,运动静止图像专家组的 M-JPEG 和国际标准化组织运动图像专家组的 MPEG 系列标准,此外,互联网上还有 Real-Networks 的 RealVideo,微软公司的 WMV 以及 Apple 公司的 QuickTime 等。 MPEG:主要有 MPEG1(VCD),MPEG2(DVD)、MPEG4(DivX、XviD)、MPEG4 AVC。 H.26X :侧重网络传输,包括 H.261、H.263、H.263、H.263+、H.263++、H...
Android 单元测试 Junit
示例代码:https://github.com/zywudev/AndroidUnitTest Anroid Studio 在新建项目中自动将 Junit 框架集成,无需额外导入依赖。 Junit AssertAssert 就是断言,判断假设与实际是否一致,一致则测试通过。 常用断言: assertTrue 假设为真 assertFalse 假设为假 assertEquals 假设相同(基本数据类...
经济机器是怎样运行的?
最近看到的一个视频,是大师级人物瑞达利欧自己的宏观经济框架,三十分钟解释了经济机器是怎样运行的,通俗易懂。 视频地址:https://www.youtube.com/watch?v=rFV7wdEX-Mo 以下是个人总结的要点,结合视频看,效果更佳。 经济是由几个简单的零部件和无数次重复的简单交易组成,这些交易首先由人的天性所驱动,因而形成了三股主要的经济动力。 1、生产率的提高 2、短期债务周期 3、长期债务周期 把三股动力结合在起来,就是一个简单有效的宏观经济分析模型。 交易交易时刻在发生,你每次买东西都是进行一笔交易。 在一次交易中,买方可以使用「货币、信用」向卖方交换「商品、...
Android View 的绘制过程
View 整体结构Activity、Window、DecorView 之间的关系: Activity: 类似控制器,统筹视图的添加与显示,以及通过回调来与 Window、View 进行交互。 Window:视图承载器,抽象类,PhoneWindow 是其唯一实现类。 DecorView:顶级 View,包含 StatusBar、TitleBar + ContentView 和 NavigationBar。 StatusBar 是状态栏; TitleBar 对应各种 ActionBar; ContentView 对应 R.id.content,setContentView 设置的 V...
Android Clean 架构
Clean 一般是指,代码以洋葱的形状依据一定的依赖规则被划分为多层:内层对于外层一无所知。这就意味着依赖只能由外向内。 Clean 架构的准则: 架构独立。架构不依赖于一些满载功能的软件库。 可测试性。业务规则可以在没有 UI、数据库等外部元素的情况下完成测试。 UI的独立性。在不改变系统其余部分的情况下完成UI的简易修改。 数据库的独立性。业务规则不绑定数据库,可以随意更换数据库的实现。 外部机制独立。业务规则不知道外层的事情。 Framework and Drivers框架或者驱动,包括 UI、框架、数据库实现、网络实现细节等。 Interface Adapter接口适配层...
Android 事件分发机制
MotionEvent根据面向对象思想,事件被封装成 MotionEvent 对象,以下是几个与手指触摸相关的常见事件: ACTION_DOWN : 手指初次触摸到屏幕时触发。 ACTION_MOVE:手指在屏幕上滑动时触发,会触发多次。 ACTION_UP:手指离开屏幕时触发。 ACTION_CANCEL:事件被上层拦截时触发。 对于单指操作,一次触摸事件流程是这样的: 按下(ACTION_DOWN)–> 滑动(ACTION_MOVE)–> 离开(ACTION_UP)。如果只是简单的点击,则没有 ACTION_MOVE 事件产生。 事件分发、拦截与消费与事件分发相关的三...
Android 加固技术调研
第一代加固第一代加固原理是基于 Dex 加载器的加固技术。 基本步骤1、从 Apk 文件中获取原始的 dex 文件。 2、对原始的 dex 文件进行加密,并将加密后的 dex 文件存放在 asset 目录。 3、用脱壳 dex 文件替换原始 apk 文件的 dex 文件。脱壳 dex 文件的作用主要有两个:一是解密加密后的 dex 文件,二是动态加载解密后的 dex 文件。 4、修改清单文件,将程序入口改为壳程序。 5、打包签名。 缺陷依赖 Java 的动态加载机制,解密后的 dex 文件必须解压到文件系统,即使是应用的私有目录,攻击者很容易获取文件。 第二代加固–不落地加载相对于第一...
avatar
Jaqen
True mastery of any skill takes a lifetime