移动开发

Flutter跨平台工程实践与原理透视:从渲染引擎到高质产物

🌟 Hello,我是蒋星熠Jaxonic! 🌈 在浩瀚无垠的技术宇宙中,我是一名执着的星际旅人,用代码绘制探索的轨迹。 🚀 每一个算法都是我点燃的推进器,每一行代码都是我航行的星图。 🔭 每一次性能优化都是我的天文望远镜,每一次架构设计都是我的引力弹

http和https的区别

1、HTTPS 协议需要到 CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。 2、HTTP 是超文本传输协议,信息是明文传输,HTTPS 则是具有安全性的 SSL 加密传输协议。 3、HTTP 和 HTTPS 使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 4、HTTP 的连接很简单,是无状态的。HTTPS

Android登录拦截:动态代理+Hook的实现

一、动态代理 + Hook 的实现 在之前的文章我们讲过插件化的实现有点类似,插件化一般是替换系统的 mInstrumentation 为自己的 Instrumentation 。 而我们这里没有这么麻烦,我们这里需要Hook的是ASM ,是Android启动页面过程中的一个 mInstance 对象,它就是ActivityManagerService。 startActivity()最终会进入I

iOS中WebSocket的使用

简介 HTTP协议是无状态的协议,采用的是请求/应答的模式,所以只能是客户端发送请求,服务器响应请求,服务器是无法给客户端主动推送消息的,而有时候客户端需要在服务器数据更新的时候及时的进行更新界面或者其他的逻辑处理,以前的方案是客户端通过轮询不断的发送HTTP请求到服务器来拿到服务器最新的数据,非常的麻烦。 WebSocket 连接允许客户端和服务器之间进行全双工通信,以便任一方都可以通过建立的

cocoapods-xlbuild二进制编译插件,提高打包编译速度

cocoapods-xlbuild 利用cocoapods,生成预编译静态库,提高编译速度的插件。支持编译使用静态库提高速度,调试直接使用源码,方便调试,同时支持设置Frameworks缓存,为打包机上的不同项目首次install提速! 背景 随着项目的不断迭代,项目代码及依赖三方库和内部库越来越多,导致项目编译时间越来越长,浪费大量开发时间。 cocoapods-xlbuild插件将三方库打包为

动画(AnimationClip)压缩

FileSize FileInfo.Length取得的文件大小 可以在操作系统的文件系统中看到 MemorySize Profiler.GetRuntimeMemorySize取得的内存大小 可以在Profiler中通过采样看到 分别在真机和Editor下进行了采样 BlobSize 反射取得的AnimationClipStats.size二进制大小 显示在AnimationClip的I

Android USAP 进程启动流程

从Android Q(10)开始,Google引入了一种新的机制,加快了app的启动时间,具体请看Android Framework | 一种新型的应用启动机制:USAP,本篇将会详细介绍USAP 进程启动的流程。 从Activity启动流程 上篇(Android 10),我们得知在Activity启动过程中,我们会调用到\frameworks\base\core\java\android\os\

14. 类的关系——抽象

1、 Java抽象类 在继承中,抽象是一个非常重要的概念。 类可以是抽象的,方法也可以是抽象的。 如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。 如形状类是抽象的类,圆、三角形等是具体类。 用abstract修饰的类就是抽象类。如果某个类中包含有抽象方法,那么该类就必须定义成抽象类。但是抽象类中不一定有抽象方法。 在面向对象的概念中,知道所有的对象都是

flutter面试题

一、flutter与原生通信,三种通道的区别 1.1 MethodChannel Flutter与Native端相互调用,调用后返回结果 可以Native端主动调用,也可以Flutter主动调用,属于双向通信 此种方式最为常见,Native端调用需要在主线程中执行 1.2 BasicMessageChannel 用于使用指定的编解码器对消息进行编码和解码 属于双向通信,可以以Native端主动调用