如何成為一個(gè)偷懶又高效的Android開發(fā)人員-創(chuàng)新互聯(lián)

我敢肯定你對(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ì)寫到。

成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比紅古網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式紅古網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋紅古地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。

有許多第三方的庫(kù)、框架和解決方案可供我們使用。出于種種原因,我們并不知道這些庫(kù)或者知道但還沒用過。有的開發(fā)者開發(fā)了自己定義的庫(kù)或者并不想使用第三方的庫(kù)。如果我們?cè)趹?yīng)用程序開發(fā)的過程中使用一些第三方庫(kù),也許可以提高程序的可兼容性、漂亮的UI界面、讓代碼變得整潔等等。;另外,在Android應(yīng)用開發(fā)過程中,我們不可能有過多的精力和時(shí)間去研究應(yīng)用安全這塊,要學(xué)會(huì)借力!所以最好的辦法就是借助第三方平臺(tái)的解決方案,這樣既可以節(jié)省下很多時(shí)間又可以保證應(yīng)用的安全,偷懶又高效,兩全其美!

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

什么是依賴注入?

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

一些常用和普遍的依賴注入庫(kù)有:

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

RoboGuice:

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

當(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能幫你精簡(jiǎn)應(yīng)用程序的代碼。代碼越少意味著出現(xiàn)問題或bug的次數(shù)也就越少,從而可以把更多的精力花在項(xiàng)目中那些需要編寫或修改的部分,使得閱讀代碼更加容易。

讓我們來看看各種RoboGuice 庫(kù)的使用方法。

使用RoboGuice庫(kù) :

  • 控件注入:用@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)境變量中:

  • http://repo1.maven.org/maven2/org/roboguice/roboguice/2.0/roboguice-2.0.jar

  • http://repo1.maven.org/maven2/com/google/inject/guice/3.0/guice-3.0-no_aop.jar

  • http://repo1.maven.org/maven2/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar

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

實(shí)例

<span ><span >public class TestActivity extends Activity{
 
    TextView textView1;
    TextView textView2;
    ImageView p_w_picpathView1;
    String name;
    Drawable icLauncher;
    LocationManager locManager;
    LayoutInflater inflater;
    NotificationManager notifyManager;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_test);
        textView1 = (TextView) findViewById(R.id.textView1);
        textView2 = (TextView) findViewById(R.id.textView2);
        p_w_picpathView1 = (ImageView) findViewById(R.id.p_w_picpathView1);
        name = getString(R.string.app_name);
        icLauncher = getResources().getDrawable(R.id.ic_launcher);
        locManager = (LocationManager) getSystemService(Activity.LOCATION_SERVICE);
        inflater = (LayoutInflater) getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
        notifyManager = (NotificationManager) getSystemService(Activity.NOTIFICATION_SERVICE);
        textView1.setText("Hello World! RoboGuice demo");
     }
}</span></span>

再看看使用RoboGuice精簡(jiǎn)代碼后神奇之處。

使用RoboGuice

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

<span ><span >public class TestActivity extends RoboActivity{
 
    @InjectView(R.id.textView1) TextView textView1;
    @InjectView(R.id.textView2) TextView textView2;
    @InjectView(R.id.p_w_picpathView1) ImageView p_w_picpathView1;
    @InjectResource(R.string.app_name) String name;
    @InjectResource(R.drawable.ic_launcher) Drawable icLauncher;
    @Inject LocationManager locManager;
    @Inject LayoutInflater inflater;
    @Inject NotificationManager notifyManager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_test);
        textView1.setText(name);
    }
}</span></span>

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

使用RoboGuice的好處

  • 不需要初始化控件,如有需要就用@InjectViews。

  • 不需要初始化系統(tǒng)服務(wù),如有需要就用@Inject。

  • 不需要初始化像Drawable,string以及其他的資源,如有需要就用@InjectResource。

  • 以上實(shí)踐能幫助你精簡(jiǎn)代碼。

  • 越少的代碼,越少的問題和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)目。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)站名稱:如何成為一個(gè)偷懶又高效的Android開發(fā)人員-創(chuàng)新互聯(lián)
URL鏈接:http://muchs.cn/article0/cocgoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、品牌網(wǎng)站制作網(wǎng)站導(dǎo)航外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作