旧书不厌百回读,熟读深思子自知
为了降低选择困难,避免引入同质链接
AOP
- 发表自2014年的一篇关于AspectJ的文章,出自 Fernando之手,这篇文章有中文翻译。讲解了切面的一些基本概念,如Joint Point(切入点),Advice(通知)等,同时还有个案例实现。文中称其有对JakeWharton的hugo项目进行了借鉴。其他的AOP技术,可以参看Cglib,asm,Aspect,JDK原生的代理模式这四种有哪些差别,原理各是什么?。沪江开源了他们的支持AspectJ的gradle插件。gradle_plugin_android_aspectjx,但是这个插件目前的issue中还有不少问题。
- Spring AOP 实现原理与 CGLIB 应用,IBM出产的文章,质量还是很高的。AspectJ实现的代码增强,和包装模式很像!
Binder
- 不知道是不是如留言所说,universus这个账号的密码找不到了,因此整个博客就只有四篇文章,而这篇Android Bander设计与实现 - 设计篇,虽然标题写错了Binder,但是依然在这十年间获得了13万阅读量。堪称一代神文。
组件化
图片
- 图片加载顺序 Android 性能优化(五)之细说 Bitmap
- 如果手机是xxhdpi,但是xxhdpi中没有图,那么优先加载xxxhdpi-->nodpi-->xhdpi-->hdpi...-->drawable
- (width(屏幕密度/所在文件夹密度))(height(屏幕密度/所在文件夹密度))图片所占字节== bitmap位图在内存中的大小。如果放在 drawable 目录,与放在 mdpi 目录相同
- 上面是通过decodeResource()。如果通过decodeFile()加载sd卡中的,以及哪怕是用decodeResouce来加载nodpi文件夹下的,都会默认屏幕密度与所在文件夹密度之比为1来处理。
设计模式
-
23种设计模式,6大设计原则。每一个知识点都可以长篇累牍,让读者眼花缭乱。c语言中文网深入浅出,言简意赅,十分方便复习。
-
工厂:BitmapFactory, MediaPlayer,ArrayList则是工厂加迭代
-
原型:Intent。Intent中的clone(),直接返回了new Intent(this); 注意深拷贝和浅拷贝
-
单例:LayoutInflater,Application
-
构建:AlertDialog,Glide。内部类封装参数
-
责任链:链表形成在client端。okhttp,时间拦截,有序广播。和状态模式的区别。最重要的一点是需要获得下一级的引用
-
策略模式:AnimationInterpolator
-
接口隔离:onClickListener, onLongClickListener
-
依赖倒置:策略模式,工厂延迟到子类。
-
单一职责:策略的每一个实现类。Log
-
里式替换:策略模式
-
开闭:
-
最少知识:外观模式
Android Studio快捷键
- 无论是在编码,还是在阅读源码阶段,快捷键都至关重要。编码时的快捷键虽然比不上vi的好用,但总比没有强一点。官网有配套的快捷键列表。当然直接在AS中查看KeyMap映射表也是可以的。关于AS的使用,官网才是王道。如果想要中文直观一点的,那就用这个尚不完善的《Android Studio使用艺术》吧
WEB前端
- 之前在学习Vue时,使用了该[wangdoc文档]来学习JS(https://wangdoc.com/javascript/),里面讲了很多Document,以及原型函数等,方便查询。
- 如果要复习html和css,可以来MDN
网友评论