自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(120)
  • 资源 (6)
  • 收藏
  • 关注

转载 美团一面:说说String、StringBuilder、StringBuffer

这么做的目的就是为了防止重复创建大量相同的字符串,创建过多的对象不仅占用内存,而且还浪费性能。从图中可以看到,当我们为字符串重新赋值的时候,并不是改变原有字符串的内容,而是让字符串变量指向新创建的字符串,也就是指向了常量池中的另一个位置,而原本位置上的那个字符串,是没有动的,还在原位置存放。可以看到,String中的这些改变值的操作其实都是会创建新的字符串对象,其他改变字符串内容的API和上面三个的处理方式都一样,都会去创建新的字符串对象,而不会去改变原有字符串的内容。字符串是常量,用双引号包起来表示。

2024-03-06 16:03:19 53 1

原创 Dart中 级联操作符「..」和 扩展运算法「...」

Dart中 级联操作符「..」和 扩展运算法「...」

2023-08-01 11:40:33 500

转载 手机屏幕的DPI和PPI有什么区别?

为什么有的手机厂商在屏幕参数一栏标注PPI,而有的手机却标注DPI?这其中又有什么猫腻呢,不同的标注方法会对手机产生那些影响?PPI和DPI的区别是什么,分别都是如何计算?对你的视觉体验会产生多大的影响呢?

2023-06-27 11:21:36 1314

原创 Cannot run with sound null safety, because the following dependencies don‘t support null safety

出现上面报错是因为以下这些包(flutter_swiper、flutter_page_indicator、transformer_page_view)不支持safety模式。

2023-05-17 20:57:39 385

转载 git cherry-pick 教程

另一种情况是,你只需要部分代码变动(某几个提交),这时可以采用 Cherry pick。一种情况是,你需要另一个分支的所有代码变动,那么就采用合并(对于多分支的代码库,将代码从一个分支转移到另一个分支是常见需求。

2023-05-06 14:05:36 589

转载 关于onNewIntent你应该知道的

① 如果ActivityA已经启动过,处于当前应用的Activity堆栈中;当ActivityA的LaunchMode为SingleTop时,如果ActivityA在栈顶,且现在要再启动ActivityA,这时会调用onNewIntent方法。② 当ActivityA的LaunchMode为SingleInstance、SingleTask时,如果ActivityA已经在堆栈中,那么此时会调用onNewIntent方法。

2023-04-26 16:48:22 1365

转载 Android存储之分区存储适配

1.简介Android 存储分为内部存储(Internal storage)和外部存储(External storage)。有许多用户认为外部存储意味着SD存储卡或外部硬盘,这是完全错误的认识。内部存储内部存储是用于存储Android系统本身和应用程序的存储区域,Android设备中的Android系统和应用程序都是存在该内部存储区,例如手机的/system/目录、/data/等目录。如果没有这一块存储区域是无法运行Android系统和应用程序的。

2022-12-19 18:37:52 623 1

原创 vivo和oppo通知权限弹窗

在vivo和oppo部分手机上,首次安装app时,会弹出一个系统级的通知权限弹窗,(部分一加手机也会出现,是因为一加手机使用了OPPO的colorOS系统。这个通知权限弹窗比较坑,一来可能不符合产品对通知权限处理的逻辑;二来很可能会弹窗app的用户隐私协议弹窗。,开发者目前没有办法处理这个弹窗,厂商后续可能会提交相应的api。如果有同学有好的办法处理这个通知权限弹窗,欢迎评论交流。

2022-11-17 12:52:12 1237

转载 kotlin data class 遇到的问题以及解决方案

kotlin data class 遇到的问题以及解决方案

2022-11-16 20:43:32 3554

原创 关于微信开发者平台移动应用(android)获取签名问题

关于微信开发者平台移动应用获取签名问题

2022-10-12 13:10:20 976

原创 Android 隐藏状态栏

Android 隐藏状态栏

2022-09-27 14:53:39 4139

原创 Android Studio 设置右侧Gradle面板中Tasks显示/隐藏

AndroidStuido Gradle面板中Tasks显隐

2022-09-21 21:07:47 1069 1

原创 Android项目 生成签名证书指纹

生成签名证书指纹 SHA256指纹

2022-09-21 20:42:22 1547

原创 官网下载不同版本的AndroidStudio

下载指定版本的AndroidStudio

2022-06-14 13:58:40 1614 3

原创 mac adb命令报错“zsh: command not found: adb”

adb配置

2022-06-14 13:13:17 1011

原创 应用是非正式发布版本, 当前设备不支持安装。

今天后端同学要个安装包想体验下,结果apk发过去后,提示不能安装,具体报错如下。出现这个问题是因为Android Studio 3.0开始会在debug apk的manifest文件 application标签里自动添加 android:testOnly="true"属性。该属性导致在IDE中使用Run生成的apk在大部分手机上只能用adb install -t 来安装。如果使用apk直接安装就会报这个错误。解决办法:在gradle.properties 文件中添加如下指令:android.in

2022-02-10 11:17:42 4669

原创 对系统日历的日程进行增删改查等操作【android】

因为业务需求,需要获取系统日历的日程信息,并进行一定的增删改查操作,所以对这块进行了一些调研。这个知识点不难,但是比较冷僻,所以如果有个参考文章,研究起来比较方便点。如果有错漏的地方,欢迎指出,我们一起探讨。本文参考的是Android原生API和对Android手机系统日历数据增删改查操作详解,相关代码写了个Demo,Demo App的地址。日历提供程序是用户日历事件的存储区。您可以使用 Calendar Provider API,对日历、事件、参加者、提醒等执行查询、插入、更新和删除操作。一、相关知

2022-01-21 17:11:39 2543

原创 mac 复制文件路径的快捷键

mac上复制文件路径的快捷键:option + command + C

2021-12-28 16:33:45 1399

原创 ARouter there‘s no route matched 解决办法

使用ARouter进行mudole内部或者module之间进行跳转的时候,如果出现ARouter there’s no route matched!报错,那大概率是自己的配置出现的问题,这里总结一下常见几个坑:1.这个是ARouter的使用文档大家可以先对着文档检查一下自己的配置;注意,每一个module 都要添加下图的配置依赖:2.第二点ARouter要初始化,在宿主module(第一个运行的Module)的applaction中初始化ARouter即可;3.path路径至少需要有两级,/xx/

2021-11-24 10:33:37 3738

原创 设置 AndroidStudio 显示Local Changes工具页

升级新版的AndroidStudio 4.3 (也称为Android Studio - Arctic Fox | 2020.3.1版本,AndroidStudio的版本命名方式发生了变化,具体可以参考Android Studio 的版本编号系统)后,Local Changes工具页不见了,使用非常不方便。显示方式:打开 Settings —> Preferences —> Version Control —> Commit ,将 Use non-modal commit interfa

2021-09-24 14:51:11 1547

原创 VSCode文件空包折叠展开

更新VSCode后,创建两层文件夹,会出现assets\styles的样式,看着非常不习惯。现象图:方案:找到VSCode的设置页,在设置页面搜索 Compact Folders,把这项勾选掉,就可以了。修改后的效果:

2020-11-13 10:39:29 2828

转载 Thread.sleep(0) 到底有什么用?

我们可能经常会用到 Thread.Sleep 函数来使线程挂起一段时间。那么你有没有正确的理解这个函数的用法呢?思考下面这两个问题:假设现在是 2020-11-12 12:00:00.000,如果我调用一下 Thread.Sleep(1000) ,在 2020-11-12 12:00:01.000 的时候,这个线程会不会被唤醒?某人的代码中用了一句看似莫明其妙的话:Thread.Sleep(0) 。既然是 Sleep 0 毫秒,那么他跟去掉这句代码相比,有啥区别么?我们先回顾一下操作系统原理。

2020-11-12 15:28:26 157

原创 cmd操作界面中退出npm命令,返回之前的目录

cmd操作界面中退出npm命令,返回之前的目录我们是使用cmd操作npm时,例如起应用(npm run dev)后,我们想返回之前的目录进行别的操作,这时却不知道怎么返回了。比较愚蠢的办法就是把cmd界面关掉,再重新打开cmd界面。这种方式太操蛋了,会被人笑话的????。方案一:在键盘上连续按“Ctrl+C”两次,然后就回到了可操作的界面;方案二:在mcd界面上输入“.exit”,然后就回到了可操作的界面。...

2020-10-29 10:09:38 2392

原创 HashMap作为常量存储数据用法

背景:有个类中需要用到很多图片,但是产品指给了图片的key值和地址,我要放到相应的类中,就用HashMap来了个成员变量。使用方式: private HashMap<String, String> segmentMap = new HashMap() {{ put("0", "https://cdn.vp.com/appadmin/91BC9F0F7736464B8C967893097B0A9B-1592322066626.png"); put("11",

2020-07-03 10:43:50 745 1

原创 Switch可以用string做参数吗

在jdk1.7 之前,switch 只能支持 byte、short、char、int 这几个基本数据类型和其对应的封装类型。switch后面的括号里面只能放int类型的值,但由于byte,short,char类型,它们会自动转换为int类型(精精度小的向大的转化,自动类型转换),所以它们也支持。注意,对于精度比int大的类型,比如long、float,doulble,不会自动转换为int,如果想使用,就必须强转为int,如(int)float;switch (type) {// 括号里是一个表达式是整

2020-05-13 09:50:26 1074 2

原创 Android WebView隐藏H5页面的部分内容

一:需求产品突然提出个需求,想去掉一个H5页面中的一段文案,避免用户点击创建新账户,如下图。这个H5页面不是我们自己写的,要不然在H5中添加一个去掉这段文案的方法,在native这边直接调用这个方法就OK了,但是这个H5页面是别人的,怎么处理呢?二:思路webview不仅可以加载网页,同时网页的任何元素我们都是可以修改的。例如隐藏元素、替换元素、插入新的元素等等。那现在我们要做的就是:在J...

2020-04-16 11:19:53 930

原创 switch case 语句问题 (Duplicate branch in 'switch')

在android开发中使用switch case 时 , 如果有警告提示 Duplicate branch in 'switch' , 这个意思是说有两个case中的模块代码是相同的 , 没有必要把两个case分开写 , 可以放到一块 . 这是一个警告 , 不放一块写也可以 . 但是最好还是写一块 , 这样逻辑清晰 , 代码简约 , 而且不会有警告提示 .怎么写一块呢? 这个有个容易犯错的地方 ...

2019-11-28 16:05:31 13489 1

原创 微信小程序cover-view的坑

1. cover-view文字显示不全问题描述: 先看下文字显示不全的样式 , 如图 , 文字末尾会有部分被截断 , 这个bug在iphone6,7上比较明显, 在iphone7plus等手机上不明显 , 但是细看还是会发现被截断了一部分 . 我尝试添加padding 和在文字末尾加上一个空格(" ") , 都没有结果 . 后来查询发现是小程序本身的一个bug , 目前官方还没有解决 .解决...

2019-11-13 16:42:55 1288

原创 Invalid regular expression: invalid group specifier name

微信小程序在使用正则表达式的时候有几个坑 , 会报这个错误 , 需要注意一下几点:1.格式不对// 错误格式let regExp = /(?<!\d*\.\d*)(\d)(?=(\d{3})+(?!\d))/g;// 修改为下面的格式即可let regExp = new RegExp("(?<!\\d*\\.\\d*)(\\d)(?=(\\d{3})+(?!\\d))", ...

2019-10-30 20:17:14 10898

原创 小程序中text组件之坑

在微信小程序中有一个基础组件是 它相当于平常开发中用到的标签,是一个行内元素不过在小程序中组件有不少坑爹的地方 , 极易踩坑 . 这里总结一下 ....

2019-10-21 16:24:41 599

转载 Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath'

在build.gradle(project)中加入mavenCentral()就没问题了,当然前提是要把gradle的offline禁用掉,不然会报一个无法下载.jar包的错误 .

2019-09-17 15:01:27 310

原创 微信小程序中wxs问题集锦

微信小程序中wxs文件 , 作为过滤器等的使用是很方便的 , 但是wxs是小程序的脚本语言 , 和js语法不太一样 , 所以会经常遇到一些坑 , 这里总结一下 .wxs 不依赖于运行时的基础库版本,可以在所有版本的小程序中运行。wxs 与 javascript 是不同的语言,有自己的语法,并不和 javascript 一致。wxs 的运行环境和其他 javascript 代码是隔离的,wx...

2019-08-16 19:44:23 4298

原创 在Javascript操作JSON对象,增加 删除 修改

// json Object对象 var person = { "name":"lyx" , "age":26 }; //增加属性并且赋值 person.sex="man"; //也可以使用这种方式添加新的属性并赋值 person...

2019-08-15 11:32:04 278

原创 微信小程序中 wx:if 和 hidden 的区别

关于wx:if 和 hidden 的区别 , 小程序的官方文档上有介绍 , 但是简单的看文档可能理解的不够透彻 , 我这边通过几种场景对其进行加深理解 .先看看文档的介绍:文档的内容不多 , 但是信息量却不少 , 我们来分析一下 :...

2019-08-12 12:16:30 2057 2

原创 ES6之模板字符串

现在写h5项目 , 对常用的ES6语法进行梳理一下 , 便于自己理解 , 也防止后期忘记 . 这边对模板字符串进行讲解.1.简介JavaScript常用的字符串拼接方式如下:let name = "水滴";console.log("我最喜欢三体中" + name + "这个科幻概念");这种传统做法需要使用大量的""(双引号) 和 + (加号) 来拼接才能得到我们想要的字符串 , 这样...

2019-08-01 20:00:23 266

原创 css中按比例展示宽高

需求:当宽度固定时,想让高度是宽度的一定比例。将height设置为0,padding-bottom设置为比例数。.test{ background : #25a4bb overflow : hidden width : 100% height : 0 padding-bottom : 10%}...

2019-07-14 14:00:08 875

转载 比较Fragment中获取Context对象的两种方法

我们在使用Fragment的时候经常需要传递Context类型的参数,而Fragment自己又不是一个Context类型的对象,于是我们有下面两种方法获取Context对象。一、两种方法介绍1.this.getActivity()(可以不写this.)在Fragment中直接调用getActivity()方法,可以直接得到Fragment依附的Activity,而Activity是一个Con...

2019-07-12 11:38:46 1504

原创 Android项目.gitignore文件的配置

一、配置 .gitignore的原因被加进“.gitignore”的表示不会被Git跟踪,在实际开发过程中,有很多因素导致有些文件不应该加入版本控制中,如:不同的电脑,开发软件的版本不同,以及软件的一些配置不同,还有编译生成的文件等等~~并且在开发过程中会遇到很多冲突,因此就需要对“.gitignore"文件进行好好的配置。二、几个关键符号以及语法解释:1、#:用#来注释语句,在#后面的内...

2019-06-24 16:48:34 1209

原创 使用adb命令安装apk到手机

第一步让真机与电脑相连 , cmd打开dos命令窗口 ( 打开cmd的快捷键是Windows + R ) .第二步输入adb devices 查看手机与电脑是否连接成功 ,能看到设备信息就代表设备已经连接成功了.第三步紧接着就可以安装apk了 . 首次要知道自己的apk放在哪个盘符的文件里了 . 比如我的apk放在E:\data里.进入apk文件所在的目录:输入...

2019-06-13 14:28:53 21730 4

原创 调整SwipeRefreshLayout触发(开始)下拉刷新的距离

SwipeRefreshLayout和ViewPager一起使用的时候,事件处理上会有冲突,比如当你想要左右滑动的时候,但是因为角度稍微斜了一些,极有可能导致ViewPager没有滑动起来,却触发了SwipeRefreshLayout的刷新动画。解决这个问题的思路就是继承SwipeRefreshLayout,在OnInterceptTouchEvent函数中拦截处理 , 增加触发下拉刷新的高度 ,...

2019-06-03 12:26:07 1087 1

关于微信开发者平台移动应用(android)获取签名问题

关于微信开发者平台移动应用(android)获取签名问题

2022-10-12

系统日历的操作【android】

系统日历的操作【android】

2022-01-24

activity与fragment以及fragment与fragment之间的通信

activity与fragment以及fragment与fragment之间的通信

2018-10-10

自定义View并将其转化成Bitmap

需求背景 : 我们的产品希望把主app中的页面分享到小程序中 , 大家都知道native分享到小程序是需要提供一张背景图的 , 产品希望在一张背景图上加一些文案.

2018-08-13

Android五种数据传递方法汇总

Android开发中,在不同模块(如Activity)间经常会有各种各样的数据需要相互传递,我把常用的几种 方法都收集到了一起。它们各有利弊,有各自的应用场景。 我现在把它们集中到一个例子中展示,在例子中每一个按纽代表了一种实现方法。

2018-08-10

SharedPreferences中存储bean类集合或者存储bean类

存储List数据到本地的常用方式一般是用sqlite,但是如果不想用sqlite,或者数据量很少,使用SharedPreferences也是一种不错的选择。

2018-08-06

Eclipse主题配置文件

eclipse原生的白色主题对开发人员不太友好,也不好看,这个是我平时使用的主题,可能是已经开习惯了,个人感觉看起来挺舒服的 , 跟各位童鞋分享下

2017-11-29

空空如也

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

TA关注的人

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