插件化-Small插件实例

今天可以处理插件化small的使用,之前已经使用过replugin的项目,但是因为对业务场景使用的问题,可能会从新在写一篇。


现在根据这个框架的样子来创建一个工程。

第一部分:项目框架

app项目(壳工程),app.main(主工程),app.buycar(买车工程),app.sellcar,app.serviceapp

第二部分:壳工程创建

第一步:对壳工程app进行small引入和依赖,项目gradle中。备注:gradle最好使用2.3.0版本,3.0以上版本出现一些bug

buildscript {
    
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.0'
        classpath 'net.wequick.tools.build:gradle-small:1.3.0-beta6' //small框架
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
//small声明
apply plugin: 'net.wequick.small'
small {
//    buildToAssets = false
    strictSplitResources = false
    android {
        compileSdkVersion = 26
        buildToolsVersion = "25.0.2"
        supportVersion = "25.1.0"
    }
}
第二步:添加正式版本的签名证书(不知道这步到底有没有用)

第三步:在application中对small进行初始化工作。

/**
 * Created by malei on 2018/5/2.
 */

public class MyApp extends Application{
    
    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        Small.preSetUp(this);
    }
}

第四步:在assets文件下添加bundle.json文件,来进行各个进程的跳转声明

{
  "version": "1.0.0",
  "bundles": [
    {
      "uri": "main",
      "pkg": "com.malei.app.main"
    },
    {
      "uri": "buycar",
      "pkg": "com.malei.app.buycar"
    },
    {
      "uri": "sellcar",
      "pkg": "com.malei.app.sellcar"
    }
  ]
}
第五步:在MainActivity中进行从壳工程跳转到主工程中
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onStart() {
        super.onStart();
        Small.setUp(this,new Small.OnCompleteListener(){
            @Override
            public void onComplete() {
                Small.openUri("main", MainActivity.this);
            }
        });
    }
}

第三部分:app.mian主工程创建

第一步:创建一个新的module项目

 new Module -> phone&Table Module 

 命名规范:

第二步:主工程向各个业务模块跳转

主工程和各个业务工程其实都不需要进行什么配置,只要跳转就好了

//卖车
this.findViewById(R.id.sellCarBtn).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Small.setUp(MainActivity.this,new Small.OnCompleteListener(){
            @Override
            public void onComplete() {
                Small.openUri("sellcar", MainActivity.this);
            }

        });

    }
});

//买车
this.findViewById(R.id.buyCarBtn).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Small.setUp(MainActivity.this,new Small.OnCompleteListener(){
            @Override
            public void onComplete() {
                Small.openUri("buycar", MainActivity.this);
            }

        });
    }
});

//服务
this.findViewById(R.id.serviceCarBtn).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

    }
});
第四部分:运行项目

项目运行钱,我们需要进行鞋编译处理。打开右边gradle,然后进入small包中,先buildLib下,然后在buildBundle,如果没有异常就可以运行了。如果有问题也可以clearlib和clearBundle下


总结;

small插件

优点:在使用的时候还是比较方便的,配置比较简单,只需要在壳工程中添加些small的配置,其他业务模块工程无需其实处理,使用起来还是比较简单方便的。

缺点:只支持独立module项目,但是不支持独立的apk

small他只支持加载独立的modle项目,并不支持加载原生的apk,使用他更像是为了对大项目进行拆分,对业务模块进行独立编译,去耦合。






  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值