1. 程式人生 > >android中引用Library中的Activity (針對eclipse,as沒有這個問題)

android中引用Library中的Activity (針對eclipse,as沒有這個問題)

第一輯:小試牛刀 我們在一些專案中需要使用我們自定義的一個包中的Activity,那麼我們如何開啟Library中的Activity呢?下面我們就來研究一下吧: 第一步,我們需要清楚的是,我們在把library中作為一個庫引入我們的專案中的時候,library中的資原始檔,包括圖片,佈局,string引入都是會和我們主Project中的合併的,於是我們在建立我們專案的時候,我們就要注意我們的library中的資源名,避免重名,這樣在以後的引用過程中才不會衝突。 第二步,我們在我們的專案中啟動library中的Activity的時候,我們需要這樣來做: Intent intent=new Intent(MainActivity.this,cn.hebtu.ProjectActivity.class );
startActivity(intent); 於是我們注意了,這時系統會去我們的Manifest.xml中查詢我們這個Activity,但是我們主專案的Manifest.xml中並沒有配置:cn.hebtu.ProjectActivity這個Activity,於是程式就會報錯,提示找不見這個Activity,我原以為我們的程式也會把Manifest中的內容合併,結果,算了,還是我們自己配置一下吧,所以,我們還得做下面的一些工作: 因為我們匯入第三方的project之後,Manifest.xml檔案並不會合併,於是我們需要手動地把我們的library中Manifest.mxl的內容複製到我們的主工程中來,以及一些許可權,只有手動添加了,現在還沒有找到方法系統去查詢引用,可能這是工程上的一個漏洞 吧,好了,有了這些知識,我們盡情地匯入第三方的工程吧。。。
第二輯:小磨牛刀 我們在試牛刀的時候嚐到了我們如果整一個另外的一個Application去使用是多麼地爽,我們可以多麼簡單地使用它來把整個專案再次包裝,這些都得歸功於android 系統優秀的設計理念,於是乎,我們非常裝X的回想到了大學時候李敏師老的一句話“高內聚,低偶合”是啊,這個思想在android 中體現的是如此的明顯,它也是面向物件的一個非常核心的思想,那就是封裝,好了,不扯了,看下我們下面該怎麼磨刀了吧: 我們在上面提到了一個情況,當我們把另外一個專案原始碼作為一個Library引入到我們的專案中的時候,它的資原始檔就會被合併,如果合併的話我們就會面臨到許多問題: 我剛才是遇到一個layout中佈局重名的問題,我的總結是:
我們的專案一定不要和外部原始碼中的佈局相同,如果兩個專案都用到了這個同名的佈局,而android 系統優先選擇主專案中的資源,於是就會忽略外部原始碼中的資源,導致當外部原始碼需要用它自己的佈局的時候,而使用了主project中的資源,所以,layout一定不可以重名,這一點應該放在首位,因為這是致命的,如果重名就極可能造成系統的崩潰,於是緊握杜絕。