写的太棒了,意犹未尽
Android Gradle学习(八):统计Task执行时长关于 Gradle 的基本知识,前面章节已经讲的差不多了。那么,我们现在来牛刀小试一下,看看 Gradle 有什么用武之地。 我们在将 Android 应用程序打包成 apk...
写的太棒了,意犹未尽
Android Gradle学习(八):统计Task执行时长关于 Gradle 的基本知识,前面章节已经讲的差不多了。那么,我们现在来牛刀小试一下,看看 Gradle 有什么用武之地。 我们在将 Android 应用程序打包成 apk...
我说那块怎么看起来很别扭,感觉应该是这样的
Android Gradle学习(五):Extension详解前面我们已经详细讲解了 Gradle 的 Task、Project 等基本用法,现在我们还要学习一个很重要的概念 Extension,它在 Gradle 中几乎随处可见,特别...
标签: Choreographer UI卡顿 UI丢帧 作者公众号: 本文将介绍3个知识点: 获取系统UI刷新频率 检测UI丢帧和卡顿 输出UI丢帧和卡顿堆栈信息Choreo...
作者写的太好了,适合我这种初学者
Gradle Plugin入门使用一、学习目标 1、 了解 Gradle Plugin 的作用是什么? 2、 如何去定义一个 Gradle Plugin? 3、 自定义插件扩展Extension。 一、Gra...
在自定义插件中注册插件扩展类,在应用插件的module中为插件扩展属性赋值,在自定义插件中获取外部(应用插件的module)的赋值。gradle插件往往配合transform使用。
Gradle Plugin入门使用一、学习目标 1、 了解 Gradle Plugin 的作用是什么? 2、 如何去定义一个 Gradle Plugin? 3、 自定义插件扩展Extension。 一、Gra...
写的太棒了
如何开发一款高性能的gradle transform前言 对于java开发者来说,大家好像都比较喜欢在编译期间搞事儿,比如为了做到AOP编程,大家都喜欢利用字节码生成技术,常用的有无痕埋点,方法耗时统计等等。那么Android...
有点想当然了,产品的需求是五花八门的,谁能保证已有的功能满足奇怪的需求。
Android okhttp缓存真正正确的实现方式前言 关于okhttp的缓存,网上有大量的文章,或相同,或不同,方式不一,但都八九不离十,原理都是通过CacheControl的设置策略不同来实现的。但是,真正实践过的人会发...
知识点汇总: 一:什么是注解 二:注解处理器概述 三:注解处理器核心类解析 四:如何调试注解处理器 五:通过注解处理器动态生成代码 六:问题汇总 七:扩展阅读 一:什么是注解...
博主写的太好了!我开始学习自定义gradle插件,看了七八篇文章这是唯一带我跳过坑的。我遇到的坑是使用独立项目创建完插件发布到本地maven后,在本地module中引入时一直报错:class文件找不到,最终原因是引用本地插件的路径没写对,正确路径:maven{url uri('./repos')}。记得使用插件时apply plugin:xxxx ,xxxx是properties文件的名字。一次创建多级文件夹时,用斜杠分割,不要用点分割,xxx/yyy/zzz/。
Android 自定义Gradle插件的3种方式前言 Gradle插件在Android中的应用很广泛,很多字节码插桩方案就用到了这方面的知识,Android官方提供了很多可用的插件,比如apply plugin: 'com...
简洁易懂,太棒了这文章
Handler(二)Native实现本文基于Android9.0源码 引言 通过上一篇Handler(一)源码解析[https://www.jianshu.com/p/f177a1679c79],我们对Hand...
android9.0反射获取android.view.WindowManagerGlobal的属性会报错,是不是不允许反射获取framework层属性了
WindowManager、ViewRootImpl、DocerView几个问题的理解这篇文章我不会去走一遍这几位的源码,只是提出几个关于他们的问题,附上我的理解,是自己的一个笔记,也希望能帮到有同样困惑的同学。 WindowManagerGlobal跟Vie...
关闭硬件加速时调用view的invalidate方法,最后整个view树上的view的onDraw方法都会执行。是因为最终调用了DecorView的draw方法,然后在它的draw方法中调用了dispatchDraw方法,在dispatchDraw方法中会遍历子view调用子view的draw方法从而调用onDraw方法(draw方法定义在View类中,dispatchDraw方法定义在ViewGroup类中,刚开始我在DecorView以及FrameLayout中都没找到dispatchDraw)。不知道我这样理解invalidate执行的结果是否正确,希望博主有时间给答疑一下,谢谢。
Android中View的更新方法:invalidate()和requestLayout()前言我们在自定义View时可能需要更新View的显示,比如为View添加动画等等,有两个方法是我们经常会用到的:invalidate()和requestLayout(),本文...
我用红米K40手机测试,调用invalidate()关闭硬件加速时onDraw方法三个控件都执行,开启硬件加速时onDraw方法点击的控件执行。调用requestLayout()关闭、打开硬件加速时onMeasure、onLayout点击控件和父控件都执行,结果跟博主是一样的。我用平板测试则有点不一样,就不细说了。非常感谢博主这么好的文章,讲的很细致,尤其是把onDraw和onMeasure为什么没有执行的原因给讲明白了,大部分文章其实都没有讲这部分。
Android中View的更新方法:invalidate()和requestLayout()前言我们在自定义View时可能需要更新View的显示,比如为View添加动画等等,有两个方法是我们经常会用到的:invalidate()和requestLayout(),本文...
分析的很好啊,不看源码真的一头雾水
ViewModel之自定义构造函数刚入坑架构组件没多久,发现很多基础性的东西理解起来是没什么问题的,但是一到具体使用就各种问题,相关实践文章也比较少,更多的只能靠自己解决 = =。今天无意间了解了Androi...
感谢分享。试了一下在华为畅享9e两种命令都可以。在moto z play手机上是不可以的,提示没有访问权限,如果作者能看到的话,希望能给个答案。
Android 导出data/data目录数据库我们调试 App 的时候有时候要去除应用下 data/data/ 的文件,之前我都是运行在虚拟机上,然后再取出数据。今天发现一个好的方法,可以在真机上(不用 root )直接...
果然有效,感谢感谢!
Tablayout使用全解,一篇就够了前言 Tablayout继承自HorizontalScrollView,用作页面切换指示器,因使用简便功能强大而广泛使用在App中。 但有的产品经理偏偏是个磨人的小妖精,真的...
资源文件的值单位为px时,三个函数也不会抛出异常,只是单位是px时,不会再去乘屏幕密度density。
上一节RecyclerView(2)- 自定义Decoration打造时光轴效果也已经写完了,希望有看到我文章的同学能有一些收获。layoutManager可以说是一个重中之...
有图有真相,厉害。
RecyclerView添加自定义ItemDecoration实现(1)对于RecyclerView的使用想必大家都很熟悉,下面先看两张LinearLayoutManager和GridLayoutManager的示例 上面展示的是没有分割线的示例...