安卓框架搭建(三)Base类的封装及工具类合集

这篇文章主要介绍bese类相关的封装

首先是 BaseApplication的封装,主要是初始化一些项目第三方公共的部分 

先来个最基本的吧 剩下的依照自己的需求增加即可

public class BaseApplication extends Application {
    private static BaseApplication instance;
    private static Context appContext;

    @Override
    public void onCreate() {
        // TODO Auto-generated method stub
        super.onCreate();
        instance = this;
        appContext = instance.getApplicationContext();
        //初始化X内核
        initX5Webview();
        //初始化mob分享
//        MobSDK.init(this);

    }
    private void initX5Webview() {
        //搜集本地tbs内核信息并上报服务器,服务器返回结果决定使用哪个内核。
        QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {

            @Override
            public void onViewInitFinished(boolean arg0) {
                // TODO Auto-generated method stub
                //x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。
                Log.d("app", " onViewInitFinished is " + arg0);
            }

            @Override
            public void onCoreInitFinished() {
                // TODO Auto-generated method stub
            }
        };
        //x5内核初始化接口
        QbSdk.initX5Environment(getApplicationContext(), cb);
    }
    public static synchronized BaseApplication getInstance() {
        return instance;
    }

    public static Context getAppContext() {
        return appContext;
    }
}

baseActivuty的封装 ,  这里只做简单的封装, 难度一点一点的增加 , 一面后续增加mvp模式后 , 代码量增加 容易看蒙圈

public abstract class BaseActivity extends AppCompatActivity{
    protected Context mContext;
    private Unbinder mUnbinder;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(initLayoutInflater());
        mUnbinder = ButterKnife.bind(this);
        mContext = this;
        initView();
        initData();
    }

    protected <T> T findId(int id) {
        T view = (T) findViewById(id);
        return view;
    }
    protected abstract int initLayoutInflater(); //初始化布局

    public abstract void initView();

    public abstract void initData();

    @Override
    protected void onDestroy() {
        if (mUnbinder != null)
            mUnbinder.unbind();
        super.onDestroy();
    }
}

要在app中初始化 application

在公共类库中增加工具类库 包括一些安卓开发常用的工具类

可在github中下载YcAndroidUtils源码进行修改或增加

  api deps.YcAndroidUtils
    repositories {
        google()
        jcenter()
        maven { url "https://jitpack.io" }
        maven {url "https://dl.bintray.com/910442999/YcAndroidUtils"}
    }

如果无法下载  在根目录中增加上面的下载地址即可

以上就是多模块架构base类的封装及工具类 的全部详解 

如有不了解的 可以去github下载源码 本章节内容为分支3

github源码地址,本章节见dev3分支

或 加入安卓开发交流群:安卓帮595856941

 

猜你喜欢

转载自blog.csdn.net/q9104422999/article/details/81206175