从付费版本中排除admob jar

时间:2012-07-29 15:13:57

标签: android admob

我正在开发一个免费和付费的应用程序版本。我现在把它设置为一个“android库项目”和两个常规的android项目都引用了库。

我的应用程序在竞争中的一个好处是apk的大小非常小。 我希望保持尽可能小的尺寸,特别是付费版本。

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

我发现answer提到包装器是一种可能性。但它没有说明你实际上如何实施解决方案。

1 个答案:

答案 0 :(得分: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。