1.内存泄漏和内存抖动
内存泄漏: GC在内存吃紧去回收内存的时候,无法回收某-块不再使用的内存。随着时间的推移会导致内存溢出,这种其实就是强引用
内存抖动: GC的频率会非常之频繁,不断的开辟和回收大的内存。
2.自定义View代码优化
举个例子? (内存优化主要去讲)去观察,去思考,有意识I
for循环,不断刷新界面,多次调用的情况,通常不要重复创建一些没有必要的对象。 解决的方式在某一个地方事先创建好
- UI渲染与界面卡顿
https://blog.csdn.net/jiahui_zhu/article/details/52212412
Ul渲染,在-定的时间内必须要测量摆放呈现,
怎么解决经常出现的一些情况,不断GC的时候会导致界面卡顿( GC会去占用主线程) , 在主线程中不要去做耗时的操作
比如点击一个按钮 ,过了很久才跳过去,怎么解决? onCreate里面做了耗时操作,可以再页面添加一个进度条(先跳过去) , 但是般来讲这种耗时操作只需要出现一次,一定要做一次缓存。(Hello World级别)
U|渲染问题解决,绿色两次,淡红3次,深红是4次( - -般是由于背景导致的)小事例(要自己去观察,做调整)
4.资源适配
参考权威的一些APK (Canon , QQ), -个概念把能够写到res下面的全部写到这个里面,如字体大小文本颜色等等(严格执行)
5.布局适配
布局的别名问题,以画图的小事例为例子(设计师)
平板layout-sw600dp (600dp以上) , 平板会自动去加载这个文件下的布局,如果有需要适配的界面就可以放在这里面
竖屏layout-land , 竖屏情况下会自动去加载这个文件下的布局,如果有需要适配的界面就可以放在这里面
1.屏幕尺寸,屏幕分辨率,屏幕像素密度
1.1屏幕尺寸:指的是屏幕对角线的长度5.05.1 ( 并不是特别重要)
1.2屏幕分辨率:指的是在横纵向上的像素点数单位是px, 1px = 1像素一般以纵向像素横向像素,如19201080
1.3屏幕像素密度:指的是每英寸上面的像素点数,单位是dpi ,即“dot per inch"的缩写,屏幕像素密度与屏幕尺寸和屏幕分辨率有关
Nexus 5
屏幕4.95inch
19201080
DPI= 445
(1920平方+ 1080平方)开根号14.95= 445 dp
480320 3.5英寸= 160dpi
2.dp、dip、 dpi、 sp、 px之间的关系
2.1 dp、dip 指的是密度无关像素,以160pi为基准, 1dip=1px
2.2 sp google 推荐12sp以上 12sp 14sp 18sp 22sp 最好不要使用基数,可能会在部分机型上造成精度的丢失10sp
I
3.mdpi、hdpi. xhdpi. xxhdpi如何计算区分
ldpi
120 240320
mdpi .
160
320480
hdpi 240
480800
xhdpi 320 7201280
在代码中使用的一般都是px ,
,一般都需要转换
6.图片适配,
1套3套
drawable mipmap 区别官网是讲得非常清楚了, mipmap主要放图标, 目前市场上的都没有分得太开
-般情况下放-套就可以,部分要区分开,放-套的情况下放用户量最多的那个目录下, 11M 21M 35M
特殊情况下相对尺寸较大的一些图,-般需要放三套 如启动页, 个人中心背景图等等,还有必须要做Bitmap的优化或者用第三方的图片库去加载
网友评论