android安装运行launcher并修改系统内置桌面图标

Android隐藏应用桌面图标/动态修改桌面图标 Android隐藏应用桌面图标/动态修改桌面图标 应用启动后点击隐藏 private void hide() { PackageManager packageManager = getPackageManager(); packageManager.setComponentEnabledSetting(getComponentName(), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 阅读详情

android安装运行launcher并修改系统内置桌面图标

转自:http://blog.youkuaiyun.com/a345017062/article/details/6118707

            http://blog.youkuaiyun.com/ralphsage/article/details/6822286

以系统及程序的方式安装和运行Launcher,才能在Launcher启动的时候就让默认的AppWidget程序显示出来。否则将会出现

java.lang.SecurityException: bindGagetId appWidgetId=843 provider=ComponentInfo{com.android.quicksearchbox/com.android.quicksearchbox.SearchWidgetProvider}: User 10047 does not have android.permission.BIND_APPWIDGET 

这样的错误。

 

emulator -avd 1024_600_API8 -partition-size 128(创建模拟器)
——此处的 -partition-size 128 表示为 把system分区扩大为128MB,若有需要,此处可以设置为更大的system分区

        此处的 1024_600_API8 表示为 模拟器名称换成你们自己的就可以

 

adb remount
——使得/system分区可以进行写操作, 否则下面的push指令将会出现形如“failed to copy 'Launcher2_custom.apk' to system/app/Launcher2_meiling.apk': Read-only file system”的错误提示,真机亦是如此。

 

adb push Launcher2_custom.apk /system/app

当不再需要这个定制化的Launcher apk的时候,直接 adb shell模式下删除/system/app下的对应apk文件即可,删除时要有超级用户权限

rm /system/app/Launcher2_custom.apk 

 

 

1、/packages/apps/Launcher/res/xml/default_workspace.xml中记录了系统初始化或者恢复出厂设置时桌面上图标的排列。Launcher程序第一次运行完毕以后,会在/data/data/com.android.launcher/databases/launcher.db中创建记录,里面有所有当前的桌面图标。以后每次启动只会从这里读取桌面图标。

 

下面简单分析一下default_workspace.xml:

default_workspace.xml中,支持的标签有:

favorite:应用程序快捷方式。

shortcut:链接,如网址,本地磁盘路径等。

search:搜索框。

clock:桌面上的钟表Widget

支持的属性有:

launcher:title,图标下面的文字,目前只支持引用,不能直接书写字符串。

launcher:icon,图标引用。

launcher:uri,链接地址。

launcher:packageName,应用程序的包名。

launcher:className,应用程序的启动类名。

launcher:screen,图标所在的屏幕编号。

launcher:x,图标在横向排列上的序号。

launcher:y,图标在纵向排列上的序号。

 launcher:spanX="9" ——这个AppWidget在screen中的cell跨度-x
 launcher:spanY="5"  ——这个AppWidget在screen中的cell跨度-y

LauncherProvider.java里面的loadFavorites方法负责解析。

 2、在Launcher2源码的Launcher.java中,定义如下:
    static final int SCREEN_COUNT = 4;  ——Launcher包含几个screen
    static final int DEFAULT_SCREEN = 0; ——Launcher启动后默认显示的是哪个screen
    static final int NUMBER_CELLS_X = 9; ——每个screen所对应的CellLayout中横向包括多少个Cells
    static final int NUMBER_CELLS_Y = 5; ——每个screen所对应的CellLayout中纵向包括多少个Cells

 

3、而在default_workspace.xml中添加的AppWidget的例子如下:

    <appwidget
        launcher:packageName="com.ml.apps"
        launcher:className="com.ml.apps.TimeTemperInfoReceiver"
        launcher:screen="0" ——在哪个screen中显示这个widget
        launcher:x="0"  ——这个AppWidget在screen中的起始cell-x
        launcher:y="0"  ——这个AppWidget在screen中的起始cell-y
        launcher:spanX="9" ——这个AppWidget在screen中的cell跨度-x
        launcher:spanY="5"  ——这个AppWidget在screen中的cell跨度-y
    />

 

 

4、上面在default_workspace.xml中添加的appwidget布局必须和对应应用程序中的AppWidget设定相适应,否则无法正确显示。AppWidget对应应用程序的res/xml/下包含一个widget布局描述文件,例如home_widget_provider.xml,对应内容如下:

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
 android:minHeight="368dp" android:minWidth="664dp"
 android:initialLayout="@layout/cell_main" android:updatePeriodMillis="0">

</appwidget-provider>

 

 

注意: 此处在设置android:minHeight和android:minWidth的时候,实际是设置widget占据了多少个cell。 根据实践效果来看,貌似无论在dimens.xml文件中定义的workspace_cell_width 和 workspace_cell_height 的具体值是多少,在这里x和y方向一律按照每个cell 74dp 来设置android:minHeight和android:minWidth的值,即74×cell_numbers-2。例如上述(3)中定义的launcher:spanX="9",launcher:spanY="5",则在此处 android:minHeight="368dp"(5×74-2),android:minWidth="664dp"(9*74-2)

 

5、经过上述4步,基本工作就完成了,然后将AppWidget对应的应用程序和Launcher程序push进/system分区,即:
 adb push TimerTemperInfo.apk /system/app
 adb push Launcher2_meiling.apk /system/app

即可。实践表明这两个apk程序push的顺序似乎没有什么影响

Android M Launcher3主流程源码浅析 小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!资料⬅专栏获取。 阅读详情

相关推荐

Android 13 Launcher3修改单层桌面

2. 将应用图标自动加载到单层桌面,包括开机和后续安装的应用。将应用图标自动加载到单层桌面,包括开机和后续安装的应用。Launcher要修改单层桌面,有3个地方需要修改。3. 删除长按桌面图标的“remove”按钮。删除长按桌面图标的“remove”按钮。1. 屏蔽取消上划显示所有应用。屏蔽取消上划显示所有应用。

qq_23058103的博客 553

Android Launcher 应用的安装、更新、移除介绍

Android Launcher 应用的安装、更新、移除介绍说明实现方法LauncherAppsCompatLauncherAppsCompatV16LauncherAppsCompatVL总结 说明 当进行Laucher开发时,不可避免的需要对应用的安装、移除、更新等进行处理,此时我们用到了LauncherAppsCompat。由于Android 21前后对于应用更新操作的处理有所不同,所以...

蒙蒙的专栏 4253

android launcher3桌面快捷方式分析

背景 一般情况下,为了让用户更方便的打开应用,程序会在桌面上生成一些快捷方式。 本来呢,如果是原生的桌面,其实是十分简单,直接调用系统相关的API就行了。但是众多的系统厂商以及众多第三方自己定制的桌面(Launcher),导致在适配、兼容方面存在很多问题。 比如,有些桌面无法删除快捷方式(比如小米),有些桌面无法生成快捷方式(比如锤子),有些系统无法更新桌面图标(比如华为荣耀6)。 在

成长的味道 4797

Android应用程序安装与Launcher启动机制

Android应用程序安装与Launcher启动机制 以下资料摘录整理自老罗的Android之旅博客,是对老罗的博客关于Android底层原理的一个抽象的知识概括总结(如有错误欢迎指出)(侵删): http://blog.youkuaiyun.com/luoshengyang/article/details/8923485 http://blog.youkuaiyun.com/luoshengyang/article/d...

Rookie20190715的博客 589

Android 13.0 Launcher3 app列表页桌面图标按安装时间排序

在13.0的系统rom定制化开发中,在对Launcher3进行功能开发时,系统默认的app列表页排序是安装app名称进行排序的, 由于功能的需要要求按照app安装时间进行排序,这就需要找到相关的排序地方,进行排序方式的修改就能完成这个功能

安卓兼职framework和app工程师的博客 1350

Android 10.0 设置默认launcher后安装另外launcher后默认Launcher失效的功能修复

在10.0的系统rom定制化开发中,在系统中有多个launcher的时候,会在开机进入launcher的时候弹窗launcher列表,让用户选择进入哪个launcher,这样显得特别的不方便 所以产品开发中,要求用RoleManager的相关api来设置默认Launcher,但是在设置完默认Launcher以后,在安装一款Launcher的时候,默认Launcher就会失效,在 系统设置的默认应用中Launcher选项就为空,点击home键的时候会弹出默认Launcher列表,让选择进入哪个默认Launc

安卓兼职framework和app工程师的博客 1309

安卓Launcher之获取手机安装的应用列表

Launcher中最主要的就是获取所有应用列表的入口,现在通过PackageInfo和ResolveInfo两种方法获取所有的应用列表,并且进行打开应用

Ataraxia的专栏 6624

Android 11.0Launcher3 app列表页桌面图标按安装时间排序

在对Launcher3进行功能开发时,系统默认的app列表页排序是安装app名称进行排序的,由于功能的需要要求按照app安装时间进行排序,这就需要找到相关的排序地方,进行排序方式的修改就能完成这个功能。

安卓兼职framework和app工程师的博客 1347

Android桌面图标布局,android安装运行launcher并修改桌面图标

以系统及程序的方式安装和运行Launcher,才能在Launcher启动的时候就让默认的AppWidget程序显示出来。否则将会出现java.lang.SecurityException: bindGagetId appWidgetId=843provider=ComponentInfo{com.android.quicksearchbox/com.android.quicksearchbox.S...

weixin_35368877的博客 3721

安卓13_ROM修改定制化-----内置应用app 实现无桌面图标 保后台运行

在定制化rom过程中。有时候我们需要将内置的app应用实现不显示桌面图标。但需要后台包活的操作。或者在项目中需要应用只运行在特定的设置目录下。那么此篇博文可以借鉴参阅。 通过博文了解💝💝💝 1💝💝💝-----反编译修改app  去除app应用安装不显示桌面图标操作剖析 2💝💝💝------包活应用app的几种操作 3💝💝💝------修改中shizuku 服务交互触发影响

小马哥的专栏 270

Android 14.0 Launcher3 app列表页桌面图标按安装时间排序

在14.0的系统rom定制化开发中,在对Launcher3进行功能开发时,系统默认的app列表页排序是安装app名称进行排序的, 由于功能的需要要求按照app安装时间进行排序,这就需要找到相关的排序地方,进行排序方式的修改就能完成这个功能

安卓兼职framework和app工程师的博客 569

android原生launcher3替换apk桌面图标

Android 8.1 去掉 Launcher3 默认给 icon 增加的白边 android的新特性,目前定制后已将此功能关闭,但是chrome始终有白色的一圈,定位在chrome apk自己的android:icon资源就是如此,由此引发出与其他的apk图标风格不一致,看起来别扭,就想从launcher替换一下。 参考: Android P 上Launcher3 中实现两种方式替换桌面图标 由于安装和预置在显示桌面图标的代码不同,所以通过trace代码,找到了公共必走的路径: packages/apps

通信侠的博客 2512

Android 12.0 Launcher3 app列表页桌面图标按安装时间排序

在12.0的系统开发中,在对Launcher3进行功能开发时,系统默认的app列表页排序是安装app名称进行排序的,由于功能的需要要求按照app安装时间进行排序,这就需要找到相关的排序地方,进行排序方式的修改就能完成这个功能

安卓兼职framework和app工程师的博客 1517

Android隐藏桌面图标,不显示应用图标

Android隐藏桌面图标,不显示应用图标 隐藏桌面图标Android隐藏桌面图标,不显示应用图标隐藏桌面图标通过adb命令启动 效果预览: 如图所示,左图是默认安装app后,桌面上会显示一个应用图标。右图是增加隐藏桌面图标设置后安装的app,可以看到桌面上不会出现应用的图标,但是我们可以通过adb命令来启动应用。 隐藏桌面图标 为了隐藏app桌面图标,安装app后不在桌面上显示应用图标。我们可以通过添加<data>标签让启动app入口Activity申明为由接收隐式的Intent来启动,这样

tracy的博客 1万+

安卓9 pixel launcher 安装包

安卓9 pixel launcher 安装包 最新版,支持搜索栏点击助手功能

论文阅读—Square Attack: a query-efficient black-box adversarial attack via random search

论文阅读—Square Attack: a query-efficient black-box adversarial attack via random search 发表位置 ECCV 2020 摘要 作者提出了一种基于得分的黑盒Square attack,该模型不依赖于模型的局部梯度信息,因此可以绕过梯度隐藏防御攻击。Square Attack是一种随机搜索方法,它在随机位置选择局部的方形更新,使得每次迭代时扰动近似位于可行集的边界。 背景 当涉及到对安全至关重要的机器学习应用时,对抗性的例子尤其值得

yayayamaomaoya的博客 2493

基于 Launcher3 的 iOS 风格桌面 02 桌面图标展示

本文介绍了将Launcher3桌面改造为Launchpad样式的主要步骤。通过WorkspaceHelper工具类实现将所有已安装应用图标自动添加到桌面,并支持新安装应用自动添加。在LoaderTask和PackageUpdatedTask中调用相关方法实现功能。此外,还调整了桌面图标布局,在device_profiles.xml中修改了6x3网格参数,包括行列数、图标尺寸和边距等;在dimens.xml中设置了工作区的垂直和水平padding值,优化了桌面显示效果。

Life in the Box 559

yolov5深度剖析+源码debug级讲解系列(一) yolov5的架构和源码debug准备

前言 前段时间分析了yolov3的源码,这次想带着小伙伴一起把yolov5完全掌握。博主还是保持着一贯的风格,依旧采用debug级别的源码剖析。目的就是让大家可以通过一个系列的文章就把yolov5的架构、设计理念和每一行源码都弄懂。只要小伙伴可以花时间把这个系列读完,就会对yolov5的理解有所提升。 去年参加了kaggle的小麦检测比赛,yolov5在比赛的中段开始呈现霸榜趋势,超越了efficientdet。虽然最后yolov5因为权限等某些问题被kaggle官方禁用了,但是仍然体现出了其强大的能力。值

人唯优的博客 4万+

Android 8.1.0 之在 Launcher 中隐藏指定应用的图标

有一些 工具应用 或者 测试应用,其实是预置到系统中的,但是肯定不能让它们在桌面( Launcher )中显示出来。所以提供 rom 的时候一般会有这种需求:隐藏指定应用图标。 这里有两个方案(无论以下哪种方案,均可以在 设置 -> 应用和通知 -> 所有应用 中查看到被隐藏的应用,解决方案): 【方案一】:在编译这个被指定的应用的时候...

Water_Marking的博客 2602

[A-21]ARMv8/v9-SMMU系统架构和功能概述

本文简述了SMMU的系统架构和核心功能

基层架构师的分享 1724

缺陷检测:使用PatchCore训练自己的数据集

必须包含有训练图片(无缺陷图片)、测试图片(缺陷图片)和ground_truth,并且ground_truth必须与对应图片的名称相同。同上一篇结果一样,我的输出为原始图片大小,但是不知道是不是因为图片不是正方形的,导致训练结果不好。编写一个脚本,重新规划数据集的路径规则,但是我稍微写复杂了一点,使用了类来操作。第二种(复杂):编写一个自己的Dataset,参考。第一种(简单):将数据集路径规则改成项目中。返回的必须是一个字典类型,可以阅读。本人此次使用的是第一种方法。运行时,参数部分直接输入。

xiaoxTai的博客 6478
上一篇: Location定位
下一篇: android 程序漰溃 后台handle处理类
cjs8611
博客等级 码龄15年 4粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值