android模塊化app開發-4爲APP減負

  如今android應用中一個趨勢是應用愈來愈大,免去遊戲不談普通APP也是一個個的體積直線增加。這裏面除了業務增加外各類接口jar包的對接也佔了很多比重。像廣告SDK,統計SDK,支付SDK等這些咱們在平時開發應用過程當中基本都會使用到,這些SDK小的幾十K大的甚至幾M的都有,若是所有打包到APP中不用咱們本身寫程序整個APP包可能就上M級別了。 java

  今天我就舉例說明使用apkplug框架怎樣爲APP減負,說直白一點就是將各類SDK放到插件apk包中,在須要的時候動態下載下來。 android

我以有米廣告SDK接入來講明(300多K),最近用到這個就選擇這個,固然還有其餘好的廣告SDK你們能夠討論哈。 app

   首先我新建一個插件工程myBundleForYoumi這個工程中導入YoumiSdk_v4.04_2013-07-12.jar到lib文件夾按照插件建立方式添加對應的plugin.xml和java類,最終目錄結構爲 框架

第二步 在plugin.xml文件夾將youmi須要的類路徑通通導出 ide

<plugin-features  
	Bundle-Name="youmi" 
	Bundle-SymbolicName="com.example.mybundleforyoumi"	
	Bundle-Version="1.0.0"
	date="2013.10.223"
	provider-name="插件開發商的名稱" 
	provider-url="" 
	Bundle-Activator="com.example.mybundleforyoumi.SimpleBundle"
	Export-Package="net.youmi.android,net.youmi.android.offers,net.youmi.android.banner"   
	>
</plugin-features>


在這裏我也沒有所有導出來。 測試

第三步 建立調用有米廣告的另一個插件項目 this

該項目中也導入YoumiSdk_v4.04_2013-07-12.jar但不編譯(注意:上一個插件裏面是加入到lib文件夾也就是編譯進項目apk文件中)如圖 url

第四步 在插件中調用廣告 spa

 

public class MainActivity extends BundleActivity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		  // 初始化接口,應用啓動的時候調用
 		// 參數:appId, appSecret, 調試模式
 		AdManager.getInstance(this).init("73057fb81878f2ba",
				"f2707618edb7c2a4", false);
 		// 若是使用積分廣告,請務必調用積分廣告的初始化接口:
 		OffersManager.getInstance(this).onAppLaunch();
 		  // 將廣告條adView添加到須要展現的layout控件中
        LinearLayout adLayout = (LinearLayout) findViewById(R.id.adLayout);
        AdView adView = new AdView(this, AdSize.SIZE_320x50);
        adLayout.addView(adView);
	}


}
最後將兩個插件加入到主應用中運行結果

 

咱們僅是在本地作的測試,也能夠將插件放到雲端在須要的時候才下載到手機客戶端上,這樣能夠保證用戶在下載時安裝包更小,而在用到這個功能時再去雲端更新插件。 插件

這裏僅是實踐其中一種方案,你也能夠將包調用封裝爲OSGI服務提供給其餘插件使用而不用在plugin.xml導出包路徑,固然若是SDK官方直接提供插件就更加方便了

最後奉上源碼

相關文章
相關標籤/搜索