携程工作感言(7.17)
Posted 酷叮喵
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了携程工作感言(7.17)相关的知识,希望对你有一定的参考价值。
day7.4
头脑风暴(OKR)
1、成就这东西要数据量化,行数,bug数量,无用代码,嵌套数,加载时间,cpu运行,线程数,都是量化的标准
2、想别人把你任务的优先级提升,要知道别人的痛点,当痛点和你的任务相关时,人家会主动干活:测试、开发、服务端、用户
3、可以自动化和技术解决的,就不要浪费人力去做烦琐的工作
day7.6
1、git submodule update –init(当gradle更新不成功且依赖的class找不到时)
2、计划会:学会模块/模型化,尽量一个文件一个业务模块
3、后期会把cachebean改为view,通过binddata渲染(访问者模式)
4、module定义交互接口,控制器代理事件,相关交互都在HotelOrderDetailListeners.class里
day7.7(接了独立修改联系人的需求,小激动ing)
1、androidManifest里设置新new的activity:
android:configChanges=”locale|fontScale|orientation”(configChanges:不会重新执行activity,locale:语言改变时文字重新刷新显示,fontScale:字体大小缩放)
screenOrientation=”portrait”(限制页面竖屏显示)
taskAffinity=”~”(放在一个~里面执行)
windowsoftInputMode=”adjustPan|adjustResize|stateVisible”(界面不被键盘挤上去;activity总调整屏幕大小以保留出软键盘的空间;软键盘通常是可见的)
————————–我是难过又激动的分割线——————————————
day 7.12–7.13
因为能力不足,需求交回给专家处理了/(ㄒoㄒ)/~~
今天是看书和学习java的一天,boss布置了个demo:可以加载网络图片、本地图片的Image Loader,需要支持2级缓存,内存缓存,硬盘缓存;昨天查了一些资料,今天动手实现
1、在设计utils类时,先想好类图:哪个类去初始化数据,哪个类得到和设置数据,哪个类去实现功能,哪个类去展示,布局好再动手,逻辑会清晰很多
2、图片缓存区一开始想用的是map,后来改成了hashmap,然后想到之前开会时提到的回收问题,查了下数据,bitmap用的是SoftReference,imageView用WeakReference,然后又换成了LruCache:对大量占用内存的图片提供了快速访问的方法,原理是把最近使用的对象强引用存储在LinkedHashMap中,把最近最少使用的对象在缓存值达到预设定值之前从内存中移除(然后SoftReference在参数传递中很麻烦,然后LruCache也实现了SoftReference的功能,所以就取消了(再一次证明一定要先设定好方案再动手,不然改起来有点痛苦))
3、在app运行过程中,有很多低级错误:app不能再主线程中请求网络操作,防止网络请求过长而导致页面假死,setview要放到handler里处理,这些都是之前知道,但是没有注意到的问题,要把理论和代码交接
4、本来每次是new一个新thread出来的,后面参考了博客,用ExecutorService(线程池)http://blog.csdn.net/bairrfhoinn/article/details/16848785 来代替,这是考虑到后面多线程实现的因素
day7.14
3小时完成了加载图片到sdcard的功能,出了很多bug。。索性找同事帮我一起debug,算是速度完成了,来个小总结,以后用到多线程的时候,避免再踩坑。。( ˇˍˇ )
1、debug发现奔溃地方的时候,用try和catch去把问题包住,利于向下发现问题,当怀疑某行不显示时,打log去看monitor显不显示,来判断执行成功了没有
2、在线程池里的操作是在子线程中的,所以我们的setimageview方法要用handler去处理
3、加载到sdcard要考虑这个文件夹存在否,没有要用文件名.mkdir()创建
4、输入流和输出流要记得.close,
输入流用HttpURLConnection connection=(HttpURLConnection) imageURL.openConnection();
InputStream inputStream = connection.getInputStream();
输出流用fileOutputStream outputStream =new FileOutputStream(file);
bitmap.compress()//图片压缩
http://blog.csdn.net/luhuajcdd/article/details/8948261
outputStream.flush();//http://blog.csdn.net/dabing69221/article/details/16996877 对flush有很详细的解释
5、android异步加载 http://www.eoeandroid.com/thread-210082-1-1.html
6、lru算法http://anany.me/2015/10/19/bitmap2/
7、Handler在主线程中初始化,子线程类的类名.mHandler=this类.mHandler;
8、单一原则,开闭原则,策略模式;多了解下设计模式,顺便把imageloader里面遇到的问题总结一下
day7.17
周末闲着来公司优化一下代码,顺便看看上个需求专家是怎么写的,加油~~↖(^ω^)↗
1、android:exported=[“true” | “false”](是否支持其它应用调用当前组件。 )
以上是关于携程工作感言(7.17)的主要内容,如果未能解决你的问题,请参考以下文章