安卓牛批之路
2020-05-28 11:59:34 1 举报
AI智能生成
安卓学习路线
作者其他创作
大纲/内容
开源框架
volley
okhttp
retrofit
fastjson
glide
fresco
EventBus
butterknife
rxjava/rxandroid
PhotoView
dagger2
通信
线程间通信
Handler
原理
EventBus
原理
BroadcastReceiver
AsyncTask
进程间通信
Binder
HTTP
HTTP协议
提交表单
普通GET请求
HTTP header&body
https
volley
okhttp
retrofit
Socket
心跳包
网络状态变化重连
WebSocket
心跳包
网络状态变化重连
Bluetooth
BLE
NFC
Headset
USB
Git协作
性能
UI优化
自定义View时的draw方法优化
布局层次结构
抽象布局的使用
主线程耗时方法检测
HierarchyViewer
Lint工具
内存优化
OOM
ANR
ANR日志分析
分析
Heap
adb shell
dumpsys meminfo
showmap
TraceView
Dalvik日志
logcat
MAT
电量优化
流量优化
调试
Logcat
adb
HierarchyVierer
TraceView
Heap
Lint
测试
Mokey
MokeyRunner
JUnit
Mock
Robotium
Appium
Athrun(TMTS)
UIAutomator
NDK
JNI
C/C++
so与不同CPU架构的兼容
安全
通信安全
数据加密
数据校验
代码混淆
WebView/JS安全调用
MD5,DES,RSA,https,证书,权限
反编译与重新打包
基础知识
java基础
Lambda表达式
多线程
线程锁
线程池
synchronized
ActivityThread
正则表达式
AIDL
java锁
竞争锁
原子锁
对象锁
GC机制
java四大特征
封装
抽象
继承
多态
设计模式
6大设计原则
单一职责原则
开放封闭原则
里氏替换原则
依赖倒置原则
接口隔离原则
迪米特原则
23种设计模式
创建型
工厂方法模式
抽象工厂模式
单例模式
建造者模式
原型模式
结构型
适配器模式
装饰者模式
代理模式
外观模式
桥接模式
组合模式
享元模式
行为型
策略模式
模板方法模式
观察者模式
迭代子模式
责任链模式
命令模式
备忘录模式
状态模式
访问者模式
中介者模式
解释器模式
架构
MVC
MVP
MVVM
数据结构
队列
栈
堆
数组
链表
散列表
树
图
面向对象OOP
基础算法
排序
比较类
交换类
冒泡排序
快速排序
插入类
简单插入排序
希尔排序
选择类
简单选择排序
堆排序
归并类
二路归并排序
多路归并排序
非比较类
计数排序
桶排序
基数排序
查找
顺序查找
二分查找
分块查找
Fibonacci查找
差值查找
哈希查找
开发环境
Eclipse
AndroidStudio
Gradle语法
Gradle
JDK
自动化打包
多渠道打包
打包流程
aapt资源文件打包原理
gradle插件自动化减少apk文件的大小
SDK
国内无法下载如何解决
模拟器
AndroidStudio自带
第三方模拟器
Fragment
生命周期
懒加载?
与Activity通信
与其他Fragment通信
两种getManager的区别
getFragmentManager
getSupportFragmentManager
crash之后多个Fragment重叠
无UI的Fragment
四大组件
Activity
生命周期
onNewIntent
启动模式
standard
singleTop
singleTask
singleInstance
对话框形式的Activity
控制键盘的显示与隐藏
屏幕方向
unspecified
landscape
portrait
user
behind
sensor
nosensor
动态设置正方向竖屏和倒拿手机的竖屏
ActivityCompat启动
去掉默认的Title
带数据跳转
带数据返回
Service
生命周期
启动方式
保活
BroadcaseReceiver
静态注册
生命周期
动态注册
生命周期
普通广播
有序广播
本地广播
ContentProvider
保存并共享数据
Application
生命周期
获取实例
Binder机制
避免内存泄露
Intent
Action
Category
显示跳转
隐式跳转
IntentFilter
PendingIntent
获取对象
getActivity
getBroadcast
getService
参数
requestCode
flags
FLAG_CANCEL_CURRENT
FLAG_NO_CREATE
FLAG_ONE_SHOT
FLAG_UPDATE_CURRENT
使用场景
Bitmap
Bitmap保存为文件后的大小计算
Bitmap加载优化
Bitmap原理
Bitmap压缩
适配
编译版本号
compileSdkVersion
minSdkVersion
targetSdkVersion
屏幕宽高
宽
高
手机型号
沉浸式状态栏
运行时权限
数据持久化
Sqlite
ContentProvider
File
检测SD卡
获取存储位置
创建文件夹
创建文件
文件压缩与解压
Internal Storage
External Storage
7.0之后使用FileProvider共享文件
SharedPreferences
获取对象
Context.MODE_PRIVATE
Context.MODE_WORLD_READABLE
Context.MODE_WORLD_WRITEABLE
Context.MODE_APPEND
保存
获取
数据存储位置
UI
layout
FrameLayout
LinearLayout
divider
showDividers
none:不显示分隔线;
beginning:在整体的开始处显示分隔线;
end:在整体的结尾处显示分隔线;
middle:在LinearLayout中的每两个组件间显示分隔线;
可以合在一起用:middle|end
dividerPadding
RelativeLayout
ConstraintLayout
子view之间的位置设置
当前view的宽高比
拉力
横向宽度占比
比例
奇怪的样式
辅助线
CoordinatorLayout
AppBarLayout
CollapsingToolbarLayout
与AppBarLayout联动
DrawaLayout
菜单方向
左侧菜单
右侧菜单
打开关闭
是否打开
打开左侧
打开右侧
关闭
监听器
view
widget
TextView
占位文字
下划线
解析HTML
超链接
滚动显示scrollbars
阴影Shadow
多样式共存SpannableString
TextSwitcher
文字动画切换
Button
水波纹效果
有界
无界
兼容5.0之前的版本
EditText
禁止输入回车键
单行显示
输入完成后回车键关闭输入法
输入完成之后自动跳到下一个输入框
手动打开输入法或隐藏
输入法遮住了UI
当EditText在Dialog中时,键盘无法显示?
错误提示
RadioButton
自定义选中和未选中样式
去掉默认图标
CheckBox
自定义勾选图标
图标大小
TableLayout
与ViewPager联动
名称
样式
联动
NestedScrollView
FloatingActionButton
基本属性
图标
大小
位置
子选项
TextInputLayout
提示信息
输入内容计数
最大输入数量
密码的可见与不可见
修改默认的密码眼睛
下划线颜色
TextInputEditText
SwipeRefreshLayout
刷新
缺陷
Snackbar
显示
短时间Snackbar.LENGTH_SHORT
长时间Snackbar.LENGTH_LONG
点击才消失Snackbar.LENGTH_INDEFINITE
有虚拟按钮的手机上怎么办
只能显示在底部?
修改样式
ImageView
图片显示模式
保持长宽比
ProgressBar
圆形
旧式
新式
进度条型
旧式
新式
无法体现进度的旧式
基本属性
自定义样式
SeekBar
基本属性
系统样式
旧式
新式1
新式2
自定义样式
事件监听
Spinner
基本用法
动态创建
PopupMenu
使用情景
基本用法
事件监听
动态隐藏部分菜单
PopupWindow
与dialog的区别
基本使用
显示位置
BottomSheets
基本使用
显示高度
事件监听
状态
隐藏状态STATE_HIDDEN
折叠关闭状态STATE_COLLAPSED
拖拽状态STATE_DRAGGING
拖拽松开到达终点之前STATE_SETTLING
完全展开STATE_EXPANDED
BottomSheetDialog
基本使用
为什么用它?
点击空白区域不关闭
BottomSheetDialogFragment
基本使用
显示
RemoteViews
Containers
RadioGroup
ListView
下拉刷新
上拉加载更多
滑动时不加载数据
RecyclerView与ListView(缓存原理,区别联系,优缺点)
RecyclerView
自定义LayoutManager
瀑布流
上拉加载更多
下拉刷新
滑动时不加载数据
GridView
作用
行列相关设置
ViewPager
页面缓存数量
Fragment懒加载
两种Adapter的区别
FragmentPagerAdapter
FragmentStatePagerAdapter
ExpandableListView
ScrollView
内存优化,可见部分与不可见部分
CardView
圆角
阴影
背景颜色
其他属性
Date&Time
DatePicker
基本使用
日历模式
下拉选择模式
TimePicker
基本使用
时钟模式
下拉选择模式
dialog
自定义样式
setView与setContentView?
自定义样式的宽度与预期不符?
自定义Style
自底部滑出
系统自带的dialog
旧版黑
旧版白
新版白
Notification
基本使用
优先级
滑动删除?
更新通知
删除通知
点击打开Activity
长文本模式
大图模式
进度条模式
音乐播放器模式
自定义样式RemoteViews
CustomView
layout
measure
draw
优化绘制速度
定义控件参数
配合style获取参数
枚举
对枚举的替代?
resource资源类型
事件拦截分发
滑动冲突
外部控制法
内部控制法
事件拦截
Anim
视图动画ViewAnimation
补间动画TweenAnimation
alpha
scale
translate
rotate
公共属性
Interpolators
如何使用
逐帧动画FrameAnimation
AnimationList
构建方式
如何使用
属性动画PropertyAnimation
ValueAnimator
基本使用
作用范围
ofInt
ofFloat
ofArgb
ofObject
重复播放
ObjectAnimator
基本使用
常用的动画属性
ViewPropertyAnimator
使用方式
使用范围
事件监听
withStartAction
EndAction
AnimatorSet
依次执行
同时执行
顺序设置骚操作
PropertyValuesHolder
基本用法
TypeEvaluator
基本使用
基础示例
Keyframe
基本用法
监听事件
属性动画和视图动画的区别
弹性动画(手指离开屏幕之后继续滑动)
Layout内部随手指滑动而变形
Resource
assets
AssetManager
res
anim
animator
color
drawable
shape
圆角corners
渐变gradient
线性渐变linear
圆形渐变radial
扫描渐变sweep
内边距padding
size
填充色solid
描边stroke
selector
子类item
按下state_pressed
焦点state_focused
光标悬停state_hovered
选中state_selected
能否被选择state_checkable
被选择state_checked
state_enabled
激活state_activated
前台state_window_focused
layer-list
层叠示例
layout
版本兼容v21
tools:context="com.xxx.MainActivity"
menu
raw
values
arrays
attrs
bools
colors
string
占位符
使用方式
字符串
整数
小数
常用html语法
链接<a>
斜体<i>
粗体<b>
删除线<s>
下划线<u>
style
夜间模式,白天模式?
xml
OpenGL?
0 条评论
下一页