本教程将展示如何直接从Android开发环境-Android Studio中调用智能合约。
环境要求
我们将使用Tezos区块链。为了使我们的Android java代码与现有的、部署的智能合约交互,我们需要使用TezosRio的TeZOSJ库。这个库有两个版本,一个是专门为使用EclipseIDE制作的通用Java应用程序编写的(TezosjPlainJava),另一个是用于Android应用程序开发的(TezosjSDK),我们将在这里使用它。我们不需要下载整个库的源代码。我们只需在build.gradle文件的dependencies部分插入一行代码,就可以了。作为我们的开发IDE,Android工作室将是我们的选择。
目标
我们要调用的智能合约是一个简单的客户基础注册,可以在以下地址的Tezos testnet上找到部署:KT18pK2MGrnTZqyTafUe1sWp2ubJ75eYT86t
您可以通过Tezblock之类的Tezos区块浏览器之一轻松查看智能合约的详细信息,或通过使用Better-call.dev工具。不过另一种选择是检查与SmartPy区块浏览器浏览智能合约。记住要指定一个testnet https://tezos-dev.cryptonomic-infra.tech.
我们的智能合约称为“客户”,它具有四个入口点(或方法):addCustomer,removeCustomer,transfer和updateBalance。 基本上,插入,删除,转移资金和更新。没什么好看的。 这是仅为教育目的而创建的。它的作用是在Tezos区块链的存储中维护一个“客户”列表。
智能合约调用
TezosJ可能是当今调用Tezos智能合约的最简单方法之一。 基本上,我们的调用可以通过一个命令完成:

上面的代码将一个新客户Bob的余额加为10ꜩ,其ID为123456789,电话号码为98769985。 这是通过调用callContractEntryPoint方法完成的,该方法基本上需要与普通的Tezos .send()方法相同的参数,但有一些额外的参数:ContractEntryPoint名称,以及一个包含预期entrypoint参数的字符串数组(在进行调用之前应该知道这些参数)。
如果您还没有完成,请下载并安装Android Studio。打开它,第一步是创建一个新的Android Studio项目,如下所示:

选择手机和平板电脑作为您的项目类型,然后单击Empty Activity: