Pursuit
Honestly I have been thinking about talking about writing challenge for a while. I had this thought for the past few years, not just recently. But I haven't been able to do it for the past. I've thought many ti...
Handler详解
Android有大量的消息驱动方式来进行交互,比如Android的四大组件Activity, Service, Broadcast, ContentProvider的启动过程的交互,都离不开消息机制,Android某种意义上也可以说成是一个以消息驱动的系统。消息机制涉及Messag...
MMKV详解
一、介绍 二、工程目录 |-main |-AndroidManifest.xml |-aidl | |-com | | |-tencent | | | |-mmkv | | | | |-ParcelableMMKV.aidl (Aidl传递实体) |-cpp | |-flutter-bridge.cpp (Flutter MMKV实现桥) | |-native-bridge.cpp ...
深入理解JVM
一、Java内存区域 1.运行时数据区域 堆(Heap): JVM 启动时按 -Xmx, -Xms 大小创建的内存区域,用于分配对象、数组所需的内存,由GC管理和回收。 方法区(Method Area): 存储被JVM加载的类信息(字段、成员方法的字节码指令等)、运...
epoll机制
在聊epoll机制之前,需要从一些概念和select/poll机制聊起,再切如到epoll中,以及epoll与其两者的区别。 一、概念须知 1.进程切换 进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,...
mmap到底做了什么
mmap是零拷贝技术的一种,大量应用于Android的机制中,例如Binder,以及一些高性能存储方案MMKV、高性能日志写入方案mars-xlog均使用了mmap来实现。在这里将从两种角度来解析mmap,一是零拷贝技术是什么,二是mmap的概念原理。...
Message你了解吗?
一、Message起底 对性能和效率有了解的同学可能就会通过 handler.obtainMessage() 或 Message.obtain() 的方式去得到这个Message对象,使用Message.obtain()的好处是Message对象可以重复使用,可以免除一直new Message对象造成...
Android系统启动流程
一、Android系统架构 Android系统架构分为五层,从上到下依次是应用层、应用框架层、系统运行层、硬件抽象层和Linux内核层。 1.应用层 系统内置的应用程序或是开发者开发的应用程序 2.应用框架层(Java Framework) 应用框架层为...
Native与Web融合技术的应用与实践
重要数据已脱敏 | 不含任何核心代码 一、背景 2022年1月,滴滴出行App货运业务线开始迁移至滴滴小程序方案,滴滴小程序在API层面基本上与微信对齐,但在实际迁移完成前,就有着用户反馈滴滴小程序框架地图性能问题,原版滴滴小...
ReactNative详解
一、为什么要学习React Native 1.跨平台发展 基于WebView实现的跨平台 以React Native为代表的一类跨平台 以Flutter为代表的跨平台 2.React Native的设计 React Native的架构主要包含React、JavaScript、Bridge和Native四个部分...
Web唤起App的实现及原理
在入职滴滴后,不同页面不同技术之间最常规的信息传递方式就是Scheme,大到App唤起,小到营销策略,都离不开Scheme,其运用在大量的业务场景下,这里简单记录下其实现方式及实现背景。 一、使用 先不管唤起的原理,用一个简单的...
XML布局如何成为View的
这篇文章主要是为了解决一个疑惑“layout中的XML文件是如何渲染成View的”。 一、XML2View 下面是一种加载view的实现,几乎所有的Android开发都有写过。 LayoutInflater layoutInflater = LayoutInflater.from(context); View ...
恍如昨日
2021年12月25日凌晨3点通关了《泰坦陨落2》,来到镜前洗漱,突然有一种仿佛昨天我还是个学生的感觉,这半年我经历了很多,从一个学生跨入社会,相对来说已经算是平稳落地,但依旧度过了一段痛苦的时间,经历了人性复杂的职场、...
Flutter Redux解析
一、概念 1.Store 用来储存、管理全局的页面状态,将页面UI与存储在Store中的状态进行绑定,通过修改Store的状态达到UI自动更新的能力。 /// 创建一个Store class CountState { int count; CountState(this.count); factory Co...
来聊聊2021年的跨端方案
起因 某晚餐后和几位前端同事走在路上,聊起了跨端方案相关的话题,每到这个话题永远无法避开的就是RN与Flutter;这几年原生开发者锐减,加之跨端方案越来越成熟,越来越多的的公司选择使用跨端方案来开发他们的产品,无论是从...
互联网,从来就没有一招鲜吃遍天的神话
高绩点这条路未必适合所有人 大学的课程设计上一是课时有限,二是为了适应每一位同学,在课程设计上不能说学不到什么,只能说是毫无用处(至少按照我的经历是这样)。无论是继续深造还是选择工作,大三的时候就可以开始选定自己...
至少,毁掉我们的不应该是教育
起初我也是你们,后来工作了,了解了事实,感到出奇愤怒,遂有此文。 这就是我们共同的经历,在那个的年纪,社会阅历不足的我们,来认识世界的为数不多的方法就是高等教育,通过老师们以及从业前辈们的只言片语来构建对于这个世...
写在工作四个月后
工作已经四个月了,趁着假期时间,做一个对这四个月的简单总结以及对未来一段时间的规划。回想去年这个时候的我,认为编程是自己最热爱的事情,成为工作后也会同样如此,事实是即便是爱好,成为全职工作后也会变了味,会有定期...