Jaqen's Blog

Jaqen's Blog

Android 音视频学习资源汇总
1、Android 音视频开发入门指南 :音视频学习思路,一系列学习任务。 2、Android 音视频开发学习思路:音视频学习路径,教程。 3、《雷霄骅的专栏》:http://blog.csdn.net/leixiaohua1020 4、《Jhuster的专栏》:http://blog.51cto.com/ticktick 5、《FFMPEG Tips》:http://ticktick.blog.51cto.com/823160/d-17 6、《Learn OpenGL 中文》:https://learnopengl-cn.github.io/ 7、《Android Graphic 架构...
达克效应
达克效应(英语: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 事件产生。 事件分发、拦截与消费与事件分发相关的三...
avatar
Jaqen Ng