如何成为Android高级架构师!
架构师必须具备抽象思维和分析的能力,这是你进行系统分析和系统分解的基本素质。只有具备这样的能力,架构师才能看清系统的整体,掌控全局,这也是架构师大局观的形成基础。 你如何具备这种能力呢?一是来自于经验,二是来自于学习。
架构师不仅要具备在问题领域上的经验,也需要具备在软件工程领域内的经验。也就是说,架构师必须能够准确得理解需求,然后用软件工程的思想,把需求转化和分解成可用计算机语言实现的程度。经验的积累是需要一个时间过程的,这个过程谁也帮不了你,是需要你去经历的。
但是,如果你有意识地去培养,不断吸取前人的经验的话,还是可以缩短这个周期的。这也是我整理架构师进阶此系列的始动力之一。
成为Android架构师必备知识技能
对应导图的学习笔记(由阿里P8大牛手写,我负责整理成PDF笔记)
部分内容展示
《设计思想解读开源框架》
- 目录
- 热修复设计
- 插件化框架设计
《360°全方面性能优化》
- 设计思想与代码质量优化
- 程序性能优化
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
3、能够使用权重的地方尽量使用权重(android:layout_weight)
4、如果是纯色背景,尽量使用android的shape 自定义。
5、如果需要在特定分辨率下适配,可以在res目录上新建layout-HxW.xml的文件夹。比如要适配1080*1800的屏幕(魅族MX3采用此分辨率)则新建layout-1800x1080.xml的文件夹,然后在下面定义布局。Android系统会优先查找分辨率相同的布局,如果不存在则换使用默认的layout下的布局。
6、关于长宽设置最好是3的倍数,最好是偶数。
二、基本概念
px : 英文单词pixel的缩写,意为像素,屏幕上的点。我们通常所说的分辨率如480X800就是指的像素。像素是最小的独立显示单位,px均为整数,不会出现0.5px的情况。
in : 英寸,是屏幕的物理尺寸,手机屏幕大小如1.6英寸、1.9英寸、2.2英寸,都是指的对角线的长度。
dpi:Dots Per Inch的缩写, 每英寸点数,即每英寸包含像素个数。如320X480分辨率宽2英寸,高3英寸, 每英寸包含的像素点的数量为320/2=160dpi(横向)或480/3=160dpi(纵向),160就是这部手机的dpi
density : 屏幕密度,density和dpi的关系为 density = dpi/160。
**dp **: 即dip,设备独立像素,device independent pixels的缩写。dp = density * px 。
**sp **: 和dp很类似,一般用来设置字体大小,和dp的区别是它可以根据用户的字体大小偏好来缩放。
四种屏幕尺寸分类::small, normal, large, and xlarge
四种密度分类:ldpi (low), mdpi (medium), hdpi (high), and xhdpi (extra high)(普通屏幕:ldpi是120,mdpi是160,hdpi是240,xhdpi是320)
三、如何做到自适应屏幕大小呢?
1)界面布局方面
需要根据物理尺寸的大小准备5套布局,layout(放一些通用布局xml文件,比如界面中顶部和底部的布局,不会随着屏幕大小变化,类似windos窗口的title bar),layout-small(屏幕尺寸小于3英寸左右的布局),layout-normal(屏幕尺寸小于4.5英寸左右),layout-large(4英寸-7英寸之间),layout-xlarge(7-10英寸之间)
2)图片资源方面
需要根据dpi值准备5套图片资源,drawable,drawalbe-ldpi,drawable-mdpi,drawable-hdpi,drawable-xhdpi
Android有个自动匹配机制去选择对应的布局和图片资源
四、获取屏幕分辨率信息的方法:
第一种:
DisplayMetrics metrics = new DisplayMetrics();
Display display = activity.getWindowManager().getDefaultDisplay();
display.getMetrics(metrics);
int width =metrics .widthPixels; // 屏幕宽度(像素)
int height =metrics .heightPixels; // 屏幕高度(像素)
float density =metrics .density; // 屏幕密度(0.75 / 1.0 / 1.5)
int densityDpi =metrics .densityDpi; // 屏幕密度DPI(120 / 160 / 240)
第二种:
Display mDisplay = getWindowManager().getDefaultDisplay();
int W = mDisplay.getWidth();
int H = mDisplay.getHeight();
五、其它说明
1、在xhdpi里面放一张120px*120px的图片,图片使用wrap_content设置长宽与设置长宽为60dp效果一样。只提供一套图片时,目前xhdpi是最好的选择,主分辨率是720P。
2、切图方面:
- 长宽最好是3的倍数(根据android的推荐logo图标的大小是48(mdpi),72(hdpi),96(xhdpi)得出的最小公约数)。
- 长宽最好是偶数。因为奇数在进行等比压缩的时候可能有问题。
- 根据上面两条,如果长宽是6的倍数最理想。
- 如果可以拉伸而不改变设计意图的情况下,比如纯色背景,则使用android的9path工具制作成.9的图片。
3、屏幕密度、像素和实际大小的比例关系。他们的关系是2:3,于是你需要按照1.5倍比例制作图标,比如你在480800的设计稿上切下来一个2020像素的图,那么你就需要制作一个等比放大成3030像素的图标,这样同一个图标在480800的屏幕和7201280的屏幕上显示的实际大小才一样。同理,如果你需要适配xxhdpi则需要在2020的基础上制作一个等比放大成40*40像素的图标。
4、关于图标的目录,480*800切下来的图我们放在drawable-hdpi目录下,按照2:3放大的图标放在drawable-xhdpi目录下,按照2倍放大的图标放在drawable-xxhdpi目录下。
android会根据手机的密度优先查找对应的目录的资源,如果没有这个文件夹,则查找与其最接近的对应密度文件夹。
5、demins的使用。demins在value文件夹下,相关配置可以在values-hpdi,values-mdpi,values-ldpi三种文件夹中的dimens.xml文件进行设置。
这是一份屏幕适配解决方案大纲,希望对小伙伴们有一定的帮助。
尾声
以薪资待遇为基础,以发展为最终目标,要在高薪资的地方,谋求最好的发展!
下面是有几位Android行业大佬对应上方技术点整理的一些进阶资料。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
获取](https://bbs.csdn.net/topics/618156601)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!