最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android筆記之:App模塊化及工程擴(kuò)展的應(yīng)用

 更新時間:2013年04月28日 09:28:24   作者:  
這篇文章是android開發(fā)人員的必備知識,是我特別為大家整理和總結(jié)的,不求完美,但是有用

1.需求
    無論是在.net還是java平臺,合理的分層架構(gòu)是最普遍的模塊化思路之一。
    dll,jar文件無不風(fēng)靡盛行,無處不在。
    一天,tx團(tuán)隊(duì)和我說,我們現(xiàn)在要做android上做三個論壇的客戶端,一個是新聞?wù)搲粋€是文學(xué)論壇,一個是音樂論壇。除了數(shù)據(jù),界面和很少的模塊不一樣,其他的都一摸一樣。
    jar是我第一刻就想到的東西,但是共用的jar文件無法方便的共享資源或者覆蓋資源。
    而我們也不會傻傻的單獨(dú)做三個客戶端的吧,也不會傻傻的做3個客戶端再傻傻的copy3份,依次修改吧。

2.問題
   在Android工程中如何開發(fā)一個共用Framework,能共用資源,代碼,但是也能擴(kuò)展? 

3.使用硬編碼判斷
   有人提出了一種方案, 在代碼里面判斷:

復(fù)制代碼 代碼如下:

if(新聞?wù)搲? {
   //加載新聞?wù)搲馁Y源
   //執(zhí)行新聞?wù)搲拇a
   //顯示新聞?wù)搲男Ч?
}else if(文學(xué)論壇) {
   //加載文學(xué)論壇的資源
   //執(zhí)行文學(xué)論壇的代碼
   //顯示文學(xué)論壇的效果
}else if(音樂論壇) {
   //加載音樂論壇的資源
   //執(zhí)行音樂論壇的代碼
   //顯示音樂論壇的效果
}
PS:這是一種很無奈的辦法,代碼丑陋,擴(kuò)展性差,有沒有更好的辦法呢?

4.使用Android Library分離工程
    Android Library提供了一個類似于其他平臺的庫的概念,這個庫不僅能公用代碼,還能共用資源,還能覆寫資源。
    Android Library是以工程的顆粒來復(fù)用,引用它的工程,其實(shí)就是引用它的代碼,然后生成R.java和主工程需要的資源,而剔除Library中被覆蓋的資源。其中Library中的AndroidManifest.xml不能復(fù)用,也就是說主工程必須重新定義AndroidManifest.xml,這個也很容易理解,AndroidManifest.xml本來就是工程的一個配置文件,一般來說不具備共用的庫的通用性。
    步驟如下:
    第一步:新建Android工程common。
    第二步:右鍵common,選擇Properties,在Android標(biāo)簽頁,選中"Is Library" ,如下圖。
 
    第三步: 新建主工程新聞?wù)搲痶ianxianews。
    第四步: 右鍵tianxianews,選擇Properties,在Android標(biāo)簽頁,點(diǎn)擊Add,選中common。如下圖。
    查看最后的工程結(jié)構(gòu):
    此時此刻,common工程天衣無縫成了tianxianews工程的一部分。
    我們展開tianxianews工程的gen目錄:
    
    eclipse為了生成了兩個R.java,一個是common工程的,一個tianxianews工程的,但是內(nèi)容是一摸一樣的,這樣做的好處是:R.java里面的內(nèi)容包括兩個工程資源,第一,tianxianews工程通過R.java能調(diào)用到common工程的資源;第二,如果有覆寫的資源,生成apk的時候,tianxianews工程覆蓋common工程的資源,因?yàn)閮蓚€R.java內(nèi)容一樣,common代碼調(diào)用的R.java中的資源,實(shí)際上調(diào)用的是tianxianews資源,這個特性類似如面向?qū)ο蟮睦^承的概念。
    我們還可以另外新建tianxiamusic,tianxialiterature工程,都引用common,這樣我們?nèi)齻€工程就能共用common,這樣我們就可以只在common一個工程中開發(fā)了。
    在這里,具體的使用步驟我沒有截圖出來,主要是沒什么技術(shù),也沒什么好說的,就是兩個字:覆蓋。 

5.小結(jié)
    Android Library為Android模塊化和工程擴(kuò)展提供了一個很好的工具或者方式。隨著項(xiàng)目的增大,資源的共享,模塊化和擴(kuò)展的這種需求更是日益凸顯,它不僅去掉了代碼的丑陋,而且減少了開發(fā)量,帶來的益處不少。同時由此我們也可以看出來Android的不成熟,他們?yōu)槲覀兇笮凸こ烫峁┑姆桨高€是太少,這可能也有源自手機(jī)平臺本身的局限性吧,我們期待Android市場走向更強(qiáng)大,技術(shù)走向更強(qiáng)悍。

相關(guān)文章

  • Kotlin類的繼承實(shí)現(xiàn)詳細(xì)介紹

    Kotlin類的繼承實(shí)現(xiàn)詳細(xì)介紹

    這篇文章主要介紹了Kotlin類的繼承,在Java中類的繼承默認(rèn)是繼承父類的方法和參數(shù)的,但是在kotlin中默認(rèn)是不繼承的,那么我們接下來來驗(yàn)證
    2022-09-09
  • Android定時器實(shí)現(xiàn)的幾種方式整理及removeCallbacks失效問題解決

    Android定時器實(shí)現(xiàn)的幾種方式整理及removeCallbacks失效問題解決

    本文為大家詳細(xì)介紹下Android 定時器實(shí)現(xiàn)的幾種方式:Handler + Runnable、Timer的方式、Handle與線程的sleep(long )方法和removeCallbacks失效問題如何解決
    2013-06-06
  • Android離線緩存的實(shí)例代碼

    Android離線緩存的實(shí)例代碼

    android很多時候需要考慮緩存的問題,本篇文章主要介紹了Android離線緩存的實(shí)例代碼,具有一定的參考價值,有興趣的可以了解一下。
    2017-01-01
  • Android媒體開發(fā)之音樂播放器

    Android媒體開發(fā)之音樂播放器

    這篇文章主要為大家詳細(xì)介紹了Android媒體開發(fā)之音樂播放器,播放SD卡中的音樂,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Android開發(fā)中的單例模式應(yīng)用詳解

    Android開發(fā)中的單例模式應(yīng)用詳解

    這篇文章主要介紹了Android開發(fā)中的單例模式應(yīng)用,結(jié)合實(shí)例形式詳細(xì)分析了Android開發(fā)中常用單例模式的實(shí)現(xiàn)與使用方法,需要的朋友可以參考下
    2018-01-01
  • android?viewflipper實(shí)現(xiàn)左右滑動切換顯示圖片

    android?viewflipper實(shí)現(xiàn)左右滑動切換顯示圖片

    這篇文章主要為大家詳細(xì)介紹了android?viewflipper實(shí)現(xiàn)左右滑動切換顯示圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Android APP數(shù)字解鎖實(shí)例詳解

    Android APP數(shù)字解鎖實(shí)例詳解

    這篇文章主要介紹了Android 應(yīng)用數(shù)字解鎖實(shí)例詳解的相關(guān)資料,這里附有實(shí)例代碼及實(shí)現(xiàn)效果圖,需要的朋友可以參考下
    2016-11-11
  • Android開發(fā)實(shí)現(xiàn)自定義新聞加載頁面功能實(shí)例

    Android開發(fā)實(shí)現(xiàn)自定義新聞加載頁面功能實(shí)例

    這篇文章主要介紹了Android開發(fā)實(shí)現(xiàn)自定義新聞加載頁面功能,結(jié)合具體實(shí)例形式分析了Android界面加載及頁面布局相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10
  • Android基于OpenCV實(shí)現(xiàn)非真實(shí)渲染

    Android基于OpenCV實(shí)現(xiàn)非真實(shí)渲染

    非真實(shí)感渲染(Non Photorealistic Rendering,簡稱NPR),是指利用計(jì)算機(jī)模擬各種視覺藝術(shù)的繪制風(fēng)格,也用于發(fā)展新的繪制風(fēng)格。比如模擬中國畫、水彩、素描、油畫、版畫等藝術(shù)風(fēng)格。本文將講解Android基于OpenCV實(shí)現(xiàn)非真實(shí)渲染的方法
    2021-06-06
  • Android Camera是否支持變焦的判斷方法總結(jié)

    Android Camera是否支持變焦的判斷方法總結(jié)

    這篇文章主要介紹了Android Camera是否支持變焦的判斷方法總結(jié),本文總結(jié)了調(diào)節(jié)攝像頭焦距編程中遇到的一些問題和解決方法,需要的朋友可以參考下
    2015-04-04

最新評論

贵港市| 渝北区| 成武县| 京山县| 韩城市| 阿克| 竹北市| 许昌市| 台山市| 绵阳市| 新乡县| 松潘县| 峡江县| 济源市| 湖北省| 丹棱县| 龙门县| 黄浦区| 通河县| 台湾省| 仁寿县| 岱山县| 棋牌| 富蕴县| 屯昌县| 获嘉县| 宝坻区| 东安县| 喀喇沁旗| 鲁甸县| 岳西县| 申扎县| 沂源县| 榆中县| 偃师市| 定边县| 五常市| 长沙县| 西宁市| 仁怀市| 横山县|