我正在开发应用程序的免费和付费版本。我目前将其设置为一个“android 库项目”和两个常规的 android 项目,它们都引用该库。
我的应用程序在竞争中的一个好处是 apk 的大小非常小。我也希望尽可能小,尤其是付费版本。
那么如何在库项目中保留一个公共源代码,并且只在我的应用程序的免费版本中包含 admob jar 呢?
我发现一个答案提到包装器是一种可能性。但它并没有具体说明您将如何实际实施该解决方案。
当我弄清楚时,答案很简单。
在免费版本中,您只需使用还显示广告的活动来扩展您的活动。现在只在支持的广告中包含 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 了。