Android超复杂布局加载速度优化
摘要:一、概述 有时候由于实际业务的需要,或者产品经理或设计师考虑的不够全面,会导致某一个或某些页面的布局超级复杂。这些超级复杂的UI在经过程序员通过传统布局优化过后仍然是复杂的(优化布局层级、优化层级布局数量等)。 这就会导致布局加载速度过于缓慢。直接的结果就是打开Activity的速度回变慢,测试没发
阅读全文
posted @
2024-07-24 11:05
飘杨......
阅读(97)
推荐(0) 编辑
android在一个TextView中设置不同字体大小、不同字体颜色封装
摘要:一、概述 在开发过程中遇到过这样一种业务,有很多单行文本字体。字符串中每一部分的字体样式、大小、颜色都不相同。传统的做法是放多个TextView以达到效果。 但是当这个页面中的这样的元素非常多,且非常复杂的时候,就会出现页面加载缓慢的问题(view加载=深度(递归)+平铺),也就是页面元素越多,层级
阅读全文
posted @
2024-07-23 09:50
飘杨......
阅读(305)
推荐(0) 编辑
Android全局替换字体
摘要:一、概述 ps:上次说的LayoutInflaterCompat.setFactory2来全局替换字体的方案,在使用过程中发现存在缺陷。今天补充一个优化版方案 LayoutInflaterCompat.setFactory2这个方案的好处是比较方便,全局替换,也可以做一些个性化的操作,如:修改字体填
阅读全文
posted @
2024-07-09 11:14
飘杨......
阅读(398)
推荐(0) 编辑
android树形菜单
摘要:一、概述 项目要求:搞一个树形菜单用户展示:公司-->部门 >员工。公司下有多部门,部门下有员工。 开源项目 二、代码示例 /** * TreeView列表 * https://github.com/bmelnychuk/AndroidTreeView */ class TreeViewListAc
阅读全文
posted @
2024-06-28 10:33
飘杨......
阅读(54)
推荐(0) 编辑
android对接极光推送基础sdk+厂商信道
摘要:一、概述 项目对接极光推送功能,要求: 1.app在线时走极光推送SDK的通道 2.不在线时走厂商信道,对接厂商如下: a.华为 b.荣耀 c.vivo d.oppo e:小米 3.各平台地址 极光推送控制台:https://www.jiguang.cn/console 极光推送厂商通道配置地址:h
阅读全文
posted @
2024-05-09 12:04
飘杨......
阅读(216)
推荐(0) 编辑
Intent.resolveActivity(getPackageManager())返回null的解决办法
摘要:一、概述 在HarmonyOS 4.0.0调用相机拍照时,Intent.resolveActivity(getPackageManager())返回了,null,但是摄像头是正常的没啥问题。 二、解决办法 多加一层判断,判断是否有摄像头且摄像头是否可用 /** * 判断是否有摄像头,摄像头是否可用
阅读全文
posted @
2024-05-08 10:32
飘杨......
阅读(420)
推荐(0) 编辑
日期工具类,获取全年每月有几周,分别是多少,且每周对应的是几号到几号
摘要:一、概述 项目需要做日程组件,其中涉及到了日历这块的内容。 需求: 1.获取全年有多少个月 2.获取每月有多少个周 3.获取每月每一天对应的是星期几 4.单独获取某一天对应的是星期几 5.把以上四条组织成为一个集合 二、代码示例 /** * 时间分割工具类 */ public class DateS
阅读全文
posted @
2024-04-25 10:39
飘杨......
阅读(112)
推荐(0) 编辑
ViewPager2 FragmentManager is already executing transactions
摘要:一、概述 双层Fragment+ViewPager2嵌套来回切换导致如下异常 ViewPager2 FragmentManager is already executing transactions 二、解决办法 FragmentStateAdapter的默认构造函数使用的是: public Fra
阅读全文
posted @
2024-03-29 15:43
飘杨......
阅读(288)
推荐(0) 编辑
Android自定义密码样式
摘要:一、概述 需求: 自定义密码输入样式,Android原生的密码样式无法满足现有需求。所以只能自定义。如下图: ps:由于是密码框页面无法截图(涉及到隐私,所以只能拍个照将就着看) 二、代码示例 /** * 自定义密码输入框 */ class PasswordEditView(context: Con
阅读全文
posted @
2024-03-21 14:43
飘杨......
阅读(59)
推荐(0) 编辑
androidstudio Unable to delete directory E:/xxxxx
摘要:一、概述 在使用AndroidStudio运行项目的时候,有时候会出现 Unable to delete directory E:/xxxxx 会提示某一个文件无法删除,导致clean和重新运行都会失败。 二、解决办法 导致这个问题的原因是可能有两个虚拟机同时使用了该文件。 第一种情况: 1.打开了
阅读全文
posted @
2024-03-18 10:20
飘杨......
阅读(268)
推荐(0) 编辑
APP在申请敏感权限时,应同步说明权限申请的使用目的,包括但不限于申请权限的名称、服务的具体功能、用途;告知方式不限于弹窗、蒙层、浮窗、或者自定义操作系统权限弹框等
摘要:一、概述 华为APP应用市场反馈问题:(目前是华为审核特有的问题) APP在申请敏感权限时,应同步说明权限申请的使用目的,包括但不限于申请权限的名称、服务的具体功能、用途;告知方式不限于弹窗、蒙层、浮窗、或者自定义操作系统权限弹框等 验证了小米、vivo、oppo、应用宝,只有华为审核会出现以上问题
阅读全文
posted @
2024-02-05 13:23
飘杨......
阅读(2113)
推荐(0) 编辑
Android接入数字键盘并通过获取键盘输入的值控制App
摘要:一、概述 需求:现有一个需求,要求给Android系统接入一个数字键盘,用于方便工人操作(ps:因为触摸屏在特定场景下比键盘低效) 需要: 1.Android系统手机/pad需要能够连接数字键盘 2.Android侧能够获取到手机键盘的按键值 3.获取到键盘的按键值之后需要做对应的操作,如:模拟点击
阅读全文
posted @
2023-11-07 10:55
飘杨......
阅读(274)
推荐(0) 编辑
adb常用命令(持续更新)
摘要:一、概述 最近想研究scrcpy投屏神器的构建过程,里面涉及了不少的知识点,如:meson、ninja、phthon3脚本、shell脚本、gradle脚本(groovy)、adb常用命令等等 而这篇就先回顾一下adb的常用命令 二、常用命令介绍 1.配置adb环境变量 其实就是配置一下androi
阅读全文
posted @
2023-11-06 10:18
飘杨......
阅读(93)
推荐(0) 编辑
OKHttp3主流程再分析
摘要:一、概述 为什么要是用OKHttp3 总结下来就两个大的方面 一、成熟稳定 OkHttp距今已有10多年的历史,在Android中大量且广泛的应用,在大、中、小项目中无处不在。可以这样说,只要是一个Android项目,网络框架的底层必定是OKHttp 二、高效 1.OkHttp的底层使用socket
阅读全文
posted @
2023-08-24 14:20
飘杨......
阅读(141)
推荐(0) 编辑
ARouter源码再分析
摘要:一、概述 ARouter是一个路由框架,主要解决平行模块之间页面跳转的问题。 ARouter基本原理 >ps:简化版: 1.其核心还是通过Intent进行跳转 2.通过注解+APT+JavaPoet技术,把项目中包含有@Router(path)注解的类找出来,然后把含有注解@Rotue的类和路由路径
阅读全文
posted @
2023-08-22 16:19
飘杨......
阅读(92)
推荐(0) 编辑
EventBus源码再分析
摘要:一、概述 EventBus是一个开源的用于Android和Java上的一个:订阅 >发布事件总线。 优点: 1.只要是在一个JVM内,就可以实现通信 2.小巧灵活、不占内存 3.解耦,切换线程灵活 4.库小,不占内存 缺点: 1.注册和反注册时一对,如果忘记了就会出现内存泄漏 2.拿到注解方法组是通
阅读全文
posted @
2023-08-21 18:13
飘杨......
阅读(25)
推荐(0) 编辑
Android系统6~8需要适配的点
摘要:一、概述 Android系统每出一个大版本总有一些适配的点。这些适配点如果不适配就有可能会造成app闪退、功能不能用,app上架审核不通过的问题。写这一篇不为别的,就为了以后app出问题时能够提供一个解决问题的思路。 参考:内容1,内容2 二、适配总结 Android 6 Android实在6的时候
阅读全文
posted @
2023-08-17 16:37
飘杨......
阅读(67)
推荐(0) 编辑
编译greenDao的时候出现KaptExecution:java.lang.reflect.InvocationTargetException
摘要:一、概述 在编译greendao的时候出现了以下异常。 Execution failed for task ':common_base:kaptDebugKotlin'. > A failure occurred while executing org.jetbrains.kotlin.gradle
阅读全文
posted @
2023-08-15 13:55
飘杨......
阅读(188)
推荐(0) 编辑
在AndroidStudio4.1.1上使用GreenDao
摘要:一、概述 项目中需要用到数据库的能力,对比以及根据以往的经验,决定使用GreenDao。 二、实际操作步骤 第一步:在项目下的.gradle文件中加入插件:classpath 'org.greenrobot:greendao-gradle-plugin:3.3.0' // add plugin 第二
阅读全文
posted @
2023-08-15 13:51
飘杨......
阅读(641)
推荐(0) 编辑
关于单例是否会引发内存泄露,是否需要释放内存的一些思考
摘要:一、概述 昨天去面试Android岗位,有这么一个问题:你项目中的单例是否需要释放内存? 我说:只要写的正确(不持有全局引用就不需要说动释放/或者担心内存泄露)。他说:不对,单例是需要释放内存的。 二、思考 首先看一下什么是单例: 1.构造方法私有(外部无法创建实例只能自己创建自己的实例) 2.提供
阅读全文
posted @
2023-05-05 10:29
飘杨......
阅读(272)
推荐(0) 编辑