2

我正在开发应用程序的免费和付费版本。我目前将其设置为一个“android 库项目”和两个常规的 android 项目,它们都引用该库。

我的应用程序在竞争中的一个好处是 apk 的大小非常小。我也希望尽可能小,尤其是付费版本。

那么如何在库项目中保留一个公共源代码,并且只在我的应用程序的免费版本中包含 admob jar 呢?

我发现一个答案提到包装器是一种可能性。但它并没有具体说明您将如何实际实施该解决方案。

4

1 回答 1

0

当我弄清楚时,答案很简单。

在免费版本中,您只需使用还显示广告的活动来扩展您的活动。现在只在支持的广告中包含 admob 的 jar 文件。你已经准备好了。

public class AdNanoMusicActivity extends NanoMusicActivity {

private AdView adView;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (!getResources().getBoolean(R.bool.paid)) {
        // Create the adView
        adView = new AdView(this, AdSize.BANNER, "a1500167a6bde8a");

        // Lookup your LinearLayout assuming it's been given
        // the attribute android:id="@+id/mainLayout"
        LinearLayout layout = (LinearLayout)findViewById(R.id.mainLayout);

        // Add the adView to it
        layout.addView(adView,0);

        // Initiate a generic request to load it with an ad
        AdRequest adRequest = new AdRequest();
        adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
        adView.loadAd(adRequest);
    }

}

@Override
public void onDestroy() {
    if (adView != null) {
        adView.destroy();
    }
    super.onDestroy();
}
}

AdNanoMusicActivity 扩展了库项目中的 NanoMusicActivity。现在您只需要在应该使用广告的项目中包含 jar 文件。我想当我再次查看它时,现在不需要 R.bool.paid 了。

于 2012-10-27T22:47:09.677 回答