[TOC]
原因: 每次都忘记整理的一些东西,知识应该反复的阅读,然后进行消化,如果长期不用,没有这个目录,很难找到自己想要的,或者在复习的时候,看到了,觉得陌生了,可以快速定位到这个位置
如果一个模块比较大的话,就进行重新开一个 页面,进行分离,这样就跟写代码一样,进行分层,进行隔离,有利于后期的阅读
打算分一些栏目:android,java等业余的
凡只要是个事情,都应该慢慢来,不能急功近利
励志语句
天生我才必有用
两年学说话,一生学闭嘴
工欲善其事,必先利其器
窍门有三点:
不要晕着头工作,要抽空多思考思考,多看看书;
看书要看好书,问人要问强人。烂书和烂人都会给你一个错误的概念,误导你;
勤能补拙是良训,一分辛苦一分才;由点即面的想法,一个简简单单的问题,应该多思考,就是一个简单的通信问题,然后去看到它的实现是什么,做的那些通信的额外设置,这才是难点。
自定义view相关
1.计算
经典的自定义view的计算(计算weight下,左右需要padding,然后进行计算)
1 | WindowManager windowManager = (WindowManager) this.getContext().getSystemService(Context.WINDOW_SERVICE); |
####源码系列
1.ButterKnife源码
2.handler原理
solid 最小知识原则
volley库
okhttp
eventbus 怎么跨进程调用的呢
AMS 怎么启动的,生命周期怎么维持的呢
image 缓存
>静态函数,要非常小心,在其他线程调用, 细节编程
>For(;;) {} while(true){} 有什么区别,字节数吗
>答: 根本没什么区别,只是在:
>
>1
2
3
4
>boolean first = true;
>while(first) { //可以用变量来控制
>}
>
>
>
>
>messageQueue 把消息进行了时间排序
>
>生产者和消费者模式
>所有的等待唤醒放在了 C++层
>内存共享
>子线程handler 然后 主线程去获取handler
>
>主内存共享,工作内存独立
>
>messge使用了享元设计模式 减少内存
>
>图片上传应该怎么做?
>明白什么是http, 从而做到http如何上传图片
>使用okhttp和retorfit实现的过程
>
>actvity main线程, 和 main是一个线程吗
>
>Command+Shift+ . 显示隐藏文件
>
>android的activity的生命周期都是handle发消息来进行决定的释放内存经典的案例, 刚刚我发现怎么一直回调,然后发现是回调里面异常了
1 | if (locationCompanyListener != null) { |
glide获取bitmap 和 bitmap压缩
3.java多线程
- OkHttp3(常用API,Martipart文件上传,缓存原理,架构改造)
- 网络请求(同步,异步,配置,重试,取消)
- 数据转换(Gson,Rxjava,泛型)
- 注解处理(注解讲解,泛型,注解处理,架构改造)
- 多线程下载(原理,遇到的问题,线程池,队列机制,架构改造)
- 数据库存取(GreenDao,数据库操作,架构改造)
- 重连与错误处理(注解处理重新连接,处理错误的几种方式)
- Dns(原理,劫持案例,遇到的问题,实现方案,架构改造)
- Http(原理,协议流程,请求头,响应头)
- Https(原理,证书制作,keytool,架构改造)
- Rxjava(原理,案例,架构改造)
- 设计模式(动态代理模式,单例模式,工厂模式,构建者模式,策略模式)
- 网络客户端(httpRequest,httpHeader,httpResponse,架构改造 )
4.自定义retrofit,封装网络请求
一些反常的技术,一直以为对的,现在发现是错误的
1。双锁的单例,2.这个dexClassloader和PathClassloader的一些问题理解