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

Android应用之【隐藏桌面图标的一种方法】 通过实际测试,这种方法的隐藏效果是有缺陷的,表现就是,桌面上的图标不显示后,留下了一个图标背景的阴影,虽然点击并没有效果,但是视觉上是不能容忍的。网上一种方式是,通过设置activity的label为空字符串“”,icon和roundIcon设置为像素值为0的黑色图标。 阅读详情

hi,粉丝朋友们大家好!今天开始我们来开发一个android手机上如何动态隐藏桌面图标案例!
项目背景:
手机上桌面图标有时候不想被其他人发现,我们安装了某些应用,比如陌陌,xxx交友,和平精英等等
具体实现方案讨论:
方案1:在桌面launcher上面进行对应图标隐藏既可以
缺点:只能隐藏桌面图标,但是一些应用中心等也一样有入口,所以不彻底
方案2:在桌面launcher隐藏,而且framework层面实现拦截跳转,如framework在startActivity地方进行拦截
缺点:这里可能会让第三方应用一样可以看到应用,但是点击了没有反应,而且需要修改framework相对成本较大
方案3:android本身有一个系统级别api,setComponentEnabledSetting,这接口直接让app的Launcher图标组件直接为disable状态,直接Launcher,应用中心等无法获取应用入口,而且应用入口即使被写死componentName也无法通过startActivity启动
优点:先比前2个方案隐藏彻底性最好,而且系统级别应用既可以实现,不需要framework参与,减少耦合,一般框架framework修改的原则都是尽量可以简单在应用实现的就在应用实现

在这里插入图片描述
实现过程及demo源码
这里需要分2个大步骤实现:
1、获取要隐藏的app入口的ComponentName,然后再调用setComponentEnabledSetting方法,这里我们demo,暂时写死一个固定ComponentName,项目中大家可以通过PackageManager获取所有的Launcher 图标,然后再做一个listview显示开关,这里demo实现核心代码如下:

        binding.fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                PackageManager packageManager = getPackageManager();
                if (enableState == PackageManager.COMPONENT_ENABLED_STATE_ENABLED) {
                    enableState =PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
                } else {
                    enableState =PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
                }
                packageManager.setComponentEnabledSetting(new ComponentName("com.panzq.applicationb","com.panzq.applicationb.TcpMainActivity"),
                        enableState,
                        PackageManager.DONT_KILL_APP);

                Snackbar.make(view, "Replace with your own action enableState = " + enableState, Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });

代码很简单,基本一看就懂就不多解释,就一个核心方法setComponentEnabledSetting
大家到这里是不是以为就完了啊?哈哈当然没有啦,以为普通第三方应用其实并没有调用setComponentEnabledSetting的权限,所以要在AndroidManifest声明对应权限
在这里插入图片描述
但是大家发现这里编译器是有提示错误的,说这里是系统级别权限,所以第三方app运行起来是一定会崩溃报错的哦,那接下来就是要解决这个报错权限问题,那么请看下一篇blog吧。

课程答疑和新课信息: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隐藏应用桌面图标/动态修改桌面图标 Android隐藏应用桌面图标/动态修改桌面图标 应用启动后点击隐藏 private void hide() { PackageManager packageManager = getPackageManager(); packageManager.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 阅读详情

相关推荐

安卓13大屏设备实战:如何彻底隐藏Launcher3的Hotseat(附避坑指南)

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

weixin_28338005的博客 208

Android --- android.intent.action.MAIN 与 android.intent.category.LAUNCHER常用的几种情况

第一种情况: 有MAIN,无LAUNCHER,程序列表中无图标 原因:android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里 第二种情况: 无MAIN,有LAUNCHER,程序列表中无图标 原因:android.intent.action.MAIN决定应用程序最先启动的Activity,如果没有Main,则不知启动哪个Activity,故也不会有图标出现 ...

梁同学与Android 7620

Android Launcher3深度定制开发:从架构解析到实战优化

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

weixin_34166472的博客 385

Android R在Launcher上隐藏App图标

android、Launcher app隐藏

a307326984的博客 1553

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

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

weixin_34268843的博客 391

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

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

weixin_26938645的博客 373

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

上节课已经把代码写好了,可惜我们发现一点击就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 jav

liaosongmao1的专栏 465

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

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

Liusuzhi19610221的博客 550

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

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

weixin_30700977的博客 357

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

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

weixin_33726313的博客 590

Rk3566 Rk3326s Android11Launcher隐藏不需要应用图标

Rk3566 Rk3326s Android11Launcher隐藏不需要应用图标

写代码的金融男的博客 1307

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

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

weixin_30768881的博客 156

@transactional滥用导致数据源连接池耗尽问题

@transactional滥用导致数据源连接池耗尽问题

qq_43205267的博客 1201

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

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

l3m4n的博客 650

Xilinx SDK工程编译、链接、调试注意事项

1、添加工程 启动SDK时选取workspace,如下图所示: 对应的workpace文件夹中会生成如下几个文件: 如果当前workspace是首次加载工程,SDK会进入启动界面 点击Import Project,导入已有工程 点击Browse,添加工程路径,一个完整的工程包含一个bsp文件夹,一个HW文件夹,和一个src文件夹(添加C功能函数) 点击Fini...

Autumn_He的博客 1万+

Ubuntu环境下读取罗技G29方向盘信息

Ubuntu环境下读取罗技G29方向盘信息

工大机器人工作室 3464

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

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

weixin_34279246的博客 313

逆变器母线电容选型与均压电阻设计实战指南

本文为逆变器母线电容选型与均压电阻设计提供了实战指南。文章从工程角度出发,详细解析了母线电容耐压值、容值的计算方法,并重点强调了纹波电流热设计的重要性。同时,深入探讨了串联电容均压电阻的设计原则与功率计算,通过5.5kW变频器案例,系统演示了从参数确定到最终选型的完整流程,旨在帮助工程师设计出稳定可靠的逆变器系统。

weixin_29299807的博客 292

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

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

weixin_33795743的博客 430

WPS Office 2026免费安装指南:AI办公与安全使用全解析

办公软件作为数字化办公的核心工具,其基本原理是通过文档处理、数据计算和演示展示等功能模块满足用户日常办公需求。随着人工智能技术的发展,现代办公软件逐步集成AI能力,通过自然语言处理和数据分析算法提升工作效率。在技术价值层面,优秀的办公软件不仅需要保持格式兼容性和跨平台同步能力,更要注重用户数据安全防护。从应用场景来看,无论是个人文档编辑、企业报表分析还是团队协作演示,办公软件都发挥着关键作用。WPS Office 2026作为国产办公软件代表,深度融合AI助手功能,支持智能写作和数据分析,同时通过官方免费策

weixin_30599769的博客 721

贝叶斯时空模型-INLA-4

该文章中,会简化数学计算的过程,主要是针对,在有数据的基础上,如何应用贝叶斯时空模型,找出影响因素,绘制时间变化的空间分布预测图。上述中关键一步与前几期介绍的不一样的地方是,我们加入了n.group参数,用来指定年份,先看一下Year有多少年的,然后封装在s.index里面。在前述的内容中,我们介绍了,如何处理空间的数据,利用海拔高度预测降雨量的例子。建立好数据及mesh以后,我们现在写INLA公式,如果不考虑残差项,那就是固定效应,现在我们增加残差项,及空间与时间效应。这里的Mesh设定值为10,20。

学习中 2948

Android14 SystemUI定制实战:锁屏与状态栏深度解析

SystemUI是Android系统用户界面的核心组件,负责锁屏、状态栏和快速设置面板等关键交互区域。其原理基于SystemUIApplication进程,通过KeyguardViewMediator和StatusBar等类管理视图层级与事件分发。在Android14中,SystemUI的模块化重构提升了定制灵活性,技术价值在于实现深度UI定制和系统优化。应用场景涵盖ROM开发、车机及平板设备定制,如修改锁屏快捷方式或状态栏图标。本文聚焦Android14 SystemUI的锁屏与状态栏定制,分享实战经验与

weixin_34372728的博客 423

从零实战:模拟Soul/陌陌附近的人接口爬虫(设备指纹·加密逆向·动态代理全解)

在移动互联网流量见顶的今天,LBS(基于位置的服务)社交平台——尤其是Soul和陌陌——依然掌握着海量高活用户的地理位置画像、兴趣标签、在线活跃时段等敏感数据。对于市场调研、流量运营、甚至是城市热力分析而言,“附近的人”接口是一个极具价值的入口。然而,这两款App均采用全参数加密 + 设备指纹风控 + WAF动态防御的三重护城河。直接使用Requests库调用公开API无异于以卵击石。本文将从逆向工程视角出发,完整还原一套可用的附近人信息采集方案,涵盖:抓包与流量分析(绕过SSL Pinning)

2201_76125261的博客 211
上一篇: adb编译那些事
下一篇: android framework项目开发案例-动态隐藏Launcher上图标2
千里马学框架
博客等级 码龄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、付费专栏及课程。

余额充值