我開發了應用程序的免費和付費版本。我有它目前設置爲一個「android庫項目」和兩個常規的android項目都引用該庫。從付費版本中排除admob jar
我的應用程序在競爭中的一個好處是apk的大小非常小。 我也想保持儘可能小的尺寸,尤其是付費版本。
那麼,我該如何在庫項目中保留一個常見的源代碼,並且只在應用程序的免費版本中包含admob jar?
我發現answer提到一個包裝將是一種可能性。但它沒有說明你實際上將如何實施解決方案。
我開發了應用程序的免費和付費版本。我有它目前設置爲一個「android庫項目」和兩個常規的android項目都引用該庫。從付費版本中排除admob jar
我的應用程序在競爭中的一個好處是apk的大小非常小。 我也想保持儘可能小的尺寸,尤其是付費版本。
那麼,我該如何在庫項目中保留一個常見的源代碼,並且只在應用程序的免費版本中包含admob jar?
我發現answer提到一個包裝將是一種可能性。但它沒有說明你實際上將如何實施解決方案。
當我找到答案時,答案很簡單。
在免費版本中,您只需將活動擴展爲也展示廣告的活動。現在,只需在廣告支持人員中包含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。
我需要一個答案。而這個答案鏈接本質上是說把一個if(LITE){show add} else {hide add}不從實際編譯的產品中移除jar文件。某些android應用商店即使禁用了廣告,也不會展示廣告的jar文件。因此,我無法將我的付費版本應用程序提交給一些應用程序商店。 – 2012-10-24 03:01:54