- 博客(28)
- 收藏
- 关注
原创 如何在 Nervos CKB 上开发智能合约
概述Nervos CKB 是一条基于 PoW 的 layer1 公链,其 Cell 模型是比特币 UTXO 模型的泛化,因此它的智能合约开发有别于基于以太坊账户模型的智能合约开发。以太坊的合约是链上计算,合约调用者需要给出合约方法的输入,链上会完成计算并得到输出,而 CKB 的合约是链上验证,合约调用者需要同时给出输入和输出,链上完成输入到输出的验证。举一个简单的类比,如果你想实现在合约中实现 y = sqrt(x) 函数,对于以太坊你需要给出 x 的值,合约会计算 y 的值;而对于 CKB 来说,你需
2021-01-06 14:38:15 471
原创 推荐一款牛逼的开源 React 前端项目
开源项目地址:https://github.com/nervosnetwork/ckb-explorer-frontend很多人都听说过比特币、以太坊等区块链项目,也了解过区块链的工作原理,可能还动手写过 Solidity 智能合约代码。对于一个之前未曾了解过区块链的新手来说,接触一个区块链项目最好的途径可能就是它的区块浏览器(Blockchain Explorer)了,为什么这么说呢,因为相比于区块链全节点,区块浏览器够直观、易懂和清晰。区块浏览器最大的价值就是用清晰直观的 Web 元素展示复杂且不
2020-06-18 10:44:48 11347 12
原创 Android截屏与WebView长图分享经验总结
一、概述最近在做新业务需求的同时,我们在 Android 上遇到了一些之前没有碰到过的问题,截屏分享、 WebView 生成长图以及长图在各个分享渠道分享时图片模糊甚至分享失败等问题,在这过程中踩了很多坑,到目前为止绝大部分的问题都还算是有了比较满意的解决方案。以下就从三个方面来总结一下过程中遇到的挑战和最后的解决方案。二、截图分享在 Android 原生系统中是没有提供截图的广播或者监听事件的,也
2017-05-19 18:44:28 8037 4
原创 FileProvider在Android N上的应用
Android 从 N 开始不允许以 file:// 的方式通过 Intent 在两个 App 之间分享文件,取而代之的是通过 FileProvider 生成 content://Uri 。如果在 Android N 以上的版本继续使用 file:// 方式分享文件,则系统会直接抛出异常,导致 App 出现 Crash 。
2017-04-03 16:02:29 4117
原创 OkHttp与Retrofit上传文件详解
Http上传原理Http上传需要用到multipart/form-data请求方式,Http协议原始方法不支持multipart/form-data请求,那这个请求自然就是由原始的请求方法拼装而成,具体规则如下:1、multipart/form-data的本质上还是Post请求 2、multipart/form-data与post方法的不同之处:请求头,请求体。 3、multipart/form
2016-09-08 19:30:51 13595
原创 RxJava与Retrofit实战总结
RxAndroid模块包含RxJava的Android特定的绑定代码。它给RxJava添加了一些类,用于帮助在Android应用中编写响应式(reactive)的组件。它提供了一个可以在给定的Android Handler上调度Observable的调度器 Scheduler,特别是在UI主线程上
2016-08-21 20:49:01 4181
原创 Retrofit用法详解
一、 简介Retrofit是Square公司开发的一款针对Android网络请求的框架,Retrofit2底层基于OkHttp实现的,OkHttp现在已经得到Google官方认可,大量的app都采用OkHttp做网络请求,其源码详见OkHttp Github。 本文全部是在Retrofit2.0+版本基础上论述,所用例子全部来自豆瓣Api首先先来看一个完整Get请求是如何实现:创建业务请求接
2016-08-06 23:11:33 72557 27
原创 Retrofit源码分析
Retrofit是一个在Android和Java中类型安全Http客户端框架,可以通过注解的方式声明请求方法、参数和URL路径,此外还支持mutlipart请求和文件上传。Retrofit2.0是基于OkHttp实现的,底层的网络请求由OkHttp完成,如果再结合RxJava一起使用,网络请求代码将会变得更优雅清晰。
2016-07-30 11:46:46 1739
原创 Android权限最佳实践和代码实例分析
一、 官方推荐的权限最佳实践如果没有节制地频繁请求权限很容易使用户反感,如果用户发现app需要大量的敏感权限,很可能会拒绝使用甚至直接卸载。以下几点可以有效地提升用户的使用体验。1. 考虑使用Intent在很多情况下,你可以有两种选择实现你的操作,一种是直接app中请求比如摄像头这样的权限,然后调用摄像头APIs去控制摄像头并获取照片。这种方式可以使你对摄像头有全部的控制权,并且可以自定义相关的UI
2016-06-26 22:22:32 8709 1
原创 NavigationView更改菜单icon和title颜色变化效果
NavigationView menu默认icon和title会随着菜单状态改变而改变,选择某个菜单后再次打开侧边菜单后会发现该菜单的icon和title会变成应用的主颜色,其他菜单项仍然为黑色。
2016-06-13 15:50:05 18614 4
翻译 2016年Google IO最新布局ConstraintLayout
Android Studio 2.2预览版包含了一个新的布局编辑器即ConstraintLyout,你可以不在XML布局文件中构建ConstraintLayout,ConstraintLayout相比之前构建UI的方式要容易地多。当你拖拽一个视图组件到ConstraintLayout,你可以添加约束,通过拖拽锚线来定义到其他视图组件的相对距离,同时布局编辑器还为所有的视图组件集成了推理约束。
2016-06-09 22:52:48 1479
原创 Android数据库ORM框架用法、源码和性能比较分析
基本用法 LitePalLitePal是一款开源的Android数据库框架,它采用了对象关系映射(ORM)的模式,LitePal很“轻”,jar包只有100k不到,使用起来也比较简单,源码地址为Github地址。首先需要引入lib,可以通过gradle引入也可以将下载的litepal.jar包直接放入libs目录下。然后需要在assets目录下新建一个litepal.xml文件,文件名称不能随
2016-03-22 15:06:21 1804 1
原创 Android数据库greenDAO框架用法和源码分析
Android数据库greenDAO框架用法和源码分析greenDAO简介greenDAO是一种Android数据库ORM(object/relational mapping)框架,与OrmLite、ActiveOrm、LitePal等数据库相比,单位时间内可以插入、更新和查询更多的数据,而且提供了大量的灵活通用接口。如何开始greenDAO需要提前生成Entity、DAO等文件,因此需要先建立一个
2016-03-22 14:58:35 3787 1
转载 iOS - 中三种定时器的用法NSTimer、CADisplayLink、GCD
一、NSTimer1.创建方法NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(action:) userInfo:nil repeats:NO];TimerInterval : 执行之前等待的时间。比如设置成1.0,就代表1秒后
2015-08-19 19:45:50 816
转载 Handler防止内存泄露
转自http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1106/1922.html在使用Handler更新UI的时候,我是这样写的:123456789public class SampleActivity
2015-08-13 11:08:43 618
转载 Android应用开发之所有动画使用详解
转载【工匠若水 http://blog.csdn.net/yanbober 转载请注明出处。点我开始Android技术交流】1 背景不能只分析源码呀,分析的同时也要整理归纳基础知识,刚好有人微博私信让全面说说Android的动画,所以今天来一发Android应用的各种Animation大集合。英文厉害的请直接移步参考Android Developer。Android
2015-08-12 21:52:24 1090
转载 Android 标签控件
转载:http://blog.csdn.net/wangjinyu501/article/details/38089061在有的应用中可能需要设置一些标签来方便用去去查询某些信息,比如手机助手或者购物软件之类都会有一些标签。对于软件开发初期来说,直接使用TextView、Button实现是最为简单的一种方式。但是这种方法也有其局限性,比如不能控制换行、耦合性低等缺点。所以除了解决这些问
2015-08-12 16:11:34 615
转载 使用curl来调试你的应用
转自http://stormzhang.com/devtools/2014/11/07/use-curl-debug/我们在客户端开发过程中总免不了和后端进行api对接,有时候需要对返回的数据格式进行调试,有时候每次运行客户端来发送请求,这个未免效率太低,这里就来介绍一个好用的工具–curl。curlcurl是一个向服务器传输数据的工具,它支持http、https、ft
2015-08-12 10:36:15 859
转载 Gradle多渠道打包
转自http://stormzhang.com/devtools/2015/01/15/android-studio-tutorial6/由于国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,如果让你打几十个市场的包岂不烦死了,不过有了Gradle,这再也不是事了。友盟多渠道打包废话不多说,以友盟统计为例,在Andro
2015-08-11 18:30:28 573
转载 Gradle基础
转自http://stormzhang.com/devtools/2014/12/18/android-studio-tutorial4/什么是Gradle?Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。安装Gradle在Androi
2015-08-11 18:28:10 510
原创 Android json解析--GSON
Gson是对成员变量field进行序列化,Android恰恰是推荐开发者直接使用成员变量访问而不是用setter、getter。Gson可以很容易地实现对象与json字符串之间的相互转换。
2015-08-05 22:20:28 922
原创 EditView软键盘管理
有些需要输入框EditView的页面,刚进来由于输入默认获得了焦点,系统会自动弹出软键盘,体验不是很好,那么如何取消这个默认行为呢?在其父控件下,添加如下的属性,就可以解决:android:focusable="true" 表示该控件可以获得焦点android:focusableInTouchMode="true" 表示可以
2015-07-25 16:13:17 506
转载 Android消息队列模型
Google官方给Handler的解释如下:A Handler allows you to send and process Message and Runnable objects associated with a thread's MessageQueue. Each Handler instance is associated with a single thread
2015-06-26 14:15:30 844
转载 利用onMeasure测量来实现图片拉伸永不变形,解决屏幕适配问题
转自:http://blog.csdn.net/cyp331203/article/details/45038329。使用ImageView会遇到的问题 在Android应用中,都少不了图片的显示,ImageView,轮播图,ViewPager等等,很多都是来显示图片的,比如一个广告条的轮播效果,参看博客:广告条效果实现----ViewPager加
2015-06-26 13:39:20 952
转载 详解onMeasure()方法中如何测量一个控件尺寸
http://blog.csdn.net/cyp331203/article/details/45027641 自定义view/viewgroup要重写的几个方法:onMeasure(),onLayout(),onDraw()。(不熟悉的话可以查看专栏的前几篇文章:Android自定义控件系列二:自定义开关按钮(一))。
2015-06-26 12:04:19 3226
转载 Android中的dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()
转自:http://blog.csdn.net/xyz_lmn/article/details/12517911 Android中触摸事件传递过程中最重要的是dispatchTouchEvent()、onInterceptTouchEvent()和onTouchEvent()方法。这个是困扰初学者的问题之一,我开始也是。这里记录一下dispatchTouchEvent()
2015-06-26 11:32:40 630
转载 Android onTouchEvent, onClick及onLongClick的调用机制
原帖:http://blog.csdn.net/ddna/article/details/5451722 针对屏幕上的一个View控件,Android如何区分应当触发onTouchEvent,还是onClick,亦或是onLongClick事件?在Android中,一次用户操作可以被不同的View按次序分别处理,并将完全响应了用户一次UI操作称之为消费了该事件(consume
2015-06-26 11:07:46 463
转载 使用Volley加载图片列表
转自 http://blog.csdn.net/xyz_lmn/article/details/12746581Android开发者可能会使用Universal Image Loader或者Square`s newer Picasso这些第三方的库去处理图片的加载,那么Volley是怎么加载图片列表的呢,这一篇文章会介绍使用Volley加载图片列表。 在Goo
2015-03-11 13:42:20 516
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人