好久没有写博客了,趁着今天工作不太忙,写下这篇博客,当做自己学习过程中的记录,也为正在研究如何动态修改APP桌面图标和名字的小伙伴们,提供一点帮助和建议,废话不多说,开始正题!

首先在介绍主要的修改方法之前,先来做一下相关知识的介绍。如下:

1.activity-alias标签元素

ctivity-alias,顾名思义,即activity的别名。看到这里,大家会想那它究竟是哪个Activity的别名呢?我们在创建一个Activity时,
必须在AndroidManifest中静态声明该Activity,同时配置android:name、android:label、android:icon等属性,还可配置
intent-filter。对于activity-alias标签,它有一个属性叫android:targetActivity,这个属性就是用来为该标签设置目标Activity的
,或者说它就是这个目标Activity的别名。至此我们已经明白activity-alias并非代表一个独立的Activity,而是为一个已经存在的
Activity创建的别名。

2.activity-alias语法及声明

activity-alias作为一个已存在Activity的别名,则应该可以通过该别名标签声明快速打开目标Activity。因此activity-alias可用来
设置某个Activity的快捷入口,可以放在桌面上或者通过该别名被其他组件快速调起。该标签元素支持一些属性及intent-filter、
meta-data等配置,因此可以触发一些跟目标Activity不同的功能逻辑,虽然打开的是同一个Activity。举个简单的例子,
如之前需要先打开主界面,然后才能点击进入某个Activity,如果使用activity-alias为该Activity配置一个快捷入口,甚至可以
为其在桌面生成一个图标,然后点击桌面图标可直接进入该Activity,该功能可满足某些需要快速到达功能界面的需求。

<activity-aliasandroid:enabled=["true" | "false"]

android:exported=["true" | "false"]

android:icon="drawable resource"

android:label="string resource"

android:name="string"

android:permission="string"

android:targetActivity="string" >

. . .

</activity-alias>

其中相关属性做如下说明:
  1. android:enable 该属性用来决定目标Activity可否通过别名被系统实例化,默认为true。需要注意的是application也有enable属性,只用当它们同时为true时,activity-alias的enable才生效。
  2. android:exported 该属性为true的话,则目标Activity可被其他应用调起,如为false则只能被应用自身调起。其默认值根据activity-alias是否包含intent-filter元素决定,如果有的话,则默认为true;没有的话则为false。其实也很好理解,如果有intent-filter,则目标Activity可以匹配隐式Intent,因此可被外部应用唤起;如果没有intent-filter,则目标Activity要被调起的话必须知道其精确类名,因为只有应用本身才知道精确类名,所以此时默认为false。
  3. android:icon 该属性就比较好玩了,允许自定义icon,可以不同于应用本身在桌面的icon。如果需要在桌面上创建快捷入口,也许产品会要求换个不同的icon。
  4. android:label 该属性类似于android:icon,图标都换了,换个名称也合情合理吧,此属性就是为此而生的。
  5. android:name 该属性可以为任意字符串,但最好符合类名命名规范。activity元素的name属性实质上都会指向一个具体的Activity类,而activity-alias的name属性仅作为一个唯一标识而已。
  6. android:permission 该属性指明了通过别名声明调起目标Activity所必需的权限。
  7. android:targetActivity 该属性指定了目标Activity,即通过activity-alias调起的Activity是哪个,此属性其实类似于activity标签中的name属性,需要规范的Activity包名类名。
     3.最后我们来具体看下如何对APP的图标和名字做具体的修改。

       1.首先我们在清单配置文件中进行编写,activity—alias标签要配置在想对应的目标activity之后,否者可能出现崩溃异常。
<activity-alias
    android:name=".MainAliasActivity"
    android:targetActivity=".MainActivity"
    android:label="app ICON"
    android:icon="@mipmap/ic_launcher_change"
    android:enabled="false"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity-alias>
2.在Java文件中进行相关代码的编写,其中黄色部分为activity—alias的全路径。
changeIcon("com.hansion.changelaunchericon.MainAliasActivity");
 public void changeIcon(String activityPath) {PackageManager pm = getPackageManager();pm.setComponentEnabledSetting(getComponentName(),PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);pm.setComponentEnabledSetting(new ComponentName(this, activityPath),PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);//重启桌面 加速显示
//        restartSystemLauncher(pm);
    }
public void restartSystemLauncher(PackageManager pm) {ActivityManager am = (ActivityManager) getSystemService(Activity.ACTIVITY_SERVICE);Intent i = new Intent(Intent.ACTION_MAIN);i.addCategory(Intent.CATEGORY_HOME);i.addCategory(Intent.CATEGORY_DEFAULT);List<ResolveInfo> resolves = pm.queryIntentActivities(i, 0);for (ResolveInfo res : resolves) {if (res.activityInfo != null) {am.killBackgroundProcesses(res.activityInfo.packageName);}}
}

       

如何动态的修改安卓APP名字和桌面图标相关推荐

  1. 【阿里聚安全·安全周刊】阿里安全潘多拉实验室完美越狱iOS11.2.1|Janus漏洞修改安卓app而不影响签名

    原文链接:点击打开链接 摘要: 关键词:阿里安全潘多拉实验室丨Janus漏洞丨御城河丨编程语言出现漏洞丨APP追踪定位丨银行APP存在漏洞丨安卓统一推送联盟|AhMyth RAT|HP笔记本 关键词: ...

  2. 【阿里聚安全·安全周刊】阿里安全潘多拉实验室完美越狱iOS11.2.1|Janus漏洞修改安卓app而不影响签名...

    关键词:阿里安全潘多拉实验室丨Janus漏洞丨御城河丨编程语言出现漏洞丨APP追踪定位丨银行APP存在漏洞丨安卓统一推送联盟|AhMyth RAT|HP笔记本 本周资讯top3 [越狱苹果]独家探寻阿 ...

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

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

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

    目录 1.概述 2. Launcher3 app列表页桌面图标按安装时间排序app图标的功能实现分析

  5. 战神引擎修改客户端app名字

    1.使用android反编译工具反编译(如改之理,AndroidKiller ,安桌助手,Smali2Java,APKDB 等 2.找到AndroidManifest.xml文件 方法一:将红色划线部 ...

  6. (4.6.25)Android动态更换应用Icon之玩转桌面图标

    一原理解析 1 原理1activity-alias 2 原理2PMsetComponentEnabledSetting 二动态更换桌面icon 三远程控制图标的实现方式 四多入口实现方式 快捷方式入口 ...

  7. Insyde uefi 隐藏设置_安卓福利,手机桌面图标隐藏,找应用按字母轻松搞定!

    前几天玩客君刚分享了IOS最新BUG"微信"图标快速隐藏方法,后台就有粉丝回复,是否有安卓桌面图标的隐藏技巧,这不玩客君给安排上了. 小技巧:IOS 13最新版"微信&q ...

  8. 关于手机APP在手机桌面图标圆形的,圆角方形的,直角方形的自动适配。

    去年看到有人提了说桌面图标在有的手机上不一样,即使同一个手机不同的app,图标也是不一样,有的方形,有的圆形(华为手机8.0),就自己网上看了看,把公司的app桌面图标适配了,但是今天写新项目时发现又 ...

  9. App不显示桌面图标

    最近调试App,运行之后一切正常,可是退出App之后,手机桌面上却找不到App的图标.到应用程序里去找,倒是可以找到. 在网上查了一些资料,终于找到原因: 最近在App的启动页添加了Scheme跳转功 ...

  10. 修改项目APP名字后,在真机运行报错:The provisioning profile specified in your build settings (“haotian”) has an AppI

    错误提醒:The provisioning profile specified in your build settings ("haotian") has an AppID of ...

最新文章

  1. SQL Server 2008 Analysis Services 多维数据库一步一步从入门到精通
  2. python中国大学排名爬虫写明详细步骤-Python爬虫——定向爬取“中国大学排名网”...
  3. backdrop-filter 和filter 写出高斯模糊效果 以及两者区别
  4. bert模型训练的两种方式
  5. mysql5.1.6安装_mysql 5.1.6的安装启动
  6. 摄像头预览左右翻转_轻薄翻转触控本里的高性能机型:惠普ENVY x360 13评测
  7. JAVA实现概率计算(数字不同范围按照不同几率产生随机数)
  8. 利用ajax,巧妙的sql语句组合,轻松做出不错的树型菜单
  9. 计算机组成原理之磁盘
  10. Maven学习总结(47)——Maven常用命令再总结
  11. 计算机基础技能应用查询中心,计算机基础应用教程
  12. MTK刷机常见错误分析
  13. 如何对文件进行压缩和解压缩
  14. 2021ACA世界大赛中国赛区完美收官,创意设计收获百万级关注
  15. _nullterminated
  16. linux操作系统——linux删除个人账户密码
  17. JNI 静态注册和动态注册
  18. 大学概率论终极复习攻略
  19. 修复“Windows无法连接到此网络”问题的10种方法
  20. 家谱文化④:江苏百岁老人多达8375人,健康长寿的秘密都写在家谱

热门文章

  1. ureport2报表详细使用(二)-报表基础配置
  2. 【计算机网络】一篇文章带你分清波特率和比特率~
  3. 微信emoji表情web显示
  4. Flask 使用abort方法返回http错误码、http错误响应信息
  5. QQ小程序开发之 一些前期准备:预约开发账号、下载安装开发者工具、创建qq小程序
  6. 外贸软件进口业务流程管理方案
  7. 电信中兴f452光猫路由改桥接最简单的方式,亲自体验成功。
  8. LTE基本结构(常见接口)
  9. Docker之Jitsi Meet视频会议服务
  10. 声纹识别demo_科学网—声纹识别、说话人识别软件,SPEAKER v0.1 - 石自强的博文...