首页 文章 精选 留言 我的

精选列表

搜索[网站开发],共10000篇文章
优秀的个人博客,低调大师

Bytom移动端钱包SDK开发基础

比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockchain/bytom Bytom-Mobile-Wallet-SDK 是从bytom源码中抽离出的钱包层代码,并且对钱包层代码进行了改造。使用gomobile可以将代码 编译成Android和iOS平台可用的SDK,使用编译后的Android和iOS钱包SDK可以在移动端实现创建bytom密钥、账户、地址和交易签名功能。 Bytom-Mobile-Wallet-SDK源码简介 SDK源码放在项目的sdk文件夹中,android和ios文件夹是使用SDK的demo项目,bind.go 中首字母大写可以外部调用的函数会作为提供给Android和iOS调用的API。bytom创建的密钥对会存储在磁盘单独的文件中,而且对私钥进行了加密,账户地址数据是存储在go实现的leveldb中,所以Android和iOS平台也需要提供数据存储的路径。 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平台调用其他钱包API的之前需要先调用InitWallet这个API,参数是磁盘上的绝对路径,InitWallet会对整个钱包进行一个初始化, 其中最重要是初始化leveldb的存储。其他的CreateKey、CreateAccount、CreateAccountReceiver是创建密钥、账户、地址等API,RestoreWallet API能够对钱包所有账户地址资产进行备份导出json格式的数据。 Bytom-Mobile-Wallet-SDK的编译 SDK代码的编译首先需要正确的安装golang和gomobile,golang需要1.7以上版本。 Android平台需要安装JDK、Android SDK、Android NDK,并且需要将Android SDK的platform-tools、ndk-bundle 添加到PATH系统环境变量中。iOS平台编译环境配置相对比较简单只需要安装Xcode就可以了。 Clone项目到本地$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参数: gomobile bind -target=android -ldflags=-s github.com/bytom-community/mobile/sdk/ 执行指令后会在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参数: $ gomobile bind -target=ios -ldflags=-w github.com/bytom-community/mobile/sdk/ 执行指令后会在mobile文件夹生成wallet.framework文件。 由于gomobile现在没有支持bitcode,所以生成的iOS SDK也不支持bitcode。 Bytom-Mobile-Wallet-SDK的使用 Android 拷贝wallet.aar和wallet-sources.ja到Android项目的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项目中对SDK的API进行调用: 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 通过项目target的Linked frameworks and libraries把wallet.framework添加到项目,可以在iOS项目中对SDK的API进行调用: #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

优秀的个人博客,低调大师

JavaScript表格的隔行换色开发

Html代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>隔行换色</title> </head> <body> <table id="tab1" border="1" width="800" align="center" > <tr style="background-color: #999999;" align ="center"> <th>分校ID</th> <th>分校地区</th> <th>操作</th> </tr> <tr align ="center"> <td>1</td> <td>济南分校</td> <td><a href="">修改</a>|<a href="">删除</a></td> </tr> <tr align ="center"> <td>2</td> <td>昆山分校</td> <td><a href="">修改</a>|<a href="">删除</a></td> </tr> <tr align ="center"> <td>3</td> <td>重庆分校</td> <td><a href="">修改</a>|<a href="">删除</a></td> </tr> <tr align ="center"> <td>4</td> <td>内蒙分校</td> <td><a href="">修改</a>|<a href="">删除</a></td> </tr> <tr align ="center"> <td>5</td> <td>大连分校</td> <td><a href="">修改</a>|<a href="">删除</a></td> </tr> </table> </body> </html> JavaScript代码: <script> //页面一打开就自动加载成功 window.onload=function(){ //1.通过标签名称进行获取所有的tr,存放到arr数组中去 var arr=document.getElementsByTagName("tr"); //2.判断奇偶数 添加不同的样式 遍历数组 for(var i=1;i<arr.length;i++){ //如果是偶数行 if(i%2==0){ // 偶数的某一行的样式背景颜色设置为= 亮粉色 arr[i].style.backgroundColor="lightpink"; }else{//否则是奇数行 // 奇数的某一行的样式背景颜色设置为 深天空蓝 arr[i].style.backgroundColor="deepskyblue"; } } } </script> 效果图: 作者: 杨校 出处:http://www.cnblogs.com/xiaoxiao5016 分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 如有问题, 可邮件(397583050@qq.com)咨询。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册