自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

搬砖爱好者

行到水穷处,坐看云起时。

  • 博客(63)
  • 资源 (5)
  • 收藏
  • 关注

原创 二叉树层序遍历-求每层平均值

使用队列存储当前层级的节点个数。

2023-10-18 20:14:34 87

原创 mac-“准备安装时发生错误,请尝试重新运行此应用程序” + mac未能安装所需的固件更新

根据u盘系统上进行格式化磁盘,(我选择的是APFS),命名Macintosh HD。然后退出磁盘工具,点击重新安装系统就可以了。抹完之后选择急救下。

2023-10-18 11:14:27 2631

原创 Mac 静态代码检测工具infer安装

1、通过brew 安装。

2023-04-21 13:40:24 514 1

原创 android - 图片 - 压缩上传

【代码】android - 拍照图片 - 压缩上传。

2023-02-24 14:49:32 351

原创 java.lang.IllegalAccessError: Method ‘boolean android.view.View.awakenScrollBars()‘ is inaccessible

原文链接:https://blog.csdn.net/MirkoWug/article/details/118107383。debug包没发现问题,但是在用release包测试必现崩溃,怀疑是混淆导致的问题。

2023-02-14 14:03:35 236

原创 Gradle报错 Using insecure protocols with repositories, without explicit opt-in, is unsupported.

【代码】Gradle报错 Using insecure protocols with repositories, without explicit opt-in, is unsupported.

2023-01-06 10:53:12 344

原创 Android基本布局-GridLayout_网格布局

【代码】Android基本布局-GridLayout_网格布局。

2023-01-05 16:19:38 166

原创 2022.10.30-本周问题记录

问题记录

2022-10-30 17:52:42 95

原创 记录平常用到的ktx

记录平常用到的ktx。

2022-08-22 17:28:52 105

原创 The binary version of its metadata is 1.5.1, expected version is 1.1.16.

android studio运行报错:The binary version of its metadata is 1.5.1, expected version is 1.1.16.解决方法:

2022-07-07 14:10:46 1484

原创 关于android:打开键盘后WebView不会滚动

我有一个包含输入表单的WebView。当用户选择第一个输入时,将出现键盘,并将滚动WebView以便隐藏输入。 我的问题是在我已经阅读了很多有关"活动"是否为"全屏"的信息,但它无法正常工作,但我的应用程序却无法正常工作。解决方案:android:fitsSystemWindows=“true”参考文章:https://www.codenong.com/28469546/...

2022-06-30 16:56:27 753

原创 android 软件盘弹起 隐藏 以及高度的计算

android 软件盘弹起 隐藏 以及高度的计算

2022-06-16 11:55:28 314

原创 Android 图片压缩的几种方法

Android 图片压缩的几种方法当图片太大不满足需求时,需要对图片进行裁剪压缩处理,常用的压缩处理接口主要有三种:质量压缩法,尺寸压缩法,缩略图压缩法和等比例压缩法,具体代码如下:...

2022-06-14 17:19:38 3169

原创 android 键盘偶现收起之后又弹出

现象:应用首次安装,点击搜索。弹起键盘。退出应用,键盘收起又弹出原因:可能是使用了toggleSoftInput方法导致的,show和hide要成对使用,官方不建议使用toggleSoftInput。解决方案:

2022-06-14 11:05:27 708 2

原创 LiveData 「粘性事件」问题

dialog里监听了liveData数据变化,当dialog打开关闭再次打开时候,会发现旧数据会再次灌入。等到网络请求回来,新数据才会展示。页面首先展示老数据,过一会又展示新的数据。又称为数据倒灌。使用SharedFlow参考文章Jetpack MVVM 中正确处理 Events 链接

2022-06-02 09:58:07 378

原创 Android 使用Retrofit 表单 上传多张图片

Android 使用Retrofit 表单 上传多张图片1.ApiService接口声明方法1.1 headers 里面可以添加业务自己的header参数@Multipart@POST("api/uploadPic")fun uploadFiles(@HeaderMap headers: HashMap<String, String?>@Part parts: List<MultipartBody.Part>): Call<UploadResponse>

2022-05-24 22:19:52 876

原创 android WebView 重定向 无效 ERROR:ssl_client_socket_impl.cc(959)

问题:使用webview加载url时候,h5那边做了重定向的操作。但是webview并没有加载对应的URL。问题排查:重写 shouldOverrideUrlLoading 看是否是系统处理了,还是拦截业务代码处理了跳转。return true表示自己处理。return super.shouldOverrideUrlLoading或是false,系统会去加载该url。webView.setWebViewClient(new WebViewClient() {@Overridepublic

2022-05-18 10:33:42 3778

原创 Kotlin dp sp

** * 正常编码中一般只会用到 [dp]/[sp] ; * 其中[dp]/[sp] 会根据系统分辨率将输入的dp/sp值转换为对应的px */val Float.dp: Float // [xxhdpi](360 -> 1080) get() = android.util.TypedValue.applyDimension( android.util.TypedValue.COMPLEX_UNIT_DIP, this, Resource

2022-05-17 16:00:18 419

原创 android沉浸式状态栏实现

android沉浸式状态栏实现:public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

2022-05-10 16:57:53 263

原创 Android跳转跳到打开百度地图、高德地图等第三方地图骑行导航

1.高德骑行导航:https://lbs.amap.com/api/amap-mobile/guide/ios/ride-navi示例代码: // 调用高德地图电车骑行导航 //电车elebike 1小时32 //自行车bike 2小时2分 val it = Intent() it.data = Uri.parse("amapuri://openFeat

2022-05-10 10:31:15 558

原创 出现The style on this component requires your app theme to be Theme.MaterialComponents错误

我碰到这样的问题是由于我是用ChipGroup时出现的,可能使用使用其他的Material库的控件时,也会出现这样的错误提示。这个错误就是说当前组件的主题是需要 Theme.MaterialComponents这样的主题。那么如何修改呢???之前的主题样式: <style name="Theme.Demo" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@andro

2022-05-04 16:26:53 1421

原创 Android之提示Could not find com.android.support:appcompat-v7:25.3.1

buildscript { repositories { maven { url "https://maven.google.com" }//添加这个就可以 jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.1' classpath 'com.novoda:bintray-release:0.3.4' //

2022-04-29 19:29:26 1700

原创 Charles抓包

1.红米手机设置代理,发现手机没反应原因:找半天没找到。用其他手机试了下,发下能连上,确定不是电脑端charles的问题了。解决方案:由于是测试手机,直接还原了手机的出场设置,怀疑是系统更新导致的。关闭了系统自动更新。结果:连上了,能抓http的包了2.红米手机能抓http,抓不了https的包。https报错:Android Charles:SSL handshake with client failed: An unknown issue occurred processing the XXX

2022-04-14 13:29:27 7741

原创 learn js

1.声明变量let/constlet :可变const:不可变2.数组//Array 数组,可以是混合数据类型const fruits = ['oranges','apple',true,2];console.log(fruits)const fruits = ['oranges','apple'];fruits[2] = 'mangos'fruits.push('banana')fruits.unshift('pears')fruits.pop()console.log(fr

2022-04-05 17:00:41 1367

原创 leetcode算法题之合并两个升序链表

题目:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。解决方法:/** * Example: * var li = ListNode(5) * var v = li.`val` * Definition for singly-linked list. * class ListNode(var `val`: Int) { * var next: ListNode? = null * } */class Solution {

2022-03-19 21:22:15 393

原创 读设计模式笔记

面向对象程序设计继承继承是指在根据已有类创建新类的能力。 继承最主要的好处 是代码复用。多态指程序能够检测对象所属的实际类, 并在当前上下文 不知道其真实类型的情况下调用其实现的能力封装如果想要启动一辆车的发动机, 你只需转动钥匙或按下按钮 即可, 无需打开引擎盖手动接线、 转动曲轴和气缸并启动发 动机的动力循环。 这些细节都隐藏在引擎盖下, 你只会看到 一些简单的方法: 启动开关、 方向盘和一些踏板。抽象抽象是一种反映真实世界对象或现象中特定内容的模型, 它 能高精度地反映所有与特定内

2021-10-09 17:47:14 46

原创 pip install requests

zsh: command not found: pip解决:pip3 install requests (安装了python3)

2021-10-03 22:34:51 1065

原创 Android Studio 去掉导包 *

2021-08-31 11:47:39 305

原创 Android多行多列的ViewGroup

先看下效果图每行两个子孩子每行一个子孩子实现思路自定义viewGroup,实现测量和布局,使控件适应业务场景。测量根据父控件的宽度,平均分给每个子孩子固定的宽度。高度就是行数乘以一个子孩子的高度,再加上空隙的高度。根据子孩子个数计算行数 val rows = if (childCount % perLineChild == 0) { childCount / perLineChild } else { chil

2021-08-31 10:22:32 206

原创 kotlin协程(Dispatchers.IO)

kotlin协程(Dispatchers.IO)项目调用方式private suspend fun upLog(resource_id: String): Boolean { var success = false withContext(Dispatchers.IO) { //做一些耗时操作,比如请求网络 } return success }源码追踪 Dispatchers类,发现是个静态变量 @

2021-02-05 17:52:31 4521 2

原创 jvm虚拟机对象存活算法和垃圾回收算法

jvm虚拟机对象存活算法和垃圾回收算法java虚拟机是怎么判断该对象是不是可以被回收了呢?引用计数法给对象添加一个引用计数器,每当有一个地方引用了这个对象,则计数器加1,当引用失效的时候,计数器减1,当计数器个数为0,则表明这个对象已死,可以被垃圾回收器回收了。此中方式无法解决对象互相引用的问题,所以java虚拟没有采用这个方式可达性分析算法根据引用关系,判断对象是否和GCroot之前存在直接或间接的引用关系,来决定这个对象是否可以被回收。可作为GC Root 的有以下几种:虚

2021-01-31 10:15:18 90

原创 view#post和Handler#psot区别

v.post { } Handler().post { }View#post方法源码业务场景:当我们在activity#onCreate或是在fragment#onViewCreated方法中直接获取view的宽高为0,为什么?根据View视图的绘制流程,view的宽高只有在测量之后才能获取到,而view的测量是在activityThread的handleResumeActivity方法中,通过创建ViewRootImp,把DecoreView和Coneten...

2021-01-29 17:35:13 394

原创 try...catch不生效问题

代码测试class ExampleUnitTest { @Test fun addition_isCorrect() { assertEquals(4, 2 + 2) testCrash2()// testCrash() } fun testCrash(){ try { 1/0 }catch (e:Exception){ System.out.p

2021-01-21 14:42:23 587

原创 SubmitDialogFragment内存泄露

如何发现内存泄露问题?通过andriod studio提供的工具,分析Memory,获取一段内存情况之前,记得多点两下强制GC,以便分析的准确些。分析结果如下图所示:分析代码,查看内存泄露的根本原因SubmitDialogFragment类写了如下代码 companion object { var submitDialogFragment: SubmitDialogFragment? = null @JvmStatic fun newIns

2021-01-20 17:40:24 135 1

原创 带着问题看源码之HashMap

ArrayList内部是一个数组的数据结构LinkedList内部是一个链表的数据结构TreeMap 内部是一个二叉树的数据结构(没用过)HashMap内部是数组加链表,在java1.8之后,当链表达到一定长度之后,会转换成红黑树。HashMap 是怎么存数据的?调用put方法的时候,会先对key进行hash运算,然后再对当前值在进行一次取模运算,比如当前数组长度是5,key进行hash运算之后是6,那么会再进行6%5,余数是1,把当前元素存在数组的是1个位置上。即a[1]。取余(取模.

2021-01-18 22:46:49 85 1

原创 排序算法

冒泡排序代码非常简单,使用双循环进行排序。外部循环控制所有的回合,内部循环实现每一轮的冒泡处理,先进行元素比较,再进行元素交换。class ExampleUnitTest { @Test fun addition_isCorrect() { assertEquals(4, 2 + 2) val array = intArrayOf(5, 8, 6, 3, 9, 2, 1, 7) sort(array) println(Arr

2021-01-17 21:58:55 73

原创 Android 性能优化

如何发现问题Android:通过systrace进行性能分析

2021-01-17 10:38:35 62

原创 java线程的五种状态

讲一下线程的几种状态NEW当我们创建一个线程,未启动的状态RUNNABLE 就绪状态此状态是当我们调用start()方法之后,线程处于此状态RUNNING 运行状态当run方法正在执行的时候,线程进入运行状态BLOCK 阻塞状态当我们调用wait(),等待阻塞主动阻塞,调用了sleep(),主动让出Cpu执行权同步阻塞 ,锁被其他线程占用。DEAD 终止状态run方法执行结束。...

2021-01-16 22:58:44 80

原创 Android 事件分发

Android 源码事件分发Activity#dispatchTouchEvent /** * Called to process touch screen events. You can override this to * intercept all touch screen events before they are dispatched to the * window. Be sure to call this implementation for

2021-01-15 14:49:11 83

原创 Android Message处理流程

Message处理流程Loop#loop开启无限循环不断的从消息队列里面取出消息... for (;;) { Message msg = queue.next(); // might block if (msg == null) { // No message indicates that the message queue is quitting. return;

2021-01-15 11:03:00 524

定位相关定位相关定位相关

定位相关定位相关

2023-07-24

Typora-0.11.18 免费版

Typora-0.11.18 免费版

2022-05-29

远程协作 向日葵 mac 版

远程协作

2022-05-29

android 验证码自定义view

android 验证码自定义view

2022-05-06

Android Material FlowLayout简单使用

Android Material FlowLayout简单使用

2022-05-04

android实现通话录音功能

android实现通话录音功能

2022-05-02

空空如也

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

TA关注的人

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