https://shawnlinboy.github.io/Shen LinShen Lin, aka shawnlinboy, a Developer/Vlogger/Tech unboxer/Variouser. 2024-01-30T10:56:54+08:00 Shen Lin https://shawnlinboy.github.io/ Jekyll © 2024 Shen Lin /assets/img/favicons/favicon.ico /assets/img/favicons/favicon-96x96.png FAQ about aBattery2023-09-06T00:00:00+08:00 2023-09-07T16:21:30+08:00 https://shawnlinboy.github.io/posts/abattery-faq/ Shen Lin Last update: 2023-09-07 00:18:19 Target version: 1.0.6 aBattery is a ready-to-use battery information viewing tool. It is so lightweight and straightforward, allowing for immediate use and departure, while continuously accepting user feedback and making incessant improvements. The information aBattery queries mainly comes from the battery-health related APIs introduced in Android 14. However... 使用 Cloudflare Workers 加速 Github 静态资源2023-08-25T00:00:00+08:00 2024-01-30T10:37:42+08:00 https://shawnlinboy.github.io/posts/using-cloudflare-speedup-github-assets/ Shen Lin 今天更新一篇文章,教大家如何利用 Cloudflare Workers 搭建一个 Github 图片资源的反代。 说是反代,其实说白了就是一个简单的 url 替换,让它走一遍 Cloudflare 的 CDN。另外,除了图片,理论上所有 raw.githubusercontent.com 开头的静态资源应该都没问题。 开始之前不得不再次感慨,Cloudflare 真的是互联网公司的大善人,这一切居然是免费的。 具体步骤 打开 Cloudflare 主页,进到你要使用的域名,点击左侧的 Workers & Pages, 然后右边 “Create Application” 然后在创建页面点击 “Create Worker” ,下一步。 取一个你喜欢的 Name,比如我直接叫 “img”,下面的代码保持默认,然后点击 “Deploy”(不用理会下方截图上 Nam... Privacy Policy2023-08-18T00:00:00+08:00 2023-09-07T00:26:54+08:00 https://shawnlinboy.github.io/posts/abattery-privacy-policy/ Shen Lin Privacy Policy Last update: 2023-08-18 Shen Lin built the aBattery app as a Free app. This SERVICE is provided by Shen Lin at no cost and is intended for use as is. This page is used to inform visitors regarding my policies with the collection, use, and disclosure of Personal Information if anyone decided to use my Service. If you choose to use my Service, then you agree to the collection a... Android Telephony 模块结构简析2022-07-26T00:00:00+08:00 2022-07-26T00:00:00+08:00 https://shawnlinboy.github.io/posts/a-simple-analyse-of-android-telephony-related-modules/ Shen Lin 本文永久链接:https://blog.linshen.me/posts/a-simple-analyse-of-android-telephony-related-modules 最近在公司被老大安排负责跟进通讯相关的一些问题,于是简单了解一下 Android 通讯相关的模块。 说实话,刚开始看的时候确实是一头雾水,因为设计的模块实在是太!多!了!要说多都还好,要命的是这些不同的模块还散落在 AOSP 的不同目录,如果不梳理记录一下,跳来跳去怎么都一头雾水,因此就有了这篇文章,我自己也好趁机梳理一下模块之间的联系。 本文基于 Android 12 源码,根据我自己的理解整理而来,如果有错误,欢迎评论区指出,毕竟这块我是新手,感谢。 主要结构 Android telephony 是一个典型的分层结构,其涉及的相关模块按照功能,从下到上,可大概分为四类: HAL 相关 ... 由 MTK 关机闹钟实现,浅析一种低侵入式修改 framework 方案2022-07-15T00:00:00+08:00 2022-07-15T00:00:00+08:00 https://shawnlinboy.github.io/posts/how-mediatek-modify-aosp-code/ Shen Lin 最近在修复一款 MTK 平台机器关机闹钟相关的 bug,简单了解了一下 MTK 关机闹钟的实现原理。发现相比于在 framework 里直接大动干戈,MTK 对框架的定制修改则采用了一种侵入性相对较小的方案,本文对这种方案进行了简单分析。 AlarmManger 实现关机闹钟 长期以来,AlarmManager 作为 Android 系统中掌管 Alarm 的组件,一直没有关机闹钟的原生实现。虽然站在 Google 的角度也能说得过去,毕竟不是所有的闹钟都需要在用户关机了之后再帮用户自动开机的。好在各家 SOC 厂商都会在交付给 OEM 的代码里加上各自的关机闹钟实现,原理大同小异,不在本文讨论范围。 Android 的系统服务,大部分由 XXXManager暴露给上层,并交由 XXXManagerService实现。在关机闹钟的需求中,主要涉及对如下几个类的修改: frame...