android framework项目开发案例-动态隐藏Launcher上图标2

安卓13大屏设备实战:如何彻底隐藏Launcher3的Hotseat(附避坑指南) 本文详细介绍了在安卓13大屏设备上彻底隐藏Launcher3的Hotseat及优化导航栏的实战方案。通过XML配置和动态控制两种方法,开发者可以灵活定制Launcher界面,提升用户体验。文章还提供了避坑指南和性能优化建议,帮助开发者高效完成定制开发。 阅读详情

上节课已经把代码写好了,可惜我们发现一点击就crash啦,因为CHANGE_COMPONENT_ENABLED_STATE权限需要系统权限才可以

2021-12-17 23:09:15.078 4198-4198/com.android.things.privateapplication1 E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.android.things.privateapplication1, PID: 4198
    java.lang.SecurityException: Attempt to change component state; pid=4198, uid=10064, component=com.panzq.applicationb/com.panzq.applicationb.TcpMainActivity
        at android.os.Parcel.readException(Parcel.java:2004)
        at android.os.Parcel.readException(Parcel.java:1950)
        at android.content.pm.IPackageManager$Stub$Proxy.setComponentEnabledSetting(IPackageManager.java:4732)
        at android.app.ApplicationPackageManager.setComponentEnabledSetting(ApplicationPackageManager.java:2276)
        at com.android.things.privateapplication1.MainActivity$1.onClick(MainActivity.java:51)
        at android.view.View.performClick(View.java:6294)
        at android.view.View$PerformClick.run(View.java:24770)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6494)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

怎么给与呢?
1、搞清楚这权限本身是什么保护程度
在这里插入图片描述
可以看出是平台签名或特权app级别的保护,即只要你是platform签名和priv-app就可以
2、授予权限
这里我们前面课程就已经学习过预制系统apk时候,其实是可以给指定签名的,这里我们只需要设置为platform签名既可以
在这里插入图片描述
这样就可以满足签名属于platform级别,就可以获取权限了
3、另一种方案是priv-app权限级别
这里priv-app,指的就是要预制到system/priv-app目录,原来我们是system/app,所以这里的话我们怎么实现预制到system/priv-app,其实很简单,只需要在mk加入一句话就可以
在这里插入图片描述
即加入:

LOCAL_PRIVILEGED_MODULE := true

这句就可以,但是大家注意哦,这里并没有完哦,我们还需要吧对应权限放入白名单里面,具体操作:

1 在frameworks/base/data/etc中的privapp-permissions-platform.xml进行一下我们的权限声明,这里我们可以参考其他应用是怎么声明的:
    <privapp-permissions package="com.android.things.privateapplication1">
        <permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
    </privapp-permissions>

到此就吧两种权限授予方法都给大家实战了一下,如果需要学习更多framework只是和视频可以b站关注:千里马学框架,购买课程最好加入422901085群里找千里马要优惠和答疑

课程答疑和新课信息:QQ交流群:422901085进行课程讨论,加群主qq享受 优惠
FrameWork入门课视频链接:https://edu.youkuaiyun.com/course/detail/30298
FrameWork实战课1视频链接:https://edu.youkuaiyun.com/course/detail/30275
FrameWork跨进程通信视频链接:https://edu.youkuaiyun.com/course/detail/35911
专题博客系列:
Android 8.1 zygote 启动过程源码
Android Framework实战视频–Zygote的fork进程篇
Android Framework实战视频–SystemServer启动篇
Android Framework实战视频–SystemServer启动FallbackHome篇
Android Framework实战视频–FallbackHome进程启动及Activity启动篇
Android Framework实战视频–FallbackHome结束启动Launcher篇
Android Framework实战视频–BootAnimation的启动源码分析(Android8.1)

Android Framework实战视频–init进程的bootanimation启动源码分析(补充Android 10部分的BootAnimation的启动源码分析)

Android Launcher3深度定制开发:从架构解析到实战优化 Android启动器(Launcher)是用户与移动设备交互的核心入口,其底层架构基于AOSP(Android开源项目)的Launcher3框架。理解其工作原理,涉及View系统、数据模型与手势处理等关键技术,是进行深度定制和性能优化的基础。通过定制Launcher,开发者不仅能打造差异化的用户体验,更能深入掌握系统级UI应用的设计与实现,提升Android开发综合能力。本文聚焦于Android 10/11版本的Launcher3,深入剖析其核心架构,并提供从环境搭建、UI/交互重塑到功能增强(如智能分类、 阅读详情

相关推荐

安卓13 Launcher3自定义实战:从修改网格布局到隐藏Hotseat的完整指南

本文详细介绍了安卓13 Launcher3的深度定制方法,包括网格布局修改和Hotseat隐藏的进阶实践。通过解析Launcher3核心架构、修改device_profiles.xml配置文件以及处理数据库缓存问题,开发者可以轻松实现个性化主页布局定制。文章还提供了常见问题的解决方案,帮助开发者避免常见陷阱。

weixin_26938645的博客 373

已解决java.lang.SecurityException异常的正确解决方法,亲测有效!!!

SecurityException的发生通常与Java安全管理器(Security Manager)有关。已解决java.lang.SecurityException异常的正确解决方法,亲测有效!!!

小明的Java问道之路 3万+

Android Launcher3深度定制指南:从源码解读到实战优化

Launcher作为Android系统的核心用户界面,其定制开发涉及系统框架与应用层的深度交互。理解其模块化架构与数据加载原理,是进行功能扩展与性能优化的基础。在Android 10/11版本中,手势导航集成、作用域存储适配等新特性,进一步提升了定制的技术价值。本文聚焦于Launcher3的深度定制,通过解析核心模块如CellLayout、InvariantDeviceProfile及QuickStep,并结合实战案例,系统阐述如何实现桌面网格调整、手势交互优化等定制需求,为ROM定制与系统开发提供工程实践

weixin_34268843的博客 391

Android Disable Package/Component 跳过app安装 禁用组件或是禁用APP 跳过安装某APP

转载声明.下文出自:https://blog.csdn.net/mingli198611/article/details/17269355/ 为什么要关闭组件? 在用到组件时,有时候我们可能暂时性的不使用组件,但又不想把组件kill掉,比如创建了一个broadcastReceiver广播监听器,用来想监听第一次开机启动后获得系统的许多相关信息,并保存在文件中,这样以后每次...

蚁人日记 4728

安卓深度仿效iPhone体验:从视觉交互到系统服务的完整方案

在移动操作系统领域,用户体验设计是衡量系统成熟度的关键指标。其核心原理在于通过统一的视觉语言、流畅的交互逻辑与细腻的动效反馈,构建直观且高效的人机交互闭环。这一设计哲学的技术价值在于提升用户的操作效率与情感认同,从而增强系统粘性。典型的应用场景包括提升设备日常使用的愉悦感、辅助交互设计师研究顶尖设计范式,以及为安卓ROM定制提供灵感。本文聚焦于**安卓系统深度定制**与**iOS交互逻辑复现**,通过分层解构的方法,详细阐述了如何利用启动器、主题引擎及系统配置工具,在安卓设备上实现从界面视觉、手势导航到系统

Liusuzhi19610221的博客 550

中兴B860AV1.1-T2免拆ADB刷机实现纯净安卓桌面

安卓机顶盒的系统定制化与权限控制,是智能终端自主权的核心议题。其底层依赖于Android调试桥(ADB)机制、Bootloader锁定策略及system分区挂载原理;技术价值在于绕过硬件改造风险,以软件层指令序列恢复用户对设备的完全控制权;典型应用场景包括广电IPTV盒子功能解耦、家庭轻量NAS前端部署、以及运营商预装广告清理;本文聚焦中兴B860AV1.1-T2机型,基于其晶晨AML905X平台特性,详解免拆ADB激活、工程模式触发、临时root提权与纯净桌面四层覆盖等关键实践路径。

weixin_33834628的博客 353

关于用setComponentEnabledSetting隐藏程序图标后,在别的应用无法打开问题

平台: 全志H5 背景: testApp测试完之后需要被禁用(setComponentEnabledSetting)掉,后门启动时,发送广播给testApp接收器,解禁重新打开。 原有方案: 底层监听到后门键,发广播给testApp广播,由testApp广播接收器来解禁(setComponentEnabledSetting)的testApp,然后启动testApp。 存在问...

看图的博客 1508

Kali Linux安卓渗透测试实战:从后门注入到远程控制

在移动安全领域,渗透测试是评估系统安全性的重要手段,其核心原理是通过模拟攻击者行为来发现潜在漏洞。Metasploit Framework作为自动化渗透测试平台,能够生成定制化载荷并建立远程会话,在安全研究中具有极高技术价值。结合社会工程学与漏洞利用,这类技术常被应用于授权安全测试、应用风险评估等场景。本文聚焦于安卓平台,详细解析如何利用Kali Linux环境,通过APK注入、载荷生成与会话管理等实战步骤,构建完整的远程控制攻击链,其中涉及**Meterpreter会话管理**与**权限提升**等关键环节

weixin_33726313的博客 590

Android禁用第三方应用

需要权限android.Manifest.permission.CHANGE_COMPONENT_ENABLED_STATE而这个权限是只有system app才能使用,所以app需要系统签名。非system app即便在Android Mainfest.xml中强制写上,安装时也部会写入/data/system/packages.xml启用第三方应用图标:PackageManager pm = ...

nicolelili1的专栏 6064

KANO分析模型

KANO分析模型的基本概念,目的意义,应用场景,实现方法和示例等

JasonH2021的博客 3066

Day01 Geant4学习

​ 用来记录粒子在每个step中的信息的,例如位置,能量,动量.例如,假设每一个粒子都有一个属于自己的id,会记录自己的轨迹状态信息就是track,当他发生反应时,就会产生新的id。​ 最终在新建的build文件夹中的vis.mac文件中设置,是自带的,如果有更高的需求可以自己去更改,但是一般都是写好的,设置好了图形界面的一些东西,呈现的自己建模的图形界面多大,需不需要网格什么的。从反应到结束的过程,其中也包括它产生的刺激粒子的反应到结束的过程,成为一个事件event。

LXS_357的博客 933

android framework项目开发案例-动态隐藏Launcher上图标

hi,粉丝朋友们大家好!今天开始我们来开发一个android手机上如何动态隐藏桌面图标案例! 项目背景: 手机上桌面图标有时候不想被其他人发现,我们安装了某些应用,比如陌陌,xxx交友,和平精英等等 具体实现方案讨论: 方案1:在桌面launcher上面进行对应图标隐藏既可以 缺点:只能隐藏桌面图标,但是一些应用中心等也一样有入口,所以不彻底 方案2:在桌面launcher隐藏,而且framework层面实现拦截跳转,如framework在startActivity地方进行拦截 缺点:这里可能会让第三方应用

learnframework的博客 3324

大模型在心律失常预测及治疗方案制定中的应用研究报告

目录一、引言1.1 研究背景与意义1.2 研究目的与方法1.3 研究创新点二、大模型技术概述2.1 大模型基本原理2.2 常见大模型类型及特点2.3 大模型在医疗领域的应用现状三、心律失常的术前预测与准备3.1 术前心律失常预测的重要性3.2 大模型在术前预测中的应用案例3.3 基于预测结果的术前准备方案四、术中监测与实时调整4.1 术中监测心律失常的方法与技术4.2 大模型辅助术中决策的机制4.3 实时调整手术方案的策略与实践五、术后恢复与并发症风险预测5.1 术后心律失常的监测与评估5.2 大模型预测术

嵌入式毕设/课设资料清单(速查手册·文档模板·题库,持续更新)→ 见最新文章 1596

安卓主题深度自定义指南:从图标包到系统框架的完整美化方案

在移动设备个性化领域,主题自定义是提升用户体验的核心技术之一。其原理在于通过替换或覆盖系统及应用的视觉资源文件,实现界面风格的全面重塑。这项技术的价值在于释放了安卓系统的开放潜力,让用户从被动的主题使用者转变为主动的创造者,满足从简约到炫酷的多元化审美需求。在应用场景上,它广泛覆盖了从更换壁纸、图标包等表层美化,到借助主题引擎修改状态栏、通知栏等系统UI组件,乃至通过Root权限和框架模块进行底层深度定制的完整链路。本文聚焦于安卓主题DIY的完整路径,详细解析了包括Substratum主题引擎、LSPose

weixin_30700977的博客 357

超临界二氧化碳发电技术深度解析

超临界二氧化碳发电技术正在突破传统热电转换的物理边界。作为新一代发

硬核科技 602

轨迹优化 | 图解欧氏距离场与梯度场算法(附ROS C++/Python实现)

距离场在运动规划中则常用于地图建模和轨迹梯度优化。本文图解欧氏距离场EDT的算法原理,并基于双线性插值给出欧氏梯度场的公式推导,并给出ROS C++和Python的算法实现加深理解

FRIGIDWINTER的博客 4646

android7.0菜单没图标,Android7.0在状态栏添加图标,定制系统framework

先说一下我的功能需求。定制andorid系统,有个mic控制键,当点击这个键时,会在状态栏出现mic状态的图标。1.frameworks/base / core/res/res/values/config.xml... ...@string/status_bar_mic_mute... ...mic_mute2.core/res/res/values/symbols.xml3.frameworks...

weixin_39570505的博客 355

科研绘图系列:R语言绘制世界地图数据分布(world map)

科研绘图系列:R语言绘制世界地图数据分布(world map)

专注生信领域 527

系统Launcher岗位面试全攻略:从启动流程到性能优化

Android系统中,Launcher并非普通应用,而是开机后率先直面用户的系统桌面,其运行机制与生命周期由AMS/ATMS等Framework服务协同调度。桌面启动涉及冷启动链路、窗口类型、数据绑定等系统级原理,与普通App开发截然不同。系统工程师需掌握其性能优化手段,例如异步增量加载、IdleHandler调度、图标内存复用等,以保障首屏体验与滑动流畅度。这些能力广泛应用于厂商ROM定制、桌面功能开发、系统异常恢复等场景,直接影响用户对整机口碑的判断。围绕系统Launcher岗位面试,本文拆解了启动流程

weixin_30768881的博客 156

Cesium 实战 19 - 使用 gltf-vscode 查看、预览以及编辑 glTF 和 GLB 模型

Cesium 实战 - 使用 gltf-vscode 查看、预览以及编辑 glTF 和 GLB 模型。

非科班Java出身GISer的博客 6435

【数字孪生与仿真技术】07:焊装生产线虚拟调试与PLC代码生成全流程实战:从数字孪生到智能优化

摘要:本文系统阐述焊装生产线虚拟调试与PLC代码自动化生成的完整技术体系,结合工业4.0背景下的智能制造需求,构建从离散事件仿真、机器人运动规划到PLC控制逻辑生成的全流程解决方案。通过MATLAB/Simulink平台实现焊装线物流仿真优化,采用遗传算法进行缓冲区容量配置,结合Stateflow状态机设计PLC控制逻辑,并利用PLC Coder生成西门子S7-1500兼容的ST代码。某车企焊装线应用案例显示,虚拟调试技术使调试周期缩短75%,OEE提升13.4%,年节约成本超$420万。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1830

Android14隐藏应用实战:如何通过包名过滤系统级应用选择器(附ResolverListAdapter修改指南)

本文详细介绍了在Android14系统中如何通过包名过滤实现系统级应用的隐藏,重点解析了ResolverListAdapter的修改方法。通过Framework层定制,开发者可以有效控制应用在文件选择器等系统组件中的可见性,解决传统AndroidManifest.xml修改方案的局限性,为企业设备管理提供更灵活的解决方案。

l3m4n的博客 650

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Android研发岗笔试复盘:从Framework源码到工程实践的硬核考查

在移动开发领域,Android工程师的技术评估已从单纯的概念记忆转向对系统原理与工程落地能力的综合考察。理解Binder通信机制、Handler消息队列、AMS组件管理以及MVVM架构等核心知识,不仅是应对笔试的基础,更是解决线上复杂问题的关键。通过分析事件分发、View绘制、性能优化等高频场景,开发者能构建从源码阅读到架构设计的完整知识体系。无论是准备春招秋招的应届生,还是寻求技术进阶的工程师,掌握这些底层原理与工程实践的结合点,都能有效提升问题定位与方案设计能力。本文以2023年度小满春招第三批笔试为样

weixin_34279246的博客 313

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Android开发面试通关指南:从底层原理到性能优化全解析

在Android系统架构中,Handler消息机制与Binder进程通信构成了应用与系统服务交互的基石。理解其原理,包括Looper、MessageQueue与Binder驱动的一次拷贝机制,是开发者解决线程切换与IPC问题的关键。同时,性能优化能力已成为衡量高级工程师的重要标准,借助R8代码混淆、CPU Profiler火焰图等工具,开发者可以精准定位卡顿、缩减包体积并提升安全性。这些技术广泛应用于App启动加速、列表流畅度优化、多端适配等实际场景。无论是初级还是资深岗位,面试考察的正是这些基础知识的深度

weixin_33795743的博客 430

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

上一篇: android framework项目开发案例-动态隐藏Launcher上图标
下一篇: android源码编译输出日志到文本txt log
千里马学框架
博客等级 码龄6年 1万+粉丝 650原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值