Android One 框架

来源:互联网 发布:python编辑器推荐 mac 编辑:程序博客网 时间:2024/06/05 14:43


One框架能帮您带来什么?

 

One框架分为两个项目,OneCore为核心工程,androidOne为演示项目,依赖oneCore核心

 

One整个框架为MVC模式搭建,基于android framework为核心,集成Android世界中的主流技术选型,以Pragmatic风格的Android应用参考示例,是android项目最佳实践的总结与演示。以“复杂的世界里,一个就够了”为理念,励志帮助Android开发人员快速搭建一个简单高效的android开发框架!

 

 

异步模块:

封装EventBus类,将异步框架单独抽出来。页面通过实现回调监听获取数据并直接更新UI操作,实现多线程机制,支持并发,超过并发数需等待。

建议一般在BaseActivityBaseFragment中实现。

 

 

使用如下:

BaseActivityonCreate方法初始化:

mAsyncTaskManager = AsyncTaskManager.getInstance(mContext);

 

 

并实现如下方法:

public void request(int requsetCode){

   mAsyncTaskManager.request(requsetCode, this);

}

 

public void request(int requsetCode, boolean isCheckNetwork){

    mAsyncTaskManager.request(requsetCode, isCheckNetwork, this);

}

 

public void cancelRequest(int requsetCode){

    mAsyncTaskManager.cancelRequest(requsetCode);

}

 

public void cancelRequest(){

    mAsyncTaskManager.cancelRequest();

}

 

@Override

public Object doInBackground(int requestCode) throws HttpException{

    return null;

}

 

@Override

public void onSuccess(int requestCode, Object result) {

 

}

 

@Override

public void onFailure(int requestCode, int state, Object result) {

 

}

 

 

HTTP请求模块:

采用第三方AsyncHttpClient方案,支持httphttps方式,支持getpostputdelete方法,支持GZIPFile格式,支持RetryCacel策略,堪称完美!

增加SyncHttpClient同步发送请求管理类,配合异步模块使用;这样做的好处是Action中的接口方法都可以进行单元测试。

 

 

Common模块:

页面堆栈管理ActivityPageManager:管理页面堆栈,提供完全退出方法。

缓存管理CacheManager:主要用于缓存接口返回结果,返回结果中的对象必须继承baseModel实现序列化接口,提供缓存时长方法、缓存失效方法。

系统异常处理:发布模式自动开启系统异常处理,提供友好提示,异常处理回调接口。

SharedPreferences管理:支持直接putget对象。

LruCache管理:用于页面传大数据且不用担心释放问题。

Json解析管理:采用fastjson实现,简单粗暴。

xml解析管理:采用xstream实现,注解解析。

SoapObject解析管理:直接将soap字符串解析为Java对象。

 

 

DB模块:

采用GreenDao方案,直接实现Java ObjectCURD方法就可以操作数据库。 

新增DBManager类,所有数据操作只需要获取DBManager实例来获取DaoSession,然后通过DaoSession来获取你需要的所有dao即可。

新增DaoGenerator工程自动生成modeldaosession对象等代码,拷过来直接使用即可。

 

使用如下:

dao = DBManager.getInstance(mContext).getDaoSession().getNoteDao();

dao.save(user);

 

 

 

 

 

注解模块:

集成butterknife注解框架,使用如下:

class ExampleActivity extends Activity {  

@FindView(R.id.user) EditText username;  

@FindView(R.id.pass) EditText password;   

@OnClick(R.id.submit) void submit() {    

// TODO call server...  

}   


@Override public void onCreate(Bundle savedInstanceState) {    

super.onCreate(savedInstanceState);    

setContentView(R.layout.simple_activity);    

ButterKnife.bind(this);   

 // TODO Use fields...  

}

}

 

 

 

支付模块:

集成支付宝支付,使用如下:

String PARTNER = "2088XXXXXXXXXXXX";

String SELLER = "demo@yahoo.cn";

String RSA_PRIVATE = "私钥";

PayUtils payutils = new PayUtils(activity, PARTNER, SELLER, RSA_PRIVATE, "服务器回调订单地址[异步处理]");

payutils.setPayListener(new PayListener() {

@Override

public void onPayResult(int state, String message) {

}

});

try {

payutils.pay("测试商品", "测试商品详情", "0.01", "唯一订单号,服务器生成");

} catch (Exception e) {

e.printStackTrace();

}

 

 

资源下载模块:

在第三方AsyncHttpClient方案增加BreakpointHttpResponseHandler类,支持多并发、多文件上传、断点续传、暂停、继续、删除下载任务。

 

 

使用如下:

 downloadMgr = DownloadManager.getInstance();

     downloadMgr.setDownLoadCallback(new DownLoadCallback() {

 

        @Override

        public void onLoading(String url, int bytesWritten, int totalSize) {

            super.onLoading(url, bytesWritten, totalSize);<br/>

        }

 

        @Override

        public void onSuccess(String url, String filePath) {

            super.onSuccess(url, filePath);

        }

 

        @Override

        public void onFailure(String url, String strMsg) {

            super.onFailure(url, strMsg);

        }

    });

 

    //添加下载任务

    for (DownloadInfo bean1 : list) {

        downloadMgr.addHandler(bean1.getUrl());

    }

 

 

图片下载模块:

采用universal-image-loader解决方案,有关使用情况请参见universal-image-loader官网信息,

github地址:https://github.com/nostra13/Android-Universal-Image-Loader

为了提供用户体验,建议在listview或者gridview在滑动的时候不加载图片,设置如下:

listView.setOnScrollListener(new PauseOnScrollListener(ImageLoader.getInstance(), true, true));

gridView.setOnScrollListener(new PauseOnScrollListener(ImageLoader.getInstance(), true, true));

 

看到这里,估计您和您的小伙伴们都惊呆了吧!赶快动手试试吧!

One框架能帮您带来什么?

 

One框架分为两个项目,OneCore为核心工程,androidOne为演示项目,依赖oneCore核心

 

One整个框架为MVC模式搭建,基于android framework为核心,集成Android世界中的主流技术选型,以Pragmatic风格的Android应用参考示例,是android项目最佳实践的总结与演示。以“复杂的世界里,一个就够了”为理念,励志帮助Android开发人员快速搭建一个简单高效的android开发框架!

 

 

异步模块:

封装EventBus类,将异步框架单独抽出来。页面通过实现回调监听获取数据并直接更新UI操作,实现多线程机制,支持并发,超过并发数需等待。

建议一般在BaseActivityBaseFragment中实现。

 

 

使用如下:

BaseActivityonCreate方法初始化:

mAsyncTaskManager = AsyncTaskManager.getInstance(mContext);

 

 

并实现如下方法:

public void request(int requsetCode){

   mAsyncTaskManager.request(requsetCode, this);

}

 

public void request(int requsetCode, boolean isCheckNetwork){

    mAsyncTaskManager.request(requsetCode, isCheckNetwork, this);

}

 

public void cancelRequest(int requsetCode){

    mAsyncTaskManager.cancelRequest(requsetCode);

}

 

public void cancelRequest(){

    mAsyncTaskManager.cancelRequest();

}

 

@Override

public Object doInBackground(int requestCode) throws HttpException{

    return null;

}

 

@Override

public void onSuccess(int requestCode, Object result) {

 

}

 

@Override

public void onFailure(int requestCode, int state, Object result) {

 

}

 

 

HTTP请求模块:

采用第三方AsyncHttpClient方案,支持httphttps方式,支持getpostputdelete方法,支持GZIPFile格式,支持RetryCacel策略,堪称完美!

增加SyncHttpClient同步发送请求管理类,配合异步模块使用;这样做的好处是Action中的接口方法都可以进行单元测试。

 

 

Common模块:

页面堆栈管理ActivityPageManager:管理页面堆栈,提供完全退出方法。

缓存管理CacheManager:主要用于缓存接口返回结果,返回结果中的对象必须继承baseModel实现序列化接口,提供缓存时长方法、缓存失效方法。

系统异常处理:发布模式自动开启系统异常处理,提供友好提示,异常处理回调接口。

SharedPreferences管理:支持直接putget对象。

LruCache管理:用于页面传大数据且不用担心释放问题。

Json解析管理:采用fastjson实现,简单粗暴。

xml解析管理:采用xstream实现,注解解析。

SoapObject解析管理:直接将soap字符串解析为Java对象。

 

 

DB模块:

采用GreenDao方案,直接实现Java ObjectCURD方法就可以操作数据库。 

新增DBManager类,所有数据操作只需要获取DBManager实例来获取DaoSession,然后通过DaoSession来获取你需要的所有dao即可。

新增DaoGenerator工程自动生成modeldaosession对象等代码,拷过来直接使用即可。

 

使用如下:

dao = DBManager.getInstance(mContext).getDaoSession().getNoteDao();

dao.save(user);

 

 

 

 

 

注解模块:

集成butterknife注解框架,使用如下:

class ExampleActivity extends Activity {  

@FindView(R.id.user) EditText username;  

@FindView(R.id.pass) EditText password;   

@OnClick(R.id.submit) void submit() {    

// TODO call server...  

}   


@Override public void onCreate(Bundle savedInstanceState) {    

super.onCreate(savedInstanceState);    

setContentView(R.layout.simple_activity);    

ButterKnife.bind(this);   

 // TODO Use fields...  

}

}

 

 

 

支付模块:

集成支付宝支付,使用如下:

String PARTNER = "2088XXXXXXXXXXXX";

String SELLER = "demo@yahoo.cn";

String RSA_PRIVATE = "私钥";

PayUtils payutils = new PayUtils(activity, PARTNER, SELLER, RSA_PRIVATE, "服务器回调订单地址[异步处理]");

payutils.setPayListener(new PayListener() {

@Override

public void onPayResult(int state, String message) {

}

});

try {

payutils.pay("测试商品", "测试商品详情", "0.01", "唯一订单号,服务器生成");

} catch (Exception e) {

e.printStackTrace();

}

 

 

资源下载模块:

在第三方AsyncHttpClient方案增加BreakpointHttpResponseHandler类,支持多并发、多文件上传、断点续传、暂停、继续、删除下载任务。

 

 

使用如下:

 downloadMgr = DownloadManager.getInstance();

     downloadMgr.setDownLoadCallback(new DownLoadCallback() {

 

        @Override

        public void onLoading(String url, int bytesWritten, int totalSize) {

            super.onLoading(url, bytesWritten, totalSize);<br/>

        }

 

        @Override

        public void onSuccess(String url, String filePath) {

            super.onSuccess(url, filePath);

        }

 

        @Override

        public void onFailure(String url, String strMsg) {

            super.onFailure(url, strMsg);

        }

    });

 

    //添加下载任务

    for (DownloadInfo bean1 : list) {

        downloadMgr.addHandler(bean1.getUrl());

    }

 

 

图片下载模块:

采用universal-image-loader解决方案,有关使用情况请参见universal-image-loader官网信息,

github地址:https://github.com/nostra13/Android-Universal-Image-Loader

为了提供用户体验,建议在listview或者gridview在滑动的时候不加载图片,设置如下:

listView.setOnScrollListener(new PauseOnScrollListener(ImageLoader.getInstance(), true, true));

gridView.setOnScrollListener(new PauseOnScrollListener(ImageLoader.getInstance(), true, true));

 

看到这里,估计您和您的小伙伴们都惊呆了吧!赶快动手试试吧!

一个牛逼哄哄的Android框架One

 

One框架能帮您带来什么?

 

One框架分为两个项目,OneCore为核心工程,androidOne为演示项目,依赖oneCore核心

 

One整个框架为MVC模式搭建,基于android framework为核心,集成Android世界中的主流技术选型,以Pragmatic风格的Android应用参考示例,是android项目最佳实践的总结与演示。以“复杂的世界里,一个就够了”为理念,励志帮助Android开发人员快速搭建一个简单高效的android开发框架!

 

 

异步模块:

封装EventBus类,将异步框架单独抽出来。页面通过实现回调监听获取数据并直接更新UI操作,实现多线程机制,支持并发,超过并发数需等待。

建议一般在BaseActivityBaseFragment中实现。

 

 

使用如下:

BaseActivityonCreate方法初始化:

mAsyncTaskManager = AsyncTaskManager.getInstance(mContext);

 

 

并实现如下方法:

public void request(int requsetCode){

   mAsyncTaskManager.request(requsetCode, this);

}

 

public void request(int requsetCode, boolean isCheckNetwork){

    mAsyncTaskManager.request(requsetCode, isCheckNetwork, this);

}

 

public void cancelRequest(int requsetCode){

    mAsyncTaskManager.cancelRequest(requsetCode);

}

 

public void cancelRequest(){

    mAsyncTaskManager.cancelRequest();

}

 

@Override

public Object doInBackground(int requestCode) throws HttpException{

    return null;

}

 

@Override

public void onSuccess(int requestCode, Object result) {

 

}

 

@Override

public void onFailure(int requestCode, int state, Object result) {

 

}

 

 

HTTP请求模块:

采用第三方AsyncHttpClient方案,支持httphttps方式,支持getpostputdelete方法,支持GZIPFile格式,支持RetryCacel策略,堪称完美!

增加SyncHttpClient同步发送请求管理类,配合异步模块使用;这样做的好处是Action中的接口方法都可以进行单元测试。

 

 

Common模块:

页面堆栈管理ActivityPageManager:管理页面堆栈,提供完全退出方法。

缓存管理CacheManager:主要用于缓存接口返回结果,返回结果中的对象必须继承baseModel实现序列化接口,提供缓存时长方法、缓存失效方法。

系统异常处理:发布模式自动开启系统异常处理,提供友好提示,异常处理回调接口。

SharedPreferences管理:支持直接putget对象。

LruCache管理:用于页面传大数据且不用担心释放问题。

Json解析管理:采用fastjson实现,简单粗暴。

xml解析管理:采用xstream实现,注解解析。

SoapObject解析管理:直接将soap字符串解析为Java对象。

 

 

DB模块:

采用GreenDao方案,直接实现Java ObjectCURD方法就可以操作数据库。 

新增DBManager类,所有数据操作只需要获取DBManager实例来获取DaoSession,然后通过DaoSession来获取你需要的所有dao即可。

新增DaoGenerator工程自动生成modeldaosession对象等代码,拷过来直接使用即可。

 

使用如下:

dao = DBManager.getInstance(mContext).getDaoSession().getNoteDao();

dao.save(user);

 

 

 

 

 

注解模块:

集成butterknife注解框架,使用如下:

class ExampleActivity extends Activity {  

@FindView(R.id.user) EditText username;  

@FindView(R.id.pass) EditText password;   

@OnClick(R.id.submit) void submit() {    

// TODO call server...  

}   


@Override public void onCreate(Bundle savedInstanceState) {    

super.onCreate(savedInstanceState);    

setContentView(R.layout.simple_activity);    

ButterKnife.bind(this);   

 // TODO Use fields...  

}

}

 

 

 

支付模块:

集成支付宝支付,使用如下:

String PARTNER = "2088XXXXXXXXXXXX";

String SELLER = "demo@yahoo.cn";

String RSA_PRIVATE = "私钥";

PayUtils payutils = new PayUtils(activity, PARTNER, SELLER, RSA_PRIVATE, "服务器回调订单地址[异步处理]");

payutils.setPayListener(new PayListener() {

@Override

public void onPayResult(int state, String message) {

}

});

try {

payutils.pay("测试商品", "测试商品详情", "0.01", "唯一订单号,服务器生成");

} catch (Exception e) {

e.printStackTrace();

}

 

 

资源下载模块:

在第三方AsyncHttpClient方案增加BreakpointHttpResponseHandler类,支持多并发、多文件上传、断点续传、暂停、继续、删除下载任务。

 

 

使用如下:

 downloadMgr = DownloadManager.getInstance();

     downloadMgr.setDownLoadCallback(new DownLoadCallback() {

 

        @Override

        public void onLoading(String url, int bytesWritten, int totalSize) {

            super.onLoading(url, bytesWritten, totalSize);<br/>

        }

 

        @Override

        public void onSuccess(String url, String filePath) {

            super.onSuccess(url, filePath);

        }

 

        @Override

        public void onFailure(String url, String strMsg) {

            super.onFailure(url, strMsg);

        }

    });

 

    //添加下载任务

    for (DownloadInfo bean1 : list) {

        downloadMgr.addHandler(bean1.getUrl());

    }

 

 

图片下载模块:

采用universal-image-loader解决方案,有关使用情况请参见universal-image-loader官网信息,

github地址:https://github.com/nostra13/Android-Universal-Image-Loader

为了提供用户体验,建议在listview或者gridview在滑动的时候不加载图片,设置如下:

listView.setOnScrollListener(new PauseOnScrollListener(ImageLoader.getInstance(), true, true));

gridView.setOnScrollListener(new PauseOnScrollListener(ImageLoader.getInstance(), true, true));

 

看到这里,估计您和您的小伙伴们都惊呆了吧!赶快动手试试吧!

0 0
原创粉丝点击