首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
安卓自定义view
订阅
Yuning
更多收藏集
微信扫码分享
微信
新浪微博
QQ
24篇文章 · 0订阅
Android 高级开发面试题以及答案整理
如今安卓开发不像前几年那么热门,但是高级人才依然紧缺,大家看着这句话是不是很熟悉,因为 web 高级人才也紧缺,c++ 高级人才一样紧缺,那么到了人工智能时代,人工智能时代的高级人才也同样会紧缺!似乎是高级人才的人在其他领域也是高级人才,而不是因为选择了热门才会一帆风顺。 业务…
Activity启动模式(GIF 动态演示)
关于Activity的启动模式是面试高频问题,在平时开发中,作用也不小,所以还是很有必要搞懂这一块的知识。其实之前也有写过这个主题的文章,但是当时是随便写了一点来记录的。这次准备写的完善点。同时通过gif动态演示各种模式下的入栈出栈情况,加深对四种模式的理解。 Activity…
ThreadLocal 源码分析
是不是觉得它是一个线程?不要被名字迷惑,它并不是一个线程。 在《Android LruCache源码分析》一文中,我们提到ThreadLocal,当时我们这么解释:ThreadLocal 你可以理解为保存一个在线程范围内可见的变量。那么ThreadLocal是如何做到的呢?Fo…
使用 Git Rebase 美化 Git Commit 流程
上篇文章讲到 commit message 规范,git 版本控制在日常团队协作中有着极其重要的作用,除了对 git 的 commit 信息进行规范化管理之外,还可以对 git 的 commit 做一些补丁修饰,即 git rebase。 在 git 中对于不同分支间的修改有两…
快速入门 Kotlin 编程
val:用于声明不可变的变量,这种变量在初始赋值之后就再也不能重新赋值,对应 Java 中的 final 变量。 var:用于声明一个可变的变量,这种变量在初始赋值之后仍然可以再被重新赋值,对应 Java 中的非 final 变量。 总结:永远优先使用 val 来声明变量,当 …
Android关于Paint你所知道的和不知道的一切
零、前言:最主要的还是set方法一、画笔的常规配置二、笔的样式:Paint.Style.:[#FILL|STROKE|FILL_AND_STROKE]三、线帽:Paint.Cap.:[#BUTT|RO
Android 源码分析二 View 测量
第一篇说完 View 创建,接着讲讲 View 的测量和布局。先讲讲整体思想,View 的 测量是自上而下,一层一层进行。涉及到的核心方法就是 View 中的 measure() layout() 对于我们来说,更应该关心的就是 onMeasure() 和 onLayout()…
Android 源码分析一 View 创建
最近看了些 View 相关的源码,相比之前,有一些新的认知。争取通过一次整理,能系统了解 Android View 加载和显示的相关过程,记录下来,共勉。接下来的所有源码基于 Android API 27 Platform。 对于 View 创建,通俗说其实就两种方式,一种是直…
Java·ConcurrentModificationException的具体原因
可以看到,这就是我们报错的关键点,这里的modCount变量是指集合被操作的次数,比如像add()、remove()这些方法都会让modCount + 1,而expectedModCount是指集合的一个预期操作次数,在部分操作里会被重置为modCount,比如add()方法里…
Activity、Window、View三者关系
使用子窗口:在 Android 进程内,我们可以直接使用类型为子窗口类型的窗口。在 Android 代码中的直接应用是 PopupWindow 或者是 Dialog 。这当然可以,不过这种窗口依赖于它的宿主窗口,它可用的条件是你的宿主窗口可用 Activity并不负责视图控制,…