
Framework
文章平均质量分 90
Framework 探究
野火少年
1)8年智能语音、IOT 产品开发经验,熟悉物联网平台、智慧安防、酒店客控系统
2)能够独立完成后端服务器开发、熟悉 Linux 系统、Android 系统
3)3年研发总监管理经验 1年Framework层开发经验 10年Android应用开发经验
4)从事10年智能硬件相关产品开发:基于RK、全志、MTK 平台开发;主导各种类型服务、教育、安防机器人产品、物联网网关中控产品、背景音乐KTV娱乐产品、故事机平板、广告机、微投投影、各种商显、校话机等智能硬件产品。
5)物联网平台熟悉 米家、涂鸦系平台产品;熟悉中控智能家居产品。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MTK-Android12-13 USB模式开机默认
默认修改USB 模式的方案,前提还是得自己有一定的相关基础,可以网上了解,不然修改起来模棱两可有了一定的USB相关基础,在实际实现需求阶段,看源码、分析源码 见名知意的,有自己的思路了。这里我们切实关注了UsbDeviceManager 针对 USB 模式开机自启的模式设置相关源码,相关其它业务这里暂不分析,后续再说。原创 2025-06-16 19:25:45 · 717 阅读 · 0 评论 -
MTK-USB模式动态设置
UsbManager 源码位置查看FUNCTION_MTP 、 FUNCTION_RNDIS 、FUNCTION_MIDI、FUNCTION_PTP、FUNCTION_NONE 是如何定义的。找到===》@SystemApi@SystemApi@SystemApi@SystemApi@SystemApi他们是系统的API,居然又是通过GadgeFunction 类定义的。原创 2025-06-11 18:55:03 · 1008 阅读 · 0 评论 -
MTK Android12-13 App卸载加锁
多分析源码,看流程看业务MTK Android12 安装app添加密码锁限制PMS 本身功能比较多,代码量大,多打日志看流程。用 IDE 开发工具查看源码,提高代码阅读效率。原创 2025-04-28 12:16:20 · 740 阅读 · 0 评论 -
MTK-Android12 13 屏蔽掉Viewing full screen
一个简单的需求,知道修改方案,解决方法最重要。原创 2025-04-16 14:47:30 · 1578 阅读 · 3 评论 -
MTK Android12-13 -Intent Filter Verification Service 停止运行
分析源码、参考资料解决 Intent Filter Verification Service 停止运行 错误这里其实其实延伸来看就是屏蔽部分包名ANR、崩溃弹框的解决方案。原创 2025-04-15 00:15:00 · 1757 阅读 · 1 评论 -
MTK-Android12-13 屏幕永不休眠功能实现
这里重点是PMS 在息屏时间上面的一个功能分析关联到PMS 里面实现的另外一个功能 屏保功能 都是跟息屏相关,部分逻辑业务关联的对于默认息屏时间,这里属于新增息屏时间选项的一个功能。如果需要新增其它息屏时间选项,只需要在修改息屏时间源即可 就 不需要修改PMS了。原创 2025-04-08 12:18:32 · 1624 阅读 · 0 评论 -
MTK-GMS版本国内WIFI受限问题
MTK-GMS版本国内WIFI受限问题解决。原创 2025-04-03 23:12:38 · 592 阅读 · 0 评论 -
Android 动态设置默认Launcher(默认应用 电话-短信-浏览器-主屏幕应用))
所以,整套流程分析下来,设置默认App,这里HomeLauncher 举例,核心逻辑就是给包名一个role 权限,然后写入到文件,最后同步一次,通知系统。如上分析了一整套默认Launcher 的代码逻辑业务,同理对于默认浏览器、短信、打电话等完全适用。通过反射实现 想要的功能,反射RoleManager 类,的addRoleHolderAsUser 方法比较合适,而且有回调。整个流程里面发现其它类的调用并不合适。原创 2025-03-27 19:15:39 · 1264 阅读 · 0 评论 -
MTK Android12-Android13 设置系统默认语言
上面看到PRODUCT_LOCALES 引用地方, 赋值了PRODUCT_DEFAULT_LOCALE 变量,其实调用了方法get-default-product-locale 传递了参数 PRODUCT_LOCALES,这里就是 变量 PRODUCT_DEFAULT_LOCALE 的定义接下来其实就要继续看 变量PRODUCT_DEFAULT_LOCALE 在哪里引用 已经 get-default-product-locale 方法说明。原创 2025-03-25 18:34:49 · 1139 阅读 · 0 评论 -
MTK平台 Android12-Android13 默认搜狗输入法
常用客需功能,仅供参考,在MTK平台上面的实践,在RK平台上面只有内置方式不一致而已,默认方式和授权其实一样的。这里只是搜狗输入法的默认方式一次探讨,其它输入法默认 思路完全一样。每种输入法有自己优劣,具体场景具体客需具体对待。原创 2025-03-25 19:00:00 · 1136 阅读 · 0 评论 -
Android11-12-13 替换系统默认壁纸
针对客户定制的壁纸,简要总结一下,梳理知识。默认壁纸替换,结合之前壁纸设置都是基本知识点。关联的开机动画其实都是相关的基本知识,常见的客需。原创 2025-03-24 20:58:32 · 732 阅读 · 0 评论 -
Android 静态壁纸设置实现方案
这里实现了静态壁纸设置的方法,就是一个反射或者api 调用。实际 逻辑比较简单的这里只是从系统app WallpaperPicker,通过界面,反推实现设置静态壁纸的逻辑和分析代码层面的流程和业务。实际上 WallpaperPicker App有很多设计思想和架构设计,这里暂不深究。如果客户定制,需要动态壁纸功能。这里暂不分析,后续有机会实现下,暂不提供解决方案。原创 2025-03-24 20:09:20 · 932 阅读 · 0 评论 -
MTK Android12 安装app添加密码锁限制
上面我们从整体大概流程分析下来,已经分析到了 方法:processInstallRequestsAsync ,准备安装了。在回过头来看看,我们的需求实现方法不就是在这个方法里面,开了一个dialog 密码输入框吗,如果密码输入成功,则进行上面processInstallRequestsAsync 里面的四步方法:doPreInstall ->installPackagesTracedLI->doPostInstall->restoreAndPostInstall。原创 2025-03-13 02:18:35 · 1037 阅读 · 0 评论 -
MTK-Android13-包安装器PackageInstaller 静默安装实现
前两篇文章分析了PackagerInstaller 安装流程。后面空了再分析框架层PMS的处理以及在框架层面的少许拦截和加功能。如。原创 2025-02-21 10:13:34 · 1297 阅读 · 0 评论 -
Android13-包安装器PackageInstaller-之apk安装流程
PackageInstaller-之apk安装流程内容中,主要是包安装器PackageInstaller 相关内容。作为PMS安装apk之界面跳转的续篇。两篇文章规整起来就是完全分析完了。当然,这里面还有权限相关操作只是一笔带过介绍了。主要分析了:PackageInstallerActivity InstallInstalling 两个源码的分析。涉及到安装确认弹框-权限弹框-安装中等待弹框-注册监听安装回调-安装session创建和提交到系统分析到了框架层了已经,到此结束。原创 2025-02-17 20:37:22 · 2795 阅读 · 0 评论 -
Android 屏保功能实现
PowerManagerService Power服务,本文注册启动关联DreamManagerService地方DreamManagerService 屏保服务:具体逻辑实现DreamManagerInternal 屏保功能抽象接口StartNowPreferenceController 设置里面立即启动屏保入口。原创 2024-12-19 01:32:29 · 1378 阅读 · 0 评论 -
MTK 配置文件梳理
当作开发笔记,常用。不同平台不同Android版本配置文件位置可能不一样,但是配置逻辑基本一致,字段可能都一致。不断更新,方便自己熟悉并实际解决项目问题。原创 2024-12-12 23:58:35 · 1277 阅读 · 0 评论 -
MTK修改配置更改产品类型ro.build.characteristics
用的手机方案新品来做table类或者大屏的设备类产品、平板类来做大屏设备类产品。明显与实际情况不相符。icon 其实还好,但是文字描述不能那么现实的,那么如何解决文字显示和实际产品类型一致。更改系统属性 ro.build.characteristics 值,默认为default, 实际加载会回退到phone,可选项还有 table、device。更改产品设备属性 table-phone-device,使产品UI显示跟产品实际类型保持一致,整个Android 无论从底层到上层都是按照正确的类型加载。原创 2024-12-12 23:35:00 · 727 阅读 · 0 评论 -
Framework 层Settings.System, Settings.Secure和Settings.Global存储及应用
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考。原创 2024-12-11 23:59:26 · 1236 阅读 · 0 评论 -
Android13开机向导
前面一篇文章在Android12 基础上已经分析了开机向导定制方案,这里再以实际案例在Android13 上面从另外一个思路来实现需求编译源码,SIM界面 真的跳过了,实现了需求;紧急呼叫也没有了,实现了需求。这种方法区别于上一篇官网方法,其实是从底层触发来解决问题,这个并不是谷歌提倡的,但是能够解决实际问题,且解决方便。再次强调,不同平台不同安卓版本不同产品方案实现方法可能不一样,但是思路一样。原创 2024-12-11 23:50:21 · 1693 阅读 · 0 评论 -
MTK Android12 开机向导
文章目录需求-场景参考资料:博客资料官网参考资料:参考资料注意点附件资料文件说明:推荐工具:配置定制的 声明叠加层 APK需求实现替换字符、删减开机向导界面、添加开机向导界面删除部分界面需求,官网说明如下更新部分字符串、图片资源,官网说明如下遇到问题具体实现配置系统编译环境总结需求-场景开机向导定制备注:开机向导是一个单独的apk 无源码,在单独apk 基础上,修改apk 实现开机向导定制。参考资料:博客资料如果您有开机向导的需求,建议看一下相关开机向导定制例子,介绍,这一块内容本身对外资料很原创 2024-12-10 22:30:53 · 1165 阅读 · 1 评论 -
模拟Power长按事件实现应用调用
回到需求实现,分析了从PhoneWindowManager 按键手势识别长按->要么Framework层弹框要么SystemUI里面弹框。流程已分析,业务还是蛮清楚的。要模拟物理按键长按, 方法一中在framework 里面模拟,你会发现 com/android/server/policy 的policy,受保护的隐私目录,不对外提供的。所以 无法实现的。当然可以在Framework 层,模拟对话框。原创 2024-12-06 23:06:13 · 867 阅读 · 0 评论 -
系统实现屏幕横竖屏切换
机器默认横屏或者竖屏显示 -强制横竖屏显示。原创 2024-11-29 19:12:46 · 2195 阅读 · 1 评论 -
系统手势导航-虚拟导航切换
Android11 开始支持了手势操作,如大家目前手机基本上都是手势操作形式;早期都是物理按键或者虚拟按键的操作。原创 2024-11-29 18:57:26 · 1414 阅读 · 0 评论 -
串口在系统framework 中的应用
文章目录一)场景需求二)问题三)本文内容讲解四)应用端实现核心思想三点设置串口参数开启线程,接收串口数据发送串口数据实际应用五)系统端framework层对接串口添加串口工具类电池服务里面实现 串口逻辑总结一)场景需求提示: 如果是手机方案,标准的电池电量一套,比如大家最常见的手机方案,采用的就是最标准的一套架构实现。Android电池系统架构 电池 安卓二)问题如果是标准方案,按照标准流程,电池系统从驱动到应用层一层层传递,但是 如果电池厂商特别是定制的电池方案,电量和充电状态并不是比原创 2024-11-28 20:56:48 · 1035 阅读 · 0 评论 -
RK3568 uboot 编译报错问题
其实刚开始并不知道是什么原因,后面在大佬的协助下,分析的就是root用户编译失败后,残留了配置和编译的文件,切换到user用户编译后,又没有权限打开和删除之前遗留的文件。自己在开发过程中,自己的服务器,自己的源码,自己的开发版本,平常在root权限下操作各种内容,一不小心Root权限下编译了源码。user用户下 再次进行编译,如果出现各种权限报错后再切换到user 用户,然后 chmod 777 授权对应的文件。再切换到user用户 进行编译,如果遇到需要授权和删除的文件,按照错误提示解决几次即可。原创 2024-11-28 19:12:51 · 466 阅读 · 0 评论 -
定时开关机功能实现
针对MTK方案实现定时开关机功能,并对外释放接口定时开关机功能和闹铃功能API上面都用到了AlarmManager.java,对于定时任务有一定的参考意义。原创 2024-10-22 00:22:50 · 847 阅读 · 0 评论 -
PMS安装apk之界面跳转
与ActivityManager和AMS的关系类似,PMS也有一个对应的管理类PackageManager,用于向应用程序进程提供一些功能。PackageManager是一个抽象类,它的具体实现类为ApplicationPackageManager,ApplicationPackageManager中的方法会通过IPackageManager与AMS进行进程间通信,因此PackageManager所提供的功能最终是由PMS来实现的,这么设计的主要用意是为了避免系统服务PMS直接被访问。原创 2024-10-12 01:20:57 · 1157 阅读 · 0 评论 -
MTK 更换Uboot Logo Kernel Logo 开机动画
我们上面修改的路径文件夹是fhd,修改的uboot、kernel logo 是fhd_kernel.bmp 为什么是这个名字,换个项目换个产品 需要怎么配置。MTK 平台,定制产品、从一个产品换到另外一个客户产品,对应的客户画像是需要更换的。切记 只针对MTK 平台,其它平台比如RK 、全志产品 不是这样做的,路径不一样,思路一样的。替换里面的 Uboot 和 Kernel logo,fhd目录。所以对应三个方面的画面,需要更改替换,是一个非常见的需求。首先看配置的是哪种分辨率的logo,原创 2024-10-11 23:18:33 · 768 阅读 · 0 评论 -
MTK内置第三方APP-卸载不可卸载-签名问题
其中 meituxiuxiu 就是 美图秀秀app 的一个目录名,这个目录对应的就是 vendor\mediatek\proprietary\packages\3rd-party 目录下的app 文件夹。.so 库,根据平台放置对应的库文件,比如 在当前目录下创建 lib/arm64-v8a 文件夹,然后将apk 中的.so 库,取出来放置进去。表明使用的是apk原本的签名,记住这里的PRESIGNED需要大写。配置apk 签名,apk 是用自己的签名还是需要用系统签名。编译,刷机,效果如下。原创 2024-10-10 23:21:55 · 991 阅读 · 0 评论 -
MTK免USB线实现WIFI Adb连接
部分产品是把USB接口放到机器里面,不会暴漏出来。这样就给实际调试带来了极大的不便利。如果是MTK产品,要调试就必须拆机了init.rc 文件添加设置adb tcp 端口默认一次init.rc 知识了解。原创 2024-10-10 22:58:19 · 783 阅读 · 0 评论 -
Android源码管理
提升源码管理能力,提升底层开发效率管理好源码。原创 2024-09-27 23:59:29 · 1219 阅读 · 0 评论 -
KeyCode及KeyCode分发机制
从大的方向将,物理按键始于外部输入,在Kernel 响应,再传递到Service或者View层消费,对于Kernel层、系统层暂不研究。总的来讲:系统响应KeyCode,这些KeyCode是外设作为输入源,KeyCode 键值就是Android一套标准的协议。比如物理按键操作之后,系统是如何分发、响应、处理、拦截呢?比如我们需要客制化一些物理按键功能,如何实现呢?这里给出谷歌官方KeyEvent 事件,里面总结了所有的KeyCode。声音音量也是一样的,在这个方法中进行了处理一次,再响应给View来处理。原创 2024-09-19 00:46:42 · 1532 阅读 · 0 评论 -
Android实现关机和重启功能
Android实现关机和重启的功能;反射调用原创 2024-09-16 01:26:52 · 2653 阅读 · 0 评论 -
Android生成系统签名文件jks
场景:我们很多应用需要用到系统签名,可以通过生成系统签名文件,在生成apk时使用这个签名,然后可以安装到机器中,不需要放在源码里编译,重新刷系统。系统apk,特别是定制方案,将apk生成后,还需要收到进行命令脚本用系统签名一次,再放到系统源码里面编译。太麻烦了。解决方案:生成.签名文件jks,直接放在AS里面,生成apk时候就已经是系统签名。这个时候直接install安装或者直接放到系...原创 2019-08-21 11:35:29 · 6401 阅读 · 0 评论 -
Android 亮度范围定制
最终通过日志打印,查看0-255 的亮度值,因为在brightnessIntToFloat 和 brightnessFloatToIntRange 中,我们设置了最小亮度65,也就是166,所以 我们编译固件,看日志打印就是166-255 的范围。比如:0-60% 亮度不变,那么我们把60%-100%的控制范围扩充到0%-100%,控制范围变大,控制区域保持一致。这里补充下:零时亮度,最终设置是需要走到如下 put 到系统里面取,才是真正的设置亮度,这个方法也是应用层设置亮度的方法呀。原创 2024-09-11 00:26:25 · 1761 阅读 · 0 评论 -
去除恢复出厂设置中UI文字显示
bootable/recovery 模块资源加载方式,映射到小系统对当前界面实现方式替换、隐藏文案是实现方式。原创 2024-09-09 23:19:48 · 592 阅读 · 0 评论 -
去掉开机正在启动,去掉开机黑屏问题
问题描述:1)开机动画播放不完整,第一次刷机启动能够播放完整,后面开机开机动画播放只有2秒左右2)开机动画播放完后在进入Launcher之前会有一个 "正在启动…"显示着3)开机动画播完后进入Launcher前有一个黑屏阶段或者白屏阶段。原创 2024-08-15 23:37:04 · 1118 阅读 · 0 评论