Android插件化(使用Small框架)
2016-10-27 21:24
204 查看
github:
https://github.com/cayden/MySmall
File->New->New Project...
假设宿主包名为
设置Application name为
修改Company Domain为
这步是个技巧,在Step3新建Module时将会自动带上该前缀
修正Package name为
这步推荐使用Fullscreen Activity,作为启动界面再好不过。 在配置Activity界面,建议把Activity Name改为LaunchActivity(使名符其实)。
修改Project的build.gradle
目前只有一个属性
最新的版本号可以在Bintray上看到。
File->New->Module来创建插件模块,需要满足:
模块名形如:
包名包含:
为什么要这样?因为Small会根据包名对插件进行归类,特殊的域名空间如:“.app.” 会让这变得容易。
对
& Tablet Module。
创建一个插件模块,比如
修改Application/Library name为
修改Package name为
右键
右键
切换到
在
在
在
Build libraries (准备基础库)
[./]gradlew buildLib -q (-q是安静模式,可以让输出更好看,也可以不加)
Build bundles (打包所有组件)
[./]gradlew buildBundle -q (-q是安静模式,可以让输出更好看,也可以不加)
这两步,如果你喜欢,也可以在Gradle任务导航里运行
单独编译一个组件可以使用 [./]gradlew -p web.about assembleRelease
或者
在工具栏
,选择app模块,运行。
1、上面是给出的步骤
但是需要注意的是新建插件模块的时候比如输入的是app.main 这个时候包名需要注意修改为类似com.example.small.app.main 而不是com.example.small.appmain 这样运行会出问题。
2、如果编译出现问题 需要先执行./gradlew cleanLib
https://github.com/cayden/MySmall
Android插件化(使用Small框架)
框架源码
1. Create Project
File->New->New Project...
1.1
Configure your new project
假设宿主包名为com.example.mysmall
设置Application name为
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来创建插件模块,需要满足:模块名形如:
app.*,
lib.*或者
web.*
包名包含:
.app.,
.lib.或者
.web.
为什么要这样?因为Small会根据包名对插件进行归类,特殊的域名空间如:“.app.” 会让这变得容易。
对
lib.*模块选择Android Library,其他模块选择Phone
& Tablet Module。
创建一个插件模块,比如
app.main:
修改Application/Library name为
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中增加签名配置(密码改成自己的):
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() { @Override public void onStart(int bundleCount, int upgradeBundlesCount, long upgradeBundlesSize) { } @Override public void onProgress(int bundleIndex, String bundleName, long loadedSize, long bundleSize) { } @Override public 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任务导航里运行
单独编译一个组件可以使用 [./]gradlew -p web.about assembleRelease
或者
7.
Run Small
在工具栏,选择app模块,运行。
.目录结构
异常处理
1、上面是给出的步骤但是需要注意的是新建插件模块的时候比如输入的是app.main 这个时候包名需要注意修改为类似com.example.small.app.main 而不是com.example.small.appmain 这样运行会出问题。
2、如果编译出现问题 需要先执行./gradlew cleanLib
相关文章推荐
- Android自助餐之插件化(使用Small框架)
- Android插件化(使用Small框架)
- Android自助餐之插件化(使用Small框架)
- Android自助餐之插件化(使用Small框架)
- Android 使用动态加载框架DL进行插件化开发
- Android 使用动态加载框架DL进行插件化开发
- Android Plugin 插件化技术-Small插件框架
- Android Small插件化框架源码分析
- Android 使用动态加载框架DL进行插件化开发
- Android 使用动态加载框架DL进行插件化开发
- Android 使用动态加载框架DL进行插件化开发
- Android 使用动态加载框架DL进行插件化开发
- Android 使用动态加载框架DL进行插件化开发
- Android 使用动态载入框架DL进行插件化开发
- Android--使用动态加载框架DL进行插件化开发
- Android 使用动态加载框架DL进行插件化开发
- Android 使用动态加载框架DL进行插件化开发
- Android 使用动态加载框架DL进行插件化开发
- Android Small插件化框架源码分析