相关分享
Android|使用阿里云推流 SDK 实现双路推流不同画面
想知道如何在 Android 中通过阿里云 SDK 实现双路推流不同画面?本文介绍了一个巧妙的解决方案,虽然阿里云 SDK 不支持原生多路推流,但通过跨进程调用,实现了同时推送不同区域的画面,适用于直播和录播场景的分离展示。开发者不容错过的实战分享,赶快阅读!
Android|WebView 禁止长按,限制非白名单域名的跳转层级
本文探讨了如何在Android应用中通过WebView限制网页内容访问。作者介绍了通过WebView的JavaScript接口和URL拦截机制来控制用户访问的具体方法,包括如何过滤不需要的URL请求和增强内容安全性。这些技术可以帮助开发者有效地管理WebView中的内容,防止加载不安全的页面或执行恶意代码。
以非阻塞方式执行一个函数
用过 skynet 的应该都碰到过:当我们在服务中不小心调用了一个长时间运行而不返回的 C 函数,会独占一个工作线程。同时,这个被阻塞的服务也无法处理新的消息。一旦这种情况发生,看似是无解的。我们通常认为,是设计问题导致了这种情况发生。skynet 的框架在监测到这种情况发生时,会输出 maybe in an endless loop 。
如果是 Lua 函数产生的死循环,可以通过发送 signal 打断正在运行运行的 Lua 虚拟机,但如果是陷入 C 函数中,只能事后追查 bug 了。
那么,如果我原本就预期一段 C 代码会运行很长时间,有没有可能从底层支持以非阻塞方式运行这段代码呢?即,在这段代码运行期间,该服务还可以接收并处理新的消息?
深入 Android 可信应用漏洞挖掘
重点介绍了主流厂商的TEE环境中的TA实现以及常见的攻击面并分享了一些针对TA做安全研究的技巧与方法,比如如何尽可能快速的拥有一台具备Root权限的手机用于研究与测试。同时还介绍了如何实现对TA进行模拟以及使用到的Fuzzing技术和部分调优策略。
Android|集成 slf4j + logback 作为日志框架
最近在做一个 Android APP 的日志改造,我搜了一下「Android 日志框架」,大多网友推荐的是 logger、timber、xLog 等等,看着也不错。不过出于几年后端开发的经验和习惯,我进一步了解,发现熟悉的 log4j 和 logback 在 Android 上也有人做过适配,所以最终决定使用 slf4j + logback,以在前后端开发中取得一致的体验。
关于gradle中plugins依赖未走私服导致编译失败的原因探析
我们的项目标配使用gradle进行编译,我们也配置了nexus作为私服,理论上来说,不应该再会出现因包依赖的原因导致编译失败的情况,但是这个问题仍旧会偶尔发生,我解决过一两次,只看到通常失败的编译都是在开头的时候去 plugins.gradle.org 拉包的情况,当时将该问题存疑,本文特来探析一下导致这个问题的根因。
Android 模拟器实现 hosts 修改
有时候我们需要使用 Android 模拟器来 绑定一下 hosts 来实现功能的开发与验证,刚好最近遇到了这样的需求,处理完成,简单记录一下。
Robust 2.0:支持Android R8的升级版热修复框架
2016年,我们对美团Android热更新方案Robust的技术原理做了详细介绍。近几年,Google 推出了新的代码优化混淆工具R8,Android 热修复补丁制作依赖二次构建包和线上包对比,需要对Proguard切换到R8提前进行适配和改造,本文分享 Robust 在适配 R8 以及优化改进中的一些思路和经验,希望能对大家有所帮助或者启发。
iptables 在 Android 抓包中的妙用
昨天在测试一个 Android APK 的时候发现使用 WiFi 的 HTTP 代理无法抓到包,在代理的日志中没有发现任何 SSL Alert,因此可以判断不是证书问题;另外 APP 本身仍可以正常收发数据,这说明代理设置被应用绕过了。
根据我们前一篇文章(终端应用安全之网络流量分析)中所介绍的,遇到这种情况时就可以使用路由抓包方法,确保接管所有流量。但是因为端午放假被封印在家,且用于抓包的树莓派放在了公司,因此只有另谋他路。
本来接着考虑装个 DroidProxy 去试一下,但突然间灵光一闪,为什么不直接用 iptables 去修改流量呢?于是,就有了这篇小记。
可信执行环境之AMD内存加密技术概述
本文将简单介绍主流可信执行环境技术之一的AMD内存加密技术,简述其技术架构、原理与应用场景。

讨论 · 1 条
PRE
在很久之前写过一篇Android中AsyncTask的依赖执行用法,说得比较乱,也没有用代码来明确说明,最近改coolhosts的代码时,发现这个写法真的太好用了,在添加功能和删除功能的时候,代码改动很少。
这里再利用CoolHosts的代码(主要看coolhosts.java即可)详细解释一下。
功能需求
多个多线程任务之间有依赖关系,用线程等待太丑陋,若采用线程结束自动调用下一个任务则可能在功能修改的时候任务量巨大。