Android UI 及 IO 工具库 AndroidUIO

码农软件 · 软件分类 · 手机开发包 · 2019-05-06 09:12:15

软件介绍

Android UI 及 IO 工具库(基础框架)

Android APP framework 是一个拖沓冗余的体系,正是因为他的不足,才需要我们去完善他。

通用回调机制

---- 有物混成,先天地生

函数,是编程中最常见的处理单元,加上泛型信息,我们可以让函数的表达能力更强。

Java的函数虽然用起来不如一些函数式语言那样简洁,但是,包装在接口下面的函数,还可以更加方便的携带更丰富的信息。

在这套类库中,一个简单通用的可以携带泛型信息的回调接口, 将贯穿整个系统。

设计理念

---- 有之以为利,无之以为用。

设计一个具有良好扩展性的基础框架, 最重要的一点是掌握 “有”和“无”的平衡。

  • 有: 我需要提供那些模块?那些功能?什么结构?

  • 无: 我在我的系统中提供那些自定义的坑,可以让你自己去完善,去扩展。

我在这套类库中, 通过一个通用回调接口, 用来描述“无”的存在,绝大部分功能都以“无” 为中心来设计。

自动化处理

---- 太上,不知有之。

上善若水,我认为最好的工具,就是,当他帮你做了实实在在的事情,而你不需要关心他的存在。

在这个UI&IO框架中,大多数情况下都尊崇这个设计思想。

如:

  • 当你适用网络图片的时候,不用关心图片缓存的操作;

  • 当你编写网络任务时,Activity暂停/恢复/终止时,您无需再为相关的任务调度优化操心;

  • 没有网络的时候,不需要关心离线展示的支持;等等...

网络请求

  • 任务管理

    • 自动根据生命周期调度(终止/暂停/继续)任务。

    • 随时手动终止任务。

  • 网络缓存优化

    • 自动缓存

    • 自动离线支持

  • 双回调机制

    • 快速内容展示

    • 网络数据检查并按需更新

图片处理

  • 简单bind接口

  • 自动计数和内存管理

  • 自动支持动画gif

  • 自定义图像预处理接口

    比如,如果你想画个圆角阴影什么的

自动模型转换

数据结构和java对象是一一对应的,  但是我们很多老实的程序员天天乐此不疲的手动解析json,手动吧这些json一个个复制到java对象模型中, 这些实在是没有必要。

存储模型

  • 健值对存储DSL

    • 健值存储接口的属性,可以自动实现读写抄作, 系统通过动态代理自动将其实现。

  • 关系数据库映射DSL

    • 定义一个java类,加上简单的注解,即可描述一个简单的数据存储格式,根据这个类就可以自动创建出一个SQLiteMapping, 自动实现一个简单的关系数据映射DAO。

状态管理

  • Activity 状态

  • ##其他

  • 网络检测。

  • Toast,Application等等

Http Request && Cache && schedule automatic


    //the http request will be canceled after activity finished
    //and auto paused after the activity is paused when the task is pauseable.
    //and auto resume after the activity is resume again.
    Cancelable task = UIO.get(new Callback<MyClass>(){
        //http stream will be auto parsed and mapping to you standard javabean object.
         public void callback(MyClass javabean){
             //TODO:...
         }
         public void error(Throwable ex, boolean callbackError){
             //TODO:....
         }
    },url);
    // and you can cancel it any time by yourself
    // task.cancel();

    // double callback (cache first show and update on need)
    Cancelable task = UIO.get(new CacheCallback<MyClass>(){
         public void callback(MyClass javabean){
            //TODO: on cache parsed!
         }
         public void update(MyClass javabean){
            //TODO: on new network result(null for not modified data)
         }
         public void error(Throwable ex, boolean callbackError){
            //TODO:....
         }
    },url);

    // post file
    Cancelable task = UIO.post(new Callback<MyClass>(){
         public void callback(MyClass javabean){
            //TODO: upload success!
         }
         public void error(Throwable ex, boolean callbackError){
            //TODO:....
         }
    }, url, fileName, file);

Image Bind

//the image url will auto load and parse and set as the drawable for the imageView 
//if the image url is a animated gif,then it is show as a movie!
UIO.bind(imageView,imageUrl);

//you can set the drawableFactory for the image loading(getLoadingDrawable) and process(such as radious, shawdown....)
//and set the fallback drawable for the action
UIO.bind(imageView,imageUrl,drawableFactory,fallbackResourceId);


//you can set the callback for the bind action(callback on image load(or cached) and bind to image view)
UIO.bind(imageView, imageUrl,drawableFactory,fallbackResourceId,  callback);//Callback<Drawable>


本文地址:https://codercto.com/soft/d/5129.html

Pro JavaScript Techniques

Pro JavaScript Techniques

John Resig / Apress / 2006-12-13 / USD 44.99

Pro JavaScript Techniques is the ultimate JavaScript book for the modern web developer. It provides everything you need to know about modern JavaScript, and shows what JavaScript can do for your web s......一起来看看 《Pro JavaScript Techniques》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换