0
A
回答
3
恐怕不太什麼的Android庫項目是一回事,但你可以通過使用實現這一java語言本身的接口和類繼承特性。
庫項目似乎很好地處理了子項中父項的合併/重寫資源,並讓您使用具有不同應用程序包名稱的一個代碼庫。
鑑於有關使用庫項目有使用AdMob和一個犯規,我已經修訂這個答案的應用程序的一個版本更新後的評論...
假設你不介意包裝的AdMob庫(〜 138KB)中,最簡單的做法是擴展Applcation類,並在其中聲明枚舉和靜態方法來決定是否顯示AdMob廣告。
public class Application extends android.app.Application
{
public enum EditionType { LITE, FULL};
public static int getAdVisibilityForEdition(Context ctx)
{
if (EditionType.valueOf(ctx.getString(R.string.edition)) == EditionType.FULL)
{
return View.GONE;
}
return View.VISIBLE;
}
}
您只會將此類添加到庫項目中。在這三個項目中,您需要添加一個條目,/res/Strings.xml這樣:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="edition">LITE</string>
</resources>
它不事關什麼這個字符串的值是庫項目,但你會分別使用FULL和LITE在支付和廣告支持版本中進行更改。
最後,爲了響應這些值的活動,呼籲這樣的事情在你的onCreate()或的onResume():
View ad = (View)this.findViewById(R.id.your_adMob_view_id)
ad.setVisibility(Application.getAdVisibilityForEdition
(this.getApplicationContext()));
這將很好地工作的AdMob隨着AdMob代碼不會實際嘗試獲得如果視圖不可見,則爲廣告。
如果您真的不想爲AdMob jar和完整版中所需的清單權限添加額外的138K,則可以使用更優雅的方法來執行此操作,但會涉及在AdMob內容中使用某種包裝並改變版本之間的xml佈局(以包含AdMob視圖或不包含)或以編程方式將AdMob視圖注入佈局。
希望有所幫助。
相關問題
- 1. Android庫項目
- 2. 庫項目中的Android庫項目
- 3. android庫項目obfuscation
- 4. Android庫項目「java.lang.NoClassDefFoundError」
- 5. Android庫項目JAR
- 6. 從另一個Android庫項目引用Android庫項目
- 7. 在項目中包含庫項目Android
- 8. Android將項目轉換爲庫項目
- 9. android + gradle:多項目w /庫項目
- 10. Android庫項目庫依賴項
- 11. android主題和庫項目
- 12. 多個項目,android庫
- 13. Android單件庫項目
- 14. Android Lint:忽略庫項目
- 15. Android FacebookSDK項目庫參考
- 16. Realm隨着Android庫項目
- 17. Android圖庫項目聚焦?
- 18. Multidex在Android庫項目中?
- 19. 混淆Android庫項目
- 20. Android ORMLite DatabaseConfigUtil和庫項目
- 21. Android庫項目包含.jar
- 22. android庫項目中的java.lang.verifyerror
- 23. 使用Android庫項目
- 24. Android庫項目中的ContentProvider
- 25. 將庫導入Android項目
- 26. 只創建Android庫項目
- 27. Android庫項目 - 資源$ NotFoundException
- 28. Android項目庫不爽快?
- 29. android-maven-plugin和庫項目
- 30. Gradle外部Android庫項目
如何使用「接口和類繼承」(只是快速瀏覽)...? – yydl 2011-04-11 21:07:14
好吧,它是所有面向對象語言中的一箇中心概念,可能很難給出快速概述。你可以從http://download.oracle.com/javase/tutorial/java/IandI/subclasses.html開始,或者如果你可以舉一個你想做的事情的例子,也許我們可以提供幫助。 – mmeyer 2011-04-11 21:30:37
但是我不能在庫中引用這些子類,因爲它們只會在決賽中存在。 – yydl 2011-04-11 22:42:55