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

如何成為一個(gè)偷懶又高效的Android開發(fā)人員

移動(dòng)開發(fā) Android
我敢肯定你對(duì)這個(gè)標(biāo)題肯定心存疑惑,但事實(shí)就是如此,這個(gè)標(biāo)題完全適合Android開發(fā)人員。據(jù)我所知, Android程序員不情愿寫 findViewById()、點(diǎn)擊事件監(jiān)聽等重復(fù)率較高的代碼。那我們?nèi)绾尾拍芸s短編寫業(yè)務(wù)邏輯代碼的時(shí)間,并且避免寫那些重復(fù)的代碼呢?所以讓我們來 成為一個(gè)能偷懶又有高效率的Android程序員。想知道怎么做嗎?不用急,接下來我就會(huì)寫到。

我敢肯定你對(duì)這個(gè)標(biāo)題肯定心存疑惑,但事實(shí)就是如此,這個(gè)標(biāo)題完全適合Android開發(fā)人員。據(jù)我所知, Android程序員不情愿寫 findViewById()、點(diǎn)擊事件監(jiān)聽等重復(fù)率較高的代碼。那我們?nèi)绾尾拍芸s短編寫業(yè)務(wù)邏輯代碼的時(shí)間,并且避免寫那些重復(fù)的代碼呢?所以讓我們來 成為一個(gè)能偷懶又有高效率的Android程序員。想知道怎么做嗎?不用急,接下來我就會(huì)寫到。

有許多第三方的庫和框架是可供我們使用。出于種種原因,我們并不知道這些庫或者知道但還沒用過。有的開發(fā)者開發(fā)了自己定義的庫或者并不想使用第三方 的庫。如果我們?cè)趹?yīng)用程序開發(fā)的過程中使用一些第三方庫,也許可以提高程序的可兼容性、漂亮的UI界面、讓代碼變得整潔等等。所以,我將研究更多像這樣的 第三方庫來幫助初學(xué)者和有經(jīng)驗(yàn)的開發(fā)人員。

今天,讓我們來討論下“依賴注入函數(shù)庫”。

什么是依賴注入?

依賴注入是一種軟件設(shè)計(jì)模式,無論是在運(yùn)行時(shí)還是在編譯時(shí),允許刪除、改變硬編碼依賴性。[來自Wikipedia](維基百科資源):

一些常用和普遍的依賴注入庫有:

RoboGuice:

[[109153]]

Roboguice是一個(gè)用于Android應(yīng)用的依賴注入框架,使用Google官方的Guice庫位極大地簡化了Android的依賴注入。讓你的Android應(yīng)用開發(fā)之路更加平坦順利,編程更加簡單有趣。

當(dāng)你調(diào)用 getIntent(),getExtras()這些函數(shù)時(shí)你是否經(jīng)常忘記檢查是否為Null?RoboGuice可以幫助你。初始化TextView有必要調(diào)用findViewById()嗎?不用,RoboGuice已經(jīng)為你完成了。

通過使用RoboGuice,你可以注入View視圖控件、資源、系統(tǒng)服務(wù)或者其他任何對(duì)象。RoboGuice能幫你精簡應(yīng)用程序的代碼。代碼越少意味著出現(xiàn)問題或bug的次數(shù)也就越少,從而可以把更多的精力花在項(xiàng)目中那些需要編寫或修改的部分,使得閱讀代碼更加容易。

讓我們來看看各種RoboGuice 庫的使用方法。

使用RoboGuice庫 :

  • 控件注入:用@InjectViews方法初始化控件,例如:@InjectView(R.id.textview1)TextView textView1。
  • 資源注入:用@InjectResources方法初始化資源,例如:@InjectResource(R.string.app_name)String name。
  • 系統(tǒng)服務(wù)注入:用@Inject方法初始化并獲取系統(tǒng)服務(wù),例如:@Inject LayoutInflater inflater。
  • POJO對(duì)象注入:用@Inject方法注入并初始化POJO對(duì)象,例如:@Inject Foo foo。

安裝

要使用RoboGuice,你需要下載JAR文件并把他們添加到環(huán)境變量中:

我們來看看一個(gè)簡單的一般事件代碼:

實(shí)例

  1. public class TestActivity extends Activity{ 
  2.   
  3.     TextView textView1; 
  4.     TextView textView2; 
  5.     ImageView imageView1; 
  6.     String name; 
  7.     Drawable icLauncher; 
  8.     LocationManager locManager; 
  9.     LayoutInflater inflater; 
  10.     NotificationManager notifyManager; 
  11.   
  12.     @Override 
  13.     protected void onCreate(Bundle savedInstanceState) { 
  14.         // TODO Auto-generated method stub 
  15.         super.onCreate(savedInstanceState); 
  16.         setContentView(R.layout.layout_test); 
  17.         textView1 = (TextView) findViewById(R.id.textView1); 
  18.         textView2 = (TextView) findViewById(R.id.textView2); 
  19.         imageView1 = (ImageView) findViewById(R.id.imageView1); 
  20.         name = getString(R.string.app_name); 
  21.         icLauncher = getResources().getDrawable(R.id.ic_launcher); 
  22.         locManager = (LocationManager) getSystemService(Activity.LOCATION_SERVICE); 
  23.         inflater = (LayoutInflater) getSystemService(Activity.LAYOUT_INFLATER_SERVICE); 
  24.         notifyManager = (NotificationManager) getSystemService(Activity.NOTIFICATION_SERVICE); 
  25.         textView1.setText("Hello World! RoboGuice demo"); 
  26.      } 

再看看使用RoboGuice精簡代碼后神奇之處。

使用RoboGuice

你先要繼承RoboActivity或者RoboFragment,才能使用RoboGuice的依賴注入功能。

  1. public class TestActivity extends RoboActivity{ 
  2.   
  3.     @InjectView(R.id.textView1) TextView textView1; 
  4.     @InjectView(R.id.textView2) TextView textView2; 
  5.     @InjectView(R.id.imageView1) ImageView imageView1; 
  6.     @InjectResource(R.string.app_name) String name; 
  7.     @InjectResource(R.drawable.ic_launcher) Drawable icLauncher; 
  8.     @Inject LocationManager locManager; 
  9.     @Inject LayoutInflater inflater; 
  10.     @Inject NotificationManager notifyManager; 
  11.     @Override 
  12.     protected void onCreate(Bundle savedInstanceState) { 
  13.         // TODO Auto-generated method stub 
  14.         super.onCreate(savedInstanceState); 
  15.         setContentView(R.layout.layout_test); 
  16.         textView1.setText(name); 
  17.     } 

這么一對(duì)比,我想你肯定明白了為什么要使用RoboGuice?再來看看有哪些好處:

使用RoboGuice的好處

  • 不需要初始化控件,如有需要就用@InjectViews。
  • 不需要初始化系統(tǒng)服務(wù),如有需要就用@Inject。
  • 不需要初始化像Drawable,string以及其他的資源,如有需要就用@InjectResource。
  • 以上實(shí)踐能幫助你精簡代碼。
  • 越少的代碼,越少的問題和bugs。
  • 少量的代碼讓Android開發(fā)人員省力同時(shí),也讓他們能更專注于實(shí)際的業(yè)務(wù)邏輯。

RoboGuice和ActionBarSherlock

正如我前面提到的,你得在RoboActivity和RoboFragment中繼承其中一個(gè)才能在Activity事件或Fragment中使用 RoboGuice。但是如果你已經(jīng)在項(xiàng)目中使用了ActionBarSherlock去編譯呢?那問題就在于,你已經(jīng)繼承了 SherlockActivity或SherlockFragmentActivity中的一個(gè)。現(xiàn)在問題是,你不能同時(shí)使用RoboGuice和 ActionBarSherlock。

解決方法是,為Activities和Fragments定義一個(gè)基類。然后你就能同時(shí)使用RoboGuice和ActionBarSherlock了。

你可以在這里下載一些基類:

https://github.com/rtyley/roboguice-sherlock 或者下載JAR包也是一樣:RoboGuice+Sherlock.jar,你可以任選一個(gè)添加到你的項(xiàng)目。

在Android應(yīng)用程序中,我想我已經(jīng)做了所有關(guān)于RoboGuice用法及好處的研究。如過有什么遺漏,請(qǐng)聯(lián)系我。在接下來的文章,我會(huì)研究其他的函數(shù)庫好讓你成為一個(gè)既能偷懶又高效的Android開發(fā)人員。

原文鏈接: dzone 翻譯: ImportNew.com - 蔣晨毅
譯文鏈接: http://www.importnew.com/8415.html

責(zé)任編輯:閆佳明 來源: importnew
相關(guān)推薦

2014-04-21 15:28:12

Android開發(fā)偷懶高效

2019-08-14 15:56:23

2023-03-15 07:12:53

企業(yè)開發(fā)人員提供商

2019-11-27 18:54:07

物聯(lián)網(wǎng)數(shù)字孿生機(jī)器學(xué)習(xí)

2021-12-10 23:48:19

Java開發(fā)技術(shù)

2022-02-17 16:05:58

SQL開發(fā)招聘

2012-06-18 10:11:27

Chrome開發(fā)人員程序員

2021-01-03 10:28:53

Web開發(fā)

2016-03-09 12:11:33

Web開發(fā)人員簡單步驟

2022-03-14 14:11:22

Java開發(fā)編程語言

2011-06-28 08:41:09

架構(gòu)師

2012-07-10 01:43:36

程序員開發(fā)人員測(cè)試人員

2021-02-19 09:33:01

kubernetesJAVA服務(wù)

2021-04-12 22:24:01

Java開發(fā)程序員

2021-11-12 06:03:10

開發(fā)人員開發(fā)安全意識(shí)

2019-02-28 06:14:18

物聯(lián)網(wǎng)物聯(lián)網(wǎng)開發(fā)IOT

2019-09-05 19:56:23

開發(fā)編程程序

2022-04-15 14:36:11

Java開發(fā)優(yōu)秀

2023-08-14 15:23:37

2013-04-15 10:00:09

程序員
點(diǎn)贊
收藏

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