日常学习东西

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://androidperformance.com/2018/05/07/Android-performance-optimization-skills-and-tools/#%E5%85%B3%E4%BA%8E%E6%88%91-amp-amp-%E5%8D%9A%E5%AE%A2  Android性能优化的网址

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/

—————————————平时学习的知识点————————————————

  1. cancelEventDelivery() : 取消事件传递,事件取消仅限于用在 ThreadMode.PostThread 模式下的事件处理方法
  2. 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> 

       <!--允许activitytransition转场动画-->

      <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

图片加载成功率需要学习一下

原文地址:https://www.cnblogs.com/liunx1109/p/14699518.html