偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

程序員MM的自白:磨人小妖精安卓碎片化

移動開發(fā)
費勁千辛萬苦寫完程序的代碼你以為就結(jié)束了?當(dāng)你終于發(fā)現(xiàn)要面對數(shù)不清的安卓平臺的時候,你才真的進(jìn)了門。有沒有什么問題是你在此時會遇見的?又該怎么辦?

除了crash問題,Android平臺的碎片化越來越受到移動開發(fā)的關(guān)注,且不談支持Android系統(tǒng)的移動設(shè)備早已過萬款,屏幕、品牌以及傳感器等方面的碎片化問題也困擾著開發(fā)者。

初級Android的開發(fā)人員經(jīng)常關(guān)心的問題就是開發(fā)的應(yīng)用能不能在需求的設(shè)備上正常運行。為什么我沒有說所有設(shè)備呢?長期盤踞各Android設(shè)備市場份額或市場關(guān)注度榜單前十位,被大家熟知的品牌,它們ROM的個性化都足以讓人眼花繚亂了,更何況在如今“亂世”里那些七零八落的機(jī)型了。想要做更全面的自動化機(jī)型測試,破解兼容問題,騰訊優(yōu)測是很好的選擇。

最近筆者在做Launcher上圖標(biāo)的清理,接到這個需求的時候,內(nèi)心是感到輕松的,感覺查詢需要刪除的圖標(biāo)然后刪除不就OK了。但事實證明,我還真是很年輕呢。

Launcher個性化

我們都知道,Android源碼中有Google做的原生Launcher。在2.1及之前的版本中,使用com.android.launcher;2.2至4.3版本使用的是com.android.launcher2;4.4版本開始則使用com.android.launcher3。

為了探究一下不同機(jī)型的Launcher應(yīng)用,我分別查看了五部手機(jī),結(jié)果如下:

 

型號

系統(tǒng)版本

Launcher包名

1

三星I9082

4.1.2

com.sec.android.app.launcher

2

華為G606

4.0.3

com.huawei.android.launcher

3

HTC T328W

4.0.3

com.htc.launcher

4

努比亞Z9 Mini

5.0.2

cn.nubia.launcher

5

錘子 T1

4.4.2

com.android.launcher3

除了錘子使用了原生的Launcher外,其他四個機(jī)型都經(jīng)過了個性化再開發(fā)。在實際操作中也可以發(fā)現(xiàn),對圖標(biāo)上的操作響應(yīng)也不盡相同。

對于點擊Home鍵后有“應(yīng)用”圖標(biāo)的Launcher,長按應(yīng)用并拖動可在桌面上創(chuàng)建快捷方式。而沒有“應(yīng)用”圖標(biāo)的Launcher,長按加拖動則只能實現(xiàn)應(yīng)用圖標(biāo)的移動。

應(yīng)用要創(chuàng)建和刪除自己的快捷方式圖標(biāo)只需發(fā)送如下兩個Intent即可:

  1. com.android.launcher.action.INSTALL_SHORTCUT 
  2. com.android.launcher.action.UNINSTALL_SHORTCUT 

同時需要在AndroidManifest.xml中添加如下兩個權(quán)限:

  1. android:name="com.android.launcher.permission.INSTALL_SHORTCUT 
  2. android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT 

而第三方應(yīng)用要對Launcher上其他應(yīng)用的快捷方式圖標(biāo)進(jìn)行刪除,最簡單粗暴的方式是直接從數(shù)據(jù)庫里刪除,當(dāng)然我們并不推薦,即便發(fā)送刪除的Intent也需要獲知該圖標(biāo)在Launcher保存信息的數(shù)據(jù)庫launcher.db中的一條具有獨特性的信息。

接下來我們看看launcher.db數(shù)據(jù)庫是不是像網(wǎng)絡(luò)上說的那般,favorites表中保存著圖標(biāo)信息。

數(shù)據(jù)庫個性化

從導(dǎo)出launcher.db來看,上述表中的五部手機(jī)大部分都在favorites表中保存圖標(biāo)信息,三星I9082則在favorites中只保存主桌面圖標(biāo),其他應(yīng)用圖標(biāo)保存在favorites_normal表中。而各機(jī)型launcher.db中存放的數(shù)據(jù)及形式也有所區(qū)別,詳細(xì)情況見如下兩圖:

圖1-1 努比亞launcher.db數(shù)據(jù)

圖1-2 三星I9082 launcher.db數(shù)據(jù)

權(quán)限個性化

一旦要對Launcher數(shù)據(jù)庫有訪問,至少需要有對數(shù)據(jù)庫的讀權(quán)限,而要進(jìn)行操作,權(quán)限要求會更高(寫數(shù)據(jù)庫的權(quán)限安全等級一般都是signatureOrSystem)。據(jù)不完全統(tǒng)計,要適配市場上大部分的設(shè)備,如下所列出的一大長串權(quán)限是免不了的,而且肯定還有不少漏網(wǎng)之魚。

  1. android:name="com.android.launcher.permission.READ_SETTINGS"      
  2. android:name="com.android.launcher.permission.WRITE_SETTINGS"     
  3. android:name="com.android.launcher2.permission.READ_SETTINGS"    
  4. android:name="com.android.launcher2.permission.WRITE_SETTINGS"     
  5. android:name="com.android.launcher3.permission.READ_SETTINGS"    
  6. android:name="com.android.launcher3.permission.WRITE_SETTINGS"    
  7. android:name="cn.nubia.launcher.permission.READ_SETTINGS"     
  8. android:name="cn.nubia.launcher.permission.WRITE_SETTINGS"     
  9. android:name="org.adw.launcher.permission.READ_SETTINGS" 
  10. android:name="org.adw.launcher.permission.WRITE_SETTINGS" 
  11. android:name="com.htc.launcher.permission.READ_SETTINGS" 
  12. android:name="com.htc.launcher.permission.WRITE_SETTINGS" 
  13. android:name="com.qihoo360.launcher.permission.READ_SETTINGS" 
  14. android:name="com.qihoo360.launcher.permission.WRITE_SETTINGS" 
  15. android:name="com.lge.launcher.permission.READ_SETTINGS" 
  16. android:name="com.lge.launcher.permission.WRITE_SETTINGS" 
  17. android:name="net.qihoo.launcher.permission.READ_SETTINGS" 
  18. android:name="net.qihoo.launcher.permission.WRITE_SETTINGS" 
  19. android:name="org.adwfreak.launcher.permission.READ_SETTINGS" 
  20. android:name="org.adwfreak.launcher.permission.WRITE_SETTINGS" 
  21. android:name="org.adw.launcher_donut.permission.READ_SETTINGS" 
  22. android:name="org.adw.launcher_donut.permission.WRITE_SETTINGS" 
  23. android:name="com.huawei.launcher3.permission.READ_SETTINGS" 
  24. android:name="com.huawei.launcher3.permission.WRITE_SETTINGS" 
  25. android:name="com.fede.launcher.permission.READ_SETTINGS" 
  26. android:name="com.fede.launcher.permission.WRITE_SETTINGS" 
  27. android:name="com.sec.android.app.twlauncher.settings.READ_SETTINGS" 
  28. android:name="com.sec.android.app.twlauncher.settings.WRITE_SETTINGS" 
  29. android:name="com.anddoes.launcher.permission.READ_SETTINGS" 
  30. android:name="com.anddoes.launcher.permission.WRITE_SETTINGS" 
  31. android:name="com.tencent.qqlauncher.permission.READ_SETTINGS" 
  32. android:name="com.tencent.qqlauncher.permission.WRITE_SETTINGS" 
  33. android:name="com.huawei.launcher2.permission.READ_SETTINGS" 
  34. android:name="com.huawei.launcher2.permission.WRITE_SETTINGS" 
  35. android:name="com.android.mylauncher.permission.READ_SETTINGS" 
  36. android:name="com.android.mylauncher.permission.WRITE_SETTINGS" 
  37. android:name="com.ebproductions.android.launcher.permission.READ_SETTINGS"  
  38. android:name="com.ebproductions.android.launcher.permission.WRITE_SETTINGS"  
  39. android:name="com.oppo.launcher.permission.READ_SETTINGS" 
  40. android:name="com.oppo.launcher.permission.WRITE_SETTINGS" 
  41. android:name="com.huawei.android.launcher.permission.READ_SETTINGS" 
  42. android:name="com.huawei.android.launcher.permission.WRITE_SETTINGS" 
  43. android:name="telecom.mdesk.permission.READ_SETTINGS" 
  44. android:name="telecom.mdesk.permission.WRITE_SETTINGS" 

僅一個Launcher就這么任性,千千萬萬的Android開發(fā)人員,多少次問自己:

愛卓,我怕了嗎? 

眼淚,我忘了嗎?

產(chǎn)品催,機(jī)型差

應(yīng)用怎么開發(fā)???

不管是創(chuàng)業(yè)公司還是具備一定規(guī)模的企業(yè),為了開發(fā)和測試自己的應(yīng)用,采購覆蓋Android市場80%甚至更高的機(jī)型,是一件既不現(xiàn)實也不容易更不合理的事。想要為開發(fā)者壓縮時間成本,為公司節(jié)省采購和管理成本,不妨嘗試一下騰訊優(yōu)測,會讓你得到意想不到的效果哦,這可是程序員MM發(fā)自內(nèi)心地吶喊~

責(zé)任編輯:倪明 來源: 騰訊優(yōu)測
相關(guān)推薦

2017-08-21 16:24:27

小紅點APP運營

2015-06-16 10:31:36

程序員

2015-06-08 10:48:39

程序員程序員自白

2011-10-31 09:14:35

程序員

2013-08-01 10:38:50

安卓碎片化

2014-07-10 10:58:36

安卓碎片化

2014-06-30 16:08:29

2012-06-08 03:24:38

程序員

2013-08-20 09:33:59

程序員

2011-05-13 14:34:02

程序員

2013-03-29 09:59:05

2013-09-27 09:51:03

Android安卓激活量碎片化

2012-11-22 14:00:26

程序員

2017-11-14 21:30:15

2012-03-06 09:22:46

程序員

2012-06-23 17:21:18

程序員

2009-12-14 09:29:00

程序員

2010-08-27 10:34:51

程序員

2012-02-14 09:13:51

程序員

2012-03-13 10:55:00

程序員
點贊
收藏

51CTO技術(shù)棧公眾號