Deprecated: Required parameter $cat_id follows optional parameter $type in /www/wwwroot/ebimall.com/systems/hong.php on line 2088

Deprecated: Required parameter $where follows optional parameter $tree_id in /www/wwwroot/ebimall.com/systems/hlb.php on line 3505
ArcBlock 博客 | OCAP超简易集成攻略(Android 篇) 区块网188bio精品生物—专注于实验室精品爆款的电商平台 - 蚂蚁淘旗下精选188款生物医学科研用品
您好,欢迎您进入188进口试剂采购网网站! 服务热线:4000-520-616
蚂蚁淘商城 | 现货促销 | 科研狗 | 生物在线

ArcBlock 博客 | OCAP超简易集成攻略(Android 篇) 区块网

ArcBlock博客|OCAP超简易集成攻略(Android篇)来源:作者:2018-09-1110:425天后,ArcBlock第三场、中国的第一场内测版黑客马拉松即将在北京举行,截至本文推送之际,已有56人报名,剩余名额4个。ArcBlock研发副总裁陈天、......5天后,ArcBlock第三场、中国的第一场内测版黑客马拉松即将在北京举行,截至本文推送之际,已有56人报名,剩余名额4个。ArcBlock研发副总裁陈天、OCAP项目负责人丁沛灵已经从西雅图飞来北京,恭候各位黑客大驾光临。

每场黑客松,我们都会提供越来越完善丰富的SDK、工具和文档,帮助开发者能在ArcBlock平台开发更多更好的应用。今天,我们请ArcBlock团队移动开发工程师NateRobinson介绍如何玩转OCAPAndroidSDK。

前面想必大家已经看到了iOS的简易集成攻略,估计Android的小伙伴们已经坐不住了,今天就在前几篇的基础上再给大家讲解一下ArcBlockAndroidSDK的快速集成。文章整体的思路同iOS,会以如何使用ArcBlockAndroidSDK开发一款简单的App作为整篇文章的主线,那么让我们开始吧!

1.阅读详细的ArcBlockAndroidSDK入门文档

详细的ArcBlockAndroidSDK入门文档建议点开链接通读一遍,文档里面对整个SDK的使用做了详细的说明,看完之后再回来看下面的入门文档概括会有一个更清晰的理解。

入门文档概括:

正确配置maven,引入Library
下载schema.json,编写.graphql文件,并配置好文件目录
普通数据查询
CoreKitBeanMapper初始化
Query初始化
CoreKitViewModel初始化与数据获取的监听事件设置
分页数据查询
CoreKitPagedHelper初始化
CoreKitBeanMapper初始化
CoreKitPagedViewModel初始化与数据获取监听事件的设置
订阅数据与监听
打开对应的AbcoreKitClient的Socket开关
Subscription初始化
CoreKitSubViewModel初始化与数据获取监听实践设置
另外可能需要额外注意一下的是CustomType和ABCoreKitClient初始化,这些可以在ArcBlockAndroidSDK入门文档-其他配置找到详细的说明和代码示例。

2.基于ArcBlockAndroidSDK开发App的例子

首先,我们先看看最终要完成App的样子,整体功能并不复杂,分页查询区块,并以一个个正方形方块代表一个个发生的交易,方块颜色的深浅由交易的大小决定,点击某个方块进入到交易详情界面,点击查看更多跳转到区块交易分页查看界面:

整个App用到了三个数据查询:

区块分页查询
区块交易分页查询
区块交易详情查询
上面三个查询语句保存在PlayBook,感兴趣的话可以打开探索一番

完整项目代码
直接clone仓库到本地即可运行,下面是具体的代码讲解。

2.1首页区块分页界面

在MainActivity.java的initData()方法中实现了区块查询的核心逻辑,重点看一下下面代码:

mBlocksByHeightQueryViewModel.getCleanQueryData().observe(this,newObserverCoreKitPagedBeanListBlocksByHeightQuery.Datum(){
@Override
publicvoidonChanged(@NullableCoreKitPagedBeanListBlocksByHeightQuery.DatumcoreKitPagedBean){
//1.handlereturndata
if(coreKitPagedBean.getStatus()==CoreKitBean.SUCCESS_CODE){
if(coreKitPagedBean.getData()!=null){
//newaoldlist
ListBlocksByHeightQuery.DatumoldList=newArrayList();
oldList.addAll(mBlocks);
//setmBlockswithnewdata
mBlocks=coreKitPagedBean.getData();
DiffUtil.DiffResultresult=DiffUtil.calculateDiff(newCoreKitDiffUtil(oldList,mBlocks),true);
//needthisline,otherwisetheupdatewillhavenoeffect
mListBlocksAdapter.setNewListData(mBlocks);
result.dispatchUpdatesTo(mListBlocksAdapter);
refreshNextAndPre();
}
}
//2.viewstatuschangeandloadMorecomponentneed
if(coreKitPagedHelper.isHasMore()){
mListBlocksAdapter.setEnableLoadMore(true);
mListBlocksAdapter.loadMoreComplete();
}else{
mListBlocksAdapter.loadMoreEnd();
}
}
});


由于我们在初始化ABCoreKitClient的时候,设置的ResponseFetcher为ApolloResponseFetchers.CACHE_AND_NETWORK,所以这边其实每次query会走两遍回调事件,为了高效的去重与页面刷新,这边使用的是Android自带的DiffUtil。

2.2区块交易分页界面

具体代码在BlockTxsActivity.java界面中,分页逻辑和首页类似,这里就不重复讲解了,大家看代码即可。

2.3交易详情界面

具体代码在TxsDetailActivity.java界面中,这里使用的是简单的Query查询与结果展示。

3.总结

阅读完文章与代码,并一起运行DemoApp到客户端之后,大家已经完整体验了一遍基于ArcBlockAndroidSDK开发App的过程,ArcBlockAndroidSDK的价值远不止于此,大家可以在此基础上继续探索OCAPPlayground并思考自己的点子,然后结合ArcBlockAndroidSDK在Android客户端上实现它们。


更多专栏文章:http://www.qukuaiwang.com.cn/zhuanlan
声明:本文由入驻区块网专栏作者撰写,观点仅代表作者本人,绝不代表区块网赞同其观点或证实其描述。

关键词:OCAP超简易集成区块交易
所属分类:区块链项目ArcBlock区块基石区块基石(ArcBlock)是一个专门用于开发和部署去中心化区块链应用的服务平台...
区块网(www.qukuaiwang.com.cn)是区块链全球信息服务网,我们提供数字货币、区块链项目、交易平台及区块链游戏发布。区块网主要用于区块链行业信息的传播,促进区块链行业健康发展,让我们链在一起。

新闻动态
行业前沿
技术文章
最新产品

188进口试剂采购网 www.188bio.cn -中国试剂网,试剂网,化学试剂网,国药试剂,抗体公司,试剂公司,试剂盒公司,苏州试剂公司,北京化学试剂公司,天津化学试剂,试剂商城,试剂代理,流式抗体 细胞库查询 sitemap