alias as="adb shell dumpsys activity activities | grep mResumedActivity"
UncaughtExceptionHandler : ANR、crash
https://www.bilibili.com/video/BV1YA411T76k?p=1 bilibili数据结构学习
链接:https://pan.baidu.com/s/1W2Y9-Ob-lovleHT5hrvOgQ
提取码:wbhp
成功经理人江苏邮电课程-余世维
分享一个十年前的管理课程视频,很多观念和方法现在仍然值得思考和借鉴
git push --set-upstream origin master
ASpectJ
Android 插件开发 这样搜索可以学习到XPosed的框架
架构师还要学习的东西:
1.jetpack https://space.bilibili.com/327536224/video jekpack的讲解
https://www.bilibili.com/video/BV1KE411t79D jekpact的padding分页问题
https://www.bilibili.com/video/BV1Dk4y1C7mm?from=search&seid=7562526675984957453 : 这个视频讲了MVP的架构如何使用,并且对lifecycle讲解很好
https://www.bilibili.com/video/BV1M7411W73X?p=3 这个也可以作为架构学习
2.https://www.bilibili.com/video/BV1kV41127Nx?from=search&seid=17925493274752394614 :热修复原理视频讲解
3.https://coding.imooc.com/learn/list/157.html 常用三方框架的原理
https://www.bilibili.com/video/BV19D4y1D7rt AOP万能动态权限申请框架
https://www.bilibili.com/video/BV1as411a7dS?from=search&seid=14936439902075540624 微信抢红包
https://www.bilibili.com/video/BV1gp4y1p7JX?from=search&seid=11194820485871316329 : 这个是5个小时插件化学习,需要学习
https://space.bilibili.com/474380680/video?tid=0&page=5&keyword=&order=pubdate 这个作为架构师学习的东西,值得学习
面试宝典:
https://www.bilibili.com/video/BV1Y54y1p7bJ https://search.bilibili.com/all?keyword=Android%E9%9D%A2%E8%AF%95&order=totalrank&duration=4&tids_1=0
https://www.bilibili.com/video/BV1Gv411r7R5?p=9
https://www.bilibili.com/video/BV19f4y1r7NM?p=10&spm_id_from=pageDriver 还要接着学习(明天学习这个内容)
https://search.bilibili.com/all?keyword=Android%20ASM&from_source=nav_search_new ASM插件化学习(明天学习)
https://space.bilibili.com/668749972/channel/detail?cid=167741 硬核视频
//这两个视频需要好好看看
https://space.bilibili.com/544650554 阿里老师的视频全集
https://space.bilibili.com/598568989/video?tid=0&page=4&keyword=&order=pubdate 耕田的码牛
https://space.bilibili.com/668749972?spm_id_from=333.788.b_765f7570696e666f.1 享学课堂
手写APT的ARouter的框架
https://www.bilibili.com/video/BV1LA411J7x4?p=4
https://www.bilibili.com/video/BV1wz4y197XD?from=search&seid=1914021444026796006
2.IOC框架
3.组件化
4.性能优化
5.Kotlin的语言学习
https://www.bilibili.com/video/BV1rE411k7Xe?from=search&seid=1068319518709523015
https://www.bilibili.com/video/BV1py4y1B7t8?from=search&seid=2311947604946137820
https://www.bilibili.com/video/BV1st4y1k7VK?from=search&seid=15067278915290421821
https://www.bilibili.com/video/BV1TT4y1K7Gd?from=search&seid=14311198755771395048
JavaPoet 库需要学习,看看是做什么的
————————————————————————————————————————————————————————————————
已学习:
https://www.bilibili.com/video/BV1EK4y147ra?p=4&spm_id_from=pageDriver : view的原理讲解以及子view大小的确定,item度量高度没有效果
https://www.bilibili.com/video/BV1st411N7cC?p=5 Android进阶课程/Android性能优化/安卓开发/安卓性能/Android/安卓
https://www.bilibili.com/video/BV1yy4y1h7x1?from=search&seid=5074234001942571806 : app加固和项目实战
https://www.bilibili.com/video/BV1vp4y1s7LJ?p=4 AMS的插件学习
https://www.bilibili.com/video/BV1kV41127Nx?p=17 so和资源文件的修复
https://www.bilibili.com/video/BV15k4y1k7WK?from=search&seid=16355020620462501532 JMM 数据原子操作
https://docs.corp.kuaishou.com/d/home/fcABurFTBGF_xG2iy9uv7oZug 快手内部Android内存优化分享
https://github.com/chenkunhuang1/Blog 和牛逼的博客
牛逼的文档:
https://www.androidweekly.io/ Android 每日周报
AS 快捷键的使用 :
重命名 : Shrit + F6
字母大小写转换 : Command + Shirt + U
代码实现 : Command + option + B
类的调用层次结构 : control + H
方法调用层级关系 : control + option + H
Gradle 版本号的修改 :
build.gradle ————> 这里是修改使用gradle 的版本 classpath 'com.android.tools.build:gradle:3.5.3'
gradle.wrapper.properties ———>这里是修改Gradle 的zip的版本号的位置 distributionUrl=https://services.gradle.org/distributions/gradle-5.4.1-all.zip
快速开启快手的应用
adb shell am start -n com.smile.gifmaker/com.yxcorp.gifshow.HomeActivity
adb shell am start -W -n packagename/packageName.MainActivity获取启动时间
拉下一个新的分支可以使用这种方法
git merge 分支名字
切换分支:
git checkout -b develop/DEV_6.11.2 origin/develop/DEV_6.11.2
//提交代码
git push -u origin HEAD: (ck_home_guide) 替换的分支名字
//撤回上一次提交的
git revert a1f1638b088749fd4e5266498f08bbde256b4567(这个是头指针)
git push -u origin HEAD:zsw_imsi(自己切换的分支)
//搜索本地的关键字
grep 关键字 . -srn : 所有代码包含这个关键字
// 当前目录下搜索这个文件的位置
find . -name CallFeaturesSettingsTree.java(文件名字)
//merge;拉取分支
git merge T378780/post-multi-screen(要拉本地的分支) 自己本地的分支
git merge origin T378780/post-multi-screen:self-branch
Matrix ApkChecker 这个可以查看一个包的大小
alias xx = "cd ~/ksproject/gifshow-android/"
alias oo = "open . /Users/zhangshunwei/ksproject/gifshow-android/ks-applications/kwai-android/build/outputs"
alias ss = "java -jar /Users/zhangshunwei/Documents/matrix-apk-canary-0.5.1.jar --config /Users/zhangshunwei/Documents/config.json"
//查看是否在栈顶
alias as="adb shell dumpsys activity activities | grep mResumedActivity"
adb shell wm density 320
adb shell wm size 2200x2480 这个命令可以模拟那个音箱设备
adb shell wm size reset adb shell wm density reset 这是恢复命令
adb shell am start -W -n com.kwai.watch.magic/com.kwai.video.westerodemo.WatchActivity 查看应用启动的时长
往手机里面推送数据
adb push
从手机里面拉取数据
adb pull
gradle.properties ———>配置编译环境的大小
1. adb shell
2. top | grep PID
https://designgitbook.test.gifshow.com/widget/android/dialog/dialog.html. 弹窗样式
https://git.corp.kuaishou.com/yangyuanxi/gifshow-android/-/merge_requests/10290/diffs push的开发文档
Gradle编译对应的网址
https://blog.csdn.net/u013247461/article/details/103742718/
—————————————平时学习的知识点————————————————
- cancelEventDelivery() : 取消事件传递,事件取消仅限于用在 ThreadMode.PostThread 模式下的事件处理方法
- Android sheme 学习 : https://www.cnblogs.com/dame/p/8085907.html
https://www.jianshu.com/p/f9f9f0aa0f86
sheme多个参数的拼接 String url = "zhangshunwei://sucess/kuaishou?id=999&shun=1111";
3. 学习Mock新的数据
4. Retrofit 网络请求参数注解Retrofit网络请求参数注解
https://blog.csdn.net/guohaosir/article/details/78942485
案例学习 : https://www.jianshu.com/p/73ebc8036dc3
https://blog.51cto.com/13952501/2338316. RXJava比较完整的介绍
https://mp.weixin.qq.com/s/UAEgdC2EtqSpEqvog0aoZQ. 基础的RxJava学习过程
5. 正确写法:
<ViewStub
android:layout_width="match_parent"
android:layout_height="30dp"
android:id="@+id/viewStub"
android:layout="@layout/linear_inflated"/>
```
错误写法:
<ViewStub
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/viewStub"
android:layout="@layout/linear_inflated"/>
ViewStub使用wrap_content设置layout_height,inflate出来的view所占的实际高度并非inflate的布局文件设置的高度,可能要大于它
6.setOnInflateListener : <view-stub>控件点击事件
7.SlidingPaneLayout : 在它的布局中有两个子控件,第一个子控件作为侧滑菜单,可以从左边滑出,第二个子控件为固定内容部分(需要学习)
8.Generate ——> JsonFormat : 这个可以转换成Json的对象
9.LottieAnimationView Lottie的框架使用
10.自定义控件的学习
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false">
<shape>
<stroke android:width="@dimen/button_stroke_width" android:color="@color/p_color_white_pressed" />
<solid android:color="@android:color/transparent"/>
<corners android:radius="@dimen/button_radius_middle" />
</shape>
</item>
<item android:state_pressed="true">
<shape>
<stroke android:width="@dimen/button_stroke_width" android:color="@color/p_color_white_pressed" />
<solid android:color="@android:color/transparent"/>
<corners android:radius="@dimen/button_radius_middle" />
</shape>
</item>
<item android:drawable="@drawable/background_button_whiteborder_small_normal" />
</selector>
可以点击时候让图片变为透明
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<bitmap android:alpha="@integer/image_button_pressed_alpha_f" android:dither="true" android:src="@drawable/live_icon_gift_black_xl_normal" />
</item>
<item android:drawable="@drawable/live_icon_gift_black_xl_normal"/>
</selector>
11.自定义style的风格
<!--背景颜色及和透明程度-->
<item name="android:windowBackground">@android:color/transparent</item>
<!--是否去除标题 -->
<item name="android:windowNoTitle">true</item>
<!--是否去除边框-->
<item name="android:windowFrame">@null</item>
<!--是否浮现在activity之上-->
<item name="android:windowIsFloating">true</item>
<!--是否模糊-->
<item name="android:backgroundDimEnabled">false</item>
<!--允许activity的transition转场动画-->
<item name="android:windowActivityTransitions">true</item>
windowTranslucentStatus : 此时该页面可以拉伸到顶部状态栏,并且定义顶部状态栏透明
true : 表明状态栏不能修改
false: 表明状态栏能修改
windowTranslucentNavigation : 此时页面的导航栏设置为透明颜色
true : 表明底部导航栏不能修改
false : 表明底部导航栏可以修改
fitsSystemWindows : 系统会为该view设置paddingTop,距离顶部一定距离
Builder、Strategy、AbstractFactory、Wrapper、Observable/Observer、Delegate : 常见设计者模式
ViewPager多种使用
https://www.iteye.com/blog/gqdy365-2114968
快手TV版开发总结:https://www.yuque.com/docs/share/becdab17-3a74-4aa4-a798-6d1bde08ff95?#
Android TV开发焦点移动源码分析:https://www.yuque.com/docs/share/c798aad3-6875-4112-a70a-09338ad20de6?#
SurfaceView原理分析: https://www.yuque.com/docs/share/45d6e11f-5d36-41d3-9cd5-2c49834d6627?#
坑爹的MultiDex:https://www.yuque.com/docs/share/8e3b7f5b-df6a-4124-b901-6588a33b3d27?#
——————————————————————————面试大纲————————————————————————————
class ConsumerProducer{
public synchronized void put(){
while (list.size() == 10){
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
打印线程
notify();
}
public synchronized void take(){
while (list.size() == 0){
try {
wait();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
打印线程
notify();
}
}
许昊的github的网址东西
https://github.com/xuuhaoo/Android-DefenseCrash
View事件的总结:
dispatchTouchEvent的总结:
ViewGrop: 在down改为true : ViewGrop down、move、up三个事件都可以收到,从Activity传递给ViewGrop的,view什么事件都不能接收到
在move改为true: ViewGrop可以接收到down事件,view也可以接收到down事件,其余什么事件都接受不到,由Activity dispatchTouchEvent和onTouchEvent自己处理
在up改为true : ViewGroup可以接收到down事件,view也可以接收到down事件,其余什么都接受不到,由Activity dispatchTouchEvent和onTouchEvent自己处理
onInterceptTouchEvent的总结:
ViewGroup: 在down改为true : ViewGrop可以接收到down事件,view什么事件都接受不到,由Activity dispatchTouchEvent和onTouchEvent自己处理
在up改为true : ViewGrop可以接收到down事件,view也可以接收到down事件,由Activity dispatchTouchEvent和onTouchEvent自己处理
在move改为true : ViewGrop可以接收到down事件,view也可以接收到down事件,由Activity dispatchTouchEvent和onTouchEvent自己处理
onTouchEvent的总结:
ViewGrop: 在down改为true : ViewGrop down、move、up三个事件都可以收到,从Activity传递给ViewGrop的,view可以收到down事件,
在up改为true : ViewGrop可以接收到down事件,view也可以接收到down事件,由Activity dispatchTouchEvent和onTouchEvent自己处理
在move改为true : ViewGrop可以接收到down事件,view也可以接收到down事件,由Activity dispatchTouchEvent和onTouchEvent自己处理
dispatchTouchEvent的总结:
View: 在down改为true : ViewGrop down、move、up三个事件都可以收到,view这个三个事件也都可以收到
在move改为true: ViewGrop可以接收到down事件,view也可以接收到down事件,其余什么事件都接受不到,由Activity dispatchTouchEvent和onTouchEvent自己处理
在up改为true : ViewGroup可以接收到down事件,view也可以接收到down事件,其余什么都接受不到,由Activity dispatchTouchEvent和onTouchEvent自己处理
onTouchEvent的总结:
View: 在down改为true : ViewGrop down、move、up三个事件都可以收到,view这个三个事件也都可以收到
在up改为true : ViewGrop可以接收到down事件,view也可以接收到down事件,由Activity dispatchTouchEvent和onTouchEvent自己处理
在move改为true : ViewGrop可以接收到down事件,view也可以接收到down事件,由Activity dispatchTouchEvent和onTouchEvent自己处理
https://interview.nowcoder.com/interview/10798716/interviewee?code=hfdoZyHs
转租:随时可以入住
龙兴园西区,业主直租,3600/月,开间房间,有厨房和独立卫生间,30平左右,你只需要交电费、水费、燃气费,其余都是业主负责。
走路到公司20分钟左右,骑车10分钟左右,房补范围内。出门有超市和公交站
热observers
冷observers
ss代理软件、
线程的优化:线程卡扣
ASM : Json —>task
图片加载成功率需要学习一下