激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Android - Android筆記之:App模塊化及工程擴展的應用

Android筆記之:App模塊化及工程擴展的應用

2021-01-13 15:41Android開發網 Android

這篇文章是android開發人員的必備知識,是我特別為大家整理和總結的,不求完美,但是有用

1.需求
    無論是在.net還是java平臺,合理的分層架構是最普遍的模塊化思路之一。
    dll,jar文件無不風靡盛行,無處不在。
    一天,tx團隊和我說,我們現在要做android上做三個論壇的客戶端,一個是新聞論壇,一個是文學論壇,一個是音樂論壇。除了數據,界面和很少的模塊不一樣,其他的都一摸一樣。
    jar是我第一刻就想到的東西,但是共用的jar文件無法方便的共享資源或者覆蓋資源。
    而我們也不會傻傻的單獨做三個客戶端的吧,也不會傻傻的做3個客戶端再傻傻的copy3份,依次修改吧。

2.問題
   在android工程中如何開發一個共用framework,能共用資源,代碼,但是也能擴展? 

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

復制代碼 代碼如下:

if(新聞論壇) {
   //加載新聞論壇的資源
   //執行新聞論壇的代碼
   //顯示新聞論壇的效果
}else if(文學論壇) {
   //加載文學論壇的資源
   //執行文學論壇的代碼
   //顯示文學論壇的效果
}else if(音樂論壇) {
   //加載音樂論壇的資源
   //執行音樂論壇的代碼
   //顯示音樂論壇的效果
}
ps:這是一種很無奈的辦法,代碼丑陋,擴展性差,有沒有更好的辦法呢?


4.使用android library分離工程
    android library提供了一個類似于其他平臺的庫的概念,這個庫不僅能公用代碼,還能共用資源,還能覆寫資源。
    android library是以工程的顆粒來復用,引用它的工程,其實就是引用它的代碼,然后生成r.java和主工程需要的資源,而剔除library中被覆蓋的資源。其中library中的androidmanifest.xml不能復用,也就是說主工程必須重新定義androidmanifest.xml,這個也很容易理解,androidmanifest.xml本來就是工程的一個配置文件,一般來說不具備共用的庫的通用性。
    步驟如下:
    第一步:新建android工程common。
    第二步:右鍵common,選擇properties,在android標簽頁,選中"is library" ,如下圖。

Android筆記之:App模塊化及工程擴展的應用

 
    第三步: 新建主工程新聞論壇tianxianews。
    第四步: 右鍵tianxianews,選擇properties,在android標簽頁,點擊add,選中common。如下圖。

Android筆記之:App模塊化及工程擴展的應用

    查看最后的工程結構:

Android筆記之:App模塊化及工程擴展的應用

    此時此刻,common工程天衣無縫成了tianxianews工程的一部分。
    我們展開tianxianews工程的gen目錄:
    

Android筆記之:App模塊化及工程擴展的應用


    eclipse為了生成了兩個r.java,一個是common工程的,一個tianxianews工程的,但是內容是一摸一樣的,這樣做的好處是:r.java里面的內容包括兩個工程資源,第一,tianxianews工程通過r.java能調用到common工程的資源;第二,如果有覆寫的資源,生成apk的時候,tianxianews工程覆蓋common工程的資源,因為兩個r.java內容一樣,common代碼調用的r.java中的資源,實際上調用的是tianxianews資源,這個特性類似如面向對象的繼承的概念。
    我們還可以另外新建tianxiamusic,tianxialiterature工程,都引用common,這樣我們三個工程就能共用common,這樣我們就可以只在common一個工程中開發了。
    在這里,具體的使用步驟我沒有截圖出來,主要是沒什么技術,也沒什么好說的,就是兩個字:覆蓋。 

 

5.小結
    android library為android模塊化和工程擴展提供了一個很好的工具或者方式。隨著項目的增大,資源的共享,模塊化和擴展的這種需求更是日益凸顯,它不僅去掉了代碼的丑陋,而且減少了開發量,帶來的益處不少。同時由此我們也可以看出來android的不成熟,他們為我們大型工程提供的方案還是太少,這可能也有源自手機平臺本身的局限性吧,我們期待android市場走向更強大,技術走向更強悍。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 午夜爽爽爽男女免费观看hd | 国产亚洲美女精品久久久2020 | 成人nv在线观看 | 91九色视频在线观看 | 国产精品18久久久久久久 | 成人在线观看一区二区三区 | 红杏亚洲影院一区二区三区 | 日本a∨精品中文字幕在线 国产精品片www48888 | 国产91av视频| 精品一区二区免费 | 狠狠色噜噜狠狠狠米奇9999 | 成人 日韩 | 国产欧美亚洲精品a | 羞羞的视频免费在线观看 | 欧美性生交zzzzzxxxxx | 国产大片中文字幕在线观看 | 91精品国产综合久久青草 | 成人爽a毛片免费啪啪红桃视频 | 超91在线| 一区二区三区欧美在线观看 | 国产亚洲精品成人 | 欧美成人免费tv在线播放 | 色无极影院亚洲 | 91专区在线观看 | 性欧美视频在线观看 | 国产乱一区二区三区视频 | 国产亚洲精彩视频 | 久久久久久久久久久久久久av | 99精品国产在热久久婷婷 | 成人免费区 | 99久久精品免费看国产四区 | 一区二区三区黄色 | 久久久久国产成人精品亚洲午夜 | 欧美日韩a∨毛片一区 | 欧美黄一区 | h视频在线播放 | 国产精品久久久久影院老司 | av不卡免费在线 | 亚洲日本韩国在线观看 | 久草视频国产在线 | 91 免费视频 |