- 博客(98)
- 资源 (1)
- 收藏
- 关注
原创 达不到的视野
岁月又不饶人,一定年纪之后熬不了夜,喝不多酒,抽烟都咳嗽,咖啡又怕骨质疏松。少了这些陪伴,看书写作的空间更小了。阅读是与世界和贤达的沟通,写作是自我思考和精华的凝练,不知道若干年后,我们这些是故纸堆里的陈芝麻烂谷子,还是时下流行的说法“信息垃圾”,但若是不写作,他人眼中,你不过一片虚无。生而有涯,而知无涯。短短几十年,除去识文断字的积累和老眼昏聩的暮年,我们能拿来思考学习的攀登岁月,其实不多。可能穷其一生达不到那个视野,但总希望看到的东西比人生第一眼的要高远。
2025-06-05 09:36:20
446
原创 写作两年,我变的更加坦然
后来的事,我文章中提到了很多,因为在公司看到很多人,明明不喜欢现在的工作,却硬撑着去做,整日除了抱怨还是抱怨。而公司,也只是把员工当成了一颗螺丝钉而已,你好用的时候,多用你,不好用了,直接换掉就是了。我没有去考虑定位什么的,更没考虑运营,再说也不会。只不过我始终坚信一个逻辑:只要每天坚持读书和写作,不断完成输入和输出的闭环,那我整个人是在不断进步的,只要你是在不断完善自己,总会有适合你的机会。从最近半年AI的使用和我读的一些书上,都验证了我的设想,使用AI的时候,需要你有清晰的表达,才能得到想要的结果。
2025-06-05 09:36:12
687
原创 写文章,得有点儿原则
注重提升写作技巧和发展个人风格。这包括学习如何更有效地使用语言,例如选择合适的词汇、构建流畅的句子结构和创建引人入胜的开头。同时,我也在努力找到自己的声音,这意味着探索不同的叙述技巧、调整语调以适应不同的受众,以及尝试不同的写作格式和体裁。这个过程帮助我不仅在技术上提升了写作水平,还让我能够以更真实和个性化的方式表达自己的思想和感受。通过不断的实践、评估和调整,我在保持技术精准的同时,也渐渐塑造出独特的个人写作风格。
2025-06-04 09:27:40
543
原创 变得生疏起来能有多快
电脑生的像不是我的了,卡的不得了,不知道是因为放在那里没有用的原因,还是电脑真的老了的原因。我已经好长时间没有打开我的电脑了,今天打开电脑,啥啥啥都找不到,甚至连在那里连网都找不到。本来下面是有一行菜单栏的,里面可以直接点击网络链接。古人言,三天不练手生,三天不看眼生。整半天了,还在页面卡着呢!三五个月没有用电脑了吧?
2025-06-04 09:27:32
384
原创 写读后感的时候,可以适当地引用书中的内容吗?
引用书中的内容可以帮助读者更好地理解你所讨论的主题和人物,同时也可以展示你对原著的深入理解和阅读能力。总之,适当地引用书中的内容可以增强读后感的可信度和说服力,但需要注意引用的准确性、适度性、注明出处和合理性。写读后感时,适当地引用书中的内容是可以的,这样可以更好地支持你的观点和感受,增强文章的可信度和说服力。2.引用要适度:引用的内容应该与你的观点和感受密切相关,不要过多地引用无关的内容。4.引用要合理:引用的内容应该符合文章的逻辑和结构,不要出现突兀或不协调的情况。
2025-06-03 17:53:33
1646
1
原创 使用NMEA Tools生成GPS轨迹图
在现代科技快速发展的时代,GPS定位技术已经广泛应用于各种领域,如导航、物流、运动追踪等。为了获取和分析GPS数据,我们常常需要使用一些专业的工具。本文将详细介绍如何使用一款名为“NMEA Tools”的APK应用,结合GPSVisualizer网站,来生成GPS轨迹图。无论你是科研人员、户外运动爱好者,还是需要对GPS数据进行处理的专业人士,本文都将为你提供一份详尽的操作指南1 下载APK: 首先,你需要找到并下载“NMEA Tools”这款应用的APK文件。你可以在各大APK下载网站搜索到它,或者直接到
2025-06-03 17:53:14
2964
原创 Ubuntu修改Swap交换空间大小
安装Ubuntu系统时,选择了默认空间分配方案,Swap空间仅1G,而实际的物理内存有32G,分给Swap空间至少为内存的1倍,最好是内存值的2倍,系统相当卡顿,重做系统后,费力部署的环境怎么又需要重新部署,头痛!
2025-05-19 10:05:50
15299
原创 Android源码编译命令详解
知其然还需知其所以然,这样能更深层次的理解并记忆,才能与自身的知识体系建立强连接,或许还有意外收获,果然如此,接下来跟大家分享一下在研究上述几条指令含义的过程中,深入了解到的Android Build(编译)系统。编译系统正是以模块为单位进行编译,每个模块都有唯一的模块名,一个模块可以有依赖多个其他模块,模块间的依赖关系就是通过模块名来引用的。上述只是列举比较常用的指令,还有其他指令,而且不同的build编译系统,支持的指令可能会存在一些差异,当忘记这些编译指令,可以通过执行。
2025-05-05 10:02:50
6798
原创 MarkDown 输出表格的方法
默认对其在网页部分被粘贴到Word里后显示为:表格标题居中对齐,表格正文左对齐。MarkDown用来输出表格很简单,比Word手搓表格简单多了,而且方便修改。A列强制左对齐,B列强制右对齐,C列强制居中对齐,D列默认对齐。默认对齐在PC端网页显示为表格标题和内容都居左对齐。
2025-04-14 10:26:11
4597
原创 Android PMS缓存刷新机制优化:实现OTA升级后应用缓存更新
在Android设备的OTA(Over-The-Air)升级过程中,有时会遇到应用未能及时更新的问题。具体表现为,升级后新内置应用不出现,或者应用版本未发生变化,需要用户恢复出厂设置才能正常显示新版本。这种情况往往是由于系统缓存未得到正确刷新导致的。为了解决这个问题,本文提供了一种通过修改系统源代码来强制刷新缓存的方法。
2025-02-24 10:07:39
2111
原创 Android mk文件中‘TARGET_OUT‘的路径分析
TARGET_OUT:指向产品输出的根目录。:表示系统目录的名称,通常为system。因此,TARGET_OUT的最终路径是。这里,:指向产品输出的根目录。:表示当前编译的目标设备的名称。因此,的路径是TARGETPRODUCTOUTROOTTARGETPRODUCTOUTROOT。这里,指向了,即目标输出的根目录下的product目录。:指向目标输出的根目录。因此,的路径是。这里,的值取决于当前的构建类型。
2025-02-17 09:42:31
2803
原创 Android系统SELinux详解
SELinux是一种加强文件安全的一种策略,可以更好地保护我们的Android系统, 比如限制系统服务的访问权限、控制应用对数据和系统日志的访问等措施,这样就降低了恶意软件的影响,并且可以防止因代码存在的缺陷而产生的对系统安全的影响。从系统安全方面考虑,SELinux是保护神,但是从软件开发方面,SELinux就是一道牵绊,这是一把双刃剑。SELinux默认开启,即使获得了该系统的root权限,也只能向相关策略中指定的设备写入数据,从而更好地保护和限制系统服务,保障系统和数据的安全。......
2025-02-10 09:50:42
3765
原创 Android 13 取色引擎详解
例如:PixelLauncher的插件实现颜色动态变化,除了从Wallpaper中拿到颜色,还进行了二次加工,使其更符合Material Desgin的风格,这也是符合“Monet”主题系统 中的一部分,目前是没有开源的。所以在Android 13之前,无论是静态壁纸或是动态 壁纸,若想要其他模块能获取到壁纸颜色的话,需要壁纸提供方,在实现WallpaperService的Engine时,也一并实现onCompleteColors方法,然后在颜色变化时调用notifyColorsChanged。
2025-02-03 11:14:55
3195
1
原创 Android13源码下载和编译过程详解
作为Android开发者人人都应该有一份自己Android源码,这样我们就可以随时对自己有疑惑的地方通过亲手调试来加强理解。
2025-01-27 13:33:12
7323
1
原创 企业微信登录Foxmail邮箱详细指南
在日常工作中,许多企业选择使用企业微信作为主要的沟通工具,而企业微信邮箱则是其集成的邮件服务。然而,随着邮件数量的不断增加,你可能会遇到邮箱容量不足的问题,系统可能会提示“邮箱容量不足20%”,这时,将企业微信邮箱与Foxmail等第三方邮件客户端结合使用,可以大大提升邮件管理的便捷性和效率。
2025-01-20 09:40:58
12842
1
原创 Android系统定制APP开发_如何对应用进行系统签名
当项目开发需要使用系统级别权限或frame层某些api时,普通应用是无法使用的,需要在AndroidManifest中配置sharedUserId:AndroidManifest.xml中的android:sharedUserId=“android.uid.system”,代表的意思是和系统相同的uid,可以拥有修改系统时间,文件操作等权限。
2025-01-13 10:13:46
4853
原创 Android13实时刷新频率的实现代码
RefreshRateOverlay实际Layer显示刷新频率。初始化RefreshRateOverlay。设置->开发者选项->显示刷新频率。
2025-01-06 11:41:45
3254
3
原创 Android 13 深色主题切换流程解析
这里注意:在 ActivityThread.java 中有 performActivityConfigurationChanged() 和 performLaunchActivity() 两个方法,都可以更新资源主题,我个人认为一个是配置单独某个应用的,一个是配置全局的。persistNightMode() 方法简单,先看 UiModeManagerService#persistNightMode()学习笔记:Android小白,这位置网上没资料,通过自己打日志阅读代码走的流程,可能有理解错误的地方。
2024-12-30 10:44:55
3568
1
原创 Android13下拉状态栏QS面板的加载流程解析
很明显,调用 tunerService 里的 addTunabe() 方法,跟进去会发现,最终的是调用的 TunerServiceImpl 里面的 addTunabe() 方法。在这里,与Android 9.0及其以下版本实例化 QSTileHost类的方式不一样,这里是通dagger来实例化的。上述代码中第一次 tileList 为空,调用了 getDefaultSpecs(context) 获取字符串,该方法比较简单,这里就不做分析了。看到这里通过对应的字符串分别实例化了对应的 Tile。
2024-12-23 15:34:33
4614
1
原创 给QuickTime播放器添加快进x秒,快退x秒
苹果自带的是一款功能强大的媒体播放器,但在日常使用中,我们可能会发现它缺少了一个非常实用的功能:即通过方向键实现快进/快退。这一功能在大多数播放器中都是标配,但在QuickTime Player中却未能直接提供。为了满足这一需求,我们可以通过一些额外的设置和脚本编写,来为QuickTime Player增添这一便捷功能。
2024-12-16 09:43:30
3614
1
原创 深入解析Android OTA升级中的版本号管理与build.prop文件生成机制
这个中间产物文件位于out/target/product/XXX/obj/PACKAGING/system_build_prop_intermediates/目录下(在Android T及更高版本中,路径可能略有不同,如out/target/product/XXX/obj/ETC/system_build_prop_intermediates/)。为了深入探究build.prop文件的生成机制,我们在build/目录下进行了广泛的搜索,特别是针对ro.build.display.id这一关键属性。
2024-12-02 10:07:12
2182
原创 Windows 11 右键菜单恢复指南
右键菜单是电脑操作系统中一个非常实用的功能,它允许用户快速执行多种操作,如复制、粘贴、删除和重命名等。然而,在Windows 11(Win11)中,一些常用的右键选项可能被隐藏,给用户带来不便。
2024-11-25 09:47:00
9658
1
原创 Android源码编译加速:Ninja工具详解与构建系统解析
随着Android操作系统的不断进化,其版本更迭日益频繁,尤其是Android 10与Android 11的源码编译过程,开发者们面临了一个显著的问题:单模块编译时间的冗长。通常情况下,完成一次单模块的编译需要耗费半个小时甚至更长时间,这主要归因于编译过程中需要重新加载全部mk文件,并经由这一系列复杂的步骤生成ninja编译文件,而这一预处理阶段异常缓慢,相比之下,实际的编译过程则显得相当迅速。为了应对这一挑战,Google引入了ninja这一高效的编译工具,它极大地缩短了编译时间。
2024-11-18 09:42:31
2744
原创 Android13 默认开启冻结进程
Google 原生系统在 Android 11 及更高版本中引入了 CACHE 应用的 CPU 冻结功能。当应用进入后台且无活动状态时,系统会经过一段时间的状态判断,将该应用的进程 ID 迁移至冻结的 cgroup 节点,实现 CACHE 应用的冻结。这一机制旨在减少后台活跃缓存应用所占用的 CPU 资源,进而达到节省电量的效果。而当应用重新回到前台时,系统会迅速解冻该进程,确保应用的快速启动。
2024-11-11 09:49:25
2985
原创 Android13 修改设备的density(dpi)
DPI,全称Dots Per Inch,是一个衡量屏幕密度的关键指标。其中,Inch(英寸)作为物理单位,在任何设备上的大小都是恒定不变的。因此,DPI具体指的是在一英寸的物理长度内所能容纳的像素点(Dot)数量。例如,160DPI的屏幕意味着在一英寸的长度内包含160个像素点,而320DPI的屏幕则表明一英寸内含有320个像素点。由此可见,像素点的大小并不是固定的,而是随着DPI值的增加而减小。在Android设备中,DPI被用来表示屏幕的密度(Density)。
2024-11-04 09:44:37
3199
原创 Android13 通过OTA升级更新系统默认设置
在进行系统的OTA(Over-The-Air)升级过程中,如果需要对系统默认设置进行更改,以确保升级后的系统能够应用新的默认配置,那么需要执行一系列关键步骤。
2024-10-28 00:02:24
2762
原创 Android 10.0 截屏流程
通常未通过特殊定制的 Android 系统,截屏都是经过同时按住音量下键和电源键来截屏。本篇文章就只讨论使用这些特殊按键来进行截屏。这里我们就要明白事件是在哪里进行分发拦截的。通过源码的分析,我们发现是在PhoneWindowManager.java 中。
2024-10-21 10:02:56
4806
原创 Android 10.0 滑动解锁流程
滑动解锁相对于来说逻辑还是简单的,说白了就是对事件的处理,然后做一些事。这里主要从锁屏的界面Layout结构、touchEvent事件分发、解锁动作逻辑几个方面进行源码的分析。
2024-10-14 09:34:06
5390
原创 Android10源码刷入Pixel2以及整合GMS
名称作用ramdisk 为内存文件系统,是一个最小型文件系统, 在内核启动的时候会将其作为根文件系统进行挂,文件实际为 gzip 文件,可以直接解压boot.imgboot.img 包含内 Linux 内核镜像 zImage 和根文件系统 ramdisk 文件,镜像基本构成为:头部,内核,ramdisk 镜像dtbo.imgdtb overlay, 叠加 DT。由原始设计制造商 (ODM)/原始设备制造商 (OEM) 提供的设备专用配置system.img。
2024-10-07 09:18:50
5290
1
原创 Android资源翻译工具教程
1.打开String Translation Tool (STT),点击界面上的“Select Android Project”按钮2.在弹出的文件选择对话框中,浏览并选中您希望进行翻译的Android项目路径3.等待工具扫描项目资源文件,这可能需要一些时间,具体取决于文件大小。扫描完成后,选择您希望翻译的资源文件,并点击“Start Export”按钮。工具将在指定目录下生成一个名为“strings.xlsx”的Excel文件,该文件包含了所有待翻译的字符串。
2024-09-30 09:11:41
1514
原创 Android14 屏蔽ANR和Crash弹窗
Android系统在应用发生Crash/ANR的时候,总会弹出一个提示对话框,但是现在部分客户不想要这样的对话框,要求移除。
2024-09-23 09:41:30
2830
原创 Android13 屏蔽ANR和Crash弹窗
Android系统在应用发生Crash/ANR的时候,总会弹出一个提示对话框,但是现在部分客户不想要这样的对话框,要求移除。
2024-09-16 13:09:50
3126
原创 Android13 动态控制状态栏和导航栏
在Android系统中,状态栏(StatusBar)、导航栏(NavigationBar)以及下拉菜单(通常称为Notification Shade或Quick Settings Panel)构成了用户界面不可或缺的三个元素,它们共同为用户提供了丰富的信息显示与便捷的交互体验。具体而言,状态栏实时展示着时间、电池电量、信号强度等关键信息;导航栏则集成了如返回、主页及多任务管理等基础操作按钮;而下拉菜单则让用户能够迅速访问快速设置项及通知详情。
2024-09-02 09:52:31
2662
1
原创 Android 10.0 状态栏系统图标显示分析
SystemUI中StatusBar的图标控制器实现类为StatusBarIconControllerImpl,其继承了StatusBarIconController的接口,用于跟踪所有图标的状态,并将对应的状态发送给注册的图标管理器(IconManagers)。首先设置WiFi的状态信息,遍历mIconGroups分别执行StatusBarIconController接口中静态类IconManager中的onIconAdded()和onSetIconHolder()的回调。
2024-08-26 09:52:20
5531
原创 Android10.0 人脸解锁流程分析
人脸解锁即用户通过注视设备的正面方便地解锁手机或平板。Android 10 为支持人脸解锁的设备在人脸认证期间添加了一个新的可以安全处理相机帧、保持隐私与安全的人脸认证栈的支持,也为安全合规地启用集成交易的应用(网上银行或其他服务)提供了一种容易实现的方式。Android 原生的人脸认证栈在 Android 10 是一种新的实现,与 Android P 不一样了。
2024-08-19 13:34:20
7232
3
原创 Android10.0 最近任务Recents功能分析
在Android10.0上,Recents功能分布在SystemUI和Launcher3里面集成.
2024-08-12 10:14:35
6667
原创 android10.0(Q) MTK 6765 user版本打开root权限
相比较 Android8.1、9.0 而言,Android10.0 版本 的 root变得相当麻烦,10.0 中引入了动态分区机制,同样的要想完全 adb root,需要 fastboot 解锁,然后关闭 verity 才能 adb remount 成功。我尝试和之前一样修改 fstab.in.mt6765 中的 ro 和 rw 初始值,容易导致无法正常开机,在这耗费了很长时间,就暂时先跳过吧,apk root 是 ok的。
2024-08-05 09:42:39
5325
原创 Android 10.0 Launcher 启动流程
在前面SystemUI启动流程中说到,在SystemServer中会去启动各种系统服务,这里的launcher也是启动的其中一个服务ActivityManagerService去启动的。在android10之前,系统四大组件的启动都是在ActivityManagerService中,在android10中,单独抽出了一个ActivityTaskManagerService,主要负责Activity的管理和调度。
2024-07-29 09:34:21
3931
原创 Android 10.0 Settings 加载流程
Settings的主Activity实质实现是在SettingsHomepageActivity.java内;Settings的主界面设置item的显示是在fragment上,fragment为TopLevelSettings.java,加载显示的布局为top_level_settings.xml;Settings主界面设置项item的加载显示主要分为两部分,一部分是xml定义的静态加载,xml为top_level_settings.xml;一部分是DashboardCategory来获取动态加载。
2024-07-22 09:50:38
4388
TranslationTools-v3.1511.01
2024-09-25
将密钥/证书导入现有Java密钥存储库的shell脚本
2023-02-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人