一个长期的整理笔记(目录)

[TOC]

原因: 每次都忘记整理的一些东西,知识应该反复的阅读,然后进行消化,如果长期不用,没有这个目录,很难找到自己想要的,或者在复习的时候,看到了,觉得陌生了,可以快速定位到这个位置

如果一个模块比较大的话,就进行重新开一个 页面,进行分离,这样就跟写代码一样,进行分层,进行隔离,有利于后期的阅读

打算分一些栏目:android,java等业余的

凡只要是个事情,都应该慢慢来,不能急功近利

励志语句

  1. 天生我才必有用

  2. 两年学说话,一生学闭嘴

  3. 工欲善其事,必先利其器

  4. 窍门有三点:

    不要晕着头工作,要抽空多思考思考,多看看书;
    看书要看好书,问人要问强人。烂书和烂人都会给你一个错误的概念,误导你;
    勤能补拙是良训,一分辛苦一分才;

  5. 由点即面的想法,一个简简单单的问题,应该多思考,就是一个简单的通信问题,然后去看到它的实现是什么,做的那些通信的额外设置,这才是难点。

自定义view相关

1.计算
经典的自定义view的计算(计算weight下,左右需要padding,然后进行计算)
1
2
3
4
5
6
WindowManager windowManager = (WindowManager) this.getContext().getSystemService(Context.WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
int width = display.getWidth() / 8 - UIUtils.dip2px(8);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(llContainorTemp.getLayoutParams());
lp.setMargins(width, 0, width, 0);
llContainorTemp.setLayoutParams(lp);

####源码系列

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
2
3
4
5
6
7
8
if (locationCompanyListener != null) {
try{
//防止onAddress出现异常了,仍然可以释放locationCompanyListener
locationCompanyListener.onAddress(amapLocation);
}finally {
removeLocationCompanyListener();
}
}

glide获取bitmap 和 bitmap压缩

3.java多线程
  1. OkHttp3(常用API,Martipart文件上传,缓存原理,架构改造)
  2. 网络请求(同步,异步,配置,重试,取消)
  3. 数据转换(Gson,Rxjava,泛型)
  4. 注解处理(注解讲解,泛型,注解处理,架构改造)
  5. 多线程下载(原理,遇到的问题,线程池,队列机制,架构改造)
  6. 数据库存取(GreenDao,数据库操作,架构改造)
  7. 重连与错误处理(注解处理重新连接,处理错误的几种方式)
  8. Dns(原理,劫持案例,遇到的问题,实现方案,架构改造)
  9. Http(原理,协议流程,请求头,响应头)
  10. Https(原理,证书制作,keytool,架构改造)
  11. Rxjava(原理,案例,架构改造)
  12. 设计模式(动态代理模式,单例模式,工厂模式,构建者模式,策略模式)
  13. 网络客户端(httpRequest,httpHeader,httpResponse,架构改造 )
4.自定义retrofit,封装网络请求

一些反常的技术,一直以为对的,现在发现是错误的

1。双锁的单例,2.这个dexClassloader和PathClassloader的一些问题理解