Android插件化(使用Small框架)
github:
https://github.com/cayden/MySmall
Android插件化(使用Small框架)
框架源代碼
1. Create Project
File->New->New Project...
1.1 Configure your new project
假設宿主包名為com.example.mysmall
改動Company Domain為com.example.mysmall
這步是個技巧,在Step3新建Module時將會自己主動帶上該前綴
修正Package name為com.example.mysmall
1.2 Add an activity to mobile
這步推薦使用Fullscreen Activity,作為啟動界面再好只是。 在配置Activity界面。建議把Activity Name改為LaunchActivity(使名符事實上)。
2. Configure Small
改動Project的build.gradle
2.1 增加Small編譯庫
buildscript {repositories {jcenter()}dependencies {classpath 'com.android.tools.build:gradle:1.3.0'classpath 'net.wequick.tools.build:gradle-small:0.1.1'} }...apply plugin: 'net.wequick.small'2.2 配置Small DSL (可選)
眼下僅僅有一個屬性aarVersion,表示Small aar的代碼庫版本號。假設沒有設置,默覺得gradle-small的版本號。
small {aarVersion = '0.1.2' }最新的版本號號能夠在Bintray上看到。
3. Create Module
File->New->Module來創(chuàng)建插件模塊,須要滿足:
包名包括:.app.,?.lib.或者.web.
為什么要這樣?由于Small會依據(jù)包名對插件進行歸類。特殊的域名空間如:“.app.” 會讓這變得easy。
對lib.*模塊選擇Android Library,其它模塊選擇Phone & Tablet Module。
創(chuàng)建一個插件模塊,比方app.main:
改動Package name為com.example.mysmall.app.main
4. Configure UI route
右鍵app模塊->New->Folder->Assets Folder,新建assets文件夾,
右鍵assets文件夾->New->File,新建bundles.json文件。增加:
{"version": "1.0.0","bundles": [{"uri": "main","pkg": "com.example.mysmall.app.main"}] }5. Setup Small
5.1 配置簽名
切換到Project文件夾樹,右鍵MySmall,新建sign文件夾,增加release.jks簽名文件。
在app模塊的build.gradle中增加簽名配置(password改成自己的):
signingConfigs {release {storeFile file('../sign/release.jks')storePassword "5mall@ndro!d"keyAlias "small"keyPassword "5mall@ndro!d"} } buildTypes {release {signingConfig signingConfigs.release} }5.2 配置基礎依賴
在app模塊增加共享的依賴庫。比方:
compile 'com.android.support:design:23.1.1'5.3 載入插件
在app模塊的LaunchActivity重載onStart方法:
@Override protected void onStart() {super.onStart();Small.setBaseUri("http://example.com/");Small.setUp(this, new net.wequick.small.Bundle.OnLoadListener() {@Overridepublic void onStart(int bundleCount, int upgradeBundlesCount, long upgradeBundlesSize) {}@Overridepublic void onProgress(int bundleIndex, String bundleName, long loadedSize, long bundleSize) {}@Overridepublic void onComplete(Boolean success) {Small.openUri("main", LaunchActivity.this);}}); }6. Compile Small
Build libraries (準備基礎庫)
[./]gradlew buildLib -q (-q是安靜模式,能夠讓輸出更好看,也能夠不加)
Build bundles (打包全部組件)
[./]gradlew buildBundle -q (-q是安靜模式,能夠讓輸出更好看,也能夠不加)
這兩步,假設你喜歡,也能夠在Gradle任務導航里執(zhí)行
單獨編譯一個組件能夠使用 [./]gradlew -p web.about assembleRelease
或者
7. Run Small
在工具欄,選擇app模塊,執(zhí)行。
.文件夾結構
異常處理
1、上面是給出的步驟 可是須要注意的是新建插件模塊的時候比方輸入的是app.main 這個時候包名須要注意改動為相似com.example.small.app.main ?而不是com.example.small.appmain 這樣執(zhí)行會出問題。2、假設編譯出現(xiàn)故障 須要先執(zhí)行./gradlew cleanLib
轉載于:https://www.cnblogs.com/lxjshuju/p/7226175.html
總結
以上是生活随笔為你收集整理的Android插件化(使用Small框架)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#流对象使用完后不立即释放的问题
- 下一篇: 1.2目录处理命令