使用开发小助手

本文将从接入、启动和拓展三方面向您介绍如何使用开发小助手。

接入开发小助手

前置条件

已使用组件化 Portal&Bundle 接入方式接入 mPaaS。

接入步骤

您只需在 Portal 工程的 build.gradle 文件中加入如下代码,即可完成开发小助手的接入。

devbundle "com.mpaas.android.dev.helper:devhelper-build:1.0.0.200720113923@jar"
devmanifest "com.mpaas.android.dev.helper:devhelper-build:1.0.0.200720113923:AndroidManifest@xml"

启动开发小助手

开发小助手随 mPaaS 框架启动,无需额外代码启动。但在以下情况下,在启动开发小助手时需要特别注意:

  1. 当安卓手机运行在monkey模式下时,开发小助手自动不启动。

  2. 当开发模式为 release mode 时,即 android:debuggable="false" 时,开发小助手默认不启动。 如果需要在 release mode 下启动开发小助手,可以通过在 AndroidManifest.xml 文件中设置如下属性强制启动开发小助手。但是在正式发布时一定要去掉该功能。代码配置如下:

    <meta-data
          android:name="devhelper_start"
          android:value="true" />

    并且将开发小助手的依赖按照如下代码所示进行更换:

    bundle "com.mpaas.android.dev.helper:devhelper-build:1.0.0.200720113923@jar"
    manifest "com.mpaas.android.dev.helper:devhelper-build:1.0.0.200720113923:AndroidManifest@xml"

拓展开发小助手

在实际使用中,您还可以根据实际需求,对开发小助手进行功能拓展,如查看用户的加密数据。拓展的功能依赖于增加新的实现类。

拓展步骤

  1. 在 assets 文件夹中添加一个 .devhelper.json 结尾的文件,并确保文件名唯一。该 JSON 文件需包含以下代码:

    [
    {
    "className": "com.alipay.android.phone.devtool.devhelper.woodpecker.panel.items.SpmItem", 
    "bundleName": "com-mpaas-android-dev-helper-devhelper"
    }
    ]
    • className:类名。该类名即步骤 2 中新建的实现类的类名。

    • bundleName:bundle 名。

      • bundle 名可在主 module 的 /build/intermediates/bundle/META-INF/BUNDLE.MF 文件中查看。

      • 如果该拓展功能是加在 Portal 工程中,则 bundleName 需填空字符串 ""

  2. 新建一个类并实现如下方法,需要确保该类有且只有一个无参构造方法。

    /**
    * @param context
    * @return 小助手面板入口图片
    */
    Drawable icon(Context context);
    
    /**
    * @param context
    * @return 小助手面板显示的名称
    */
    String title(Context context);
    
    /**
    * @param context
    * @return 是否处理响应,如已处理,请返回 True
    */
    boolean onClick(Context context);
    
    /**
    * @param context
    * @return 该功能是否可用,如可用,请返回True
    */
    boolean enabled(Context context);
    
    /**
    * 返回如下分组
    * {@link #GROUP_OTHER} = 'OTHER'
    * {@link #GROUP_TOOL} = 'TOOL'
    * {@link #GROUP_UI} = 'UI'
    * {@link #GROUP_LOG} = 'LOG'
    *
    * @return
    */
    String group();

代码示例

以下为一个拓展开发小助手的简单示例。该示例增加了拓展功能 拓展接入,实现点击图标后返回字符串“onclick”的功能。

package com.alipay.mpaas.test.helper;

import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.widget.Toast;
import com.mpaas.demo.R;

public class SpmItem {
    private final static String TAG = SpmItem.class.getName();

    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    public Drawable icon(Context context) {
        return context.getDrawable(R.drawable.appicon);
    }

    public String title(Context context) {
        return "拓展接入";
    }

    public boolean onClick(Context context) {
        Toast.makeText(context,"onclick",Toast.LENGTH_LONG).show();
        return true;
    }

    public boolean enabled(Context context) {
        return true;
    }

    public String group() {
        return "OTHER";
    }
}

运行结果

如下图所示,在开发小助手的 OTHER 其他类中已经增加了 拓展接入,点击图标后,即可显示字符串“onclick”。