精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

上次發版我就改了一行代碼!

移動開發 Android
PackageManager是一個大統領類,可以管理所有的系統組件,當然,如果Root了,你還可以管理其它App的所有組件,一些系統優化工具就是通過這個方式來禁用一些后臺Service的。

動態更換應用Icon

產品:我們可以動態更換App在Launcher里面的Icon嗎

開發:不可以

產品:我們可以動態更換App在Launcher里面的Icon嗎

開發:不可以

產品:我們可以動態更換App在Launcher里面的Icon嗎

開發:不可以

產品:我們可以動態更換App在Launcher里面的Icon嗎

開發:讓我想想……

原理1——activity-alias

在AndroidMainifest中,有兩個屬性:

  1. // 決定應用程序***啟動的Activity 
  2.  
  3. android.intent.action.MAIN 
  4.  
  5. // 決定應用程序是否顯示在程序列表里 
  6.  
  7. android.intent.category.LAUNCHER  

另外,還有一個activity-alias屬性,這個屬性可以用于創建多個不同的入口,相信做過系統Setting和Launcher開發的開發者在系統的源碼中應該見過很多。

原理2——PM.setComponentEnabledSetting

PackageManager是一個大統領類,可以管理所有的系統組件,當然,如果Root了,你還可以管理其它App的所有組件,一些系統優化工具就是通過這個方式來禁用一些后臺Service的。

使用方式異常簡單: 

  1. private void enableComponent(ComponentName componentName) { 
  2.  
  3.     mPm.setComponentEnabledSetting(componentName, 
  4.  
  5.             PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 
  6.  
  7.             PackageManager.DONT_KILL_APP); 
  8.  
  9.  
  10.   
  11.  
  12. private void disableComponent(ComponentName componentName) { 
  13.  
  14.     mPm.setComponentEnabledSetting(componentName, 
  15.  
  16.             PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 
  17.  
  18.             PackageManager.DONT_KILL_APP); 
  19.  
  20.  

根據PackageManager.COMPONENT_ENABLED_STATE_ENABLED和PackageManager.COMPONENT_ENABLED_STATE_DISABLED這兩個標志量和對應的ComponentName,就可以控制一個組件的是否啟用。

動態換Icon

有了上面的兩個原理,來實現動態更換Icon就只剩下思路問題了。

首先,我們創建一個Activity,作為默認的入口并帶著默認的圖片,再創建一個雙11的activity-alias,指向默認的Activity并帶有雙11的圖片,再創建一個雙12的activity-alias,指向默認的Activity并帶有雙12的圖片……等等等。

  1. <activity android:name=".MainActivity"
  2.  
  3.     <intent-filter> 
  4.  
  5.         <action android:name="android.intent.action.MAIN"/> 
  6.  
  7.   
  8.  
  9.         <category android:name="android.intent.category.LAUNCHER"/> 
  10.  
  11.     </intent-filter> 
  12.  
  13. </activity> 
  14.  
  15.   
  16.  
  17. <activity-alias 
  18.  
  19.     android:name=".Test11" 
  20.  
  21.     android:enabled="false" 
  22.  
  23.     android:icon="@drawable/s11" 
  24.  
  25.     android:label="雙11" 
  26.  
  27.     android:targetActivity=".MainActivity"
  28.  
  29.     <intent-filter> 
  30.  
  31.         <action android:name="android.intent.action.MAIN"/> 
  32.  
  33.   
  34.  
  35.         <category android:name="android.intent.category.LAUNCHER"/> 
  36.  
  37.     </intent-filter> 
  38.  
  39. </activity-alias> 
  40.  
  41.   
  42.  
  43. <activity-alias 
  44.  
  45.     android:name=".Test12" 
  46.  
  47.     android:enabled="false" 
  48.  
  49.     android:icon="@drawable/s12" 
  50.  
  51.     android:label="雙12" 
  52.  
  53.     android:targetActivity=".MainActivity"
  54.  
  55.     <intent-filter> 
  56.  
  57.         <action android:name="android.intent.action.MAIN"/> 
  58.  
  59.   
  60.  
  61.         <category android:name="android.intent.category.LAUNCHER"/> 
  62.  
  63.     </intent-filter> 
  64.  
  65. </activity-alias>  

等等,這樣有個問題,那就是這樣會在Launcher上顯示3個入口,所以,默認我們會把這些activity-alias先禁用,等到要用的時候再啟用,養兵千日,用兵一時。

  1. public class MainActivity extends AppCompatActivity { 
  2.  
  3.   
  4.  
  5.     private ComponentName mDefault; 
  6.  
  7.     private ComponentName mDouble11; 
  8.  
  9.     private ComponentName mDouble12; 
  10.  
  11.     private PackageManager mPm; 
  12.  
  13.   
  14.  
  15.     @Override 
  16.  
  17.     protected void onCreate(Bundle savedInstanceState) { 
  18.  
  19.         super.onCreate(savedInstanceState); 
  20.  
  21.         setContentView(R.layout.activity_main); 
  22.  
  23.         mDefault = getComponentName(); 
  24.  
  25.         mDouble11 = new ComponentName( 
  26.  
  27.                 getBaseContext(), 
  28.  
  29.                 "com.xys.changeicon.Test11"); 
  30.  
  31.         mDouble12 = new ComponentName( 
  32.  
  33.                 getBaseContext(), 
  34.  
  35.                 "com.xys.changeicon.Test12"); 
  36.  
  37.         mPm = getApplicationContext().getPackageManager(); 
  38.  
  39.     } 
  40.  
  41.   
  42.  
  43.     public void changeIcon11(View view) { 
  44.  
  45.         disableComponent(mDefault); 
  46.  
  47.         disableComponent(mDouble12); 
  48.  
  49.         enableComponent(mDouble11); 
  50.  
  51.     } 
  52.  
  53.   
  54.  
  55.     public void changeIcon12(View view) { 
  56.  
  57.         disableComponent(mDefault); 
  58.  
  59.         disableComponent(mDouble11); 
  60.  
  61.         enableComponent(mDouble12); 
  62.  
  63.     } 
  64.  
  65.   
  66.  
  67.     private void enableComponent(ComponentName componentName) { 
  68.  
  69.         mPm.setComponentEnabledSetting(componentName, 
  70.  
  71.                 PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 
  72.  
  73.                 PackageManager.DONT_KILL_APP); 
  74.  
  75.     } 
  76.  
  77.   
  78.  
  79.     private void disableComponent(ComponentName componentName) { 
  80.  
  81.         mPm.setComponentEnabledSetting(componentName, 
  82.  
  83.                 PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 
  84.  
  85.                 PackageManager.DONT_KILL_APP); 
  86.  
  87.     } 
  88.  
  89.  

OK了,禁用默認的Activity后,啟用雙11的activity-alias,結果不變還是指向了默認的Activity,但圖標已經發生了改變。

根據ROM的不同,在禁用了組件之后,會等一會,Launcher會自動刷新圖標。

效果參考下圖。 

 

 

[[180569]] 

專欄作者簡介

eclipse_xu:Android 高級開發工程師;《Android群英傳》、《Android群英傳:神兵利器》作者、慕課網Android講師;CSDN博客專家

責任編輯:龐桂玉 來源: 安卓開發精選
相關推薦

2016-12-02 08:53:18

Python一行代碼

2025-10-11 08:34:14

2024-12-03 09:23:20

2017-04-05 11:10:23

Javascript代碼前端

2022-04-09 09:11:33

Python

2014-02-12 13:43:50

代碼并行任務

2020-04-10 15:20:40

數據庫SQL索引

2022-04-11 11:38:44

Python代碼游戲

2020-09-09 16:00:22

Linux進程

2021-11-02 16:25:41

Python代碼技巧

2020-08-19 10:30:25

代碼Python多線程

2017-04-13 19:20:18

Python代碼并行任務

2021-08-31 09:49:37

CPU執行語言

2023-09-12 10:10:57

開發者工具開源

2020-09-28 12:34:38

Python代碼開發

2019-12-25 14:08:50

Pandas數據計算

2020-08-12 14:54:00

Python代碼開發

2020-08-03 09:05:48

代碼程序員案例

2021-05-28 07:39:17

SQL代碼操作

2021-12-26 12:10:21

React組件前端
點贊
收藏

51CTO技術棧公眾號

av影院在线免费观看| 国产浮力第一页| 色97色成人| 日韩亚洲电影在线| 免费在线激情视频| 欧美尤物美女在线| 91亚洲精品久久久蜜桃| 国产精品一区=区| 久久免费视频播放| 欧美一区二区三| 精品国内片67194| 手机看片福利日韩| gratisvideos另类灌满| 欧美国产日韩一二三区| 国产精品一区而去| 成人免费一区二区三区| 欧美日韩一区二区国产| 亚洲人午夜色婷婷| 97中文字幕在线观看| 麻豆精品蜜桃| 亚洲444eee在线观看| 一本色道婷婷久久欧美 | 日本欧美一区二区在线观看| 欧美日本高清一区| 夜夜春很很躁夜夜躁| 国产精品对白久久久久粗| 欧美日韩另类国产亚洲欧美一级| 免费 成 人 黄 色| 午夜激情在线| 国产精品久久久久久久久免费相片| 韩国成人动漫在线观看| 国产高潮流白浆喷水视频| 秋霞午夜鲁丝一区二区老狼| 7m精品福利视频导航| 免费无码毛片一区二区app| 菠萝蜜一区二区| 日韩av在线播放资源| 中文字幕无码毛片免费看| 国产精品蜜月aⅴ在线| 日韩欧美高清在线视频| 91九色在线观看视频| 三级资源在线| 一区二区理论电影在线观看| 26uuu成人| 免费av网站在线看| 国产日韩欧美高清在线| 欧美极品色图| 欧美挠脚心网站| 26uuu亚洲综合色欧美| 国产欧美亚洲日本| 国内爆初菊对白视频| 粉嫩aⅴ一区二区三区四区| 91视频免费在线| 国产精品无码在线播放| 国内成+人亚洲+欧美+综合在线| 国产精品极品在线| 最新中文字幕免费| 蜜臀av一级做a爰片久久| 国产精品久久久久久av福利| 国模私拍一区二区| 美女视频黄频大全不卡视频在线播放 | 欧美日韩一区二区三区在线看 | 国产原创一区二区| 91精品综合久久久久久五月天| 在线观看国产一区二区三区| 美女性感视频久久| 成人免费网站在线| 精品毛片一区二区三区| 国产+成+人+亚洲欧洲自线| 成人在线免费观看一区| 日韩性xxxx| 久久免费看少妇高潮| 神马影院一区二区三区| 老司机av在线免费看| 一区二区三区中文在线| 日本午夜激情视频| 欧美黑人一区| 欧美精品视频www在线观看| 99热这里只有精品在线播放| 2020国产精品小视频| 欧美成人一区二区三区在线观看| 呦呦视频在线观看| 成人aaaa| 久久99热这里只有精品国产 | 国产亚洲在线观看| 国产精品精品久久久| 亚洲精品一区二区二区| 国产一区二区在线电影| 97免费资源站| 九色视频在线播放| 亚洲欧美视频在线观看| 成年人视频观看| 日韩色性视频| 国产视频久久久久久久| 天海翼在线视频| 夜夜爽av福利精品导航| 国产在线拍偷自揄拍精品| 欧美 日韩 国产 成人 在线| 国产拍欧美日韩视频二区| 久久观看最新视频| se01亚洲视频| 精品电影一区二区| 毛片视频免费播放| 亚洲欧美日本国产专区一区| 亚洲jizzjizz日本少妇| 国产在线视频你懂得| 亚洲黄一区二区三区| 久久精品网站视频| 国产精品白丝一区二区三区| 韩国女主播成人在线观看| 国产精品美女久久久久aⅴ国产馆| 亚洲精品一区二区三区四区五区 | 欧美韩国日本在线| 欧美三级一区| 最近中文字幕日韩精品 | 9191国产精品| 国产精品无码久久久久久| 国产精品99一区二区| 国产精品久久久久高潮| 四虎在线免费看| 亚洲永久免费视频| 中文字幕第22页| 欧美久久精品一级c片| 91高清视频在线免费观看| 99国产揄拍国产精品| 国产精品视频免费| 日韩精品一区二区三区色欲av| 成人三级av在线| 久久中文字幕视频| 91资源在线视频| 国产精品女同一区二区三区| 男人的天堂99| 欧美人妖在线观看| 欧美精品videosex牲欧美| 国产人妻精品一区二区三| 中文字幕精品一区二区三区精品| 99热成人精品热久久66| 亚洲精品中文字幕99999| 国精产品一区一区三区有限在线| 99国产在线播放| 亚洲欧美偷拍三级| 成人免费黄色av| 亚洲乱码精品| 成人在线国产精品| 麻豆免费在线观看| 欧美人与禽zozo性伦| 美国精品一区二区| 男女性色大片免费观看一区二区 | 国产精品久久亚洲| 国产蜜臀在线| 亚洲高清不卡av| 日韩av黄色片| 99国产一区二区三精品乱码| 少妇无码av无码专区在线观看| 国产欧美一区二区三区米奇| 午夜欧美不卡精品aaaaa| 色一情一乱一区二区三区| 午夜精品久久久久影视| 添女人荫蒂视频| 视频一区二区三区入口| 日韩高清专区| 日本在线一区二区| 久久色在线播放| 精品国产九九九| 亚洲午夜一区二区| 日本丰满少妇裸体自慰| 免费精品视频| 亚洲欧洲日本国产| 精品视频一区二区三区| 欧美日韩国产成人在线观看| 黄色av中文字幕| 岛国精品视频在线播放| 黄色片网站免费| 极品少妇xxxx精品少妇| 男女日批视频在线观看| 亚洲自拍都市欧美小说| 国产精品黄色影片导航在线观看| 九色porny丨首页在线| 精品少妇一区二区三区在线视频| 日韩成人免费在线视频| 国产欧美一区二区在线观看| 亚洲制服在线观看| 在线欧美日韩| 日韩欧美精品久久| 香港久久久电影| 欧美一级在线亚洲天堂| 欧美jizzhd69巨大| 亚洲精品动漫100p| 在线观看免费高清视频| 亚洲国产美女搞黄色| 中文字幕一区二区人妻在线不卡| 国内精品自线一区二区三区视频| 人妻久久久一区二区三区| 九九综合久久| 99久久国产免费免费| 欧美日韩成人影院| 欧美激情一区二区三区在线视频观看| 日本福利片高清在线观看| 正在播放亚洲一区| 国产成人精品777777| 日韩码欧中文字| 亚洲精品理论片| 国产福利精品一区二区| 免费看污黄网站| 亚洲国产专区校园欧美| 中国成人亚色综合网站| 天天躁日日躁狠狠躁欧美巨大小说| 成人亲热视频网站| 性欧美18一19sex性欧美| 欧美黑人性猛交| 浪潮av一区| 国产一区二区三区精品久久久| 乱精品一区字幕二区| 欧美人妇做爰xxxⅹ性高电影| 天天干天天干天天| 亚洲一区二区三区激情| 污软件在线观看| 国产日韩影视精品| av网站免费在线播放| 粉嫩绯色av一区二区在线观看| 中文字幕成人在线视频| 视频一区中文字幕国产| 久久精品国产sm调教网站演员| 亚洲综合中文| 欧美日韩亚洲国产成人| 日韩欧美网站| 色一情一乱一伦一区二区三区| 欧美亚洲色图校园春色| 国产二区不卡| 亚洲国产精品免费视频| 成人在线精品视频| 色婷婷成人网| 国产这里只有精品| 人人精品久久| 成人写真福利网| 国产精品日本一区二区不卡视频| 国产欧美日韩中文字幕| 成人精品国产| 国产精品视频白浆免费视频| 欧洲av一区二区| 国产suv精品一区二区| 一区二区三区电影大全| 5566成人精品视频免费| 是的av在线| 538国产精品一区二区在线 | 国产精品天堂| 亚洲人成电影在线观看天堂色| 日本大臀精品| 伊人伊成久久人综合网站| 国产原创av在线| 中文字幕久精品免费视频| 日本在线播放| 久久在线视频在线| 一色桃子av在线| 欧美激情欧美激情| 岛国av在线网站| 日韩av色综合| 国产极品嫩模在线观看91精品| 91精品国产综合久久男男| 亚洲一区二区三区久久久| 亚洲一区中文字幕| www.成人网| 久久久久欧美| 色综合天天爱| 一本色道久久88亚洲精品综合| 好看的av在线不卡观看| 怡红院av亚洲一区二区三区h| 久久一区二区三区四区五区| 国产免费又粗又猛又爽| 国产呦萝稀缺另类资源| www.四虎在线| 久久精品亚洲精品国产欧美| 特黄一区二区三区| 亚洲综合自拍偷拍| 日本在线播放视频| 欧美日韩国产bt| 狠狠综合久久av一区二区| 亚洲色图50p| 成人黄色网址| 国产91ⅴ在线精品免费观看| 精品欧美日韩精品| www日韩av| 国产一区2区| 热这里只有精品| 亚洲中午字幕| 亚洲天堂网站在线| wwww国产精品欧美| 2014亚洲天堂| 欧美日韩国产丝袜另类| 依依成人在线视频| 亚洲国产成人精品久久| 99reav在线| 91精品国产91| 亚洲欧美一级| 欧美日韩三区四区| 欧美日韩一卡| av在线网址导航| 91麻豆精东视频| 免费在线观看国产精品| 欧美午夜在线一二页| 日本美女一级视频| 久精品免费视频| 亚洲综合av一区二区三区| 91久久精品www人人做人人爽| 国产成人手机高清在线观看网站| 日本黄大片在线观看| 蜜臀国产一区二区三区在线播放| 精品无码在线视频| 亚洲综合丁香婷婷六月香| 在线视频欧美亚洲| 亚洲人成在线观看| 婷婷电影在线观看| 国产精品久久精品国产 | 国内性生活视频| 国产精品系列在线播放| 美国黄色特级片| 精品人伦一区二区三区蜜桃免费 | 亚洲精品在线看| www在线看| 99re在线观看视频| 91精品国产乱码久久久久久| 日本中文字幕高清| 久久久久久亚洲综合| 特黄视频免费看| 亚洲福利在线视频| 国产探花在线观看| 国产厕所精品在线观看| 欧美精品大片| 99国产精品免费视频| 亚洲欧美一区二区久久| 国产麻豆精品一区| www.欧美三级电影.com| 欧美国产日韩电影| 三区精品视频| 日韩成人免费电影| 三年中国中文观看免费播放| 色美美综合视频| 男人的天堂在线| 全球成人中文在线| 少妇精品久久久| 成人性生生活性生交12| 国产拍揄自揄精品视频麻豆| 国产三级理论片| 中文字幕久精品免费视频| 国产毛片精品久久| 色香蕉在线观看| 国产一区二区在线观看免费| 青青草原国产视频| 欧美成人女星排行榜| 51漫画成人app入口| 精品免费二区三区三区高中清不卡 | 国产福利一区二区三区| 久久久一二三区| 亚洲精品国产福利| 欧美人体一区二区三区| 日韩影片在线播放| 精品一区二区三区在线播放视频| 免费黄色国产视频| 欧美一区二区三区视频在线 | 欧美专区第一页| 国产一区不卡| 国产乱女淫av麻豆国产| 亚洲女性喷水在线观看一区| 亚洲乱色熟女一区二区三区| 高清视频欧美一级| 久久不见久久见免费视频7| 国产91色在线观看| 亚洲激情男女视频| 日韩a在线观看| 国产精品一区电影| 亚洲性人人天天夜夜摸| 亚洲国产无码精品| 欧美日韩mp4| av在线不卡免费| 日韩一区二区电影在线观看| 国产美女av一区二区三区| xxxx 国产| 正在播放欧美一区| 伊色综合久久之综合久久| 99爱视频在线| 18成人在线观看| 肉丝一区二区| 91视频8mav| 久久久国产精品一区二区中文| 国产精品69久久久久孕妇欧美| 亚洲二区中文字幕| julia一区二区三区中文字幕| 久久综合亚洲精品| 国产网站一区二区| 黄色av一区二区三区| 国产精品无码专区在线观看| 影音先锋久久资源网| 2019男人天堂| 亚洲第一在线视频| 亚瑟国产精品| 大香煮伊手机一区| 一区二区三区日韩欧美精品| 国产高清一区在线观看| 国产乱码精品一区二区三区不卡| 久久精品国产一区二区三|