移动开发

Android Framework - 学习起步

前言 作为一名合格的 Android 开发,需要学习 Framework 知识,来解决 App 稳定性相关的问题 Framework 的源码学习一般由 init.rc 开始看起,因为它是一个 Android 系统启动必备的重要脚本,之后的几大系统进程都是由它启动的,比如 zygote,systemserver 等,这里主要记录一些基本概念,以及 Zygote 启动的源码分析 Binder 原理是相

iOS 基于 PJSIP 开发 VOIP 应用 --- 编译集成 PJSIP

前言 Telegram 的研究先放一放,在 Telegram 源码中看到了 VOIP 相关功能,不禁想到自己上家公司的业务就是做 VOIP 通讯,趁着现在自己这段时间勤奋劲还没过,特地记录下。 PJSIP 是什么? PJSIP 是一个用 C 语言编写的开源嵌入式 SIP 协议库,实现了基于标准的协议(如SIP、SDP、RTP,STUN、TURN 和 ICE);把基于信令协议 SIP 的多媒体框架和

【Android】基于udp通信的智能家居移动应用开发

每文一诗  💪🏼        男儿不展风云志,空负天生八尺躯 ——《警世通言·卷四十》        译文:作为一个有学识有理想的男子,如果不施展自己的志向,成就一番事业,就枉费生为一个人。背景        本次移动应用的开发主要目的是为智能家居开发一个运行在手机的客户端,同时也

iOS使用Aspects做简单热修复原理

我们都知道苹果对 Hotfix 抓得比较严,强大好用的 JSPatch 也成为了过去式。但即使测试地再细致,也难保线上 App 不出问题,小问题还能忍忍,大问题就得重新走发布流程,然后等待审核通过,等待用户升级,周期长且麻烦。如果有一种方式相对比较安全,不需要 JSPatch 那么完善,但也足够应付一般场景,使用起来还比较轻量就好了,这也是本文要探讨的主题。 要达到这个目的,Native 层只要透

RecyclerView缓存复用原理

RecyclerView缓存复用机制 来到RecyclerView的Adapter代码中: @NonNull @Override public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view = LayoutInflater.from(c

44 道 JS 难题,做对一半就是高手

1. parseInt 遇上 map ["1", "2", "3"].map(parseInt) // A. ["1", "2", "3"] // B. [1, 2, 3] // C. [0, 1, 2] // D. other 答案是D。实际上返回的结果是 [1, NaN, NaN] ,因为 parseInt 函数只需要两个参数 parseInt(value, radix) ,而 map 的

Apple M2 macOS Flutter环境搭建记录

1.安装 Rosetta 2 环境 sudo softwareupdate --install-rosetta --agree-to-license 2.下载Flutter SDK flutter_macos_arm64_3.7.7-stable.zip 当然你也可以在这个文档中找到最新的安装包SDK,下载arm64版本即可。 当然,你也可以使用克隆的方式下载SDK。具体,根据个人喜好。 3.添

android hilt 坑位

之前和现在使用 之前 buildscript { ... dependencies { ... classpath 'com.google.dagger:hilt-android-gradle-plugin:2.28-alpha' } } ... apply plugin: 'kotlin-kapt' apply plugin: 'dagg