开怀一笑
程序员找不到对象,一般有三种情况:
1. C#、JAVA都有对象,但是经常找不到对象。
2.ASM C直接没有对象。
3.javascript都是伪对象,最多算暧昧。
但C++日子一直都好过,因为C++是多继承,富二代呀!!!
Small框架搭建
言归正传,下面我们开始进入Small框架的入门集成吧~~
1. 准备工作(默认你电脑有android开发环境)
操作系统:Win7 64位
开发工具:Android Studio
2. 创建项目
2.1 创建 宿主APP 工程
跟平常创建项目一样,创建一个App项目,这里我们定的包名是com.ht.demo 在项目的build.gradle的dependencies里面加入下面的代码
classpath 'net.wequick.tools.build:gradle-small:1.1.0-alpha2'
在gradle的最后面加入下面的代码
apply plugin: 'net.wequick.small'
small
{
buildToAssets = false
aarVersion = '1.1.0-alpha2'
android
{
compileSdkVersion = 23
buildToolsVersion = "23.0.3"
supportVersion = "23.4.0"
}
}
把项目切换到project目录,点击app右键,新建assets目录(该目录在main下面),到这里宿主app创建完成
2.1 创建 插件APP 工程
在宿主app点右键新建 Module,如下图:
创建的时候,选择 Phone & Tablet Module,如下图:
Tips:这个地方要注意的是Application/Library name这里填插件名称的时候,前面要加App.如App.main;另外一个要注意的地方Package name在填的时候,一定要宿主app的包名+插件app的名称,如宿主app的包名是com.ht.demo,那么这里填的包名是com.ht.demo.app.main
到这里,恭喜你,完成了插件APP的创建
2.2 关联宿主APP工程
在宿主APP的assets目录下面,新建一个bundle.json文件,如图:
在bundle.json文件里面加入以下内容:
{
"version": "1.0.0",
"bundles":
[
{
"uri": "main",
"pkg": "com.ht.demo.app.main"
}
]
}
其中pkg为 插件APP的包名 ,我们在上面有介绍过,uri为插件的名称,这个你自己定义。最后你有多少个插件就在这里按格式加json串,详细可以看demo里面的json
到这里关联成功了,下面我教大家进行项目编译
2.3 项目编译(这个很关键)
编译的地方如图:
依次输入以下命令行:
gradlew buildLib -q
gradlew buildBundle -q
走完这两步,项目编译成功了
2.4 运行Small项目(就要可以看到效果了,期待吧~~~哈哈)
在宿主APP工程里面,新建一个Application类,进行Small初始化,如下:
public class AppContext extends Application
{
public AppContext()
{
Small.preSetUp(this);
}
@Override
public void onCreate()
{
super.onCreate();
}
}
初始化完成之后,开始进行宿主打开插件的操作,代码如下:
public class MainActivity extends Activity
{
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg)
{
super.handleMessage(msg);
Small.openUri("main",MainActivity.this);
finish();
}
};
@Override
protected void onCreate(Bundle savedInstanceState)
{
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
}
@Override
protected void onStart()
{
super.onStart();
Small.setUp(MainActivity.this, new Small.OnCompleteListener()
{
@Override
public void onComplete()
{
handler.sendEmptyMessageDelayed(0,3000);
}
});
}
}
在MainActivity里的onstart方法里面进行setup,然后打开插件的时候用Small.openUri(xxx,xxx),第一个参数为bundle.json里面你自定义的uri,第二个参数为上下文
到这里,可以运行项目了,看效果吧~~~
最后项目跑起来之后,在宿主APP里面会生成如下的内容:
每个so文件其实就是一个app
3. 结束语
到这里,一个简单的Small框架搭建成功了,还有更多惊喜在后面,大家期待吧~~另外附上demo的下载地址,欢迎大家下载下来学习研究!demo用Small框架搭建了一个Radiobutton+Fragment的大众APP架子!demo里面还有关于插件继承宿主APP里面的类的方法,大家下载下来研究吧!
demo下载地址: 戳这里
每天努力一点点,未来的你会感恩现在的自己~~~