区块链DAPP开发实战 | DAPP开发团队(3)

  并且可以在浏览器的控制台中看到转账记录。

  2、Android下访问本地节点并测试合约的调用

  我们验证此时代币合约已经可以正常的转账查询余额了,接下来我们看看如何用Android来接入这个节点,此时需要访问本地节点,需要打开Charles。

  a、使用web3j连接节点获取账户信息

  我们需要用到web3j:以太坊推出的java端调用库,和web3.js类似,可以参考web3j中文文档进行开发。

  打开AndroidStudio创建一个空工程,引入maven仓库

  compile('org.web3j:core:3.3.1-android')

  在Manifest.xml中添加一些会用到的权限

  

  5.0系统以上需要动态权限验证

  在MainActivity的onCreate中来访问一下这个节点,由于需要访问网络我们需要在线程中来调用web3j。

  首先,我们要连接上我们部署的节点

  

  

  解释下这段代码:

  Web3j是我们使用的第三方库

  Web3jFactory是android中与节点建立关联的方式

  Web3ClientVersion()是我们用来查看版本的函数

  .send()很重要,在web3j中我们调用任何函数或者合约,都需要最后调用send()来发起请求通知节点执行

  上面的函数执行完成后得到返回我们可以确认android通过web3j已成功和节点建立了关联,我们来获取一下账户信息

  

  通过log可以看到,用户列表

  

  账户和truffle帮我们创建的账户是相同的。

  b、在android中部署合约

  接下来我们来访问下我们的TutorialToken合约来完成转账和查询余额。

  这里web3j有一个相比web3.js不太方便的地方,不支持直接由合约地址来创建合约,所以我们只能通过他所提供的智能合约包装器(其实就是转换成java类),因为在java中合约需要一个明确的类型和内部声明。我们需要将我们之前编译好的TutorialToken合约,包装成Java可识别的类。

  打开之前的tokentest工程

  

  到build路径下找到我们的TutorialToken.json,这个就是我们.sol文件编译生成的合约。找到我们下载的web3j工具包,到bin目录下找web3j.bat批处理工具

  

  

  

  

(来源:区块链项目精选)

  更多股票基础知识尽在财经365股票频道!

标签:区块链 开发实战 开发团队
N本文来源:财经365自媒体综合