首页
学习
活动
专区
工具
TVP
发布

安卓开发

专栏成员
14
文章
16163
阅读量
13
订阅数
[Android] Java的注解笔记
【回答】 注解相当于一张标签,我们可以给一个类、方法、方法参数等贴一张标签,这些标签可以被编译器、开发工具预先处理,从而实现特定功能,也可以在程序运行过程中用代码读取出来。 【注解】 @Override - 检查该方法是否是重写方法。如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误。 @Deprecated - 标记过时方法。如果使用该方法,会报编译警告。 @SuppressWarnings - 指示编译器去忽略注解中声明的警告。 // 从 Java 7 开始,额外添加了 2 个注解: @
用户3702315
2021-06-05
2770
[Kotlin] 单例的写法
代码 // 单例关键字object,声明为单例类之后会立即在内存中创建单例对象,并一直存在。 object BigHeadSon:IWashBow { override fun washBow() { println("洗碗赚100000000元钱") } } fun main(args: Array<String>) { BigHeadSon.washBow() } 饿汉式 // Java实现 public class Singleto
用户3702315
2021-04-13
6460
[Java] ThreadLocalMap.Entry的Key是弱引用的理解
我们要在不使用某个 ThreadLocal 对象后,手动调用 remoev 方法来删除它,尤其是在线程池中,不仅仅是内存泄露的问题,因为线程池中的线程是重复使用的,意味着这个线程的 ThreadLocalMap 对象也是重复使用的,如果我们不手动调用 remove 方法,那么后面的线程就有可能获取到上个线程遗留下来的 value 值,造成 bug。
用户3702315
2021-04-06
1.3K1
[Kotlin] 密封类总结
简介 sealed 修饰的类称为密封类,用来表示受限的类层次结构。 案例 // 外部无法实例化密封的类 // 外部只能实例化他的子类 sealed class Color { // 只能在内部继承密封类 class Red(val value: Int) : Color() class Green(val value: Int) : Color() class Blue(val name: String) : Color() } fun isInstance(color:
用户3702315
2021-04-01
1K0
[Kotlin] 构造函数总结
主构造函数 // Kotlin 的构造函数可以写在类头中,跟在类名后面。 // 这种写法声明的构造函数,我们称之为主构造函数。 class Person(private val name: String) { fun sayHello() { // 主构造函数中声明的参数,它们默认属于类的公有字段。 println("hello $name") } } // 与上面的作用一致:声明主构造函数 class Person constructor(private v
用户3702315
2021-03-30
1.1K0
[Java] Lambda表达式总结
Lambda 规定接口中只能有一个需要被实现的方法,不是规定接口中只能有一个方法。
用户3702315
2021-03-29
2640
[Java] BlockingQueue
java.util.concurrent 包里的 BlockingQueue 是一个接口,继承 Queue 接口,Queue 接口继承 Collection 接口。
用户3702315
2021-03-24
4660
[Kotlin] 函数的相关知识总结
扩展函数是静态解析的,下面有一个来自网上的例子(https://kymjs.com/code/2017/02/26/01/)
用户3702315
2021-03-17
4420
[Frame] views-dsl 中使用高阶函数的源码
https://github.com/LouisCAD/Splitties/tree/main/modules/views-dsl
用户3702315
2021-03-15
4550
[Article] RecyclerView:pre_layout:Nu2
方法 dispatchLayout() 会在 RecyclerView.onLayout() 中被调用,其中dispatchLayoutStep1() 就是 pre_layout,dispatchLayoutStep3() 就是post_layout,而 dispatchLayoutStep2() 自然就是处理真正测量和布局子视图(real_layout)。
用户3702315
2021-03-04
4100
[Article] RecyclerView:pre_layout:Nu1
简介 pre-layout 是为了 Item 动画而设计,在插入、删除的操作发生后(notifyItem*() 系列方法),先记录变化之前的Item位置信息(称为pre-layout);再执行重新测量和布局(real-layout);根据重新布局后记录变化后的 Item 位置信息并对比变化之前的 Item 位置信息执行动画(称为为post-layout) 如果不需要 pre-layout (即关闭Item动画功能),在LayoutManager.supportsPredictiveItemAnimation
用户3702315
2021-03-03
4980
[Article] CMake编译生成so库
第一步 设置CMakeLists.txt位置 // android {} 里增加 externalNativeBuild { cmake { path "src/main/cpp/CMakeLists.txt" } } 第二步 设置CMakeLists.txt配置 cmake_minimum_required(VERSION 3.4.1) // a.cpp、b.cpp 编译成 MyLib.so 库 add_library(MyLib SHARED a.cpp b.cpp)
用户3702315
2021-03-02
2.3K0
[Android] Fragment进入退出动画(转场动画)
为Fragment中添加进场和退出动画是一个很简单的用法,主要就是依靠 FragmentManager 的 setCustomAnimations() 或者 setTransition() 方法,这是两种不同方式设置动画,具体的使用方式参考下面案例。
用户3702315
2020-12-01
4.9K0
[Android] ViewPager2使用入门
之前的项目中使用过ViewPager,被坑过几次。如果你在RecyclerView中的Item使用ViewPager,你绝对会产生莫名其妙的问题,因为ViewPager在同一界面上不能有两个一样的ID,否则会导致滑动和内存问题。
用户3702315
2020-11-28
2K0
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档