• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

WelikeAndroid: WelikeAndroid 是一款引入即用的便捷开发框架,一行代码完成http请求,b ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

WelikeAndroid

开源软件地址:

https://gitee.com/lody/WelikeAndroid

开源软件介绍:

Logo

licenseConvert

##WelikeAndroid 是什么?WelikeAndroid 是一款引入即用的便捷开发框架,致力于为程序员打造最佳的编程体验,
使用WelikeAndroid, 你会觉得写代码是一件很轻松的事情.

##欢迎加入我们的Android开发群:###142853711(WelikeAndroid交流群)
##Welike带来了哪些特征?

WelikeAndroid目前包含五个大模块:

  • 异常安全隔离模块(实验阶段):当任何线程抛出任何异常,我们的异常隔离机制都会让UI线程继续运行下去.
  • Http模块: 一行代码完成POST、GET请求和Download,支持上传, 高度优化Disk的缓存加载机制,
    自由设置缓存大小、缓存时间(也支持永久缓存和不缓存).
  • Bitmap模块: 一行代码完成异步显示图片,无需考虑OOM问题,支持加载前对图片做自定义处理.
  • Database模块: 支持NotNull,Table,ID,Ignore等注解,Bean无需Getter和Setter,一键式部署数据库.
  • ui操纵模块: 我们为Activity基类做了完善的封装,继承基类可以让代码更加优雅.
  • :请不要认为功能相似,框架就不是原创,源码摆在眼前,何不看一看?

使用WelikeAndroid需要以下权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.INTERNET" />

##下文将教你如何圆润的使用WelikeAndroid:
###通过WelikeContext在任意处取得上下文:

  • WelikeContext.getApplication(); 就可以取得当前App的上下文
  • WelikeToast.toast("你好!"); 简单一步弹出Toast.

##WelikeGuard(异常安全隔离机制用法):

  • 第一步,开启异常隔离机制:
WelikeGuard.enableGuard();
  • 第二步,注册一个全局异常监听器:
WelikeGuard.registerUnCaughtHandler(new Thread.UncaughtExceptionHandler() {@Overridepublic void uncaughtException(Thread thread, Throwable ex) { WelikeGuard.newThreadToast("出现异常了: " + ex.getMessage() );}});
  • 你也可以自定义异常:
/**** 自定义的异常,当异常被抛出后,会自动回调onCatchThrowable函数.*/@Catch(process = "onCatchThrowable")public class CustomException extends IllegalAccessError {   public static void onCatchThrowable(Thread t){    WeLog.e(t.getName() + "  抛出了一个异常...");   }}
  • 另外,继承自UncaughtThrowable的异常我们不会对其进行拦截.

使用Welike做屏幕适配:

Welike的ViewPorter类提供了屏幕适配的Fluent-API,我们可以通过一组流畅的API轻松做好屏幕适配.

        ViewPorter.from(button).ofScreen().divWidth(2).commit();//宽度变为屏幕的二分之一        ViewPorter.from(button).of(viewGroup).divHeight(2).commit();//高度变为viewGroup的二分之一        ViewPorter.from(button).div(2).commit();//宽度和高度变为屏幕的四分之一        ViewPorter.from(button).of(this).fillWidth().fillHeight().commit();//宽度和高度铺满Activity        ViewPorter.from(button).sameAs(imageView).commit();//button的宽度和高度和imageView一样

WelikeHttp入门:

首先来看看框架的调试信息,是不是一目了然.DEBUGDEBUG2

  • 第一步,取得WelikeHttp默认实例.
WelikeHttp welikeHttp = WelikeHttp.getDefault();
  • 第二步,发送一个Get请求.
HttpParams params = new HttpParams();params.putParams("app","qr.get",                 "data","Test");//一次性放入两对 参数 和 值//发送Get请求HttpRequest request = welikeHttp.get("http://api.k780.com:88", params, new HttpResultCallback() {    @Override    public void onSuccess(String content) {    super.onSuccess(content);    WelikeToast.toast("返回的JSON为:" + content);    }    @Override    public void onFailure(HttpResponse response) {    super.onFailure(response);    WelikeToast.toast("JSON请求发送失败.");    }    @Override    public void onCancel(HttpRequest request) {    super.onCancel(request);    WelikeToast.toast("请求被取消.");    }});    //取消请求,会回调onCancel()    request.cancel();

当然,我们为满足需求提供了多种扩展的Callback,目前我们提供以下Callback供您选择:

  • HttpCallback(响应为byte[]数组)
  • FileUploadCallback(仅在上传文件时使用)
  • HttpBitmapCallback(建议使用Bitmap模块)
  • HttpResultCallback(响应为String)
  • DownloadCallback(仅在download时使用)

如需自定义Http模块的配置(如缓存时间),请查看HttpConfig.

WelikeBitmap入门:

  • 第一步,取得默认的WelikeBitmap实例:
//取得默认的WelikeBitmap实例WelikeBitmap welikeBitmap = WelikeBitmap.getDefault();
  • 第二步,异步加载一张图片:
BitmapRequest request = welikeBitmap.loadBitmap(imageView,"http://img0.imgtn.bdimg.com/it/u=937075122,1381619862&fm=21&gp=0.jpg",android.R.drawable.btn_star,//加载中显示的图片android.R.drawable.ic_delete,//加载失败时显示的图片new BitmapCallback() {    @Override    public Bitmap onProcessBitmap(byte[] data) {    //如果需要在加载时处理图片,可以在这里处理,    //如果不需要处理,就返回null或者不复写这个方法.    return null;    }    @Override    public void onPreStart(String url) {    super.onPreStart(url);    //加载前回调    WeLog.d("===========> onPreStart()");    }    @Override    public void onCancel(String url) {    super.onCancel(url);    //请求取消时回调    WeLog.d("===========> onCancel()");    }    @Override    public void onLoadSuccess(String url, Bitmap bitmap) {    super.onLoadSuccess(url, bitmap);    //图片加载成功后回调    WeLog.d("===========> onLoadSuccess()");    }    @Override    public void onRequestHttp(HttpRequest request) {    super.onRequestHttp(request);    //图片需要请求http时回调    WeLog.d("===========> onRequestHttp()");    }    @Override    public void onLoadFailed(HttpResponse response, String url) {    super.onLoadFailed(response, url);    //请求失败时回调    WeLog.d("===========> onLoadFailed()");    }});
  • 如果需要自定义Config,请看BitmapConfig这个类.

##WelikeDAO入门:

  • 首先写一个Bean.
/*表名,可有可无,默认为类名.*/@Table(name="USER",afterTableCreate="afterTableCreate")public class User{@IDpublic int id;//id可有可无,根据自己是否需要来加./*这个注解表示name字段不能为null*/@NotNullpublic String name;    public static void afterTableCreate(WelikeDao dao){        //在当前的表被创建时回调,可以在这里做一些表的初始化工作    }}
  • 然后将它写入到数据库
WelikeDao db = WelikeDao.instance("Welike.db");User user = new User();user.name = "Lody";db.save(user);
  • 从数据库取出Bean
User savedUser = db.findBeanByID(1);
  • SQL复杂条件查询
List<User> users = db.findBeans().where("name = Lody").or("id = 1").find();
  • 更新指定ID的Bean
User wantoUpdateUser = new User();wantoUpdateUser.name = "NiHao";db.updateDbByID(1,wantoUpdateUser);
  • 删除指ID定的Bean
db.deleteBeanByID(1);
  • 更多实例请看DEMO和API文档.

##十秒钟学会WelikeActivity

  • 我们将Activity的生命周期划分如下:
=>@initData(所有标有InitData注解的方法都最早在子线程被调用)=>initRootView(bundle)=>@JoinView(将标有此注解的View自动findViewByID和setOnClickListener)=>onDataLoaded(数据加载完成时回调)=>点击事件会回调onWidgetClick(View Widget)

###关于@JoinView的细节:

  • 有以下三种写法:
@JoinView(name = "welike_btn")Button welikeBtn;
@JoinView(id = R.id.welike_btn)Button welikeBtn;
@JoinView(name = "welike_btn",click = false)Button welikeBtn;
  • clicktrue时会自动调用view的setOnClickListener方法,并在onWidgetClick回调.
  • 当需要绑定的是一个Button的时候, click属性默认为true,其它的View则默认为false.

##有问题反馈在使用中有任何问题,欢迎反馈给我,可以用以下联系方式跟我交流

Git: https://github.com/FinalLody/WelikeAndroid
Git@OSC: http://git.oschina.net/lody/WelikeAndroid


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap