为了账号安全,请及时绑定邮箱和手机立即绑定

优雅地实现一个高效、异步数据实时刷新的列表

前言Android 的业务开发中。列表需求很常见也很重要的部分,列表承载的信息多,涉及的的协议多,布局也多,尤其一些复杂的列表,不管是用 ListView 还是 RecyclerView,使用不当会带来很多的性能问题和后期的维护问题,形成一套规范的,高性能的列表开发模式很有必要。案例分析用一些案例说明一下吧(只是用一些 App 里的截图来做类比,并不知其协议类型和实现方式)类似的列表不容易解决的主要在两个方面:先不管列表里每个 Item 的具体...

2474浏览
0推荐
0评论

Android进阶 一个项目,一个Toolbar

需求在日常的开发当中,经常会用到Toolbar作为标题栏,如果在每个view里面都写一个Toolbar的话,显然有点冗余,一般情况下在每个项目里面都有一个BaseActivity,作为所有Activity的父类,我们就可以在BaseActivity中封装好Toolbar,在子类用BaseActivity提供的方法调用即可。展示来来来,往这边看,下面的的gif都是通过一个Toolbar实现的:toolbar.gif<figcaption></figcaption>是不是很不错,只用在子Activity中调用BaseActivity中的方法或者重写方法就可以了。有兴趣的可以看下代码,欢迎指正Demo地址实现...

1074浏览
0推荐
0评论

Android Gradle进阶配置指南

简单的总结一下gradle:1.Gradle是一种构建工具,它可以帮你管理项目中的差异,依赖,编译,打包,部署......你可以定义满足自己需要的构建逻辑,写入到build.gradle中供日后复用.2.Gradle不是一种编程语言,它不能帮你实现软件中的任何实际功能Gradle 基本如果你用Android Studio新建一个项目的时候,默认生成一大堆关于gradle的东西,其中最重要的是一个build.gradle的文件,内容如下:apply plugin: 'com.android.application'android {...

803浏览
0推荐
0评论

《币圈笔记》第281期:迟到的升级

19年03月01日,记以太坊升级。今天,币圈已经关注小半年的以太坊君士坦丁堡终于迎来升级,圣彼得堡的升级也同步完成。虽然此次升级意义十分巨大,但没有糖果产生,不会生娃也就导致短期内不会对ETH价格产生太大影响。此次升级最大的变化有两点:第一是由PoW +...

902浏览
0推荐
0评论

我们为什么需要交易数据?

所有交易都存在“数据(Data)”字段,但是实际上那包含了什么,为什么?你可能已经注意到,在与智能合约(例如,发送代币)交互时,您的交易会自动包含输入数据。在MyCrypto上,这只是简单地标记为“Data”——但是它有什么作用?在本文中,您将看到交易输入数据的技术解释,包括它是什么以及它是如何工作的。什么是输入数据?让我们先看看这个代币交易开始。一个人将零个ETH发送到0xd26114cd6ee289accf82350c8d8487fedb8a0c07 (OmiseGO合约地址),Etherscan显示这是向该地址发送0.19个OMG代币的交易。那么EVM (Ethereum Virtual...

845浏览
0推荐
0评论

解读双侧链加持的Ulord

当前,区块链技术面临的一个最大的问题就是扩容性和延展性了。为了更好的解决这个问题,就必须从区块链的结构入手,侧链就是很好的解决方案。侧链能让开发者快速部署区块链解决方案,成本低,安全性高。侧链也被称作子链。什么是侧链?侧链是服务于主链的相对独立的区块链,锚定主链中的某一个节点,通过主链上的计算力来维护侧链的真实性,实现公共区块链上价值与其他账簿上价值在多个区块链间的转移。侧链技术用一种“低能耗”的方式扩展了区块链技术的应用范围,有助于区块链技术的进一步发展创新。为了更好的理解这个概念,我们可以打个比方。试想主链是一条高速公路,汽车在上面飞速行驶,侧链就是和高速毗邻的一系列道路,必要时,能连接到高速。因此,侧链可以简单理解为通过...

685浏览
0推荐
0评论

Android 基于UDP的Socket通信

截图1、Android 客户端client.png2、PC服务端:用的是SocketTool软件模拟server.png流程1、连接DatagramSocket的服务端(ip和port):开启异步线程和socket2、发送数据(DatagramPacket):异步3、接收数据(DatagramPacket):注意连接状态,异步读取4、关闭连接:关闭DatagramSocket和对应线程注意1、异常:android.os.NetworkOnMainThreadException。 socket需要在线程中使用2、前后端统一传输或者接收协议 [requestcode   size  d1 d2 d3 ......

4945浏览
0推荐
0评论

一行代码实现Android的跨进程调用与通信

后第一发,带来一款更简洁方便的Android进程通信方案。看了网上太多的Binder以及跨进程讲解,最后回到我们自己来进行跨进程通信时发现还是相当繁琐,定义aidl、定义Service、bindService等一系列操作搞得头都大了。CmProcess 可简单轻松解决进程间通信问题,几行代码搞定,任意进程随时注册服务,随时同步获取服务以及支持跨进程的事件总线。介绍CmProcess  更方便更简洁的Android进程通信方案,无需进行bindService()操作,不用定义Service,也不需要定义aidl。...

1978浏览
0推荐
1评论

张绍文android开发高手课读书笔记3-卡顿优化篇

下面进入正题卡顿根本原因造成卡顿的原因可能有千百种,不过最终都会反映到CPU 时间上.CPU时间分两种用户时间 执行用户态应用程序代码所消耗的时间**系统时间 **执行内核态系统调用所消耗的时间,包括 I/O、锁、中断以及其他系统调用时间CPU使用状态有以下几个指标CPU 使用率:  如果 CPU 使用率长期大于 60% ,表示系统处于繁忙状态,就需要进一步分析用户时间和系统时间的比例。对于普通应用程序,系统时间不会长期高于 30%,如果超过这个值,就得考虑是否I/O调用过多或者锁调用的过于频繁的问题。(Android studio 3.0的版本之后可以直接观测到CPU的使用情况)CPU 饱和度:  CPU...

2005浏览
0推荐
0评论

少年,你可能对RxJava的Zip操作有些误会

image.png项目中有这样一个场景,资讯详情页展示需要发送两个网络请求,一个获取资讯信息,一个获取评论信息,只有两部分内容都请求都完成,才能进行页面的展示,这是一个非常常见的业务场景,我们直接使用了RxJava的Zip操作符来实现,伪代码如下:ApiService service; // Retrofit 产生的请求接口Observable.zip(service.getNewsContent()   ,service.getNewsComments()   ,new Func() {})...

2572浏览
1推荐
0评论

支付宝 App 构建优化解析:Android 包大小极致压缩

前言本章节我们将围绕《支付宝 App 构建优化解析》另启新系列,细分拆解客户端在“代码管理”、“证书管理”、“版本管理”、“构建打包”等维度的具体实现方案展开讨论,带领大家进一步了解支付宝在 App 构建模块下的持续优化。本节将主要记录通过对支付宝 Android 包大小进行压缩,来改善运行效率和质量。背景包大小的重要性已经不需要多说,包大小直接影响用户的下载,留存,还有部分厂商预装强制要求必须小于一定的值。但是随着业务的迭代开发,应用会越来越大,安装包会不停的膨胀,所以包大小缩减是一个长期的治理过程。方案支付宝也一直在优化包大小的方向上努力,我们引入了很多方案。比如:proguard 代码混淆,图片从 png 到...

906浏览
0推荐
0评论

通过安装包重排布优化 Android 端启动性能

1. 前言本章节我们将围绕《支付宝 App 构建优化解析》另启新系列,细分拆解客户端在“代码管理”、“证书管理”、“版本管理”、“构建打包”等维度的具体实现方案展开讨论,带领大家进一步了解支付宝在 App 构建模块下的持续优化。本节将主要记录通过对支付宝 Android Apk 文件的重新布局,来改善 IO 性能的过程。2. 背景支付宝 App 在 Android 平台上,由于大量业务快速上线,Android 长尾机型等原因,造成启动阶段及部分核心链路上,性能体验不理想,进而影响用户的使用的感受。从纯业务角度,可以通过优化 UI 布局,优化代码结构,优化 bundle...

969浏览
0推荐
0评论

【Android】9.0活动的生命周期(二)——实际代码演示

1.0  新建一个项目ActivityLifeCycleTest。新建两个活动NormalActivity和DialogActivity,勾选“Generate Layout File”。文件目录如下:image2.0...

1222浏览
0推荐
0评论

【Android】10.0 UI开发(一)——如何编写程序界面、常见控件的使用

1.0 通过代码来记录控件,大抵有以下几个控件TextView 文本显示Button 按钮EditText 文本输入ImageView 插入图片AlertDialog 在当前界面弹出一个对话框,置于所有页面元素之上,能够屏蔽掉其他空间的交互能力。因此一般用于提示一些非常重要的内容或者警告信息。比如防止用户误删重要内容,在删除前弹出一个确认对话框。ProgressBar 圆圈进度条2.0 新建一个项目,取名随意,我的叫ViewControl。项目目录如下:image3.0...

1695浏览
0推荐
0评论

【Android】11.0 UI开发(二)——列表控件ListView的简单实现1

1.0 内容涉及特别多,写的原因也是给自己捋思路。ListView使用好麻烦。2.0 先看最终的运行结果:imageimage3.0 第一界面是作为自己熟悉<ConstraintLayout>标签,练手做的,体会如下:Guideline控件超级有用,它会提供一个可以设置百分比的虚线,其他控件可以基于这个控件来摆放,这样可以解决不同机型界面不兼容的问题。下面是我的手机(华为荣耀play)运行的画面:image3.1 这个界面总共加了6个控件:ImageView :2张图片EditText :2个文本输入框,虽然一个是密码输入框,但是因为学习资料没有介绍,就没用先。Button...

1553浏览
0推荐
0评论

除了利率下调80% 还有这些 | 58COIN抵押贷款上新

大家都知道,抵押贷款是58COIN首创推出的,主要目的是盘活存量数字资产。在去年11月首次升级的基础上,今年3月,功能更全、可抵/可贷币种更丰富、利率更低、周期更灵活的全新升级版的抵押贷款业务已经面世,等待您的体验。下面晓生为大家解析下全新升级的抵押贷款亮点通俗来说,抵押贷款就是把手头上暂时不想交易/不活跃的数字货币进行抵押(注意:并不是卖出),换成心仪的/活跃的数字资产进行交易。本次全新升级后的抵押贷款有哪些改变呢?有哪些亮点呢?下面晓生就跟大家详细的解析一下。1、可贷币种、可抵押币种均有增加 相比之前可贷币种只有USDT,本次升级后可贷币种新增BTC、ETH、EOS、LTC等4个主流币种,可贷币种的选择丰富了不少...

934浏览
0推荐
0评论

EOS钱包开发教程

区块链钱包是什么?很多人会把它理解为微信支付宝钱包等,然而区块链钱包里没有数字货币,数字货币存储在区块链上,钱包作为公私钥的管理工具,用户通过钱包与区块链平台上的DApp 进行交互。image区块链钱包对于区块链而言好比浏览器对于互联网一样。早期人们对于在浏览器上输入url和域名访问互联网都很陌生,但现在浏览器已经成为互联网的重要入口,被几十亿人使用。在区块链上也将会发生同样的一个演变过程,对大多数人来说,现在区块链是陌生的,随着区块链用户从数百万人激增到数千万人,那么许多团队对钱包的这个入口战略资源的争夺将比互联网时代...

1631浏览
0推荐
0评论

打印完整的okhttp网络请求和响应消息

背景开发中,有时需要核对接口请求和响应参数,需要看到详细的接口调用。本来可以通过Facebook Stetho来监控接口的,但是受限于网络,导致调测界面打不开,所以只要寻求其他方案。解决方案通过okhttp添加拦截器,打印接口调用日志。添加依赖implementation...

7021浏览
0推荐
0评论

安卓自定义dialog

MyDialog.javapublic class MyDialog extends Dialog {    public MyDialog(@NonNull Context context) {        super(context);         setContentView(R.layout.dialog_layout);...

1348浏览
0推荐
0评论

Android实现摇晃手机的监听(摇一摇)

背景项目中,需要在某些界面监听用户摇晃动作做出相应的反应。下面分Kotlin和Java两种给出具体的代码。实现方案(Kotlin)新增SensorManagerHelper.ktclass SensorManagerHelper(private val context: Context) : SensorEventListener {    // 速度阈值,当摇晃速度达到这值后产生作用...

1848浏览
0推荐
0评论
首页上一页1234567下一页尾页
意见反馈 帮助中心 APP下载
官方微信