前言:自己开发中遇到的问题,解决思路,一些效果好的实现方式。此文章比较杂,会不定时更新。更新时间:自己有感悟了就来更新下。
关于适配
许多初级开发者,都不太理解 适配这个概念。 在我看来适配是分为两方面的
1、屏幕适配
2、手机型号适配
关于屏幕适配:android给了我们最终的解决方案,使用dp。但是有的时候也是有问题的,就比如一行展示的内容较多,例如 我这一行要展示 一个商品的 原价 现价 销量 产地这4个信息,大多数手机是刚刚好能够展示出来的,但是不巧,你的老板是个小屏幕手机。展示不全,让你适配。在我看来这种问题,直接找设计或者产品,重新搞ui图吧。
说到这里了就说说布局问题吧:多多使用LinearLayout多用权重,会让你的布局看起来比较协调。在我初期项目整体使用RelativeLayout我现在再去改改,头疼。是真的疼,而LinearLayout就显得十分好改动
关于ui图:我们小公司,设计给的时候就是按照苹果5的尺寸给的,所以,没有一个专门的android尺寸,大公司应该不会这样吧。上面标注px,你除以个2,基本就是我们所需要的dp尺寸。
加载本地icon 宽高要wrap_content,要不然,很容易出现模糊问题。模糊的本质就是在一个高分辨率手机上显示了低分辨率的图。
关于适配图标问题,很久以前的项目是主流hdpi了,但是在如今,他已然不适用。现在主流是xhdpi,当然跟高的xxhdpi也是有的。
桌面icon这个适配要全做,尽量放在mipmap文件夹下,为啥?因为谷歌推荐。icon尺寸 这里只给出常用,其他的自己换算吧,xhdpi:96*96 xxhdpi:144*144。某次老板提出他的手机显示有问题,模糊。正巧我当时在上传360市场,凑巧设计没有时间给我搞图标,我就用了一张512*512的圆图,直接替换了。装上之后效果是很明显的。提到圆图,360市场的桌面icon是需要圆图的,这个原因也导致我提过很多次版本都没审核通过。
关于手机型号适配
比较讨厌人的就是 三星 小米 华为。
ps:不过人家做的是真的好。
三星讨厌原因:当初最拍照的时候,回传各种空指针。都快整废了有木有,后来百度恍然大悟。现给出2种 解决思路 ,都是操作清单文件的。第一种:强制使用竖屏/横屏
第二种 设置横竖屏切换不重载Activity生命周期 这两种配置分别为
<activity
android:name=""
android:label="注册协议"
//这个是强制使用横屏
android:screenOrientation="portrait"
//这个是设置横竖屏切换不重载生命周期
android:configChanges="orientation|keyboardHidden|navigation"
/>
小米:这个问题就更多了,没有突出,偶尔就给你来一个,就比如文件操作,他就比其他型号手机诡异
华为:当年一个子线程吐司 我们3个人,搞了一天。。。
再一个就是关于so文件的。不同平台所需要的指令集不一样。为了效率,我们要同时创建许多平台 如:x86 等。但是,项目大了之后,你会发现有的第三方会有so文件拉取问题。像这种,就删平台文件夹吧,保留公有的部分 。假设 第三方A 给出了 armeabi 和x86 这两种 第三方B 只给了 armeabi的so,运行之后 B报错:大概意思就是没有so文件,这时候,你就要把x86平台的删除,保留公有部分armeabi。如果还是不行,尝试添加 armeabi-v7a 复制armeabi的so进去。如果还不行,百度,联系客服。笔者暂时还没遇到过那种问题。
几点建议:
能谷歌不百度。