-
Android开发仿即刻点赞文字部分的自定义View
有一个项目是仿即刻的点赞,后来原作者在点评中提到,需要将文字和图片分开来写,并且模仿者的动画实现由点杂乱。所以决定重现实现下文字部分的效果。并拓展了更多功能。最后说一句本文基于kotlin实现。不明白的地方请在评论区指出。 即刻原效果: 个人效果
-
Android开发高级MVP架构封装演变全过程
本文不会讲解什么是MVP,如果还不太了解MVP请自行查阅资料,本文重点是封装一个高级MVP架构,会详细的讲解如何一步步从无到有的封装成一个高级MVP架构过程。 众所周知普通的MVP模式存在内存泄露、代码冗余、界面意外关闭后在重建数据缓存等问题,本文最终封
-
Android开发减少代码量的 7~8 种方式
Copy-Paste 是一件非常有效的开发方式,但是它们一点儿也不适合维护为了改一个拼写错误,要去修改代码中的七八个文件,打人的心都有了。 如果万一我们是要替换这七八个文件的相应代码,那么就会更加地痛苦。在后端里,我们只需要修改相应的 Java、Go、JavaSc
-
Android自定义频道选择器、频道定制
1.频道选择器,频道定制 现在市场上的新闻软件中,绝大多数都会有频道选择器,比如腾讯新闻、网易新闻、今日头条等,频道选择器可以帮助用户定制自己想要的新闻板块,给用户更好的体验。我们的项目正好也是一个新闻类APP,为了更好的符合我们的产品,我们需
-
消息中间件(一)MQ详解及四大MQ比较
一、消息中间件相关知识 1、概述 消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手
-
BigDecimal中divide方法抛异常:Non-terminating decimal expansion; no exact representable decimal result
BigDecimal中divide方法抛异常:Non-terminating decimal expansion; no exact representable decimal result 在使用 BigDecimal rate = new BigDecimal( 1 ).divide( new BigDecimal( 3 )); 1 时抛异常: Non -terminating decimal expansion; no exact repre
-
从YOLOv1到YOLOv3,目标检测的进化之路
这是继 RCNN,fast-RCNN 和 faster-RCNN之后,Ross Girshick 针对 DL 目标检测速度问题提出的另外一种框架。YOLO V1 其增强版本在 GPU 上能跑45fps,简化版本155fps。 论文下载:http://arxiv.org/abs/1506.02640 代码下载:https://github.com/pjreddie/dar
-
简单理解token机制
在简略了解cookie/session机制这篇文章中,扼要论述了cookie和session的原理。本文即将简略论述另一个同cookie/session相同重要的技能术语:token。 什么是token 当用户第一次登录后,服务器生成一个token并将此token回来给客户端,今后客户端只需带上这个to
-
Java中那些常见概念总结
1.HashMap和HashTable的区别 [x] HashMap去掉了contains方法 [x] HashTable是 同步 的(线程安全) [x] HashMap允许空键值 [x] HashMap执行快速失败机制 [ ] Fast-fail 机制:在使用迭代器的过程中有其它线程修改了集合对象结构或元素数量,都将抛出ConcurrentMo
-
解决 APP启动白屏黑屏问题
闪屏页简介 闪屏页,我们手机上的每个 APP 几乎都有自己的闪屏页,就是在真正进入程序前,会有一个页面停顿几秒钟。其实我们完全可以充分利用好这几秒钟做很多的程序初始化了启动。 为什么我的 APP 启动会白屏或者黑屏 有时候我们会发现,我们在启动我们自己
-
no input file specified 三种解决方法
办法一:改PHP.ini中的doc_root行,翻开ini文件注释掉此行,然后重启IIS 办法二: 请修正php.ini 找到 ; cgi.force_redirect = 1 去掉前面分号,把后边的1改为0 即 cgi.force_redirect = 0 二.apache No input file specified apache No input filespecified
-
TypeScript VS JavaScript 深度对比
TypeScript 和 JavaScript 是目前项目开发中较为流行的两种脚本语言,我们已经熟知 TypeScript 是 JavaScript 的一个超集,但是 TypeScript 与 JavaScript 之间又有什么样的区别呢?在选择开发语言时,又该如何抉择呢? 本文将会深入对比这两种语言,讨论两
-
优雅地处理加载中(loading),重试(retry)和无数据(empty)等
LoadSir 是一个高效易用,低碳环保,扩展性良好的加载反馈页管理框架,在加载网络或其他数据时候,根据需求切换状态页面,可添加自定义状态页面,如加载中,加载失败,无数据,网络超时,占位图,登录失效等常用页面。可配合网络加载框架,结合返回状态码,
-
安卓10终于来了,能吃上的果然只有这些手机!
Google I/O 2019开发者大会上,谷歌正式公布了安卓系统的全新版本Android Q,这一版本也被称作Android 10,是安卓的第十个主要版本。 现在的安卓已经在全球超25亿设备上激活运行,在手机上更是拥有了大部分的市场份额。 历经十余年时间,进化到第十个大版本
-
Android Wifi热点 数据传输Socket 通信
首先,描述下功能,两个手机,其中一个手机开热点,另外一个手机连接热点,2个手机间数据通信(不需要流量)。简述一下原理:开热点的手机相当于路由器,连接的手机作为客户端,获取路由器的IP建立Socket 连接,开始双方通信。 一、服务器端: 开热点的作为
-
Android 图解Canvas drawText文字居中的那些事
1.写在前面 在实现自定义控件的过程中,常常会有绘制居中文字的需求,于是在网上搜了一些相关的博客,总是看的一脸懵逼,就想着自己分析一下,在此记录下来,希望对大家能够有所帮助。 2.绘制一段文本 首先把坐标原点移动到控件中心(默认坐标原点在屏幕左上
-
Android开发中性能优化之(布局优化)
1.布局优化 1 Android UI渲染机制 玩过游戏的都知道fps大概在60fps左右才最好。在Android中,系统通过VSYNC信号触发对UI的渲染、重绘,其间隔时间是16ms.如果不能在16ms完成绘制,就会出现丢帧现象,即当前该重绘的帧被未完成的逻辑阻塞。 例如一次绘制任何
-
Android 源码分析 Activity的启动模式
一直想抽空针对AMS进行源码分析,无奈一方面因为很忙,另外AMS很复杂,涉及的知识点也比较多,今天利用五一假期对AMS的一个方面,Activity的启动模式进行源码分析,这里面包括了ActivityRecord,TaskRecord,ActivityStack等概念,写这篇博客之前,我也百度了
-
关于 Android 状态栏的适配总结
1.要求状态栏透明,我们的内容布局延伸到系统状态栏,就是人们口中说的沉浸式状态栏: Android 5.0 及其以后版本 :设置属性 View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 使得我们的内容布局可以延伸到系统状态栏,然后直接使用方法 setStatusBarColor() 把系统
-
Flutter 稳定版本 1.5发布,全平台支持!
Flutter Flutter 稳定版本 1.5发布,全平台支持! 在 Google I/O 2019 上,Dart 团队宣布推出新的 Flutter 稳定版本 1.5,这是 Flutter 迄今为止最大的一次版本发布。 伴随着 Flutter 1.5 的发布,同时也发布了 Flutter for Web 的 Preview 版本。 从移动端