移动端界面建设 第1篇
() 就是发起网络请求,看一下CoroutineDataFetcher
startFetchData(),就是根据传入的缓存参数,去找到对应的缓存策略发起Http请求的方法,很简单看一看就好
通过上面分析我们可以知道,你新写一个注解,其实就只需要编写两个类就好了
一个继承 RepositoryMethod
的参数收集器
一个继承 AbsFuncBuilder
的方法具体内容输出器
所以我们直接看到AutoFlowApi的这两个类
移动端界面建设 第2篇
使用特殊样式在移动端能够很方便的解决技术问题。
移动端布局和我们学习的PC端有所区别:
1.单独制作移动端页面(主流) 流式布局
(百分比布局)、flex弹性布局
(强烈推荐)、less+rem+媒体查询布局
、混合布局
2.响应式页面兼容移动端(其次) 媒体查询
、bootstarp
为了保证盒子在合理的范围之内设置最大、最小宽度(高度)
max-width: 980px;
max-width: 320px;
1.技术选型
方案:我们采取单独制作移动页面方案 技术:布局采用流式布局
2.搭建相关文件夹结构
3.设置视口标签以及引入初始化样式
4.常用初始化样式
二倍精灵图做法:
在firework
里面把精灵图等比例缩放为原来的一半,之后根据大小测坐标。
代码里面background-size
也要写: 精灵图原来宽度的一半。
图片格式:
DPG
,京东自主研发的dpg
图片压缩技术,可节省用户近50%的浏览流量,极大的提升了用户的网页打开速度。压缩后的图片和webbp
清晰度对比没有差距。
webp
,谷歌开发的一种加快图片加载速度的图片格式,能节省大量的服务器宽带资源和数据空间。
flex
是flexible Box
的缩写,意为_弹性布局
_,就是通过给父盒子添加flex属性
,来控制子盒子的位置和排序方式 。
布局原理:
体验:
1.设置主轴方向
flex-direction: row | column| row-reverse | colum-reverse
row
: 默认的主轴方向,为x轴
column
: 默认的侧轴方向
row-reverse
: 翻转
column-reverse
: 翻转
2.设置主轴上项目的排列方式
justify-content: flex-start | flex-end | center | space-around | space-between
3.让项目换行
flex-wrap: wrap | nowrap
4.设置侧轴上项目的排列方式
align-item: flex-start | flex-end | center | stretch
align-content: flex-start | flex-end | center | spance-around | space-between | stretch
和align-content区别
flex-flow: row wrap
1.定义项目分配剩余空间
flex: 份数;
2.控制某个项目在侧轴上的排列方式
align-self: flex-start | flex-end | center | stretch
3.定义项目的排列方式
order: 数值;
1.背景线性渐变
backgorund: -webkit-linear-gradient(起始方向,颜色1,颜色2,...)
背景线性渐变必须加私有前缀
起始方向可以是方位名词 度数,如果省略就是top
2.文本线性渐变
rem
(root em
)是一个相对单位 ,类似于em
。em
是相对父元素字体大小来说的。rem
是相对于html元素的字体大小来说的。比如,根元素(html)设置font-size=12px
;非根元素设置width:2rem
;则换成px就是24px
;
rem
的优点: 可以通过修改html里面的文字大小来改变页面中元素的大小,进行整体控制。
思考: 若html { font-size:12px}
,写死了,没办法实现动态变化,我们怎么根据不同设备的屏幕尺寸的宽度去修改html里面的文字大小呢?
使用媒体查询就能根据不同设备的屏幕尺寸修改html的文字大小。
1.媒体查询语法
@media mediatype and|not|only (media feature) { CSS-Code };
mediatype
查询类型:
将不同的终端设备划分成不同的类型,称为媒体类型
mediatype:
all
(所有设备) | print
(打印和打印预览) | screen
(电脑屏幕;平板电脑;智能手机等)
关键字
关键字可以将媒体类型或多个媒体特性连接到一起作为媒体查询的条件
and
: 可以将多个媒体特性连接到一起,相当于_且_。
not
: 排除某个媒体类型,相当于_非_。
only
: 指定某个特定的媒体类型,可以省略。
媒体特性
每种媒体类型都具有各自不同的特性,根据不同媒体类型的媒体特性设置不同的展示风格。
width
: 定义输出设备中页面可见区域的宽度
min-width
: 定义输出设备中页面最小可见区域的宽度
max-width
: 定义输出设备中页面最大可见区域的宽度
定义媒体查询:
有了媒体查询+rem
可以很方便控制盒子在不同设备宽度里边让盒子实现动态变化
:
引入资源(针对不同的屏幕尺寸调用不同的css文件):
CSS的弊端:
解决CSS弊端:
less
可以解决CSS弊端。
less是一门CSS扩展语言,也称为CSS预处理器
。作为CSS的一种形式扩展,它没有减少CSS的功能,而是在现有的CSS语法上,为CSS加入程序式语言的特性,它扩展了CSS的动态特性。
less中文网址:
常见的CSS预处理器 : Sass
,Less
,Stylus
的基本使用
新建后缀名为less
的文件,在这个文件里书写less语句
。
@变量命名:值;
我们需要把我们的less文件,编译生成为css文件,这样我们的html才能使用。
vscode中下载Easy LESS插件
用来把less文件编译为css文件。保存less文件后,自动生成css文件。
Less运算中有+、-、*、/
。 + - *
直接用就好,除法运算时需要用括号括起来才生效 。
两个数参与运算,如果只有一个数有单位,则最后的结果就是这个单位:
两个不同的单位参与的运算,最后的结果取第一个值的单位:
移动端界面建设 第3篇
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。
这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
由于篇幅有限,这里以图片的形式给大家展示一小部分。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。