温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Android 开发框架和App内调试工具

发布时间:2020-06-07 13:55:01 来源:网络 阅读:1084 作者:poarry 栏目:移动开发

BeeFramework是什么

BeeFramework Android版主要为Android初级开发人员提供一个基于MVC开发模式的APP DEMO,并提供一套APP内调试工具,包括

  • 查看网络数据请求历史

  • Crash Log列表

  • 真机WIFI环境下模拟2G\3G网络

  • 查看APP性能(内存占用,CPU占用等)

快速开始

什么是MVC

MVC是一种软件架构模式,把系统分为模型(Model),视图(View)和控制器(Controller).
MVC通过简化软件的复杂度,是程序更加直观,易于复用,扩张和维护。
在Android的App开发中,通常控制器是Activity,控制界面跳转,处理请求,刷新界面。
View对应Android系统的各种layout,实现界面绘制。
Model则用来发起HTTP请求,存储本地数据。

开启调试模式

需要Application继承自BeeFrameworkApp,在MainActivity按返回键时,调用

BeeFrameworkApp.getInstance().showBug(this);

Android 开发框架和App内调试工具

网络数据请求

网络库使用Android Query,并做进一步封装。

(1) 创建一个datamodel类。

public class ShotModel extends BaseModel
{
    public ShotModel(Context context)
    {
        super(context);
    }
}

(2)在Activity中新建model。

shotModel = new ShotModel(this);
shotModel.addResponseListener(this);

(3)在datamodel中创建网络请求方法

 public void getData()
{


    String url = ApiInterface.SHOT_LIST;

    BeeCallback<JSONObject> cb = new BeeCallback<JSONObject>(){

        @Override
        public void callback(String url, JSONObject jo, AjaxStatus status)
        {
            ShotModel.this.OnMessageResponse(url, jo, status);
        }

    };

    cb.url(url).type(JSONObject.class).method(Constants.METHOD_GET);
    aq.ajax(cb);
 }

(4)在Activity中实现Busine***esponse方法,网络请求成功后,会调用该方法,在此处理界面刷新等操作

public void OnMessageResponse(String url, JSONObject jo, AjaxStatus status)
        throws JSONException 
{
}

关于数据存储

任何一个实现继承自Model的对象都可以实现存储。
例如:
public class COMMENT extends Model 
{
}

存储: COMMENT comment = new COMMENT();
      comment.save()
读取:
 COMMENT comment = new Select().from(COMMENT.class).where("COMMENT_id = ?", 1).orderBy("COMMENT_id ASC").executeSingle();

开启Crash Log

String path = Environment.getExternalStorageDirectory().getAbsolutePath() + AppConst.LOG_DIR_PATH;
File storePath = new File(path);
storePath.mkdirs();
Thread.setDefaultUncaughtExceptionHandler(new CustomExceptionHandler(
       path, null));

模拟2G/3G网络

BeeQuery.setForceThrottleBandwidth(true);
BeeQuery.setMaxBandwidthPerSecond(1000);//限定1000Bytes/s


附件:http://down.51cto.com/data/2364969
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI