自定义博客皮肤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)
  • 资源 (6)
  • 收藏
  • 关注

原创 小米手机开启【USB安装】调试,必须安装SIM卡的解决方案

小米手机在开启【USB安装】进行开发调试的时会检测是否有SIM卡,如果没有SIM是不能开启的,会提示:请先插入SIM卡现在手机卡都是实名制的,单独给测试机配一张SIM有时候不太方便的。解决方案:可以先把自己的SIM卡插入到小米测试机中,然后开启【USB安装】,再把SIM卡拔出来。这样既不用单独配置一张SIM卡,又可以开启【USB安装】模式。

2025-03-07 12:34:00 482

原创 Visual Studio Code 格式化代码的快捷键

如果不习惯vs code自带的快捷键,也可以设置自己习惯的快捷键。2、在菜单中选择或;或者点击选择键盘Icon,按下Shift + Option + F3、将Format Cell和Format Document快捷键换成自己习惯的(直接点击Keybinding即会弹出对话框,然后输入快捷键)。

2025-02-14 21:19:34 920

原创 新版AndroidStudio 修改 jdk版本

之前,在安卓项目中配置JDK和Gradle的过程非常直观,只需要进入Android Studio的File菜单中的Project Structure即可进行设置,十分方便。在Gradle设置页面,你可以看到一个Gradle JDK选项,点击旁边的小图标,弹出一个文件选择窗口。完成JDK的路径选择后,点击Apply或OK保存更改,Android Studio就会自动使用新的JDK进行构建了。首先,打开Android Studio,点击菜单栏的File,然后选择Settings面板。步骤三:修改JDK路径。

2025-02-05 14:50:45 1938

转载 java反编译工具jd-gui使用详解

JD-GUI是一个独立的图形实用程序,显示“.class”文件的Java源代码。使用JD-GUI浏览重构的源代码,以便即时访问方法和字段。

2025-01-19 13:47:50 513

转载 Android中SPI的基础使用与原理

Service Provider Interface,一种服务发现机制。SPI的本质是将接口实现类的全限定名配置在文件中,并由服务加载器读取配置文件,加载实现类。这样可以在运行时,动态为接口替换实现类。正因此特性,我们可以很容易的通过SPI机制为我们的程序提供拓展功能。修改或者替换服务实现并不需要修改调用方。

2024-12-22 17:36:24 148

转载 Android 依赖管理

在 根目录 的 build.gradle 顶层构建脚本 中 , 配置的 allprojects 脚本块 , 是 作用于所有的工程的。在 build.gradle 构建脚本 层级配置的 repositories 配置 的作用是 为工程添加依赖仓库;

2024-08-13 21:01:34 150

原创 Android Studio设置 offline 模式

在setting中选中Offline Work选项。

2024-08-13 20:45:38 1952 1

转载 android studio每次依赖都要重新下一遍

每次我们在使用Android Studio开发Android应用程序时,都需要添加各种依赖库。依赖库是一些已经开发好的代码包,可以为我们提供各种功能和特性,从而简化我们的开发工作。然而,有时候我们会发现,在每次重新启动Android Studio或重新编译项目时,依赖库都需要重新下载。这是为什么呢?在解释这个问题之前,先让我们来了解一下Android Studio和Gradle。

2024-08-13 20:40:19 1906

转载 Android热修复实现及原理

Android热修复实现及原理

2024-07-09 17:19:12 280

转载 Java并发编程:volatile关键字解析

volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。

2024-05-22 20:31:13 76

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

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

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

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

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

2023-08-01 11:40:33 1140

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

指每英寸长度上的点数。DPI又可细分为水平分辨率和垂直分辨率,例如一张1英寸x1英寸的图片,如果它的水平分辨率是100dpi,垂直分辨率是50dpi,那么就是说,它水平方向每英寸分成100小段,垂直方向每英寸分成50小段,就像米尺上的一格格那样。有很多人将二者混为一谈,错把PPI的计算方法当成DPI的计算方法,这显然是不对的,一般消费者根本不能分清两者的概念,网上关于手机DPI的解释又很少,所以有些商家会故意选用数字大的参数标出,当然也不排除某些网站在参数标注时出现概念混淆的情况。

2023-06-27 11:21:36 3849

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

转载 git cherry-pick 教程

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

2023-05-06 14:05:36 1194

转载 关于onNewIntent你应该知道的

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

2023-04-26 16:48:22 2518

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

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

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

原创 vivo和oppo通知权限弹窗

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

2022-11-17 12:52:12 1925

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

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

2022-11-16 20:43:32 4976

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

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

2022-10-12 13:10:20 1080

原创 Android 隐藏状态栏

Android 隐藏状态栏

2022-09-27 14:53:39 4642 1

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

AndroidStuido Gradle面板中Tasks显隐

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

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

生成签名证书指纹 SHA256指纹

2022-09-21 20:42:22 1716

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

下载指定版本的AndroidStudio

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

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

adb配置

2022-06-14 13:13:17 1408

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

今天后端同学要个安装包想体验下,结果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 5463

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

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

2022-01-21 17:11:39 2871

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

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

2021-12-28 16:33:45 1528

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

原创 设置 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 1789

原创 VSCode文件空包折叠展开

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

2020-11-13 10:39:29 3870 1

转载 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 202

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

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

2020-10-29 10:09:38 2702

原创 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 860 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 1175 2

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

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

2020-04-16 11:19:53 1049

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

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

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

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

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

2019-11-13 16:42:55 1494

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

原创 小程序中text组件之坑

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

2019-10-21 16:24:41 725

关于微信开发者平台移动应用(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关注的人

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