精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产精品亚洲第一| 欧美hd在线| 欧美午夜美女看片| 日韩福利一区二区三区| 中文字幕有码无码人妻av蜜桃| 久久免费精品视频在这里| 欧美一区二区女人| 成人三级视频在线播放| 免费在线观看av片| 成人激情视频网站| 国产精品精品一区二区三区午夜版 | 在线播放一区二区三区| 欧美精品久久久久久久自慰| 国产视频第一区| 粉嫩高潮美女一区二区三区| 国产精品扒开腿做爽爽爽的视频| www.5588.com毛片| 亚洲免费成人av在线| 欧美一级艳片视频免费观看| 热99这里只有精品| 黄网站视频在线观看| 91在线视频播放| 91夜夜揉人人捏人人添红杏| 啦啦啦免费高清视频在线观看| 国产精品精品| 国产亚洲福利一区| 亚洲欧美日韩偷拍| 亚洲一区av| 色94色欧美sute亚洲13| 日韩欧美不卡在线| 成人在线app| 欧美激情在线一区二区三区| 精品国产第一页| 国产欧美第一页| 日本在线不卡视频| 国模gogo一区二区大胆私拍| 国产精品白丝喷水在线观看| 精品美女久久久| 日韩精品视频在线免费观看| 国产成人av免费观看| 91精品一久久香蕉国产线看观看| 色婷婷综合激情| av在线观看地址| 伊人电影在线观看| 亚洲欧美偷拍三级| 致1999电视剧免费观看策驰影院| 国产精品一级伦理| 91麻豆成人久久精品二区三区| 国产精品国产三级欧美二区 | 欧美成人性福生活免费看| 网站一区二区三区| 性欧美1819sex性高清| 婷婷六月综合亚洲| 精品视频在线观看一区| 久久不射影院| 亚洲综合图片区| 特大黑人娇小亚洲女mp4| av免费在线观看网址| 亚洲人妖av一区二区| 国产精品h视频| 网友自拍视频在线| 国产精品看片你懂得| 特级西西444www大精品视频| 成年人视频免费在线观看| 久久九九久久九九| 五月天亚洲综合小说网| 香蕉视频网站在线观看| 国产精品国产三级国产| 中文字幕在线亚洲三区| 超碰超碰在线| 亚洲自拍偷拍欧美| 欧美深夜福利视频| 不卡av影片| 欧美影视一区二区三区| 亚洲久久中文字幕| 欧美h版在线观看| 精品久久久久一区二区国产| 中文字幕天堂网| 四虎5151久久欧美毛片| 亚洲视频一区二区三区| 国产欧美小视频| 欧美在线视屏| 午夜精品一区二区三区av| jizz国产在线观看| 狠狠色丁香久久婷婷综合_中| 亚洲在线免费观看| 日韩福利一区二区| 中文字幕av一区二区三区高| 色哺乳xxxxhd奶水米仓惠香| 超碰在线视屏| 欧洲一区二区av| 亚洲一区二区中文字幕在线观看| 中文一区二区三区四区| 国产视频久久久久| 日韩三级久久久| 亚洲国产导航| 国产精品偷伦一区二区| www.色婷婷.com| 久久亚洲精精品中文字幕早川悠里 | 国产美女精品视频国产| 成人av免费在线观看| 欧美精品一区二区三区四区五区| 欧美性天天影视| 午夜视频在线观看一区二区 | 国产激情精品久久久第一区二区| 精品国产免费一区二区三区 | 日韩精品成人一区二区三区 | 日韩视频一二区| 亚洲精品资源美女情侣酒店| 小早川怜子一区二区的演员表| 亚洲高清二区| 国产日产亚洲精品| 人妻中文字幕一区| 国产精品欧美一区二区三区| 男人日女人视频网站| www.一区| 精品亚洲夜色av98在线观看| 成年人av电影| 首页综合国产亚洲丝袜| 黑人中文字幕一区二区三区| 黄网页免费在线观看| 日韩欧美aⅴ综合网站发布| 午夜激情视频网| 国产一区二区三区四区二区| 国内精品免费午夜毛片| 国产精品久久久久久久成人午夜| 91蜜桃视频在线| 成年女人18级毛片毛片免费| 国内不卡的一区二区三区中文字幕| 国产午夜精品理论片a级探花| 久久影院一区二区| 精品一区二区三区影院在线午夜| 奇米888一区二区三区| sm在线观看| 日韩精品一区二区三区视频 | 一区二区三区四区五区视频在线观看 | 中文字幕日韩三级片| 好看的日韩av电影| 97中文在线观看| 老司机免费在线视频| 在线视频一区二区三区| 国产黄色网址在线观看| 亚洲全部视频| 国语精品中文字幕| sis001亚洲原创区| 亚洲国产成人精品久久| 久久久久久久久99| 国产成人一区在线| 2022中文字幕| 99re91这里只有精品| 欧美大胆在线视频| 99在线无码精品入口| 自拍av一区二区三区| 亚洲图色中文字幕| 91精品综合| 亚洲综合社区网| 日本欧美电影在线观看| 精品久久免费看| 国产无码精品久久久| av在线综合网| 欧美亚洲国产成人| 国产精品片aa在线观看| 国产精品视频免费在线观看| 欧美激情黑人| 日韩无一区二区| 精品一区在线视频| 91啪亚洲精品| 爱情岛论坛成人| 日韩精品一区二区三区免费观看 | а√中文在线天堂精品| 久久久免费在线观看| 少妇av一区二区| 黑人欧美xxxx| 欧美波霸videosex极品| 精品一区二区av| 人妻激情另类乱人伦人妻 | 欧美一区二区三区成人久久片 | 91精品国产综合久久男男| 黄色av免费在线| 欧美电影精品一区二区| www.日本精品| 国产精品久久久久久一区二区三区| 污污的视频免费| 黄色在线成人| 欧美一级片免费观看| 亚洲青青一区| 97香蕉超级碰碰久久免费软件| 美丽的姑娘在线观看免费动漫| 欧美日韩亚洲另类| 久久国产在线视频| 久久久久亚洲蜜桃| 久久6免费视频| 亚洲国产精品一区制服丝袜| 欧美一级二级三级九九九| 成人影院网站ww555久久精品| 97色在线视频观看| 成人在线观看网站| 日韩欧美国产不卡| 亚洲国产精品无码久久久| 日韩码欧中文字| 捆绑裸体绳奴bdsm亚洲| 免费日本视频一区| 欧美亚洲黄色片| 成人一级毛片| 精品久久sese| 国产一区二区三区国产精品| 日本精品视频在线播放| 在线中文免费视频| 在线日韩第一页| 天堂在线视频观看| 91精品综合久久久久久| 国产伦精品一区二区三区视频网站| 亚洲精品一二三| 欧美一区二区三区粗大| www.亚洲在线| 天堂网成人在线| 青青草一区二区三区| 97国产在线播放| 伊人久久大香线| 色视频一区二区三区| 噜噜噜天天躁狠狠躁夜夜精品| 91精品国产综合久久香蕉| 日韩av中字| 国内精品久久久| 婷婷色在线播放| 日韩中文字幕国产精品| 青青草视频在线观看| 亚洲精品一区二区三区蜜桃下载 | 午夜欧美性电影| 色综合久久中文| 国产精品18毛片一区二区| 久久久精品区| 国产日韩中文在线| 亚洲不卡系列| 国产98色在线| 国模冰冰炮一区二区| 81精品国产乱码久久久久久| 黄色在线看片| 欧美精品久久一区二区| 自由的xxxx在线视频| 日韩小视频在线观看| av在线1区2区| 中文字幕在线看视频国产欧美| 国产一级在线观看| 亚洲视频777| 国产日产精品久久久久久婷婷| 日韩极品精品视频免费观看| 手机av在线免费观看| 亚洲国产一区二区三区四区| 天天射天天色天天干| 亚洲精品美女免费| 视频一区二区在线播放| 日韩精品在线视频| 日本高清中文字幕二区在线| 亚洲美女自拍视频| 美国一级片在线免费观看视频 | 亚洲毛片一区| 一二三四视频社区在线| 亚洲伦理一区| 国产女女做受ⅹxx高潮| 日韩高清国产一区在线| 熟女人妇 成熟妇女系列视频| 日韩电影一区二区三区四区| www.夜夜爽| 国产精品一区二区在线播放| 老司机av网站| 国产成人亚洲综合a∨婷婷图片| 午夜不卡久久精品无码免费| 99久久精品国产观看| 亚洲一级中文字幕| 亚洲欧洲成人精品av97| 九九热精彩视频| 午夜影视日本亚洲欧洲精品| 综合网在线观看| 欧美裸体bbwbbwbbw| www.超碰在线.com| 精品网站999www| 五月香视频在线观看| 欧美富婆性猛交| 在线人成日本视频| 91精品免费看| 成人高潮视频| 日本在线播放一区| 综合久久十次| 国内外成人激情视频| 另类小说一区二区三区| 熟女人妻一区二区三区免费看| 94色蜜桃网一区二区三区| 免费看黄色三级| 亚洲精品欧美专区| 九九精品免费视频| 777色狠狠一区二区三区| 视频二区在线观看| www.亚洲男人天堂| 九色porny丨首页入口在线| 国产精品99一区| 香蕉成人app| 日韩精品久久久| 欧美日韩亚洲国产精品| 国产精品igao| 成人免费视频视频| 91动漫免费网站| 欧美午夜影院在线视频| 国产高清免费av| 亚洲视频第一页| 国产夫妻在线播放| 成人网址在线观看| 亚洲国产最新| 大胆欧美熟妇xx| 久久成人精品无人区| 人人妻人人澡人人爽人人精品| 综合久久给合久久狠狠狠97色| 久久久精品福利| 日韩免费一区二区| 欧美日韩xx| 国产精品对白刺激| 欧美色图五月天| 欧美大黑帍在线播放| 黑人精品欧美一区二区蜜桃| 欧美做受高潮6| 精品国产老师黑色丝袜高跟鞋| 国产精品天天操| 在线观看精品自拍私拍| 日本不良网站在线观看| 不卡视频一区| 亚洲在线久久| 污视频免费在线观看网站| 久久综合九色综合久久久精品综合 | 中文字幕一区二区三区不卡在线 | 黄网在线免费看| 91久久精品国产91性色| 日本一区二区在线看| 日韩精品一区二区三区色欲av| av在线播放成人| 久草视频中文在线| 制服丝袜中文字幕亚洲| 色综合久久久久综合一本到桃花网| 日本亚洲精品在线观看| 首页亚洲中字| 天堂…中文在线最新版在线| 成人性生交大片免费看中文| 免费一级片在线观看| 日韩一级免费观看| a黄色片在线观看| 91久久久在线| 欧美ab在线视频| 中文字幕乱码在线人视频| 亚洲欧美日韩在线播放| a毛片在线免费观看| 欧美成人一区在线| 日韩一级淫片| 超碰成人免费在线| av成人免费在线| 亚洲精品1区2区3区| 精品伊人久久97| 最新日韩三级| 日本一区视频在线观看| 人人狠狠综合久久亚洲| 精品熟妇无码av免费久久| 欧美日韩一区二区不卡| 秋霞午夜在线观看| 亚洲综合成人婷婷小说| 精品二区视频| 国产精品1000部啪视频| 欧美优质美女网站| 免费av网站在线看| 97久久天天综合色天天综合色hd| 午夜性色一区二区三区免费视频 | 91久久久久久久久久久久| xxxxx91麻豆| 一区二区三区亚洲变态调教大结局| 男女裸体影院高潮| 99久久精品免费看国产免费软件| 中文字幕免费在线观看视频| 在线播放日韩专区| 91麻豆精品国产综合久久久| 色撸撸在线观看| 99精品视频中文字幕| 中文字幕永久在线| 久久综合伊人77777蜜臀| 99亚洲乱人伦aⅴ精品| 亚洲熟妇无码另类久久久| 国产欧美日韩不卡| 午夜美女福利视频| 欧美最猛性xxxxx(亚洲精品)| 日韩精品91| 久久性爱视频网站| 欧美日韩中字一区| sm在线播放| 亚洲高清资源综合久久精品| 国产91在线观看丝袜| 99成人精品视频| 欧美伦理91i| 国产亚洲一区二区三区啪| 老女人性生活视频| 欧美日韩精品在线观看| 久cao在线| 玛丽玛丽电影原版免费观看1977 | 国内久久精品| 欧美激情亚洲色图|