移动开发
Android Handler之同步屏障机制(sync barrier)
Handler Message种类
Handler的Messgae种类分为三种:
普通消息
异步消息
屏障消息
其中普通消息又称为同步消息,我们平时发的消息基本都是同步消息,在这里不做讨论。
异步消息
通常我们使用Handler想消息队列中添加的Message都是同步的,如果我们想要添加一个异步的Message,有以下两种方式:
1、Handler的构造方法有个async参数,默认的构造方法此参数
Android productFlavors 实现多项目打包
最近接到产品一个需求,需要将现有工程打一个新的apk出来,要给到新客户使用,需要替换appIcon, appName, appId以及切换新的api接口需要切换新的地址。
场景大概如下图:
使用场景
二话不说,直接上代码
第一步:添加productFlavors配置
打开项目app工程的build.gradle文件,在android {}标签里面添加下面代码
productFlavo
mac中使用QuickTime Player看了移动硬盘里的视频,如何清除记录?
mac的QuickTime Player有一个bug,就是用它看完移动硬盘中的视频之后,播放记录(也就是右击QuickTime Player的最近使用项目)没有办法清除。我们先来复现一下问题:
移动硬盘中的视频
我们双击打开这个移动硬盘里的电影进行播放:
播放
当我们关掉电影后,右击看一下QuickTime Player的记录:
记录
这时候如果我们正
Android 无侵入式数据采集:从手动埋点到字节码插桩的演进之路
文章目录
一、痛点:为什么我们渴望“无侵入”?
二、核心原理:AOP 与字节码插桩
1. 工作流程详解
2. 为何选择编译期插桩?
三、实战:如何自动采集常见事件?
1. 页面浏览量(PV/UV)自动采集
1. 目标
2. 技术挑战
3. ASM 实现思路
Flutter for OpenHarmony: Flutter 三方库 cross_file 为鸿蒙多端提供统一的文件抽象接口(跨平台文件处理基石)
欢迎加入开源鸿蒙跨平台社区:#
前言在 OpenHarmony 应用开发中,文件操作是一个极其常见的需求(如上传图片、读取配置、保存日志)。然而,由于 Flutter 运行在多个平台上,文件在各个环境的表现形式差异巨大:
在鸿蒙/Android/iOS 上,文件是真实的磁盘路径ÿ
Promise 对象
Promise 对象是一种连接生产者与消费者的特殊 JS 对象, 类似"订阅列表".
let promise = new Promise(
// 参数是执行器 executor
function(resolve, reject) {
// 扮演生产者的角色 通常是异步执行某些操作
// 生产者必须调用 resolve 或者 reject
});
// promi
关于iOS,iPhone手机,SideStore签名掉签,重新二次自签应用的解决方法,签名了应用还是无法打开措施解决
关于 SideStore 的签名,二次签名,签名掉签,签名了应用还是无法打开措施解决
场景:使用SideStore 忘记签名,签名过期
场景复发:由于没有WIFI无法签名,前13小时签名无法签上,签名失败错误,忘记签名
目的:保留数据二次签名
13.优化 - 线程监控(matrix)
本文来分析下matrix对于线程的监控,matrix对于线程的监控主要 hook pthread 的pthread_create pthread_detach pthread_join pthread_setname_np 几个方法。
原理
先来看下为什么 hook pthread 的几个方法就可以监控到线程。
一般的 java 线程写法
new Thread(new Runable{
