安卓
文章平均质量分 58
MasterSpring
Full Stack Software Engineer
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Android Runtime exec接口使用的一些注意事项
Android exec No such file or directory解决方法原创 2024-07-03 18:06:21 · 604 阅读 · 1 评论 -
使用注解和动态代理实现方法级别的日志
使用注解和动态代理实现方法级别的日志前言注解动态代理为什么要使用注解和动态代理实现日志怎么实现其它补充前言此文的主要目的是记录注解和动态代理的使用,因为已有很多日志框架;此文介绍了注解和JDK动态代理,以及如何结合二者实现方法级别的基于注解的日志框架。注解注解可以理解为作用于Java类、构造方法、属性、方法、参数、局部参数上的标签,本身并没有额外的功能。动态代理众所周知,有一种叫代理模式的设计模式,就是代理目标对象完成实际的操作,动态代理的基本思想也是如此,但是动态代理通过反射等技术,为开发者省原创 2022-04-22 12:39:44 · 535 阅读 · 0 评论 -
Kotlin 动态代理的使用以及一些坑点
kotlin 动态代理原创 2022-04-15 11:07:28 · 4134 阅读 · 0 评论 -
Android P+通过反射调用系统API实现高级功能
Android P+通过反射调用系统API实现高级功能1. 添加反射库1.1 导包1.2 打开隐藏API通过反射调用系统API已经不算是什么新鲜事了,不过在Android P之后,Google对隐藏API的限制更加严格,不能再直接通过反射去调用系统API了,必须通过特定手段先打开隐藏API的限制,具体原理可以移步另一种绕过 Android P以上非公开API限制的办法,这里我们只讲实战用法。1. 添加反射库1.1 导包新建AS项目后,打开项目的settings.gradle,在repositorie原创 2021-09-15 13:57:10 · 3339 阅读 · 0 评论 -
Android P添加自定义系统广播
最近有一个需求,要求实现20秒无操作就跳转到一个界面,因为开发初期没有添加BaseActivity,所以再想在APP中实现事件监听就比较难修改,查阅资料发现可以在framework的ViewRootImpl类的内部类WindowInputEventReceiver的onInputEvent方法中添加广播实现,但是添加后发现会有Sending non-protected broadcast的报错,于是又查阅资料,将添加的广播在AndroidManifest.xml中注册为protected-broadcast原创 2021-07-30 16:27:10 · 1443 阅读 · 0 评论 -
Shell批量修改app源码布局中组件的属性
最近开发了一款应用,其显示页面有12个模板,并且适配了横竖屏,即对应了2*12个布局文件,现在有个需求就是修改这些模板中ImageView的缩放类型,于是写了一个shell,用于批量修改布局中相同的属性,有需要的小伙伴可以参考,shell脚本如下:#!/bin/bashproper=$1oldvalue=$2newvalue=$3folder=$4if [ ! ${folder} ] || [ ! -d $folder ] || [ ! ${proper} ] || [ ! ${oldvalue原创 2021-07-30 11:46:06 · 264 阅读 · 0 评论 -
Android源码中编译带androidx(support)库的app源码
Android编译带androidx(support)库的app源码WHY一般企业级开发中,AOSP源码都会使用git或者其它版本管理工具进行管理,将app源码放到Android源码中,可以有效的记录代码修改记录,并且能够有效的避免多个仓库带来的管理困难。HOW这里根据所使用的库以及库相对AOSP源码版本分为4种情况,见下表库版本解决方案androidx高于源码导入新版本库文件及其依赖或者尝试降低代码版本或者改用support库androidx低于或等于源码直接原创 2021-07-29 11:00:08 · 2119 阅读 · 0 评论 -
Android动态识别字符编码
最近碰到一个需求,读取txt文本内容并加载到textview中,但是测试发现当txt文件编码为GBK时会乱码,查阅了很多资料,大多数都是通过判断文件前三字节实现字符编码的识别,但是实际发现读取到的前三字节并没有包含编码信息,直接就是文本内容的前三字节,后续查阅到一个资料,基本思想是在输入流中指定解码方式,然后根据读取时有无报错判断是否是该字符编码,这样一来,通过循环使用不同的字符编码去解码就可以得到正确的字符编码,具体实现如下:private String getTextFileCharset(Str原创 2021-07-27 16:31:46 · 1140 阅读 · 0 评论 -
[AOSP]Android 9.0添加分区unlabeled的原因分析及解决办法
问题分析最近需要在系统中新建一个分区,整个流程走下来和其它Android版本差别不大,毕竟分区是对于底层Linux而言的,但是添加完却发现系统应用不能读写此分区,仔细研究后发现和SELinux有关,具体可以参阅Android Source上的相关资料,将SELinux设为Permissive模式之后能够正常访问,于是参照其它博主提供的方法抓取了SELinux权限拒绝日志,发现原来是因为此分区的...原创 2020-01-18 10:42:42 · 1999 阅读 · 0 评论
分享