
Android
文章平均质量分 67
Mr_Tony
这个作者很懒,什么都没留下…
展开
-
X-Requested-With,一个少见且难以修复的问题
从Android 12开始部分移除,Android13开始完全移除,本文记录如何在低版本移除修改的部分参考代码。在Android 12以下,使用WebView请求数据会添加请求头。原创 2025-03-30 10:33:51 · 220 阅读 · 0 评论 -
Android仿微信聊天图片的放大缩小效果
一个仿照微信聊天图片放大缩小的功能原创 2024-11-25 11:30:39 · 607 阅读 · 0 评论 -
gradle构建项目速度优化及排查方式
gradle构建优化分为两部分,分别为Android上面的优化和gradle项目通用优化,使项目编译速度提升,节省开发时间。在此前提保持良好的编码习惯并减少代码和资源,也有利于提高编译速度。原创 2023-11-26 16:31:50 · 3397 阅读 · 0 评论 -
Could not resolve all files for configuration ‘:app:androidJdkImage‘.
解决办法为,修改java版本为17。本地重新下载Java17的jdk,这样本地就会有21、17两个版本,然后在项目中指定依赖的java版本17并配置路径(也可以配置环境变量)可以看出使用的sdk版本为34,java版本为21.原创 2023-11-26 13:00:28 · 3395 阅读 · 0 评论 -
使用ListenableFuture进行异步任务执行并进行线程切换
在程序中会经常需要做一些异步任务,但是由于部分操作其实很简单,仅仅是短暂的进行异步操作,然后在结果成功或失败的时候切换回主线程进行下一步处理,这期间不能阻塞主线程。这里记录一下使用google的guava库里面的并发类进行处理,也可以,只是在Android上最低支持API23版本,但是项目最低支持21。使用来进行Java高版本兼容的话,改动比较多,一直有R8/D8兼容性错误。估计要升级jdk、gradle等等版本,在协作开发中不太合适。项目中本身就有guava。所以使用这个进行开发。原创 2023-11-23 11:15:57 · 1189 阅读 · 0 评论 -
开发中各个工具的版本变化速查链接
该文档虽然是官方文档,但是不会把实验功能写出来,比较好的地方就是看起来整齐简洁,下一条文档也是官方的,很全面,但是文档写的复杂。可以从这个文档有个简单了解,具体每个版本细分特性可以查阅https://docs.oracle.com/en/java/javase/21/index.html 这个链接,然后将版本号修改下即可。可以选择不同的版本查看,比较不好的是,没有列出每个版本的新增变化。groovy的版本变化相较于其余更加难读主要位于官网的最下面。原创 2023-10-29 20:14:59 · 437 阅读 · 0 评论 -
android中gradle的kotlin编译配置选项
传递参数的发过誓可以直接在里面写。该配置在其余平台不可用。原创 2023-10-29 16:47:18 · 2034 阅读 · 0 评论 -
使用Google的地点自动补全功能
在进行海外开发时候需要使用google地图,这里对其中的地点自动补全功能开发进行记录。这里着重于代码开发,对于key的申请和配置不予记录。原创 2023-10-25 20:28:43 · 803 阅读 · 0 评论 -
AnimatedVectorDrawable矢量图动画的使用和修改
文章目录一、前言二、一个矢量图文件三、参考链接一、前言矢量可绘制对象可以提供比较复杂的动画效果,只是绘制比较复杂,这里可以让UI使用Adobe After Effects软件制作出相关的矢量图xml文件交由开发使用。只是如果需要重复播放的动画效果时候,导出的矢量图里面没有改内容,所以需要开发自己添加,这里记录下添加的方式。二、一个矢量图文件以下是一个矢量图的内容。主要由两部分效果(位移和缩放)组成,这里需要设置为无限循环播放模式,需要在里面的属性动画里面添加以下代码 <!--翻转-->原创 2023-08-01 15:19:13 · 1721 阅读 · 0 评论 -
Android中绘制的两个天气相关的View
自定义View原创 2023-07-28 19:41:21 · 671 阅读 · 0 评论 -
在Android中使用新版proguard混淆器的方式
新版proguard的使用方式原创 2023-07-24 20:14:37 · 2256 阅读 · 0 评论 -
Intent的使用的注意事项
开发中常用的也就一两个,所以这里进行下开发中遇到的问题。原创 2023-05-21 17:21:46 · 278 阅读 · 0 评论 -
Class not found when unmarshalling:
问题描述:这个问题主要出在某些版本的手机上面使用了Intent直接传递Parcelable数据,且Parcelable类型是使用默认方式生成的。修改方式有多种,这里使用比较方便的一种,另外一种方式是在使用Intent传递数据时候添加加载器除此之外还可以转换成字节数组传递,该方式出现在中。原创 2023-04-03 14:45:27 · 1830 阅读 · 0 评论 -
Coil的原理浅析与自定义加载类型
Coil是一种纯粹是一kotlin编写的,利用了协程特性的图片加载库,其代码量较少,算是比较轻量的图片加载库。对于常规类型的图片都有加载方式,不过也有无法预料的情况,比如加载apk文件中的图片,此文章基于此问题进行编写。Coil自身支持的类型有StringHttpUrlUriFileIntDrawableBitmap但是如果想新增类型的话需要拓展MapperFetcher。其中Mapper是对用于区分不同的类型,比如将String类型转换为File或者Uri。原创 2023-03-31 11:11:20 · 884 阅读 · 0 评论 -
Android漂浮碰壁动画
Android碰壁动画原创 2022-09-28 15:38:06 · 822 阅读 · 0 评论 -
Android图片转base64加密在其它平台显示
base64加密图片跨端显示的问题原创 2022-08-26 11:42:13 · 21891 阅读 · 0 评论 -
Android截屏的实现方式
Android截屏原创 2022-08-21 19:42:58 · 2115 阅读 · 0 评论 -
Android系统自带圆形图片实现
在Glide中加载本地圆形图片时会有问题,所以这里换了其他方式代码如下:Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.head);RoundedBitmapDrawable roundedBitmapDrawable = RoundedBitmapDrawableFactory.create(g...原创 2020-01-11 16:47:49 · 459 阅读 · 0 评论 -
关于OkHttp、Retrofit、阿里云存储中不兼容Android5.0以下系统的解决方案
关于OkHttp、Retrofit、阿里云存储中不兼容Android5.0以下系统的解决方案文章目录关于OkHttp、Retrofit、阿里云存储中不兼容Android5.0以下系统的解决方案前言:环境:处理方式(一):处理方式(二):处理方式优劣之分:如何排查问题:参考链接:1、retrofit:https://square.github.io/retrofit/2、OkHttp:https://square.github.io/okhttp/3、阿里云存储:https://help.ali原创 2020-09-24 15:59:42 · 1104 阅读 · 0 评论 -
获取Okhttp中全部请求头(二)
截图再上传实在麻烦,就简单把代码复制过来....第一篇的时候描述了下怎么获取所有请求头,这篇简单介绍下okhttp添加系统请求header的实现过程,首先看下面代码: private final OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder()原创 2017-03-12 17:43:01 · 4508 阅读 · 0 评论 -
关于使用OKHttp调试自签名证书进行双向认证的一些看法
注1:调试过程如果客户端和服务端都不熟悉的话最好由一个人完成 注2:本文只是对以下链接内容的完善及其解释 注3:本文是基于OKHttp上进行的代码调试 注4:本文是自签名证书,属于测试代码,并没有在正式环境上使用 注5:建议读者仔细尝试过相关链接后再进行阅读本文 注6:可能会使用到startup.bat命令启动tomcat相关链接: 《基于Java的https双向认证,android上亦原创 2016-10-25 16:53:01 · 4075 阅读 · 4 评论 -
搜集一些经过个人测试比较好用的一些库(供快速开发使用)
1、支付密码对话框博客地址:https://blog.youkuaiyun.com/lin857/article/details/84111930github地址:https://github.com/lzjin/AlipayPassDialog效果图:2、红包雨项目github地址:https://github.com/mayangming/RedPackageRain效果图:3、自定义控...原创 2020-01-11 15:57:10 · 310 阅读 · 0 评论 -
DatabaseUtils: java.lang.IllegalArgumentException: Invalid token LIMIT
DatabaseUtils: java.lang.IllegalArgumentException: Invalid token LIMIT原创 2022-07-26 16:11:30 · 1241 阅读 · 0 评论 -
TabLayout的指示器和文字的边距
简单记录下TabLayout的使用方式,及其修改指示器的宽度和离文字距离的方式原创 2022-05-21 17:21:47 · 4311 阅读 · 0 评论 -
Android5.0以下https兼容ssl3的问题
低版本兼容https的问题原创 2022-04-27 11:32:58 · 1658 阅读 · 0 评论 -
Glide的缓存原理
一、前言 Glide是一个优秀的图片加载框架,其图片缓存思路值得记录一下,这里简单对其进行记录,不涉及源码部分二、缓存思路 首先在Glide中缓存分为四部分:活动缓存、内存缓存、数据格式磁盘缓存(就是把所有裁剪过,压缩过、转换过的图片也保存起来),原图磁盘缓存。后面两个是自己起的名字,叫什么都行。解释如下:活动缓存:主要就是使用一个HashMap将所有正在使用的图片进行缓存内存缓存:将刚刚回收的图片采取LRU算法进行缓存数据格式磁盘缓存:将所有裁剪过的、压缩过的、转换过的图片存到图片,这样原创 2022-03-04 22:09:41 · 1040 阅读 · 0 评论 -
Glide中的Fragment缓存原理
Glide中的Fragment缓存原理原创 2022-03-04 21:41:21 · 891 阅读 · 5 评论 -
Bitmap被重复使用的结论
这里主要记一个结论,就是一个Bitmap对象可以同时被多个ImageView使用。为什么记这个结论,是因为之前忘记做什么的时候记错了,记成Bitmap同时只能被一个地方使用。这个结论有什么用处,就是假设一个应用中有多个头像,那么就可以使用一个Bitmap来节省内存。Glide即是使用该原理进行了活动缓存的实现...原创 2022-03-03 20:29:09 · 448 阅读 · 0 评论 -
Retrofit原理
文章目录一、前言二、简单使用三、整体结构四、运行流程五、参考链接一、前言 Retrofit是基于OkHttp封装的一个框架,使其更加方便使用。目前也是使用较多的网络框架,这里对其原理进行简单记录。这里需要注意的是Retrofit框架只是对OkHttp的二次封装,实际的网络请求依然还是用OkHttp进行的。因为OkHttp的网络请求只处理网络请求,对于实际开发中涉及的其余逻辑并不关心,比如线程切换,数据解析等等。另外使用Retrofit还可以对api的接口进行良好的管理,因此在此基础上研发了Retrof原创 2022-03-01 13:27:05 · 4183 阅读 · 0 评论 -
OkHttp原理
文章目录一、前言二、简单使用三、整体结构四、请求执行流程五、Interceptor六、其余问题1、缓存问题2、高并发问题3、Socket缓存池复用问题七、参考链接一、前言 OkHttp是目前较为常用的网络框架,了解其原理能更方便我们的使用。这里根据对其进行简单记录。二、简单使用 OkHttp是一个网络访问框架。支持GET、POST等请求。支持同步、异步的请求方式,以及其它功能。这里从最简单的使用方式开始着手。添加依赖:implementation 'com.squareup.okhttp3:原创 2022-02-27 22:28:20 · 1695 阅读 · 0 评论 -
Handle原理
Handle原理的理解原创 2022-02-07 12:20:54 · 3149 阅读 · 0 评论 -
Fragment的使用(八)-生命周期
Fragment的生命周期在高版本的话跟以前有点不太一样。大概是SDK28开始改版了。这里将其和Activity一起记录如下进行对比; 程序运行版本SDK30YM--Activity: onCreate-->super_beforeYM--Activity: onCreate-->super_afterYM-Fragment>: onAttach()YM-Fragment>: onCreate()YM--Activity: onCreate-->setContentV原创 2022-02-04 16:32:55 · 1971 阅读 · 0 评论 -
WebView自定义加载错误页(可重试)
自定义WebView错误页,可重试刷新,回退上一页原创 2022-01-25 14:45:15 · 4139 阅读 · 0 评论 -
一份Android的.gitignore文件
如果使用git的话,需要把部分文件忽略不进行上传,否则的话很容易出现各种冲突。这里提供一份.gitignore文件来处理此事。各个目录下面创建moudel层级下面创建该文件即可。比如根目录、app目录下面# Built application files*.apk*.aar*.ap_*.aab# Files for the ART/Dalvik VM*.dex# Java class files*.class# Generated filesbin/gen/out/# U原创 2022-01-12 16:25:32 · 314 阅读 · 0 评论 -
Activity的一些冷僻属性用法
Activity的一些少见的用法原创 2022-01-11 20:17:21 · 693 阅读 · 0 评论 -
java.lang.IllegalArgumentException: Invalid token /storage/emulated/0/Download/s-kz-02.jpg
高版本删除图片注意事项原创 2022-01-05 18:02:37 · 3282 阅读 · 0 评论 -
Android高版本的Uri及其使用注意问题
文章目录一、前言二、Document三、文件删除四、参考链接一、前言Uri又被成为统一资源定位符。顾名思义,是用来定位资源的。在Android中主要是用来定位本地资源的。在Android10.0以前由于可以直接使用File进行文件读写,所以Uri的使用范围没那么广。只有使用存放在raw、asset或者其它资源文件时候,以及使用ContentProvider这些方式的时候才进行使用Uri。相对于整个项目来说,频率较低。但是由于Android10.0开始强制逐步强制使用SAF的方式进行文档读写。因此Uri原创 2021-12-23 19:45:31 · 7264 阅读 · 0 评论 -
Android中执行shell命令
这里记录两种执行shell命令的方式,虽然都会遇到权限拒绝的问题1、 private fun execShell(cmd: String): String { var result = "" try { val process = Runtime.getRuntime().exec(cmd) val mReader = InputStreamReader(process.inputStream) pr原创 2021-12-23 16:32:34 · 3504 阅读 · 2 评论 -
Android文档管理器
在Android11之上使用获取所有文件访问权限原创 2021-12-23 11:26:00 · 2269 阅读 · 0 评论 -
Android aab文件签名过程
文章目录一、前言二、步骤一、前言在上架Google Play时候,目前不再使用apk文件,而是要使用aab文件,但是使用Android Studio的工具打包方式时候,一直制作不出来aab文件,只能使用命令行的方式,这里将该方式进行记录,如下:二、步骤首先该项目已经配置过签名代码了,build.gradle内容如下:android { signingConfigs { debug { storeFile file('xxx.jks')原创 2021-12-14 15:46:40 · 5507 阅读 · 0 评论