- 博客(125)
- 资源 (6)
- 收藏
- 关注
转载 Android 依赖管理
在 根目录 的 build.gradle 顶层构建脚本 中 , 配置的 allprojects 脚本块 , 是 作用于所有的工程的。在 build.gradle 构建脚本 层级配置的 repositories 配置 的作用是 为工程添加依赖仓库;
2024-08-13 21:01:34 27
转载 android studio每次依赖都要重新下一遍
每次我们在使用Android Studio开发Android应用程序时,都需要添加各种依赖库。依赖库是一些已经开发好的代码包,可以为我们提供各种功能和特性,从而简化我们的开发工作。然而,有时候我们会发现,在每次重新启动Android Studio或重新编译项目时,依赖库都需要重新下载。这是为什么呢?在解释这个问题之前,先让我们来了解一下Android Studio和Gradle。
2024-08-13 20:40:19 388
转载 Java并发编程:volatile关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。
2024-05-22 20:31:13 46
转载 美团一面:说说String、StringBuilder、StringBuffer
这么做的目的就是为了防止重复创建大量相同的字符串,创建过多的对象不仅占用内存,而且还浪费性能。从图中可以看到,当我们为字符串重新赋值的时候,并不是改变原有字符串的内容,而是让字符串变量指向新创建的字符串,也就是指向了常量池中的另一个位置,而原本位置上的那个字符串,是没有动的,还在原位置存放。可以看到,String中的这些改变值的操作其实都是会创建新的字符串对象,其他改变字符串内容的API和上面三个的处理方式都一样,都会去创建新的字符串对象,而不会去改变原有字符串的内容。字符串是常量,用双引号包起来表示。
2024-03-06 16:03:19 88 1
转载 手机屏幕的DPI和PPI有什么区别?
指每英寸长度上的点数。DPI又可细分为水平分辨率和垂直分辨率,例如一张1英寸x1英寸的图片,如果它的水平分辨率是100dpi,垂直分辨率是50dpi,那么就是说,它水平方向每英寸分成100小段,垂直方向每英寸分成50小段,就像米尺上的一格格那样。有很多人将二者混为一谈,错把PPI的计算方法当成DPI的计算方法,这显然是不对的,一般消费者根本不能分清两者的概念,网上关于手机DPI的解释又很少,所以有些商家会故意选用数字大的参数标出,当然也不排除某些网站在参数标注时出现概念混淆的情况。
2023-06-27 11:21:36 2313
原创 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 533
转载 git cherry-pick 教程
另一种情况是,你只需要部分代码变动(某几个提交),这时可以采用 Cherry pick。一种情况是,你需要另一个分支的所有代码变动,那么就采用合并(对于多分支的代码库,将代码从一个分支转移到另一个分支是常见需求。
2023-05-06 14:05:36 816
转载 关于onNewIntent你应该知道的
① 如果ActivityA已经启动过,处于当前应用的Activity堆栈中;当ActivityA的LaunchMode为SingleTop时,如果ActivityA在栈顶,且现在要再启动ActivityA,这时会调用onNewIntent方法。② 当ActivityA的LaunchMode为SingleInstance、SingleTask时,如果ActivityA已经在堆栈中,那么此时会调用onNewIntent方法。
2023-04-26 16:48:22 2035
转载 Android存储之分区存储适配
1.简介Android 存储分为内部存储(Internal storage)和外部存储(External storage)。有许多用户认为外部存储意味着SD存储卡或外部硬盘,这是完全错误的认识。内部存储内部存储是用于存储Android系统本身和应用程序的存储区域,Android设备中的Android系统和应用程序都是存在该内部存储区,例如手机的/system/目录、/data/等目录。如果没有这一块存储区域是无法运行Android系统和应用程序的。
2022-12-19 18:37:52 727 1
原创 vivo和oppo通知权限弹窗
在vivo和oppo部分手机上,首次安装app时,会弹出一个系统级的通知权限弹窗,(部分一加手机也会出现,是因为一加手机使用了OPPO的colorOS系统。这个通知权限弹窗比较坑,一来可能不符合产品对通知权限处理的逻辑;二来很可能会弹窗app的用户隐私协议弹窗。,开发者目前没有办法处理这个弹窗,厂商后续可能会提交相应的api。如果有同学有好的办法处理这个通知权限弹窗,欢迎评论交流。
2022-11-17 12:52:12 1551
原创 应用是非正式发布版本, 当前设备不支持安装。
今天后端同学要个安装包想体验下,结果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 5064
原创 对系统日历的日程进行增删改查等操作【android】
因为业务需求,需要获取系统日历的日程信息,并进行一定的增删改查操作,所以对这块进行了一些调研。这个知识点不难,但是比较冷僻,所以如果有个参考文章,研究起来比较方便点。如果有错漏的地方,欢迎指出,我们一起探讨。本文参考的是Android原生API和对Android手机系统日历数据增删改查操作详解,相关代码写了个Demo,Demo App的地址。日历提供程序是用户日历事件的存储区。您可以使用 Calendar Provider API,对日历、事件、参加者、提醒等执行查询、插入、更新和删除操作。一、相关知
2022-01-21 17:11:39 2687
原创 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 4036
原创 设置 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 1659
原创 VSCode文件空包折叠展开
更新VSCode后,创建两层文件夹,会出现assets\styles的样式,看着非常不习惯。现象图:方案:找到VSCode的设置页,在设置页面搜索 Compact Folders,把这项勾选掉,就可以了。修改后的效果:
2020-11-13 10:39:29 3302
转载 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 175
原创 cmd操作界面中退出npm命令,返回之前的目录
cmd操作界面中退出npm命令,返回之前的目录我们是使用cmd操作npm时,例如起应用(npm run dev)后,我们想返回之前的目录进行别的操作,这时却不知道怎么返回了。比较愚蠢的办法就是把cmd界面关掉,再重新打开cmd界面。这种方式太操蛋了,会被人笑话的????。方案一:在键盘上连续按“Ctrl+C”两次,然后就回到了可操作的界面;方案二:在mcd界面上输入“.exit”,然后就回到了可操作的界面。...
2020-10-29 10:09:38 2558
原创 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 809 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 1119 2
原创 Android WebView隐藏H5页面的部分内容
一:需求产品突然提出个需求,想去掉一个H5页面中的一段文案,避免用户点击创建新账户,如下图。这个H5页面不是我们自己写的,要不然在H5中添加一个去掉这段文案的方法,在native这边直接调用这个方法就OK了,但是这个H5页面是别人的,怎么处理呢?二:思路webview不仅可以加载网页,同时网页的任何元素我们都是可以修改的。例如隐藏元素、替换元素、插入新的元素等等。那现在我们要做的就是:在J...
2020-04-16 11:19:53 988
原创 switch case 语句问题 (Duplicate branch in 'switch')
在android开发中使用switch case 时 , 如果有警告提示 Duplicate branch in 'switch' , 这个意思是说有两个case中的模块代码是相同的 , 没有必要把两个case分开写 , 可以放到一块 . 这是一个警告 , 不放一块写也可以 . 但是最好还是写一块 , 这样逻辑清晰 , 代码简约 , 而且不会有警告提示 .怎么写一块呢? 这个有个容易犯错的地方 ...
2019-11-28 16:05:31 13946 1
原创 微信小程序cover-view的坑
1. cover-view文字显示不全问题描述: 先看下文字显示不全的样式 , 如图 , 文字末尾会有部分被截断 , 这个bug在iphone6,7上比较明显, 在iphone7plus等手机上不明显 , 但是细看还是会发现被截断了一部分 . 我尝试添加padding 和在文字末尾加上一个空格(" ") , 都没有结果 . 后来查询发现是小程序本身的一个bug , 目前官方还没有解决 .解决...
2019-11-13 16:42:55 1399
原创 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 11128
原创 小程序中text组件之坑
在微信小程序中有一个基础组件是 它相当于平常开发中用到的标签,是一个行内元素不过在小程序中组件有不少坑爹的地方 , 极易踩坑 . 这里总结一下 ....
2019-10-21 16:24:41 667
转载 Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath'
在build.gradle(project)中加入mavenCentral()就没问题了,当然前提是要把gradle的offline禁用掉,不然会报一个无法下载.jar包的错误 .
2019-09-17 15:01:27 333
原创 微信小程序中wxs问题集锦
微信小程序中wxs文件 , 作为过滤器等的使用是很方便的 , 但是wxs是小程序的脚本语言 , 和js语法不太一样 , 所以会经常遇到一些坑 , 这里总结一下 .wxs 不依赖于运行时的基础库版本,可以在所有版本的小程序中运行。wxs 与 javascript 是不同的语言,有自己的语法,并不和 javascript 一致。wxs 的运行环境和其他 javascript 代码是隔离的,wx...
2019-08-16 19:44:23 4402
原创 在Javascript操作JSON对象,增加 删除 修改
// json Object对象 var person = { "name":"lyx" , "age":26 }; //增加属性并且赋值 person.sex="man"; //也可以使用这种方式添加新的属性并赋值 person...
2019-08-15 11:32:04 312
原创 微信小程序中 wx:if 和 hidden 的区别
关于wx:if 和 hidden 的区别 , 小程序的官方文档上有介绍 , 但是简单的看文档可能理解的不够透彻 , 我这边通过几种场景对其进行加深理解 .先看看文档的介绍:文档的内容不多 , 但是信息量却不少 , 我们来分析一下 :...
2019-08-12 12:16:30 2118 2
原创 ES6之模板字符串
现在写h5项目 , 对常用的ES6语法进行梳理一下 , 便于自己理解 , 也防止后期忘记 . 这边对模板字符串进行讲解.1.简介JavaScript常用的字符串拼接方式如下:let name = "水滴";console.log("我最喜欢三体中" + name + "这个科幻概念");这种传统做法需要使用大量的""(双引号) 和 + (加号) 来拼接才能得到我们想要的字符串 , 这样...
2019-08-01 20:00:23 291
自定义View并将其转化成Bitmap
2018-08-13
Android五种数据传递方法汇总
2018-08-10
SharedPreferences中存储bean类集合或者存储bean类
2018-08-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人