Coder Social home page Coder Social logo

weexerosframework's Introduction

安卓工程

Weex-eros Android框架工程 本部分主要面向android原生开发者,旨在介绍weex-eros-android框架的项目结构和设计思路,方便广大weex开发者进行weex原生拓展开发。

一.功能介绍

weex-eros是在weex原生拓展的基础上,结合我团队具体项目业务场景,总结出来的一套易用性强,侵入性低,快速集成开发的框架,框架中集成内置module,包括路由,本地存储,网络请求,全局参数配置,事件发布订阅,调用摄像头等,基本涵盖大部分业务场景需求,且提供了自定义接口,方便开发者自定义实现。

二.使用框架

目前提供了源码依赖的方式,这是我们比较推荐的方式。如果你使用Android Studio进行开发,你可将项目源码做为Moudle导入项目中,在app的build.gradle中添加如下依赖:

compile project(':wxframework')

关于gradle和maven的依赖方式,我们将以迅雷不及掩耳之势在后续更新放出。

三.项目目录结构

Eros项目的目录结构如下:

项目目录结构
·
|-- BMInitConfig                    initConfig
|-- BMWXApplication                 封装的Application
|-- BMWXEngine                      框架初始化引擎
|-- BMWXEnvironment                 框架上下文
|-- activity                        封装的activity,包括提供weex渲染和一些默认实现页面
     |-- AbstractWeexActivity
|-- adapter                         框架对功能模块具体实现类
     |-- router
     |-- DefaultImageAdapter
     |-- DefaultStorageAdapter
|-- constant                        常量类
|-- event                           处理与js交互的自定义事件
|-- extend                          weex原生的拓展
     |-- adapter
          | -- DefaultWXHttpAdapter 拓展weex原生IWXHttpAdapter
          |-- DefaultWXImageAdapter 拓展weex原生IWXImgLoaderAdapter
    |-- components                  自定义weex组件
    |-- module                      自定义weex module
|-- http                            http实现(默认使用okhttp)
|-- manager                         业务处理管理类
|-- model                           java beans
|-- utils                           utils

四.关键类 总览Eros项目的工程目录,有些类是我们需要特别注意的:

BMWXApplication 此类为Applcation的子类,将你项目的Application继承它,便可以自动完成Eros框架的初始化和内置moudle,component的注册,方便开发者快速集成。

public class BMWXApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
    }

    private void initWeex() {
        BMWXEngine.initialize(this, new BMInitConfig.Builder().isActiceInterceptor(Constant
                .INTERCEPTOR_ACTIVE).build());
    }
}

BMWXEngine 此类是Eros框架的初始化入口,请在你的项目入口调用initialize方法完成初始化。

public class App extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        BMWXEngine.initialize(this, new BMInitConfig.Builder().isActiceInterceptor(Constant
                .INTERCEPTOR_ACTIVE).build());
    }

}

BMWXEngine内部将完成weex框架的初始化和内置moudle,component的注册以Enviroment.config的参数配置。

    public static void initialize(Application context, BMInitConfig initConfig) {
        initPlatformConfig(context);
        initConing(initConfig);
        engineStart(context);
        registerBMComponentsAndModules(context);
        initHttpClient(context);
        initInterceptor(context, initConfig);
        initDispatchCenter();
    }

此外,为了方便于js端的数据交互,你可以通过BMInitConfig将一些参数放入全局环境中:

  HashMap<String,String> envs=new HashMap<>();
        envs.put("test","test");
        BMWXEngine.initialize(this, new BMInitConfig.Builder().setCustomerEnv(envs).build());

js端可以使用weex.enviroment.config 获取。

AbstractWeexActivity

此类为Application的子类,将你项目的Application继承它,便可以自动完成Eros框架的初始化和内置moudle,component的注册,方便开发者快速集成。

public class BMWXApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
    }

    private void initWeex() {
        BMWXEngine.initialize(this, new BMInitConfig.Builder().isActiceInterceptor(Constant
                .INTERCEPTOR_ACTIVE).build());
    }
}

五.项目地址

目前Eros项目的框架部分已经完全开源,项目地址[https://github.com/aa453509345/WeexErosFramework], 另外WeexErosFramework项目所以来的WeexSDK是我们在Weex原生SDK的基础上,修复了原生SDK的部分bug所维护的SDK,项目地址: [https://github.com/aa453509345/WeexSDK] ,目前Eros项目还在快速开发迭代中,对于功能复杂或自定义程度高度制定的场景支持可能还不够完善,我们会在后续版本中支持完善, 也希望广大weex开发者和开源爱好者提出建议,共同完善Eros。

有任何问题和建议的童鞋,请�查看Eros�使用手册

weexerosframework's People

Contributors

myliuyx avatar hanliuxin5 avatar

Watchers

hujiwei avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.