自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

云梦九章~

养马笔记

  • 博客(130)
  • 资源 (12)
  • 收藏
  • 关注

原创 java多线程--集合并发

1.问题引入:1.1常见的list获取最后一个对象。Object haha = list.get(list.size() - 1);大致看起来没有问题。但是这个代码在多线程情况下就会出java.lang.ArrayIndexOutOfBoundsException1.2 为什么呢?如下测试代码 @Test public void testSynchronizedList() throws Exception { long fisrtTime = System

2021-02-08 17:16:07 5051 5

原创 MVP的holder变种(对比TheMvp框架异曲同工)

MVP架构的好处有很多,但是使用Activity/Fragment作为View层有如下问题,当内存不足,Activity被回收后,这使得状态的保存和恢复成为问题,因为涉及到了Model操作.生命周期的控制问题也很麻烦,需要在Presenter中写一大堆和生命周期相关的接口规范Activity中包含了很多系统服务,逻辑操作方便现在通过holder编程的思想,将view抽取,所有view层的显示操作都在holder里边,并且对需要做的点击事件传递到activity/fragment层,

2020-12-02 09:49:49 8945 6

原创 APP全流程框架总结

一。产品设计产品设计七层自检模型《用户心理学》二。 协议OkhttpMQTT三。大前端WeexRNFlutter四。App代码框架TheMVPMVPArmsMVPMosbyMVVMMVPVMMVI五。异步编程框架Rxjava六。事件总线EventBus七。联网框架Retrofit+OkHttpoksocket八。多进程HermsEventBus九。图片加载框架GlidePiccasoFrasco十。存储MMK

2020-12-01 15:13:00 9920

原创 了解物联网

物联网(IoT,Internet of Things)在互联网的基础上,将用户端延伸和扩展到物与物、物与人的连接。物联网模式中,所有物品与网络连接,并进行通信和场景联动。物联网是互联网的外延。互联网通过电脑、移动终端等设备将参与者联系起来,形成的一种全新的信息互换方式。而物联网则是通过传感器、芯片、无线模组使设备联网。物联网三要素物联网的形成和管控依赖于以下元素。设备联网能力:通过不同的网络协议和通信标准,实现设备与控制端的连接,并执行智能化操作。云端:提供监控、存储、分析等数据服务,以及保障客户

2020-12-01 15:08:38 12530 10

原创 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 9603

原创 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 9457

原创 异步事件内存泄漏:基于rxjava2,前提框架不做任何改动

异步事件内存泄漏:方案1:rxlifecycle2:无法解决自定义类里生命周期绑定当前 框架不适用,或者如果改动需要在BaseView层加接口,BaseAcvitiy加方法,改动影响大如果是themvp正好适用方案2:autoDispose:可参考的项目很少目前能搜索的项目,很多都是错误引用LifecycleOwner,或者引用的SupportActivity中的Lifecycle如果投入更多时间适配autoDispose生命周期onpause,onstop无法检测到,性能无法达

2020-11-25 18:58:26 13020

原创 物联网术语

通信相关名词 说明 网关 由于蓝牙 Mesh 设备没有直接上网的能力,所以需要一种设备,同时具有蓝牙通信能力和联网能力,这个设备就是网关。网关是网络关口,就像大门一样,蓝牙设备的所有联网数据都要通过网关上传、下发。所以网关是一种特殊的设备,拥有网关的蓝牙 Mesh 本地网络将可以与云端进行通信。网关也可以同时具有灯、插座、报警器的功能。 Zigbee 一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通讯技术。 主要用于距离短、功耗低且传输速率不高的各种电子设备之间进行数据

2020-11-14 11:06:27 10438

原创 Unable to make field private final java.lang.String java.io.File.path accessible: module java.base d

报错修改jdk版本。

2023-11-28 09:39:53 140

原创 Broken pipe. The Gradle daemon may be trying to use ipv4 instead of ipv6.

Broken pipe.The Gradle daemon may be trying to use ipv4 instead of ipv6.Gradle Sync Failed: Broken PipeThe issue is that the Gradle daemon is trying to use IPv4 instead of IPv6.Workaround 1: On Linux, put the following in your ~/.profile or ~/.bash_profi

2023-11-16 17:06:41 534

原创 The Gradle daemon may be trying to use ipv4 instead of ipv6.

重新配置了jdk和gradle,导致新创建的项目都会报该错误。一 改项目JDK的位置。如果一没有解决接着配置。

2023-10-26 14:25:19 351

原创 android-适配方案-密度适配-最小宽度限定符

始终以真实屏幕的最小宽度作为匹配计算,无论横竖屏转变都是以最小宽度为准匹配实际适配调试经验:因为适配过程中可能会动态的调节设备像素和密度。根据如下工具代码打日志,可以快速调试当前设备。日志打印如下。

2023-09-12 18:39:11 581 2

原创 Android radio单独编译脚本

【代码】Android radio单独编译脚本。

2023-08-31 14:23:13 72

原创 update-alternatives详解

update-alternatives是dpkg的实用工具,用来维护系统命令的符号链接,以决定系统默认使用什么命令。在Debian系统中,我们可能会同时安装有很多功能类似的程序和可选配置,如Web浏览器程序(firefox,konqueror)、窗口管理器(wmaker、metacity)和鼠标的不同主题等。这样,用户在使用系统时就可进行选择,以满足自已的需求。但对于普通用户来说,在这些程序间进行选择配置会较困难。

2023-08-30 17:14:03 626

原创 Ubuntu/linux系统环境变量配置详解

在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。

2023-08-30 16:02:12 1194

原创 android apk重签名,shell脚本自动化

【代码】android apk重签名,shell脚本自动化。

2023-08-30 09:54:30 144

原创 Android源码分析:finish, startActivity

准备知识:IdleHandler它提供了一种机制,当主线程消息队列空闲时,会执行 IdleHandler 的回调方法。至于怎么算 “空闲”,我们可以看一下 MessageQueue.next() 方法。Instrumentation用于实现应用程序测试代码的基类。当在打开仪器的情况下运行时,这个类将在任何应用程序代码之前为您实例化,允许您监视系统与应用程序的所有交互。可以通过AndroidManifest.xml的标签描述该类的实现。ActivityManager该类提供与Activity、Se

2021-08-11 14:58:18 551

原创 python3:调用macos系统通知

import osimport subprocessdef show_notification(title, text): os.system(""" osascript -e 'display notification "{}" with title "{}"' """.format(text, title))def show_notification_2(title, text): cmd = 'display not

2021-04-19 17:33:15 3601 1

原创 mac电脑:充电异常。死活无法充电,插拔充电头等无相应。

配备 T2 芯片的笔记本电脑重置 SMC 之前,请尝试以下步骤:将 Mac 关机。按住电源按钮 10 秒钟,然后松开这个按钮。等待几秒钟,然后按下电源按钮以将 Mac 开机。如果问题仍然存在,请按照以下步骤重置 SMC:将 Mac 关机。在内建键盘上,按住以下所有按键。Mac 可能会开机。键盘左侧的 Control键盘左侧的 Option (Alt)键盘右侧的 Shift按住全部三个按键 7 秒钟,然后在不松开按键的情况下按住电源按钮。如果 Mac 处于开机状态,它将在

2021-04-19 10:40:39 2934 1

原创 python3: android开发编译-studio清理脚本

def deal_cmd(cmd): pi = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) return str(pi.stdout.read())import timefrom util.adb_base_util import deal_cmddef all_pid_int_pid_array(pid_name): pid_int_array = [] pid_string_array

2021-04-15 11:04:11 2646 1

原创 Hashmap知识点总结学习(二)

说说HashMap 底层数据结构是怎样的?HashMap 底层是 hash 数组和单向链表实现,jdk8后采用数组+链表+红黑树的数据结构。说说HashMap 的工作原理如果第一题没问,直接问原理,那就必须把HashMap的数据结构说清楚。HashMap 底层是 hash 数组和单向链表实现,JDK8后采用数组+链表+红黑树的数据结构。我们通过put和get存储和获取对象。当我们给put()方法传递键和值时,先对键做一个hashCode()的计算来得到它在bucket数组中的位置来存储En..

2021-04-14 10:21:09 2645 1

原创 java:枚举策略模式。

枚举策略模式可以防止大量if-else出现。核心点:enum方法共用,重写方法valueOf。如下public enum TestStrategyEnum { scene_choose(1) { @Override public String execute() { return null; } }, device_choose(2) { @Override public S

2021-03-30 16:59:20 3839 1

原创 python脚本sonar扫描所有仓库

如下脚本import osimport subprocess# 所有仓库字典name_path_dic = {"c_name1": "c_path1", "c_name2": "c_path2", "c_name3": "c_path3", "c_name4": "c_path4", "c_name5": "c_path5", "

2021-03-23 09:26:42 3653 1

原创 Android中播放音频六种方式

一. MediaPlayer:MediaPlayer确实强大,提供了对音频播放的各种控制,生命周期:1. MediaPlayer支持:AAC、AMR、FLAC、MP3、MIDI、OGG、PCM等格式2. 播放Raw下的元数据mMediaPlayer=MediaPlayer.create(this, R.raw.audio);mMediaPlayer.start();3. MediaPlayer设置播放源的4中方式setDataSource (String path)//从sd卡中加载

2021-03-05 09:55:56 22355 4

原创 颜色透明度16进制对照表

透明度 不透明度 16进制100% 0% 0099% 1% 0398% 2% 0597% 3% 0796% 4% 0A95% 5% 0D94% 6% 0F93% 7% 1292% 8% 1491% 9% 1790% 10% 1A89% 11% 1C88% 12% 1E87% 13% 2186% 14% 2485% 15% 2684% 16% 2983% 17% 2B82% 18% 2E81% 19% 3080% 20% 3379% 21% 3678% 22% 3

2021-03-02 20:07:27 4926 1

原创 java boolean占用内存大小

答案:4B或1B详细如果boolean是单独使用:boolean占4个字节。如果boolean是以boolean数组形式使用:boolean占4个字节解释JVM没有提供boolean类型专用的字节指令,而是使用int相关指令来代替。对boolean数组的访问与修改,会共用byte数组的baload和bastore指令。分析结论上面的第一个结论是说:boolean在底层实际调用int,那么既然int占4个字节,boolean页自然占4个字节。即 boolean类型占4个字节。上面的

2021-02-23 20:39:34 5957 2

原创 java-常见缩写

POJO:Plain Ordinary Java Object)简单的Java对象RPC:全称Remote Procedure Call——远程过程调用EJB:Enterprise Bean,也就是Enterprise JavaBean(EJB),是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。PO:persistent object持久对象。O/R Mapping 是 Object Relational Mapping(对象关.

2021-02-20 10:42:13 4869

原创 Python程序打包成可执行文件

SolutionWindowsLinuxOS XPython 3One file modeZipfile importEggspkg_resources supportbbFreezeyesyesyesnonoyesyesyespy2exeyesnonoyesyesyesnonopyInstalleryesyesyesnoyesnoyesnocx_Freezeyesyesyesyesnoyesy...

2021-02-06 15:45:42 4445

原创 双重检查加锁损坏宣言(The “Double-Checked Locking is Broken“ Declaration)

问题:// Broken multithreaded version// "Double-Checked Locking" idiomclass Foo { private Helper helper = null; public Helper getHelper() { if (helper == null) { synchronized(this) { if (helper == null) {

2021-01-28 14:45:06 4558

原创 java.lang.RuntimeException:Canvas: trying to use a recycled bitmap

android官方:只有当您确定位图已不再使用时才应该使用 recycle()。如果您调用 recycle() 并在稍后尝试绘制位图,则会收到错误:“Canvas: trying to use a recycled bitmap”。解决方案:使用之前判断 if (bitmap != null && !bitmap.isRecycled()) { blur(bitmap, mBackgroundView); }

2021-01-18 14:58:10 5069

原创 Rxjava2中Scheduler说明

Scheduler家族所使用的Scheduler主要在Schedulers这个类中,RxJava仅仅提供了以下这些调度器:Schedulers.SINGLESchedulers.COMPUTATIONSchedulers.IOSchedulers.TRAMPOLINESchedulers.NEW_THREADAndroidSchedulers.MAIN_THREADSchedulers.io( ):用于IO密集型的操作,例如读写SD卡文件,查询数据库,访问网络等,具有线程缓存机制,Core

2021-01-15 19:33:37 4869 1

原创 java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader

结论:一般情况为androidstudio配置问题,或者发疯问题,如果没有配置错误clean一下。解决办法:第一种、在名为B的SDK的官网中下载其它文件夹中的.so文件,并拷贝到相应的文件夹中第二种、删除文件文件夹arm64-v8a和armeabi-v7a,并且在build.gradle中android下添加指定依赖包[armeabi中so文件兼容问题,异常java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoaderDexPathLi

2021-01-14 16:24:52 4994

原创 android.os.Parcel.readException;ActivityRecord=null

错误日志:04-20 13:50:54.624 E/MtaSDK (30339): Caused by: java.lang.IllegalArgumentException04-20 13:50:54.624 E/MtaSDK (30339): at android.os.Parcel.readException(Parcel.java:1688)04-20 13:50:54.624 E/MtaSDK (30339): at android.os.Parcel.readException

2021-01-14 11:20:33 5571

原创 java.util.concurrent.TimeoutException

摘要:一旦FinalizerDaemon在处理一个对象的时候超过10s中,那么就会结束进程,导致崩溃背景:Finalize对象累积太多,导致FinalizerDaemon线程来不及处理:可能项目中没有类重写finalize方法,但Android系统中有非常多的类实现了finalize方法,如:Binder,View,Matrix,Bitmap,AssetManager等运行过程中息屏,或者某些省电模式下,系统CPU降频,FinalizerDaemon线程获得时间片短且执行速度慢导致超时某个析构函

2021-01-13 15:10:04 23789 1

原创 android项目动态方案:动态生成代码,编译注解,自定义Gradle Plugin

动态代理解释-JDK,CGLIB,JAVASSIST,ASM使用javassist生成新类javassist使用全解析

2021-01-11 17:42:17 4590

原创 android:监听系统时间更新

注册动态广播:时间改变监听 /** * interval update time */ private void registerUpdateTimeReceiver() { //register time update IntentFilter filter = new IntentFilter(); filter.addAction(Intent.ACTION_TIME_TICK); filter.add.

2020-12-26 11:46:21 7153

原创 java:多线程实测

如下各种组合代码:public class ExampleUnitTest { private AtomicLong aTest1 = new AtomicLong(0); private static AtomicLong aTest2 = new AtomicLong(0); private volatile AtomicLong aTest3 = new AtomicLong(0); private static volatile AtomicLong aTest4

2020-12-24 13:00:33 5092

原创 夸男生帅:

import pyttsx3say = pyttsx3.init() # 创建pyttsx对象,并初始化对象# 获取当前语速属性的值rate = say.getProperty('rate')# 设置语速属性为当前语速减20say.setProperty('rate', rate + 40)def speech_say(msg): say.say(msg) say.runAndWait()m = "英俊与智慧的化身,侠义与仁义的糅合,前辈高人巨侠是也,城北徐公,堂堂

2020-12-23 09:37:05 5475

原创 哄女孩子:代码写的好不好不重要,重要怎么哄女生

第一步:搜一些夸人的话,写在文件中命名:speech_infos小鸟依人 美若天仙 倾国倾城 闭月羞花 沉鱼落雁遇见你之后,再看别的女人,就好象在侮辱自己的眼睛!漂亮女孩,天生就漂亮.白皙的皮肤,大大的眼睛,秀气的鼻子,饱满的小嘴,再加上一头可爱的"自来卷",构成一幅天然的美丽图画.清澈明亮的瞳孔,弯弯的柳眉,长长的睫毛微微地颤动着,白皙无瑕的皮肤透出淡淡红粉,薄薄的双唇如玫瑰花瓣娇嫩欲滴。若说她年纪轻轻,怎生得如此身段,且有一张勾魂摄魄的俏脸。那眼神优雅、娴静,双眼回盼流波,像是俏

2020-12-23 09:34:06 5943

原创 python3: adb 录制屏幕

import subprocessdef deal_cmd(cmd): pi = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) return str(pi.stdout.read())def adb_record_capture(file_name_first, record_time): """ this method is to used record screen :param fil

2020-12-23 09:28:09 5510

android apk重签名,shell脚本自动化

android apk重签名,shell脚本自动化

2023-08-30

android apk重签名,shell脚本自动化

android apk重签名,shell脚本自动化

2023-08-30

性能优化手册100技巧.06版.pdf

java性能学习研究

2021-02-20

app-release.apk

red_v1.0,用于cat red envlopred_v1.0,用于cat red envlopred_v1.0,用于cat red envlopred_v1.0,用于cat red envlopred_v1.0,用于cat red envlopred_v1.0,用于cat red envlopred_v1.0,用于cat red envlopred_v1.0,用于cat red envlopred_v1.0,用于cat red envlop

2020-01-21

adb脚本手机截屏保存为根目录.bat

adb脚本,android批处理,用于批量处理android相关操作,用于批量自动化处理。用于批量测试,用于批量群控基础

2019-07-04

adb脚本快速截屏保存为跟目录.bat

adb脚本,android批处理,用于批量处理android相关操作,用于批量自动化处理。用于批量测试,用于批量群控基础

2019-07-04

adb脚本读取手机信息保存为文件.bat

adb脚本,android批处理,用于批量处理android相关操作,用于批量自动化处理。用于批量测试,用于批量群控基础

2019-07-04

adb脚本查看RSA、APK、keystore签名信息.bat

adb脚本,android批处理,用于批量处理android相关操作,用于批量自动化处理。用于批量测试,用于批量群控基础

2019-07-04

adb脚本APK自动安装.bat

adb脚本,android批处理,用于批量处理android相关操作,用于批量自动化处理。用于批量测试,用于批量群控基础

2019-07-04

adb脚本APK信息查看.bat

adb脚本,android批处理,用于批量处理android相关操作,用于批量自动化处理。用于批量测试,用于批量群控基础

2019-07-04

adb脚本android测试内存监控.bat

adb脚本,android批处理,用于批量处理android相关操作,用于批量自动化处理。用于批量测试,用于批量群控基础

2019-07-04

adb脚本Activity启动跳转时间监控.bat

adb脚本,android批处理,用于批量处理android相关操作,用于批量自动化处理。用于批量测试,用于批量群控基础

2019-07-04

android模块化,组件化

android模块化,最简化,arouter路由,可用于android框架的搭建借鉴

2019-01-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除