获得徽章 1
- 8月11日打卡,今日学习
Android基础到进阶UI爸爸级 TextView介绍+实例
TextView是什么
使用TextView
1.在xml中创建并设置属性
2.在xml中创建,在代码中设置属性
3.在代码中创建并设置属性展开评论点赞 - 8月8日打卡,今日学习
Android基础到进阶UI祖宗级 View介绍+实用
View的继承关系
创建View对象
使用XML布局定义View,再用代码控制View
举例
1.创建activity_view.xml文件
2.加载布局文件、关联控件
3.在获得XML布局文件中的视图对象时需要注意下面几点:
4.用代码控制视图
使用代码的方式来创建View对象
实例
1.获得当前的容器视图对象
2.获得或创建待添加的视图对象
3.将相应的视图对象添加到容器视图中
总结
自定义View
为什么要自定义View
自定义View的基本方法
需要用到的两个对象
自绘控件View实例
1、直接继承View类
2、在布局 XML 文件中使用自定义View
3、实现效果:
性能优化
在自定义View时需要注意,避免犯以下的性能错误:
可进一步了解和优化:展开评论点赞 - 8月7日打卡,今日学习
一文读懂直播卡顿优化那些事儿
1. 什么是卡顿
2. 为什么会发生卡顿
2.1 绕不开的 VSYNC
2.2 View 颠沛流离的一生
2.3 生产者和消费者
2.4 机制上的保护
2.5 再看卡顿的成因
2.5.1 渲染流程
2.5.2 视频流
2.6 卡顿的分类
3. 如何评价卡顿
3.1 线上指标
3.2 线下指标
4. 如何优化卡顿
4.1 常用的工具
4.1.1 线上工具
4.1.2 线下工具
4.2 常用的思路
4.3 一些做过的事儿
4.3.1 解决 UI 卡顿引起的流卡顿
4.3.2 解决 message 调度
4.3.3 减少执行次数
4.3.4 代码下线
4.3.5 解决耗时函数(打散/异步)
4.3.6 预热
4.3.7 硬件加速展开评论点赞 - 8月5日打卡,今日学习
这是一篇你应该了解的Android数据存储优化
前言
一、介绍
1. SharedPreferences
2. DataStore
3. MMKV
4. SQLite
二、测试
1. 写入结果
1. SharedPreferences
2. MMKV
3. SQLite
4. DataStore
2. 读取结果
1. SharedPreferences和MMKV
2. SQLite
3. DataStore
三、如何选择
四、SharedPreferences的优化展开评论点赞 - 8月4日打卡,今日学习
Android 进程与线程(了解>使用>常见面试题)概念
💥 进程
💥 线程
💥 进程和线程的区别Android中的进程
💥 进程
💥 进程的等级(生命周期)
🌀 前台进程(Foreground process)
🌀 可见进程(Visible process)
🌀 服务进程(Service process)
🌀 缓存进程(Cached process)
💥 多进程
🌀 为什么要使用多进程
🌀 多进程产生多个Application
💥 进程间通信Android中的线程
💥 UI/Main Thread (主线程)
🌀 阻塞UI线程
🌀 Worker Thread操作UI
💥 Worker Thread(工作线程)
🌀 样例:子线程访问UI线程
🌀 几种方法源码
💥 线程的状态
💥 开启线程的三种方式
🌀 小结常见面试题
💥 run()和start()方法区别
💥 wait、notify、notifyAll
💥 join、sleep、wait
💥 线程阻塞
💥 线程中断
💥 线程池ThreadPoolExecutor
💥 线程池的种类
💥 如何保证线程安全
💥 volatile、synchronized、Lock、ReentrantLock 区别
💥 Thread为什么不能用stop方法停止线程展开评论点赞 - 8月3日打卡
工作原理
ThreadLocal
MessageQueue
Looper
Handler
线程异步
AsyncTask
基本使用
工作原理
HandlerThread
IntentService
线程池
RecyclerView 优化
Webview
基本使用
WebView
WebSettings
WebViewClient
WebChromeClient
Webview 加载优化
内存泄漏展开评论点赞 - 8月2日,学习内容
Activity
生命周期
启动模式
启动过程
Fragment
特点
生命周期
与Activity通信
Service
启动过程
绑定过程
生命周期
启用前台服务
BroadcastReceiver
注册过程
ContentProvider
基本使用
数据存储
View
MeasureSpec
MotionEvent
VelocityTracker
GestureDetector
Scroller
View 的滑动
View 的事件分发
在 Activity 中获取某个 View 的宽高
Draw 的基本流程
自定义 View
进程
进程生命周期
多进程
进程存活
OOM_ADJ
进程被杀情况
进程保活方案展开评论点赞