
android
文章平均质量分 83
s127838498
这个作者很懒,什么都没留下…
展开
-
Android 通过ASM实现多次点击拦截
从事Android开发的同学可能都会有这个需求,最近在学ASM相关的知识,拿这个想法练了一下手。大体思路是这样的,通过字节码Hook所有onClick(View view)方法,通过view.setTag(key,value)设置tag为当前时间戳,这样再次点击的时候就有一个时间差,通过对这个时间差,可以过滤掉多余的响应操作。首先我们看一下lamba表达式和普通的setOnClickListener编译完是什么样的。由截图可以看到不管我们以哪种方式设置监听点击,最终都是一个实现View.OnCl原创 2020-08-12 23:14:42 · 1456 阅读 · 0 评论 -
自定义Lint规则
Google对这块儿还是比较重视的,从频繁更新可见一斑。AndroidStudio2.0+需要手动把lint.jar拷贝到.android/lint/下;AndroidStudio3.0+支持 lintChecks project(’:checks’)的形式添加自定义规则。新建一个Java module(这里名字记做checks),在build.gradle中配置依赖:dependencies { // 注意这里必须是compileOnly compileOnly "com.an原创 2020-07-15 11:44:14 · 1247 阅读 · 1 评论 -
Kodein使用记录
项目工程中之前用的4.1.0版本的Kodein.最近将Kodein升级到6.0.0.主要是工程现在没有适配AndroidX,Kodein6.0以上只找到AndroidX版本的,官网也没有什么历史版本索引,GitHub上文档也使用页面是白的,因此这次先升级到6.0.0。Kodein4.+到6.0的变化比较大,6.0以后变化就不是很大了这里这里记录以下6.0的新的语法调用。配置依赖配置依赖implementation "org.kodein.di:kodein-di-core-jvm:6.0.0"imp原创 2020-07-04 00:49:06 · 665 阅读 · 0 评论 -
flutter 混合开发
flutter 混合开发参考:https://flutter.dev/docs/development/add-to-app/android/project-setupfor android 页面嵌入配置architecturesFlutter currently only supports building ahead-of-time (AOT) compiled libraries...原创 2020-01-15 21:24:38 · 1066 阅读 · 0 评论 -
WorkManager的进阶
Advanced ConceptsCustom WorkManager Configuration and Initialization默认情况下,当app启动的时候WorkManager自动的完成了配置,这个配置适用于大多数app.如果我们需要对WorkManager有更多的控制,比如:管理和调度任务,可以使用自己的配置初始化WorkManager.这里有三种初始化的方式:Defau...原创 2019-06-25 16:48:12 · 2052 阅读 · 0 评论 -
WorkManager的初步介绍
Defining your Work RequestsWorkRequest 是一个抽象类:它有2个直接子类:OneTimeWorkRequest (只执行一次)from(List<Class<? extends ListenableWorker>> workerClasses)from(Class<? extends ListenableWorker&g...原创 2019-06-25 13:59:28 · 725 阅读 · 0 评论 -
android9.0自动使用24小时制
最近做android9.0系统相关的定制工作,用户反馈时间设置中的自动使用24小时制没效果,亲自试了下确实时间显示的格式没变,于是一脸蒙逼。网上查了有人问相同的问题,不过也没有确切的答案,可能是android9.0刚刚出来没多久,国内使用的还不多的原因吧。于是找到了相关的源码如下:控制的相关类主要是在AutoTimeFormatPreferenceController.java和TimeForm...原创 2019-02-18 11:08:31 · 2093 阅读 · 0 评论 -
Android valueAnimator相关
这里主要是记录下Android valueAnimator 及其相关子类的使用,很少使用xml来,这里是从官网上摘过来的相关写法。android的动画系统提供了丰富的动画功能,使我们可以操作目标对象的任何类型的属性,默认支持int,float,和十六进制的颜色。你也可以通过自定义TypeEvaluator来告诉系统如何计算目标类型,进而操作任何其他类型。你可以给动画设置不同类型的插值器(包...原创 2018-12-16 19:02:27 · 396 阅读 · 0 评论 -
AsyncTask的分析,及使用
前些天面试被问到一些关于AsyncTask的问题,下面是我整理的一些关于这个的知识。要了解一个类的使用首先可以通过类前面的介绍来有个大概的了解,然后再有针对的去看自己感兴趣的地方。那么下面进入正题^^AsyncTask enables proper and easy use of the UI thread. This class allows you* to perform backgro...原创 2018-12-02 23:47:03 · 247 阅读 · 0 评论 -
文章标题
JNI开发步骤:新建工程,定义native方法,通过javah命令生成.h文件将生成的.h文件复制到c项目中导入jni支持头文件(jni.h,jni_md.h)以上头文件在jdk安装目录下实现native方法配置属性,生成(window:.dll Linux:.so),配置环境变量:将动态库所在目录配置到path,,并完成java中的引入操作重启eclipse运行程序声明nat原创 2016-10-21 23:09:19 · 157 阅读 · 0 评论 -
android中单元测试及.properties文件的使用
项目中常常会有一些配置,除了将其写在一个常量类中外,写在配置文件中也是一种不错的选择,下面先介绍下,如何使用properties文件java中有一个 Properties类,该类有一个方法,从一个流中加载文件 /** * Loads properties from the specified {@code InputStream}, assumed to be IS原创 2016-06-17 11:08:32 · 523 阅读 · 0 评论 -
Android获取屏幕高度、状态栏高度、标题栏高度
Android屏幕高度、状态栏高度、标题栏高度 的认识,与获取转载 2016-04-16 09:10:58 · 284 阅读 · 0 评论 -
android中.9.png的认识
Android 设计中的.9.png在 Android 的设计过程中,为了适配不同的手机分辨率,图片大多需要拉伸或者压缩,这样就出现了可以任意调整大小的一种图片格式“.9.png”。这种图片是用于Android开发的一种特殊的图片格式,它的好处在于可以用简单的方式把一张图片中哪些区域可以拉伸,哪些区域不可以拉伸设定好,同时可以把显示内容区域的位置标示清楚。本文结合一些具体的例子来看下.转载 2016-03-29 12:10:22 · 275 阅读 · 0 评论 -
android内存分析
android内存的分析方法转载 2016-04-25 10:31:44 · 219 阅读 · 0 评论