zhangmingzhu

Results 29 comments of zhangmingzhu

这个需要分情况来说。 FrameLayout是一个堆叠布局,LinearLayout是两个方向上的排列布局,RelativeLayout是根据其他控件来确定位置。 画布局最重要的是减少层级嵌套。 简单的布局,FrameLayout>LinearLayout>RelativeLayout 复杂的布局:与上面相反

把一件事委托给其他人来做。如kotlin中的by var p: String by Delegate(),get和set委托给Delegate的getValue()方法和setValue()方法

1. 创建状态 2. 运行状态 3. 阻塞状态 4. 等待状态 5. 终止状态

要创建Handler必须有looper,先运行looper.prepare

一般主要是屏幕适配有挺多适配方式,多图,svg,今日头条适配

1.在Application里面不要做太多耗时操作

看了别人家的解答之前:我好像没有优化过,就这样用 看了别人家的解答之后:分页加载,不要重复newAdapter,点击事件设置在ViewHolder中

无论是拷贝基本数据类型还是引用类型,只要没有创建一个新的对象就成为浅拷贝,如果创建了一个对象并且复制了其内的成员变量成为深拷贝

HandlerThread继承Thread是一个线程类。 我们可以使用HandlerThread处理本地IO读写操作(数据库,文件),因为本地IO操作大多数的耗时属于毫秒级别,对于单线程 + 异步队列的形式 不会产生较大的阻塞

1. 单一职责(Single Responsibility Principle):一个类只做一件事,可读性提高 2. 里式替换原则( Liskov Substitution Principle):依赖继承和多态,就是能用父类的地方就可以用子类替换,用子类的但不能用父类。 3. 依赖倒置原则(Dependence Inversion Principle):依赖抽象,就是模块之间的依赖通过抽象发生。 4. 开闭原则(Open-Close Principle):不管是实体类,模块还是函数都应该遵循对扩展开放对修改关闭。还是要依赖封装和继承 5. 接口隔离原则(Interface Segregation Principle):一个类对另一个类的依赖应该建立在最小的接口上,如果接口太大,我们需要把它分割成一些更细小的接口,也是为了降低耦合性 6. 迪米特原则(Law of Demeter ):也称最少知识原则,也就是说一个类应该对自己需要耦合或者调用的类知道的最少,只需知道该方法即可,实现细节不必知道。