在 Android 上部署 Linux
2023-03-27
在 Android 上部署 Linux……好吧,我知道 Android 本身就是个 Linux。不要在意这些细节。 最近把旧手机当时钟用,发现它还有 TF 卡槽,想起何不在上面跑个 Linux,化身低功耗服务器呢,再搭个 Syncthing 私人云盘,岂不美哉(摊手)? …
分析和解决手机重启若干次后,虚拟按键、状态栏等失效的问题
2017-09-19
Android 有种特殊的 App 叫老化测试工具,一般包括若干次重启、存储读写、音频播放、视频播放等流程,是一个预装在手机的 APK,出厂时会去掉。 测试做老化测试挂机 24 小时后,手机概率性出现问题,现象主要包括** Home 键和 Recent 键不能用、无法下拉快捷设置和通知栏、锁屏失效、开发者模式无法打开**等。复现概率很低,每台重启 50 次,10 台中出现 0 ~ 3 台。诡异的是,我这边也会每天挂机,但一台都没有复现。 …
在 Android Java 核心库 libcore 中打印 Log
2017-08-30
Android Java 核心库中是无法直接使用 android.util.Log 的,添加后编译不通过,因为 framework 中的 Java API 依赖于 Java 核心库。 在 Android 7.0 之前,Java 核心库源码在libcore/luni/下,luni 代表 lang、util、net、io,是 Java 中最常见的包;Android 7.0 中,核心库在libcore/ojluni/下,oj 代表 OpenJDK。 …
Android 消息机制原理
2017-06-02
概述 Android 的 UI 控件不是线程安全的,因此规定访问 UI 必须在主线程(即 UI 线程)中进行。ViewRootImpl 的checkThread()方法对 UI 操作进行验证,如果在后台线程中访问 UI,程序就会抛出异常。 …