真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Bytom-Mobile-Wallet-SDK的使用方法是什么

這篇文章主要介紹“Bytom-Mobile-Wallet-SDK的使用方法是什么”,在日常操作中,相信很多人在Bytom-Mobile-Wallet-SDK的使用方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”Bytom-Mobile-Wallet-SDK的使用方法是什么”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

業(yè)務(wù)包括:企業(yè)網(wǎng)站建設(shè)、手機(jī)網(wǎng)站制作設(shè)計(jì)、商城網(wǎng)站定制開發(fā)、網(wǎng)站營(yíng)銷推廣等服務(wù),并且涵蓋國(guó)際域名空間、虛擬主機(jī)、云服務(wù)器、等互聯(lián)網(wǎng)基礎(chǔ)服務(wù);成都創(chuàng)新互聯(lián)公司聯(lián)建站以互聯(lián)網(wǎng)的創(chuàng)新理念,成熟完善的建站體系,開拓進(jìn)取的精神,專業(yè)的解決方案和顧問咨詢服務(wù),幫助客戶在互聯(lián)網(wǎng)時(shí)代提升形象、把握商機(jī)、實(shí)現(xiàn)價(jià)值,提高企業(yè)的核心競(jìng)爭(zhēng)力。

Bytom-Mobile-Wallet-SDK 是從bytom源碼中抽離出的錢包層代碼,并且對(duì)錢包層代碼進(jìn)行了改造。使用gomobile可以將代碼 編譯成Android和iOS平臺(tái)可用的SDK,使用編譯后的Android和iOS錢包SDK可以在移動(dòng)端實(shí)現(xiàn)創(chuàng)建bytom密鑰、賬戶、地址和交易簽名功能。

Bytom-Mobile-Wallet-SDK源碼簡(jiǎn)介

SDK源碼放在項(xiàng)目的sdk文件夾中,android和ios文件夾是使用SDK的demo項(xiàng)目,bind.go 中首字母大寫可以外部調(diào)用的函數(shù)會(huì)作為提供給Android和iOS調(diào)用的API。bytom創(chuàng)建的密鑰對(duì)會(huì)存儲(chǔ)在磁盤單獨(dú)的文件中,而且對(duì)私鑰進(jìn)行了加密,賬戶地址數(shù)據(jù)是存儲(chǔ)在go實(shí)現(xiàn)的leveldb中,所以Android和iOS平臺(tái)也需要提供數(shù)據(jù)存儲(chǔ)的路徑。

func InitWallet(storagePath string) {
    hsm := pseudohsm.New(storagePath)
    walletDB := db.NewDB("wallet", "leveldb", storagePath)
    accounts := account.NewManager(walletDB)
    assets := asset.NewRegistry(walletDB)
    wallet := aWallet.NewWallet(walletDB, accounts, assets, hsm)
    api = aApi.API{Wallet: wallet}
}

Android和iOS平臺(tái)調(diào)用其他錢包API的之前需要先調(diào)用InitWallet這個(gè)API,參數(shù)是磁盤上的絕對(duì)路徑,InitWallet會(huì)對(duì)整個(gè)錢包進(jìn)行一個(gè)初始化, 其中最重要是初始化leveldb的存儲(chǔ)。其他的CreateKey、CreateAccount、CreateAccountReceiver是創(chuàng)建密鑰、賬戶、地址等API,RestoreWallet API能夠?qū)﹀X包所有賬戶地址資產(chǎn)進(jìn)行備份導(dǎo)出json格式的數(shù)據(jù)。

Bytom-Mobile-Wallet-SDK的編譯

SDK代碼的編譯首先需要正確的安裝golang和gomobile,golang需要1.7以上版本。
Android平臺(tái)需要安裝JDK、Android SDK、Android NDK,并且需要將Android SDK的platform-tools、ndk-bundle 添加到PATH系統(tǒng)環(huán)境變量中。iOS平臺(tái)編譯環(huán)境配置相對(duì)比較簡(jiǎn)單只需要安裝Xcode就可以了。
Clone項(xiàng)目到本地$GOPATH/src下:

 git clone https://github.com/Bytom-Community/Bytom-Mobile-Wallet-SDK $GOPATH/src/github.com/bytom-community/mobile

Android

gomobile init -ndk ~/path/to/your/ndk
cd $GOPATH/src/github.com/bytom-community/mobile
gomobile bind -target=android github.com/bytom-community/mobile/sdk/

如果需要減小SDK的體積給gomobile bind指令加上-ldflags=-s參數(shù):

gomobile bind -target=android -ldflags=-s github.com/bytom-community/mobile/sdk/

執(zhí)行指令后會(huì)在mobile文件夾生成wallet.aar和wallet-sources.jar文件。

iOS

cd $GOPATH/src/github.com/bytom-community/mobile
gomobile bind -target=ios github.com/bytom-community/mobile/sdk/

如果需要減小SDK的體積給gomobile bind指令加上-ldflags=-w參數(shù):

$ gomobile bind -target=ios -ldflags=-w github.com/bytom-community/mobile/sdk/

執(zhí)行指令后會(huì)在mobile文件夾生成wallet.framework文件。
由于gomobile現(xiàn)在沒有支持bitcode,所以生成的iOS SDK也不支持bitcode。

Bytom-Mobile-Wallet-SDK的使用

Android

拷貝wallet.aar和wallet-sources.ja到Android項(xiàng)目的app的libs文件夾下,并在app module中的build.gradle文件中添加:

android {
    repositories {
        flatDir { dirs 'libs' }
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation(name: 'wallet', ext: 'aar')
}

sync project后可以在Android項(xiàng)目中對(duì)SDK的API進(jìn)行調(diào)用:

package io.bytom.community;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;


import wallet.Wallet;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView keyTextView = (TextView) findViewById(R.id.key_textview);

        String storagePath = getFilesDir().toString();
        Log.d("storagePath", storagePath);

        Wallet.initWallet(storagePath);
        String keyResult = Wallet.createKey("Marshall", "123456");
        Log.d("keyResult", keyResult);
        keyTextView.setText(keyResult);
    }
}

iOS

通過項(xiàng)目target的Linked frameworks and libraries把wallet.framework添加到項(xiàng)目,可以在iOS項(xiàng)目中對(duì)SDK的API進(jìn)行調(diào)用:

#import "ViewController.h"
#import "Wallet/Wallet.h"  // Gomobile bind generated framework

@interface ViewController ()
@end

@implementation ViewController

@synthesize textLabel;

- (void)loadView {
    [super loadView];
    NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    WalletInitWallet(docPath);
    textLabel.text = WalletCreateKey(@"kevin",@"123456");
}

@end

到此,關(guān)于“Bytom-Mobile-Wallet-SDK的使用方法是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!


當(dāng)前標(biāo)題:Bytom-Mobile-Wallet-SDK的使用方法是什么
當(dāng)前路徑:http://weahome.cn/article/iposcd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部