溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Android開發(fā)最佳實(shí)踐<IT藍(lán)豹>

發(fā)布時(shí)間:2020-07-09 17:22:07 來源:網(wǎng)絡(luò) 閱讀:420 作者:楊光成 欄目:移動(dòng)開發(fā)

Android開發(fā)最佳實(shí)踐

移動(dòng)開發(fā)Android經(jīng)驗(yàn)分享應(yīng)用GoogleMaterial Design

摘要:前 段時(shí)間,Google公布了Android開發(fā)最佳實(shí)踐的一系列課程,涉及到一些平時(shí)開發(fā)過程中應(yīng)該保持的良好習(xí)慣以及如何使用最新的Android Design Support Library來快速實(shí)現(xiàn)官方推薦的Material Design樣式的應(yīng)用。

10月14日-16日,由CSDN和創(chuàng)新工場(chǎng)聯(lián)合主辦的MDCC 2015中國(guó)移動(dòng)開發(fā)者大會(huì)將在北京新云南皇冠假日酒店隆重召開,現(xiàn)在搶注大會(huì)門票,即享多重好禮!猛戳>>立即搶票。本文作者,平臺(tái)與技術(shù)Android專場(chǎng)演講嘉賓——騰訊Android工程師 胡凱熱愛開源與分享,維護(hù)Android官方培訓(xùn)課程協(xié)作項(xiàng)目,關(guān)注Android應(yīng)用的性能優(yōu)化的總結(jié)與分享,推崇Android官方最佳實(shí)踐。


Android開發(fā)最佳實(shí)踐<IT藍(lán)豹>    

前段時(shí)間,Google公布了    Android開發(fā)最佳實(shí)踐的一系列課程,涉及到一些平時(shí)開發(fā)過程中應(yīng)該保持的良好習(xí)慣以及如何使用最新的    Android Design Support Library來快速實(shí)現(xiàn)官方推薦的Material Design樣式的應(yīng)用。下面是個(gè)人的學(xué)習(xí)摘要總結(jié),不對(duì)的地方請(qǐng)多多交流指點(diǎn),謝謝!

1)注意對(duì)隱式Intent的運(yùn)行時(shí)檢查保護(hù)

類似打開相機(jī),發(fā)送圖片等隱式Intent,是并不一定能夠在所有的Android設(shè)備上都正常運(yùn)行。例如打開相機(jī)的隱式Intent,如果系統(tǒng)相 機(jī)應(yīng)用被關(guān)閉或者不存在相機(jī)應(yīng)用,又或者是相機(jī)應(yīng)用的某些權(quán)限被關(guān)閉等等情況都可能導(dǎo)致這個(gè)隱式的Intent無法正常工作。一旦發(fā)生隱式Intent找 不到合適的調(diào)用組件的情況,系統(tǒng)就會(huì)拋出ActivityNotFoundException的異常,如果我們的應(yīng)用沒有對(duì)這個(gè)異常做任何處理,那應(yīng)用就 會(huì)發(fā)生Crash。

預(yù)防這個(gè)問題的最佳解決方案是在發(fā)出這個(gè)隱式Intent之前調(diào)用resolveActivity做檢查,關(guān)于這個(gè)API的解釋以及用法如下:

Android開發(fā)最佳實(shí)踐<IT藍(lán)豹>    
   

然后這個(gè)API的使用范例如下:

[java] view plaincopy

  1. Intent intent = new Intent(Intent.ACTION_XXX);  

  2. ComponentName componentName = intent.resolveActivity(getPackageManager());  

  3. if(componentName != null) {  

  4.     String className = componentName.getClassName();  

  5. }  

2)使用NotificationCompat兼容包來處理消息通知

為了解決Android系統(tǒng)版本差異導(dǎo)致的Notification兼容性問題,Android官方提供了 NotificationCompat兼容類來幫助開發(fā)實(shí)現(xiàn)體驗(yàn)統(tǒng)一的Notification。通常來說,建立一個(gè)Notification至少會(huì)有三 種元素:圖標(biāo),標(biāo)題,文本。我們通常會(huì)使用如下的代碼來實(shí)現(xiàn)一個(gè)基礎(chǔ)的Notification功能:

Android開發(fā)最佳實(shí)踐<IT藍(lán)豹>        
       

上面那段代碼,運(yùn)行時(shí)候的效果應(yīng)該如下所示:

Android開發(fā)最佳實(shí)踐<IT藍(lán)豹>            
       

為了給上面的Notification添加點(diǎn)擊之后的響應(yīng)效果,我們還需要構(gòu)造一個(gè)PendingIntent作為contentIntent,例如:

[java] view plaincopy

  1. PendingIntent intent = xxx;  

  2. builder.setContentIntent(intent);  

為了使得Notification更加的具有辨識(shí)度,我們還有可能做如下的設(shè)置:

Android開發(fā)最佳實(shí)踐<IT藍(lán)豹>            
       

從Android 4.1開始,Notification可以支持展開顯示的模式,這樣一來,Notification就演變出了下面4種不同的風(fēng)格樣式:

Android開發(fā)最佳實(shí)踐<IT藍(lán)豹>            
           

Notification還提供了快捷操作的功能,如下圖所示:

Android開發(fā)最佳實(shí)踐<IT藍(lán)豹>                
           

Android開發(fā)最佳實(shí)踐<IT藍(lán)豹>                
           

除了顯示在手機(jī)上的Notification,我們還可以給Notification分別設(shè)置在Wearable,Auto上的不同表現(xiàn)行為,例如針對(duì)可穿戴設(shè)備上顯示Notification,我們可以如下的設(shè)置:

Android開發(fā)最佳實(shí)踐<IT藍(lán)豹>                
               

關(guān)于更多的Wearable上的Notification相關(guān)的知識(shí),還可以參考                    Pages of Content與                    Stackable Notifications。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI