学习
文章平均质量分 94
云梦九章
这个作者很懒,什么都没留下…
展开
-
Hashmap知识点总结学习(二)
说说HashMap 底层数据结构是怎样的?HashMap 底层是 hash 数组和单向链表实现,jdk8后采用数组+链表+红黑树的数据结构。说说HashMap 的工作原理如果第一题没问,直接问原理,那就必须把HashMap的数据结构说清楚。HashMap 底层是 hash 数组和单向链表实现,JDK8后采用数组+链表+红黑树的数据结构。我们通过put和get存储和获取对象。当我们给put()方法传递键和值时,先对键做一个hashCode()的计算来得到它在bucket数组中的位置来存储En..原创 2021-04-14 10:21:09 · 2666 阅读 · 1 评论 -
android ImageView实现变暗效果
ImageView控件设置属性iv.setColorFilter(Color.parseColor("#99000000"));引用android ImageView实现变暗效果原创 2020-12-07 10:34:17 · 8507 阅读 · 0 评论 -
记录logcat全量日志
package com.geely.gic.rpa.sample;import android.content.Context;import android.content.Intent;import android.net.Uri;import android.os.Environment;import android.text.TextUtils;import android.util.Log;import java.io.File;import java.io.IOExceptio.原创 2020-12-01 15:40:52 · 9533 阅读 · 0 评论 -
几种跨进程方法
BroadCastReceiver 由于面向整个系统注册的广播,跨进程消耗较大,性能不能保证。 ContentProvider 支持跨进程数据共享 AIDL 客户端调用AIDL接口是同步并且带返回结果的,如果执行时间较长,客户端的调用线程会一直等待。服务端执行AIDL接口是异步的,支持所有基本类型、AIDL接口、Parcelable、List、Map等类型的参数,实现起来繁琐。 Messenger 本质是AIDL通信,客户端发送Message后不带返回结果,服务端接收到Message是通过一个线程的H原创 2020-12-01 15:38:32 · 11490 阅读 · 0 评论 -
了解物联网
物联网(IoT,Internet of Things)在互联网的基础上,将用户端延伸和扩展到物与物、物与人的连接。物联网模式中,所有物品与网络连接,并进行通信和场景联动。物联网是互联网的外延。互联网通过电脑、移动终端等设备将参与者联系起来,形成的一种全新的信息互换方式。而物联网则是通过传感器、芯片、无线模组使设备联网。物联网三要素物联网的形成和管控依赖于以下元素。设备联网能力:通过不同的网络协议和通信标准,实现设备与控制端的连接,并执行智能化操作。云端:提供监控、存储、分析等数据服务,以及保障客户原创 2020-12-01 15:08:38 · 12567 阅读 · 10 评论 -
SystemClock.uptimeMillis与System.currentTimeMillis对比
这两种方法有何区别呢?SystemClock.uptimeMillis() // 从开机到现在的毫秒数(手机睡眠的时间不包括在内);System.currentTimeMillis() // 从1970年1月1日 UTC到现在的毫秒数;第2个时间,是可以通过System.setCurrentTimeMillis修改的,那么,在某些情况下,一但被修改,时间间隔就不准了特别说明点:AnimationUtils 中明确说了:/** * Returns the current animat原创 2020-12-01 14:52:30 · 12083 阅读 · 4 评论 -
定时轮询:rxjava2实现
Observable.interval(1, TimeUnit.SECONDS) .doOnNext(new Consumer<Long>() { @Override public void accept(Long aLong) throws Exception { System.out.println(aLong); ...原创 2020-12-01 14:19:04 · 9260 阅读 · 0 评论 -
Flutter 性能优化问题点
一。编程规范删除无用代码、无用资源优化、压缩资源文件控制 widget build() 方法耗时避免重复且耗时工作避免返回庞大的 widget,尽量分拆成不同 widget,将 setState() 调用转移到 UI 实际需要更新的 widget 子树部分尽量使用 ListView,而不是直接构建大量的子组件列表对列表和网格懒加载,只构建可见部分标准的 ListView 构造函数适用于短列表,会一次性构建所有列表项对于长列表,需要用 ListView.builder 构造函数来创建,只在原创 2020-11-30 19:45:18 · 9568 阅读 · 0 评论 -
java TCP链接Client base OKsoket
import com.alibaba.fastjson.JSON;import com.geely.soahmi.ui.main.beas.RootBean;import com.geely.soahmi.utils.LogTest;import com.xuhao.didi.core.iocore.interfaces.IPulseSendable;import com.xuhao.d...原创 2020-11-30 19:32:55 · 9668 阅读 · 0 评论 -
测试方法性能
import android.annotation.SuppressLint;import android.os.Environment;import java.io.File;import java.text.SimpleDateFormat;/** * the class used in test the cpu * <p> * step 1:permissi...原创 2020-11-30 19:32:11 · 9149 阅读 · 0 评论 -
python脚本批量修改文件命名,文件名排序写入文件,用于动画归类
import osdef rename(file_dir_path): '''文件路径结尾加上/''' # 获取目录下所有文件 file_list = os.listdir(file_dir_path) # 遍历 for file_name in file_list: # 获取旧文件名(就是路径+文件名) # os.sep添加系统分隔符 old_name = file_dir_path + file_name原创 2020-11-30 15:10:13 · 9476 阅读 · 0 评论 -
异步事件内存泄漏:基于rxjava2,前提框架不做任何改动
异步事件内存泄漏:方案1:rxlifecycle2:无法解决自定义类里生命周期绑定当前 框架不适用,或者如果改动需要在BaseView层加接口,BaseAcvitiy加方法,改动影响大如果是themvp正好适用方案2:autoDispose:可参考的项目很少目前能搜索的项目,很多都是错误引用LifecycleOwner,或者引用的SupportActivity中的Lifecycle如果投入更多时间适配autoDispose生命周期onpause,onstop无法检测到,性能无法达原创 2020-11-25 18:58:26 · 13069 阅读 · 0 评论 -
Android高斯模糊背景计算
package com.example.guigusample;import android.app.Activity;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.drawable.BitmapDrawable;import android.graphics.drawable.Drawable;impor原创 2020-11-23 17:31:16 · 9426 阅读 · 0 评论 -
android定时策略
while循环+sleep递归+sleepTimer、TimerTask(推荐2)public class TimerTest { static class MyTimerTask extends TimerTask { public void run() { System.out.println("我爱你中国"); } } public static void main(String[] args) {..原创 2020-11-20 16:54:36 · 9341 阅读 · 0 评论 -
物联网术语
通信相关名词 说明 网关 由于蓝牙 Mesh 设备没有直接上网的能力,所以需要一种设备,同时具有蓝牙通信能力和联网能力,这个设备就是网关。网关是网络关口,就像大门一样,蓝牙设备的所有联网数据都要通过网关上传、下发。所以网关是一种特殊的设备,拥有网关的蓝牙 Mesh 本地网络将可以与云端进行通信。网关也可以同时具有灯、插座、报警器的功能。 Zigbee 一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通讯技术。 主要用于距离短、功耗低且传输速率不高的各种电子设备之间进行数据原创 2020-11-14 11:06:27 · 10507 阅读 · 0 评论 -
Android开发规范
简介:《Android 开发手册》作为开发规约重要的一环,我们的目标是: 防患未然,提升质量意识,降低故障率和维护成本; 标准统一,提升协作效率; 追求卓越的工匠精神,打磨精品代码。本手册以开发者为中心视角分为 Java 语言规范(遵循《阿里巴巴 Java 开发手册》),Android 资源文件命名与使用,Android 基本组件,UI 与布局,进程、线程与消息通信, 文件与数据库,Bitmap、Drawable 与动画,安全,依赖库引入,组件化,分支管理,其他等十二大部分,.原创 2020-11-14 11:03:09 · 10614 阅读 · 0 评论 -
MAC配置adb环境
1.打开环境配置文件配置adb环境在linux命令行terminal上使用gedit直接就可以打开文本文件那么在mac上面如何操作呢?使用:open -a TextEdit settings.xml 参数说明:-a指定应用也可以是:open -e settings.xml 参数说明:-e使用文本编辑器打开也可以是:open -t settings.xml 参数说明:-t使用默认编辑器打开2. 输入内容:export ANDROID_HOME=/Users/yfsu/Library/Andro原创 2020-11-03 14:26:37 · 9604 阅读 · 0 评论 -
APP全流程框架总结
一。产品设计产品设计七层自检模型《用户心理学》二。 协议OkhttpMQTT三。大前端WeexRNFlutter四。App代码框架TheMVPMVPArmsMVPMosbyMVVMMVPVMMVI五。异步编程框架Rxjava六。事件总线EventBus七。联网框架Retrofit+OkHttpoksocket八。多进程HermsEventBus九。图片加载框架GlidePiccasoFrasco十。存储MMK原创 2020-12-01 15:13:00 · 9945 阅读 · 0 评论 -
Android v1、v2、v3签名
什么是Android签名了解 HTTPS 通信的同学都知道,在消息通信时,必须至少解决两个问题:一是确保消息来源的真实性,二是确保消息不会被第三方篡改。同理,在安装 apk 时,同样也需要确保 apk 来源的真实性,以及 apk 没有被第三方篡改。为了解决这一问题,Android官方要求开发者对 apk 进行签名,而签名就是对apk进行加密的过程。要了解如何实现签名,需要了解两个基本概念:消息摘要、数字签名和数字证书。消息摘要消息摘要(Message Digest),又称数字摘要(Digital D原创 2020-11-05 16:01:05 · 9690 阅读 · 2 评论 -
开源许可证及相关协议内容
BSD 开源协议使用者享有“最大”的使用自由,可以修改源代码,可以将修改后的代码作为开源或是专有软件版权再发布以BSD协议代码为基础做二次开发的情况才享有该“最大”使用权限,但依然要满足三个条件:如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSd协议如果再发布的只是二进制类库 /软件 ,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议不可以使用开源代码的作者/机构名字和原来产品的名字进行市场推广BSD代码优点:鼓励代码开源共享允许使用者修改和重新发布代码允许原创 2020-11-30 19:26:09 · 9347 阅读 · 0 评论 -
网络七层模型
深入浅出-网络七层模型原创 2020-11-30 19:28:08 · 9160 阅读 · 0 评论 -
Https原理及流程
密码学基础明文: 明文指的是未被加密过的原始数据。密文:明文被某种加密算法加密之后,会变成密文,从而确保原始数据的安全。密文也可以被解密,得到原始的明文。密钥:密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥,分别应用在对称加密和非对称加密上。对称加密: 对称加密又叫做私钥加密,即信息的发送方和接收方使用同一个密钥去加密和解密数据。对称加密的特点是算法公开、加密和解密速度快,适合于对大数据量进行加密,常见的对称加密算法有DES、3DES、TDE原创 2020-11-30 19:26:26 · 9221 阅读 · 0 评论 -
TCP三次握手和四次挥手
三次握手:四次挥手详解 TCP 连接的“ 三次握手 ”与“ 四次挥手 ”原创 2020-11-30 19:29:10 · 9122 阅读 · 0 评论 -
用户心理学
冯·雷斯托夫效应(Von Restorff effect)冯·雷斯多夫效应(也称为隔离效应)预测当存在多个相似对象时,不同于其他对象的是最容易被记住的!看完这个理论,身为设计师的你是否马上想到了什么?没错,这就是为什么CTA按钮看起来与网站或APP上其余操作按钮不同的主要原因!我们希望用户能够区分简单的操作按钮和CTA按钮,以便他们清楚地了解CTA按钮的作用,同时在使用APP或站点时也能记住它。应用于核心功能按钮“当有多个相似的对象存在时,不同于其他对象的是最有容易被记住的!”系列位置效应原创 2020-09-11 10:40:01 · 10561 阅读 · 0 评论 -
Flutter、Weex、RN,Native对比
Flutter、Weex、RN,Native对比最火移动端跨平台方案盘点:React Native、weex、Flutter原创 2020-11-30 19:26:43 · 11707 阅读 · 0 评论 -
设计模式:依赖倒置
1 依赖倒置原则(Dependence Inversion Principle,DIP)的原始定义:高层模块不应该依赖底层模块,两者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。public interface IDriver { public void driver(ICar car);}public class Driver implements IDriver { public void driver(ICar car) { car.run(原创 2020-11-30 19:28:44 · 9218 阅读 · 0 评论 -
获取view布局参数
因为View组件布局要在onResume回调后完成当一个视图树的布局发生改变时,可以被ViewTreeObserver监听到,这是一个注册监听视图树的观察者(observer),在视图树的全局事件改变时得到通知。 int mHeaderViewHeight; mHeaderView.getViewTreeObserver().addOnGlobalLayoutListener( new OnGlobalLayoutListener() { @Ov原创 2020-11-30 19:30:18 · 9275 阅读 · 0 评论 -
android适配
1.任意代码执行漏洞2012(android4.1之前)2013(android4.2)2014(android4.4以下)2014(android4.4以下)2.密码明文存储漏洞设置默认开启密码保存功能为false,存到webview db中3.域控制不严格漏洞a应用通过b应用导出的activity,让b应用加载一个恶意的url,从而可以获取b应用内部的文件。android6.01.运行时权限2.增加低耗电模式和应用待机模式3.取消支持Apache HTTP客户端4.移除硬件标识符访问原创 2020-11-30 19:30:36 · 9011 阅读 · 0 评论 -
热修复方案及原理
热修复方案Dexposed:阿里-》开源-》实时修复Andifix:阿里-》开源-》实时修复阿里百川HotFix:阿里-》未开源-》实时修复Qzone超级补丁:QQ空间-》未开源—》冷启动修复QFix:手Q团队—》开源-》冷启动修复Robust:美团-》开源-》实时修复Nuwa:大众点评—》参考Qzone开源-》冷启动修复RocooFix:百度金融-》开源-》冷启动修复Aceso:美丽说蘑菇街-》开源-》实时修复Amigo:饿了么-》开源-》冷启动修复Tinker:开源-》开源-》冷启原创 2020-11-30 19:27:11 · 9381 阅读 · 0 评论 -
Retrofit实现原理
Retrofit的使用是动态代理,方法注解,建造者和适配器等成熟的技术。解决api的耦合一。动态代理retrofit会生成一个接口实例。//用retrofit加工出对应的接口实例对象INetApiService netApiService= retrofit.create(INetApiService.class);到Retrofit源码里看create函数,是一个动态代理。 public <T> T create(final Class<T> service) {原创 2020-11-30 19:28:29 · 9493 阅读 · 0 评论 -
JVM,Dalvik,ART对比
一。JVM基于栈占用空间更少为简化编译,常量池使用32位索引标准JVM施行8位堆栈指令,Dalvic直接使用16位指令集作用于局部变量,局部变量通常来自4位“虚拟寄存器”区,这样减少dalvic指令计数,提高翻译速度当andrid启动时,dalvic监视所有的程序,并且创建依存关系树,为每个程序优化代码,并存储缓存中,dalvic第一次加载后会生成cache文件,方便下次加载,所以第一次会很慢。dalvic采取预先算好的Goto地址,每个指令对内存的访问都在64字节边界上对其,这样可以节省一个指原创 2020-11-20 14:20:04 · 9466 阅读 · 1 评论 -
EventBus解读
### 一。Subscribe注解##### 1.1 使用Subscribe注解时,可以根据需求,指定threadMode,sticky,priority三个属性原创 2020-11-30 19:31:22 · 9447 阅读 · 0 评论 -
HashMap知识循序渐进分析
红黑树(一)之 原理和算法详细介绍【老实李】JDK1.8中HashMap的红黑树hashcode详解 HashMap底层实现原理及面试问题原创 2020-12-01 15:39:37 · 9032 阅读 · 0 评论 -
(待续)异步编程-RxJava2解读
阿里专家杜万:Java响应式编程,一文全面解读RxJava2.x+ReTrofit2.x多线程下载文件RxJava2.0│基础简介原创 2020-12-01 15:40:03 · 9052 阅读 · 1 评论 -
Android嵌套滚动机制原理
主要接口和类NestedScrollingChild 如果一个View想要能够产生嵌套滑动事件,这个View必须实现NestedScrollChild接口,从Android 5.0开始,View实现了这个接口,不需要我们手动实现NestedScrollingParent 这个接口通常用来被ViewGroup来实现,表示能够接收从子View发送过来的嵌套滑动事件NestedScrollingChildHelper 这个类通常在实现NestedScrollChild接口的View里面使用,他通常用来原创 2020-08-31 15:01:39 · 9400 阅读 · 0 评论 -
RecyclerView 和 ListView对比
布局效果对比布局效果对比RecyclerView默认支持线性布局,网格布局,瀑布流布局,同时支持横向,纵向滚动。APIListView继承重写BaseAdapter类自定义ViewHolder和convertView一起完成复用工作RecyclerView继承重写RecyclerView.Adapter和RecyclerView.ViewHolder设置布局管理器,设置布局效果区别ViewHodler编写规范化RecyclerView复用item的工作封装好了,不需要Lis原创 2020-11-30 19:29:40 · 9419 阅读 · 0 评论 -
Okhttp原理分析
OKHTTP原理流程图:注意:Dispatcher的图有误解,懒得修改OkHttpClientOkhttp算是执行调用请求Call工厂,这个工厂将会用来发送HTTP请求和读取他们的返回。强调:OKHTTP最好用单例模式,重复使用。因为每一个client都有自己的连接池connect pool和线程池thread pool。复用可以减少内存,减少延迟Dispatcher当OkHttpClient.newCall(request)执行execute/enenqueue时,实际上是将Call放入Dis原创 2020-08-31 11:26:51 · 9721 阅读 · 1 评论 -
异步编程方案
FutureCallbackServelt3.0RXJAVAKotlin协程Project Loom继承Thread类实现Runnable接口HandlerAsyncTask:android特有只能主线程创建,主线程调用HandlerThreadandroid原创 2020-12-01 15:39:56 · 8953 阅读 · 1 评论 -
SparseArray和Hashmap对比-个人理解
APISparseArray(稀疏数组), android特有api,标准jdk没有。只需要指定value类型,key不需要封装对象jdk效率10万条数据内差别不大,数据量越大hashmap效率越块的明显SparseArray是二差分查找,Hashmap是红黑数查找内存10万条数据左右SpaseArray比Hashmap省27%的内存。hashmap自动封箱拆箱...原创 2020-11-30 19:31:36 · 9375 阅读 · 0 评论 -
APK压缩包目录
一。assets目录:静态文件:支持任意深度的子目录,可以任意部署文件夹架构。不会自动生成id,访问时需要AssetManager类二。Lib目录:native库文件 ARM,ARM-v7a,mips,x86三。res目录:资源文件可以自动生成idanim动画文件drawable图像资源layout布局文件values特征指colors.xml颜色值dimen.xml尺寸值String字符串值style样式对象xml10.raw:可以直接复制到设备任意文件四。META-I原创 2020-11-30 19:27:34 · 9468 阅读 · 0 评论