HandServer项目gitURL:[email protected]:handservice_project.git
工作周报 (2017.02.13-2017.02.17 )
本周工作内容:
1.写蓝牙通讯demo,客户端与服务端均已完成
2.封装与本地服务通讯接口,已封装的接口如下:
2.1 /**
* 将客户端信息传递给系统服务
*
* @param info:其中第0个位置表示事件类型
*/
private void sendInt2SysService(int[] info)
2.2 /**
* 传递字节信息给本地服务,主要是按键
* @param type :信息类型
* @param content:信息内容
*/
private void sendByte2SysService(int type,String content)
2.3
/**
* 发送滑动事件广播给演示板
*
* 键盘模拟触摸事件说明:
*
* sKeyCode[0] = 101:按下事件 sKeyCode[1]:按下x座标 sKeyCode[2]:按下y座标
*
* sKeyCode[0] = 102:滑动事件 sKeyCode[1]:滑动x座标 sKeyCode[2]:滑动y座标
*
* sKeyCode[0] = 103:弹起事件 sKeyCode[1]:弹起x座标 sKeyCode[2]:弹起y座标
* @param moveEventInfo
*/
private void sendPosBrocast2TouchBoard(int[] moveEventInfo)
3.模拟触摸板控制鼠标,蓝牙客户端与服务端已经测试完毕。
4.学习输入法的基本原理
下周工作安排:
1.处理输入法与本地服务与上层应用的通讯。
工作周报 (2017.02.20-2017.02.24 )
本周工作内容:
1.处理输入法与本地服务与上层应用的通讯(完成)
2.重新设计蓝牙连接框架,方案如下:
a.优化连接,对搜索到的蓝牙设备做一次缓存处理,下次开户蓝牙查找设备时
优先查看缓存表中是否存在蓝牙数据,如果有则显示出来供用户选择,
如果没有再进行一次蓝牙设备的(已完成)
b.将蓝牙相关类封装为一个独立的管理类,并将其对象用一个单例开放给外部对象(已完成)
c.蓝牙连接状态的设计(已完成)
d.外控应用开启时,优先自动连接最近一次的连接(未完成)
f.蓝牙服务端无论是否开启输入法都应当能够被搜索(未完成)
g.蓝牙服务端始终可见(完成)
3.本地数据管理工具类的开发(已完成)
4.与本地服务进行调试(目前相关功能性接口已经全部调通)
下周工作安排:
1.继续优化蓝牙通讯框架。
2.处理外控app端的编辑框的文本与服务端文本内容实时一致性。
工作周报 (2017.02.27-2017.03.03 )
本周工作内容:
1.完成外控app端的编辑框的文本与服务端文本内容实时一致性
2.处理手控app光标与ar端光标的实时一致性
3.处理ar端开机就能被手控app搜索到且能被其连接
下周工作安排:
1.调试触摸版本功能
工作周报 (2017.03.06-2017.03.10 )
本周工作内容:
1.调试触摸版本功能
2.增加常用的物理按键功能
下周工作安排:
1.着手处理前端设计
工作周报 (2017.03.13-2017.03.17 )
本周工作内容:
1.优化手控App蓝牙框架,优化内容如下:
a.优化搜索速度,增加缓存处理
b.区分未配对与已配对情况。
c.调整代码结构,将蓝牙连接回调与数据处理回调均移入父类中并添加连接失败接口供子类实现
2.增加数组处理工具类
3.封装沉浸式状态栏工具类
4.增加点击挪动工具类
5.完成蓝牙列表展示页面及其相关逻辑
6.完成控制页面及其相关逻辑
下周工作安排:
1.处理编辑页面
2.调整手控app眼镜端代码结构
3.在新的ui界面下将与本地服务的接口重新调试一遍,防止出错
工作周报 (2017.03.20-2017.03.24 )
本周工作内容:
1.修复蓝牙切换连接时的bug
2.调整对话框基类,加载对话框,编辑对话框的属性设置
3.替换控制页面ui素材
4.使用观察者模式监听输入法切换逻辑,用来处理用户界面控制按钮的显示
5.处理引导页面动画
6.修改加载对话框显示时创建多份实例的bug
7.调整蓝牙服务端代码,删除无用逻辑
8.处理蓝牙列表重复数据的bug
9.与明哥一起联调设备眼镜端
下周工作安排:
1.眼镜端与手控app的联调:
1.1.btServer的预安装
1.2.测试眼镜端的蓝牙的稳定性
1.3.测试蓝牙开启之后有效时间
1.4.测试多个设备连接眼镜端的情况
1.5.调试在主界面时上下焦点的移动情况(目前上下不能移动)
工作周报 (2017.03.27-2017.03.31 )
本周工作内容:
一.蓝牙眼镜端调试结果:
1.处理眼镜端蓝牙只能与一个手控端相连
2.眼镜端重启之后蓝牙可以与手控app进行连接(前提条件:1.蓝牙开启2.需要在设置项中将本输入法设为默认输入法)
3.蓝牙开机默认打开(已修复)
4.输入法设为默认(已修复)
5.修复蓝牙自动配对bug
6.蓝牙稳定性未测(眼镜端目前蓝牙存在:a.蓝牙信号不稳定,b.mac地址会发生变化)
二.新功能
1.阅读源码setting模块并在setting里面添加语音开启关闭接口(接口已处理好)
Z:\170307\android\android\packages\apps\Settings
2.修复蓝牙列表数据当配对成功时,由“未配对”到“已配对”状态不改变的bug
3.删除手控app端输入法模块
4.着手写游戏手柄(ui界面已经完成,相关功能性接口未处理)
下周工作安排:
1.跟进眼镜端蓝牙
2.继续处理游戏手柄模块
3.arlanucher里面添加一个当前应用的观察者并将当前的应用写入属性文件
4.统计关机/开机时的日志,通过发送信号给本地服务
5.统计系统应用的打开和关闭(主要统计应用名)
6.处理蓝牙自动连接上一次设备与断开重连机制
7.修复游戏手柄多点触摸同时通过一个socket发送数据时的bug
工作周报 (2017.04.05-2017.04.07 )
本周工作内容:
1.跟进眼镜端蓝牙
2.继续处理游戏手柄模块
3.arlanucher里面添加一个当前应用的观察者并将当前的应用写入属性文件
4.统计关机/开机时的日志,通过发送信号给本地服务
5.统计系统应用的打开和关闭(主要统计应用名)
6.处理蓝牙自动连接上一次设备与断开重连机制
7.修复游戏手柄多点触摸同时通过一个socket发送数据时的bug
8.眼镜端lanuch源码中添加日志桌面与非桌面日志收集,添加关机/开机时间点的日志(未完成)
下周工作安排:
1.跟进手控appbug
2.继续处理添加关机/开机时间点的日志
3.进行科大讯飞语音调研
4.继续跟进当前语音接口
学习内容:
1.学习使用vs2015 opengl环境搭建
工作周报 (2017.04.10-2017.04.14 )
本周工作内容:
1.处理手控app自动/断开重连机制的bug
2.调试关机/开机时间点的日志
3.安装游戏抢滩登陆,测试手柄
4.安装微信,测试聊天
5.学习生成二维码demo
6.处理版本升级,处理app打包签名生成正式版。
下周工作安排:
1.生成二维码蓝牙连接接口
学习内容:
1.设置模块修改默认打开蓝牙与默认输入法的设置:
Z:\170307\android\android\device\actions\v700_cxvr\overlay\frameworks\base\packages\SettingsProvider\res\values
<bool name="def_bluetooth_on">true</bool>
<string name="def_input_method_config" translatable="false">com.example.lxb.btserver/.inputservice.MyImeService</string>
工作周报 (2017.04.17-2017.04.21 )
本周工作内容:
1.处理游戏手柄模块。
2.调整蓝牙通信协议接口
3.修复蓝牙服务端crash时手控app异常退出的bug.
4.适配游戏。
下周工作安排:
1.完善游戏手柄的相关文档,并提交相关版本文件。
2.如果游戏匹配模块暂停,就着手处理科大讯飞语音模块
3.修改蓝牙自动连接bug.
学习内容:
opengl暂缓
工作周报 (2017.04.24-2017.04.28 )
本周工作内容:
1.调整蓝牙断开重连逻辑,分需要重连逻辑与不需要重连逻辑。
2.增加触摸游戏控制器法术区域点击震动体验
3.调整Baseactivity与Appcontext代码结构,将重连逻辑移到Appcontext处。
4.修复输入法删除逻辑bug
5.封装工具类,用于解析xml文件并根据xml文件中的对象转换成任意对象。
6.处理科大讯飞语音模块,已经整理为一个demo,代码结构设计完成,其他完成情况如下:
a.离线版本唤醒完成(体验版本唤醒词为:小智在线,小智嗨喽,嗨喽小智,你好小智,小智你好)
b.离线版命令词以及语法文件完成。
c.唤醒与离线的集成完成。
b.解析命令词识别结果完成(只取命令词、命令词id、置信度)。
未完成的情况如下:
a.优化语法文件,为每个命令词添加一个id.
b.集成到眼镜端并联调相关功能接口
下周工作安排:
1.继续跟进科大讯飞语音集成。
2.在属性文件中新境属性值:
值1:打开应用(key,应用包名)
值2:关闭应用(key,应用包名)
值3:当前应用(key,当前应用包名)
学习内容:
科大讯飞的离线唤醒+命令词时需要在官网开通相应的服务,并下载相应的sdk获取到其中的资源文件
工作周报 (2017.05.02-2017.05.05 )
本周工作内容:
已完成情况:
1.在眼镜端测试科大讯飞语音,并处理相关文档(文档已提交到svn)。
2.处理语音命令拍照,录像(已完成)。
3.处理语音命令音量控制接口(已完成)。
4.在系统设置-语音控制 模块增加语音引擎选择接口(接口为:科大,互问)(已完成)
5.处理多媒体语音控制接口(播放视频、音乐)(已完成)
6.处理打开、退出、确定/OK 取消 关闭/退出 打开(已完成)
7.处理设置层打开/进入的命令词(已完成)
8.处理邮件,程序列表,浏览器命令词(已完成)
语音命令词未完成情况如下:
1.第三方应用未处理
2.设置层的命令的退出与关闭
3.关机命令、待机命令、多屏与单屏模式
下周工作安排:
1.继续跟语音模块未完成的部分
1.日志收集模块,需急时上传
手控appurl地址:
apk 文件: http://resource.espacetime.com/appupdate/app-release.apk
apk 文件: http://resource.espacetime.com/appupdate/baize-spirit.apk
版本说明文档: http://118.178.194.5/appupdate/version.txt
用户名与密码: appupdater: 12wSFghjChjkFSD
btserver编译好之后需要放在此处:Z:\55\sdk\android\android\device\actions\common\prebuilt\apk\thirdparty\baize
应用市场手机端git:[email protected]:mc.git
1.将本地仓库与远程仓库关联: git remote add origin [email protected]:mc.git
2.内容推送到远程库上:git push -u origin master
SVN:接口文档
svn://192.168.1.201/project/管理/01-开发/接口文档/应用市场API接口.docx
应用市场眼镜端git:[email protected]:mg.git
linux连接远程服务器:ssh 用户名@服务器ip
坦克手游包名:com.baize.TankAR
工作周报 (2017.05.08-2017.05.12 )
本周工作内容:
1.设置层的命令的退出与关闭(已完成)。
2.将语音模块独立出来,不依赖于输入法模块,实现开机既能使用语音模块(已完成)。
3.完善系统设置中语音开关广播机制(分为语音开/关 、打开/关闭科大讯飞语音、打开/关闭互问语音)(已完成).
4.自测眼镜端语音模块,相关问题已经已整理成文档(需持续跟进)。
5.将项目的日志统一管理起来(已封装工具类,完成)。
6.分离之前将当前顶端应用写入系统属性配置文件独立起来并做好分类( 桌面 进去特定应用 999 照相机 3 录像 4 设置 5 )。
7.修复过滤语音命令词的bug。
8.将系统设置的语音控制开关移到新版本中(已完成)。
9.跟进语音测试,并修改测试反馈的语音bug。
10.优化语音模块,当使用语音打开应用时,只保证最新的5个应用,超过的直接kill。
11.将蓝牙服务从输入法剥离开来,独立于输入法(已完成);
12.增加科大语音唤醒成功与进入休眠状态的提示音(目前增加2种,唤醒成功与进入休眠的提示音)。
13.跟进测试反馈的手控app bug(已根据测试反馈的测试文档一一进行了修改,并转交了测试进行复测,需要持续跟进)。
14.在游戏控制面板添加文本编辑框,方便游戏中的输入操作(已完成)。
15.添加蓝牙列表搜索完成时未搜索到ar眼镜设置时的视图并过滤非ar眼镜蓝牙设备(已完成)。
下周工作安排:
1.跟进测试。
2.对接坦克大战手柄控制接口。
工作周报 (2017.05.15-2017.05.19 )
本周工作内容:
1.设置蓝牙搜索列表为空时的提示视图使用gif提示(已完成)。
2.完善命令词 下一个/上一个,下一页,截屏,回到桌面并完善对应的语音命令(已完成)。
3.完善语音命令词文档,并替换语音提示音。
4.协助明哥调试整包(测试开关机广播,默认输入法是否为白泽输入法,默认蓝牙是否打开)。
5.修复语音唤醒启动bug。
6.修复当前应用为系统应用回到桌面不响应的bug。
7.修复蓝牙断开连接在停留在焦点控制页面与游戏控制页面不跳转的bug。
8.处理手控app的国际化版本(目前只处理简体中文、英文两个版本,已完成)。
9.完善语音命令逻辑,主要解决占用问题,解决思路如下:
* a.进入桌面时,首先加载所有应用,并判断应用是否具有麦克风权限 如果有,则将该应用的包名加入到一个列表中缓存起来
* b.每安装一个应用时判断步骤1中的应用列表中是否已经存在这个应用,如果没有,进入麦克风权限判断,如果有,加入缓存列表中
* c.应用卸载时,同时在 麦克风权限 列表中删除这个应用包名。
* d.每次使用语音命令时,先判断唤起的应用是否在上述列表中,如果在则关闭语音命令(包含唤醒与命令识别),当应用退出时再打开语音唤醒。
10.添加关机语音命令(已完成)。
11.与坦克大战游戏对接,目前已完成的对接情况如下:
a.方向键已按键值已经处理好。
b.大炮键已处理好
c.CPU资源由之前35% 降到20%左右(需要与明哥讨论是否需要敦促其继续优化)。
未完成的情况:
子弹长按键未对接。
坦克大战手游目前存在的情况:
游戏加载的第一个页面(蓝色屏幕明显过慢)。
游戏场景加载页面过慢。
以上问题需要继续跟进外包小组并敦促其优化改进。
下周工作安排:
1.跟进坦克大战匹配。
2.跟进测试反馈的语音情况及其他问题。
学习内容:
oc语言与ios开发暂缓。
工作心得:
1.交流问题时首先倾听问题的需求,只有明白问题的根本所在才能找到解决问题的最佳方法。
2.平时处理自己的工作内容之外,应当多加强与其他同事的合作交流,这样才能出色的完成工作。
3.同事好的建议应该吸收并以一个平和、谦卑的心态对待周围的人和事。
4.平时耐心程度不够,这方面今后需要加强。
工作周报 (2017.05.22-2017.05.27 )
本周工作内容:
1.处理在手控app端获取到当前手机连接的wifi并将wifi ssid传给眼镜端且眼镜端可以连接(已完成)。
2.修复手控app搜索闪退bug(已完成)。
3.修复测试反馈的语音命令词bug(下一个/下一页不响应)。
4.协助陈新明进行android岗位的招聘工作。
5.新增toast管理工具类(已完成)。
6.更换科大语音为正式版资源并移交测试(需持续跟进)。
7.修复在手控app上面控制眼镜直连wifi在其他手机上的适配(目前适配机型为:oppo r9s,mezu note5,红米 4a,华为荣耀v8)。
8.修复btserver间歇性断开重连的bug。
9.着手处理眼镜wifi一键直连的密码验证并将验证结果发给手控app端(已完成)。
10.添加眼镜端与手控app端的交互能力(已完成)。
11.对接手游坦克大战(功能性接口对接完毕,性能及操控需要持续跟进,其中ui部分需要美术介入)。
12.添加手柄模式震动,增强用户体验(已完成)。
手游坦克大战优化建议(程序部分):
1.建议本游戏支持外接手柄(功能键尽量按android系统下的标准游戏键值)。
2.建议不同的关卡模式使用不同的地图。
3.趣味性较低(未设置奖励模块)。
4.移动瞄准镜的时候画画有点卡,难以瞄准。
下周工作安排:
1.跟进测试。
2.学习ios相关内容。
3.进行手控app上架工作(腾讯应用宝)。
4.着手处理手机热点功能。
学习内容:
1.学习object-c基本语法(object-c程序设计第二版(前四章))。
工作心得:
1.蓝牙交互模块设计考虑的不全面,在设计之初未开放回传接口,导致在进行wifi密码验证模块时需要调整部分接口。
小结:类似C/S模式的设计,不管是否有数据交互的需求都应开放双方通道。
2.每天应该抽出1——2个小时出来进行新知识的补强。
3.近段时间发现自己不够成熟,包容心不够。平时应以一颗宽容,大度的心对待周围的一切。不以物喜,不以己悲。
这方面今后需加强。
工作周报 (2017.05.31-2017.06.03)
本周工作内容:
1.新增眼镜共享手机的热点入网方式。(已完成)
判断手机入网方式,逻辑如下:
a.如果是wifi,则将当前的wifi ssid与pwd一起发给眼镜
b.如果是gprs(不分2g/3g/4g)则创建热点,并将热点信息发给眼镜端进行连接。
2.修复手控app初安装时点击跳过时,动画播放2次的bug(已完成).
3.修复热点创建时安全类型不一致时导致眼镜热点连接不成功的bug(已完成)。
4.修复loading对话框点击其他处不可取消的bug(已完成)。
5.如果用户将系统的已经配对眼镜蓝牙数据删除,那么将上一次的连接数据也进行清除(已完成)。
6.如果蓝牙已经处于连接状态且当前连接的地址与当前连接的蓝牙地址一致则直接进行页面跳转否则重新发起蓝牙连接(代码调整,已完成)。
7.手控app上架腾讯应用宝(未完成需要持续跟进)。
8.对接游戏坦克大战,并整理优化文档(文档已反馈给外包,需持续推进)。
下周工作安排:
1.推进手控app上架腾讯应用宝。
2.跟进测试,并学习ios。
3.处理日志模块添加应用名称、包名、版本信息。
学习内容:
1.复习oc的基本语法(object-c程序设计第二版 看完),其中oc中分类小结如下:
a.可以为一个新增一个方法且不需要像子类那样去扩展它。
b.分类实现的方法可以理解为java中的private方法。
2.学习使用UILabel,UIButton控件(主要学习绑定事件与其一些基本属性的使用)。
3.ViewControler 生命周期及其管理机制。
4.学习使用storyboard创建视图的流程(其动作机制与渲染暂未作深入理解)。
工作心得:
1.学习新知识切忌求速,理应扎实基础,循序渐进。
2.ios的布局自适应这一块理解不是很透,需要加强。
工作周报 (2017.06.05-2017.06.09)
本周工作内容:
1.处理日志模块添加应用名称、包名、版本信息。(已完成)
2.调整坦克大战游戏操作控制按键(已完成)。
3.对接坦克大战游戏(需持续跟进)。
4.对明确应用时间需求,分解项目任务模块并整理时间计划表(已完成)。
5.修改热点连接成功之后,进行wifi连接时显示wifi名称正确的bug(已完成).
6.隐藏设置页面语音控制开关接口(已完成)。
7.修复热点如果已经开启时不再重复创建热点的bug(已完成)。
8.手控app上架腾讯应用(已提交审核)。
9.应用市场处理情况:
1.明确任务模块,并制订详细的时间计划(已完成)。
2.处理焦点控制更多选项界面(已完成)。
3.文件下载框架整理完毕(已完成)。
4.处理手控端应用展示界面(未完成需持续跟进,ui设计未给只按原型图做了框架设计)。
下周工作安排:
1.继续跟进应用市场。
学习内容:
1.ios学习暂缓。
工作/学习心得:
1.ui渲染控件时数据未及时更新,注意生命周期的使用。
2.合理安排时间,对任务的把控这方面做的还不够,今后需加强。
工作周报 (2017.06.12-2017.06.16)
本周工作内容:
1.封装图片加载库(已完成)。
2.根据ui设计搞调整应用市场与更多选项界面(已完成)。
3.封装文件下载库,并开放断点续传接口(已封装成demo的方式移交给眼镜端)。
4.添加2个对话框完善手控端发送指令给眼镜端的提示(已完成)。
5.封装属性动画加载工具类(已完成)。
6.小智手柄APP蓝牙列表同一个蓝牙设备显示2次(未配对和已配对)(已完成)。
7.协助苏琴撰写热点专利文档(已完成,需要持续跟进)。
8.辅助眼镜端应用市场的研发工作(需持续跟进)。
下周工作安排:
1.继续跟进应用市场。
学习内容:
1.ios学习暂缓。
工作/学习心得:
1.沟通是一门艺术,自己这方面做的还不够,特别是涉及工作对接的时候,今后需要加强。
2.目前团队还是处于磨合时期,规范太多反而不利于团队发展,今后这方面需要注意。
工作周报 (2017.06.19-2017.06.23)
本周工作内容:
1.制定与眼镜端协议(协议制定完成,需要持续跟进)。
2.引入eventBus信号通知,减轻系统广播负担(已完成)。
3.封装本地数据库接口,供数据本地化用(已完成)。
4.与眼镜端联调协议接口(需持续跟进)。
5.处理加载数据时的动画提示(已完成)。
6.调整下载按钮的显示ui(已完成).
7.整理数据缓存框架(已完成).
8.添加应用市场下拉刷新头部动画(已完成)。
下周工作安排:
1.继续跟进应用市场。
学习内容:
1.学习UItableView与UIRefreshControl结合使用。
2.学习UItableView的编辑功能。
3.学习在主故事板中添加不同的页面且使用字典作页面之间的传参。
工作/学习心得:
1.现在事情比较杂,需要合理安排工作与学习时间。
工作周报 (2017.06.26-2017.06.30)
本周工作内容:
1.重构眼镜端应用市场(已完成,需要持续跟进)。
2.修复手控端gradle升级到3.3出现包不兼容的问题。
3.应用市场页面添加顶部点击回到顶部(已完成)。
4.添加应用市场返回按钮(已完成)。
5.处理下拉刷新数据(已完成)。
6.处理语音合成模块(手机端语音听写处理完成)。
7.修复下载bug.
下周工作安排:
1.继续跟进应用市场。
学习内容:
1.ios学习暂缓。
工作/学习心得:
1.应用市场项目预计移交测试时间是6月21号,目前延期很严重,可能与自己分配任务以及力度把控不够理想,未考虑新人熟悉环境的问题。
2.眼镜端的项目进度把控不及时,缺乏有效的沟通,今后需要注意这方面,防止问题重演。
3.团队协作这方面做的还不够,需要注意有效的沟通技巧,今后这方面需要加强。
4.ios学习计划严重滞后,需要安排时间学习。
mac电脑显示隐藏文件:
defaults write com.apple.finder AppleShowAllFiles -boolean true ; killall Finder
桌面项目地址:
Z:\55\sdk\android\android\device\actions\common\packages
工作周报 (2017.07.03-2017.07.07)
本周工作内容:
1.跟进眼镜端语音。
2.修复眼镜端应用市场杀掉之后蓝牙不能连接的bug(已完成)。
3.隐藏设置中互问的语音开关。
下周工作安排:
1.开始处理小智精灵ios版。
学习内容:
1.ios屏幕适配。
2.协议与代理的小结。
3.学习ios组件库的使用。
4.学习ios ViewController,主要学习页面之间跳转传参,生命周期。
5.学习使用xib文件作为视图布局,学习ios项目与finder目录结构的同步。
6.学习基础动画,位移,缩放,旋转。
工作/学习心得:
1.学习新东西切忌求速。
工作周报 (2017.07.10-2017.07.14)
本周工作内容:
1.处理欢迎页面(已完成)。
2.处理热点/wifi对话框(已完成)。
3.处理公用的加载对话框(已完成)。
4.处理焦点控制页面(ui设计完成,逻辑部分未处理).
5.处理状态栏(已完成)。
6.使用纯代码方式进行ui布局。
7.封装文本编辑对话框(光标位置的监听与文本动态变化处理完成,与蓝牙通信暂未处理)。
8.处理应用市场ui部分(头部gif动画处理完成,导航栏与状态栏已经封装到基类中)。
下周工作安排:
1.继续跟进小智精灵IOS版。
学习内容:
1.学习object-c语法中的property
2.学习自定义控件。
工作/学习心得:
1.property语法小结:
a.assign 直接赋值 适用于基本数据类型。
b.retain 引用赋值 适用于源对象与被赋值对象需要同时修改。
c.copy 拷贝赋值 适用于源对象修改不影响被赋值对象 的情况。
2.容器对象内存管理规则
a.往容器对象中添加实例对象时,该实例对象引用计数会+1;
b.当从容器对象中移除一个实例对象时,该实例对象引用计数会-1.
3.学习使用PPAFNetworking网络请求框架:
a.学习使用POST与Get请求,请求头的的参数封装。
b.学习该框架的缓存处理(源码暂未阅读)。
工作周报 (2017.07.17-2017.07.21)
本周工作内容:
1.处理应用市场uitableviewCell。
2.处理下载进度条的更新。
3.处理应用市场数据缓存部分(已完成)。
4.封装CoreDataBase基类,将公共部分抽取出来(目前封装了CRUD 根据条件查询,根据条件删除)。
5.封装日志统一管理工具(已完成)。
6.处理游戏手柄模块,采用多线程生产者/消费者模式+代理模式实现(已完成)。
7.调试应用市场接口。(未完成,需持续跟进)。
下周工作安排:
1.继续跟进小智精灵IOS版。
学习内容:
1.学习object-c多线程。
2.学习CoreData的使用。
3.学习通知的使用。
4.学习block语法。
5.学习使用object-c实现常用的设计模式:(生成器模式,抽象工厂模式,观察者模式)。
工作/学习心得:
1.object-c多线程语法小结:
a.NSthread 需要自己维护线程的生命周期,线程的串行与并行均需要自己维护队列。
b.GCD 引用赋值 适用于源对象与被赋值对象需要同时修改。
c.ui更新时需要在主线程中做,方法如下:
异步加并行开启多个子线程,在同步中回到主线程刷新UI
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
子线程操作.......
dispatch_sync(dispatch_get_main_queue(), ^{
主线程操作.......
});
});
d.所有操作在主线程中:所有的同步操作不开辟子线程,且顺序执行.
2.block语法使用注意小结:
a.block为一个函数指针,能够使用实例变量是因为持有self的引用,而block宿主又是self
这样极易造成循环引用的问题。
b.循环引用的造成内存泄露的问题常使用弱引用解决。
c.如果在block块内多次使用self访问实例变量,在用weak修饰时,可能造成weak修饰的对象释放
这样就会导致下一次使用时,报空指针异常!!!
解决的方式:
对于block中的weak修饰的对象再使用一次strong修饰这个对象,防止被释放。
工作周报 (2017.07.24-2017.07.28)
本周工作内容:
1.修复白泽精灵眼镜端麦克风权限占用bug(已完成)。
2.调整白泽精灵IOS端wifi/ap连接对话框的到基类中,并将其国际化。
3.处理应用市场页面切换出现白边的情况。
4.删除手柄无用ui并添加开始/暂停控件。
5.修复语音bug.
下周工作安排:
1.着手处理城市告白android版。
学习内容:
1.学习IOS归档。
2.学习ios UILayer与UIVIew的区别与联系。
3.学习ios自定义UIView.
4.学习CALayer动画与UIView动画的区别。
5.学习UIView的-(void)drawRect:(CGRect)rect 接口与 -(void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
CALayer的-(void)drawInContext:(CGContextRef)ctx。
6.学习CALayer隐式动画。
工作/学习心得:
1.CALayer绘图有2种方式:
方式一:如果不额外指定图层代理的情况下,图层的代理默认就是被添加到的UIView
通过图层代理drawLayer: inContext:方法绘制
方式二:这种方式常用于自定义CALayer中,然后重写父类的这个方法即可。
通过自定义图层drawInContext:方法绘制
2.隐式动画小结:
当对非Root Layer的部分属性进行修改时,默认会自动产生一些动画效果
而这些属性称为Animatable Properties(可动画属性).
列举几个常见的Animatable Properties:
bounds:用于设置CALayer的宽度和高度。修改这个属性会产生缩放动画
backgroundColor:用于设置CALayer的背景色。修改这个属性会产生背景色的渐变动画
position:用于设置CALayer的位置。修改这个属性会产生平移动画
3.自定义UIView小结:
方式一:通过扩展CALayer并重写绘图接口达到效果,如果想实现动画效果,可将整个图层进行进行动画处理。
方式二:直接重写UIView 的绘图接口(其本质也是调用CALayer的绘图接口)。达到动画效果通常是进行视图的重绘与座标的移动。
工作周报 (2017.07.31-2017.08.04)
本周工作内容:
1.处理城市告白android版数据上传页面(已完成)。
2.处理城市数据按首字进行拼音排序(已完成)。
3.调试服务端数据接口(已完成)。
4.处理地址列表单选状态(已完成)。
5.调整拼音排序逻辑并调整数据模型,将排序字段放到数据基类中(已完成)。
6.处理已采集建筑信息,与U3D结合接口已注明(已完成)。
7.处理已采集建筑物信息详细界面,与U3D结合接口已注明(已完成)。
8.已采集建筑物信息详细界面删除逻辑处理完成(已完成)。
9.处理编辑页面,与U3D结合接口已注明(已完成)。
10.处理具体建筑物照片按时间分组视图(已完成)。
下周工作安排:
1.着手处理城市告白android版 C端。
学习内容:
1.学习IOS 暂缓。
工作/学习心得:
1.对于复杂的动画先进行拆解,然后组合。
2.学习是一个持续的过程,不能被三分钟热情所左右。
工作周报 (2017.08.07-2017.08.11)
本周工作内容:
1.处理定位页面并修改百度地图样式(已完成)。
2.搭建城市告白android端框架(页面组织架构,对话框架构,数据列表MVC/MVP模式设计)(已完成)。
3.处理城市告白android端百度地图定位页面(已完成)。
4.处理城市告白android端点击更多按钮展示更多告白点列表对话框(已完成)。
5.处理城市告白android端点击点击地图告白点弹出本对话框(已完成)。
6.调试加载告白点服务端接口(已完成)。
7.处理更多告白点本地分布功能(已完成)。
8.处理加载大图片时页面滑动不流畅的bug(已完成)。
9.处理本地数据列表分布功能,已封装成工具类(已完成)。
10.封装服务端数据分发接口,加载服务端数据请求由单例类发起,回调做分发逻辑(已完成)。
11.封装图片加载库(已完成)。
下周工作安排:
1.处理实时地理位置信息并更新对话框距离提示文本。
2.封装微信文本分享功能接口供u3d调用。
3.封装微信图片分享功能接口供u3d调用。
4.处理无网络时的提示信息。
学习内容:
1.学习IOS KVC/KVO。
2.学习分类与关联对象的使用。
工作/学习心得:
1.KVC key-value-coding,即键值编码:通常使用范围如下:
a.通常是用来给某一个对象的属性进行赋值。
b.字典转模型,在转换过程中需要注意:
1).字典转模型的时候,字典中的某一个key一定要在模型中有对应的属性
2).如果一个模型中包含了另外的模型对象,是不能直接转化成功的。
3).通过kvc转化模型中的模型,也是不能直接转化成功的。
2.在类的头文件中尽量不引入其他类的头文件,这用会导致编译过慢,解决的方法是使用前向声明。
3.在初始化对象时(如,字典,数组,基本类型)常用字面量,加强可读性。
工作周报 (2017.08.14-2017.08.18)
本周工作内容:
1.处理微信分享的回调(已完成)。
2.处理微信分享大图片时对图片进行压缩处理(已完成)。
3.对于手机未安装微信时分享发生的异常进行处理(已完成)。
4.处理动态定位权限(已完成)。
5.添加网络状态监听器处理无网络时使用本应用无数的情况(已完成)。
6.添加启动页面(已完成)。
7.处理点击更多告白点地图随选中的度标移动(已完成)。
8.处理打开应用时无告白数据(已完成)。
9.代码调整:调整wifi打开与定位权限的申请顺序,由先权限申请调整为先打开wifi(已完成)。
下周工作安排:
1.防止计划有变,待定。
学习内容:
1.学习 IOS属性内存管理。
2.学习自动释放池在ARC的使用及其生命周期。
3.字符串常用 属性常用 copy类型修饰,因为字符串是一个对象类型,用自己的指针指向目标对象(常见于赋值语句中),
这个时候如果目标对象改变之后,不会改变用copy修饰的字符串对象,原因是copy为深拷贝;如果用其他类型修饰(strong,weak,assin)
均可能发生改变,这一结果随着指向的对象面发生。
4.学习UIWebView与oc混合编程。
工作/学习心得:
1.reatain在mrc中使用并造成引用计数+1。
2.strong 在arc中的使用并造成引用计数+1。
3.weak只有在arc下才能使用。
4.字符串定义时用copy进行修饰。
5.代理使用weak进行修改,不然会造成循环引用。
工作周报 (2017.08.21-2017.08.25)
本周工作内容:
1.处理boss直聘项目已完成部分如下:
a.处理ios流式标签布局。
b.搭建fragment前端页面框架。
c.处理地区与地区级联菜单使用2个tableView实现。
d.使用策略模式实现4个页卡切换。
2.处理UIscrollerView在自动布局情况下不能滑动的bug。
3.修复已采集(2个)建筑物名称排序错误。
4.修复选择建筑物页面只显示6个建筑物。
5.选择建筑物页面建筑物名称没有按照首字母排序。
6.修复已采集的照片按时间分组进行排序。
7.适配android7.0文件读写权限。
8.修复删除手动拷贝的图片crash的bug。
9.上传图片时没有“最近使用过的名称”。
10.处理IOS方向消息通知框架。
下周工作安排:
1.继续处理IOS 版boss直聘项目,处理左右筛选列表的消息通知。
2.处理首页中第二个筛选页面,即公司大页面。
3.处理搜索页面。
学习内容:
1.继续处理IOS 版boss直聘项目。
工作/学习心得:
1.与u3d对接这方面进度有点慢,导致我这边的工作进度缓慢,主要原因是u3d与android整合进度缓慢。
2.项目切忌操之过急,凡事需要耐心点,这方面还需要加强。
工作周报 (2017.08.28-2017.09.01)
本周工作内容:
一.城市告白项目bug修改:
1.处理排序上传页面排序时导致的上一次地点显示错乱。(已完成)
2.处理用户位置和景点lbs100米范围内,有提示附近有告白点数据。(已完成)
3.修复上一次采集地点不参与排序的bug。(已完成)
4.修复未选择地点时了也能上传的bug。(已完成)
二.openGL es2.0技术学习:
1.学习opengles 在andorid平台的创建流程。
2.顶点着色,顶点渲染顺序。
3.学习OpenGLES2.0中 GL_POINTS/GL_LINES/GL_LINE_STRIP/GL_LINE_LOOP绘制方式。
GL_POINTS:点绘制方式;
GL_LINES:线段绘制方式,每2个点之间进行绘制,如果点的个数为奇数,忽略最后一个点。
GL_LINE_STRIP:线带绘制方式,将所有的线连接起来,绘制一条线。
GL_LINE_LOOP:将所有的点按点的顺序绘制一条首尾相连的线环。
4.学习正交投影与透视投影。
5.学习照相机位置与视角位置的设置:
水平方向视角:a = 2arctg(left/near)。
垂直方向视角:a = 2arctg(top/near)。
下周工作安排:
继续学习openGL es后续内容。
学习内容:
1.学习ios中使用策略模式实现页卡切换,使用观察者模式实现消息通知中心。
工作/学习心得:
工作周报 (2017.09.04-2017.09.08)
本周工作内容:
一.城市告白项目bug修改:
1.处理城市告白用户端精度bug。(已完成)
2.加载回来的数据均的距离均大于3km则出现3公理内无数据的提示。(已完成)
3.修复3公理内有告白点无提示的bug。(已完成)
4.修复中文首字转换拼音个别转换出错的bug。(已完成)
下周工作安排:
学习内容:
1.IOS的自动布局:IOS6之后使用约束来达到屏幕之间的适配,添加约束时需要注意如下几点:
a.对于两个同层级view之间的约束关系,添加到他们的父view上.
b.对于两个不同层级view之间的约束关系,添加到他们最近的共同父view上.
c.对于有层次关系的两个view之间的约束关系,添加到层次较高的父view上
2.使用自动布局分别实现Linearlayout与UIScrollView的滚动自适应。
3.使用约束动画作底部导航视图。
工作/学习心得:
工作周报 (2017.09.11-2017.09.15)
本周工作内容:
一.城市告白项目bug修改:
项目暂缓
下周工作安排:
1.熟悉IOS中多线程编程的相关API。
2.熟悉IOS中动画的swift语言api。
3.熟悉IOS中约束的swift语言API。
学习内容:
一.swift学习:
1.swift语言基本语法学习包含类型,流程控制,函数定义与使用。
2.学习下标脚本的基本语法及其使用。
3.swift为单继承,协议多继承。
4.泛型与生成器的基本使用。
5.swift中的基本类型是值传递,如果想使用引用传递可以使用inout进行修饰。
6.便利构造函数,方便调用,但是必须调用一个初始化方法即init方法
7.swift中枚举项不可以用 0,1,2 这样的数字值来代替。它们有自己的值且需要设置一个初始值,尽管不是类变量。
8.使用swift实现UIScrollView的下拉刷新/上提加载更多的MVC框架,并整理成公共代理库。
9.使用if let = XX.XX? 可以避免重复的if检测语句。
10.guard关键字的使用,guard关键字修饰的语句,常用一个变量来保存,如果修饰的语句为真,则执行,否则执行后面的语句,
对于简写if 检测语句有一定帮助。
11.引用计数仅仅应用于类的实例。结构体和枚举类型是值类型,不是引用类型,也不是通过引用的方式存储和传
12.闭包的循环强引用:循环强引用还会发生在当你将一个闭包赋值给类实例的某个属性,并且这个闭包体中又使用了这个类实例时。
这个闭包体中可能访问了实例的某个属性,例如 self.someProperty ,或者闭包中调用了实例的某个方法,例如 f.someMethod() 。
这两种情况都导致了闭包“捕获” self ,从而产生了循环强引用,虽然闭包多次使用了 self ,它只捕获 HTMLElement 实例的一个强引用。
打破这种循环强引用的方法常使用:
定义闭包捕获列表,其中在这个列表中将所引用的实例均用weak或unowned进行修饰,但是:有一个地方需要注意:如果被捕获的引用绝对不会变为 nil ,应该用无主引用,而不是弱引用。
13.实现协议中的 mutating 方法时,若是类类型,则不用写 mutating 关键字。
而对于结构体和枚举,则必须写mutating 关键字。
工作/学习心得:
1.闭包类型是由参数类型和返回值类型决定,和函数是一样的。
2.闭包可理解为与OC中的block有点相似,也与c++中的匿名指针类似。
3.闭包通常可以作为其他函数的参数,通常是最后一个参数,其中尾随闭包的所在函数()可以提前关闭。
4.闭包是引用类型。
5.类属性同pyhon语言一致,使用class修饰,结构体的类属性,使用static修饰。
6.class是引用类型,而struct是值类型。
7.inout关键字用来改变函数的値传递方式,如果形参中使用了inout修饰了该参数且在函数内部进行的修改,那么外部对应的变量也会跟着一起改动。
工作周报 (2017.09.18-2017.09.22)
本周工作内容:
下周工作安排:
1.继续学习UIView与CALayer类
2.熟悉Swift语言下,UIView与CAlayer类相关API.
3.使用swift封装对话框框架。
4.使用swift写约束动画。
学习内容:
一.swift 并发编程学习:
1.NSOperation 和 NSOperationQueue 分别对应 GCD 的 任务 和 队列 操作步骤如下:
a.将要执行的任务封装到一个 NSOperation 对象中。
b.将此任务添加到一个 NSOperationQueue 对象中。
2.自定义 Operation 对象 需要注意的点
a.执行主任务,达到这一步通常需要重写main 与start方法。
b.响应取消事件 重写cancel接口
c.配置并发执行的 Operation
d.维护 KVO 通知,主要用来监听线程状态的改变
3.对于OC中的线程,如果项目使用的是MRC则需要在线程创建的时候同时创建一个自动释放池。
4.学习使用Snapkit库的使用。
5.使用swift做底部tabbar菜单。
6.使用swift处理底部拖拉菜单。
7.guard语句必须有条件子句这个条件为Bool子句,而且必须在该子句中调用
Never函数返回类型,或者使用,return,break,throw,continue退出当前作用域:
8.IOS图形显示的小结:
a.如何选择UIView和CALayer?
UIView相对于CALayer来说就是多一个事件处理的功能,CALayer是不能处理用户的触摸事件。
故如果显示出来的东西需要跟用户进行交互的话,用UIView;如果不需要跟用户进行交互,用UIView或者CALayer都可以。
b.IOS UIView显示小结:
其实UIView的显示过程:
当UIView需要显示时,它内部的层会准备好一个CGContextRef(图形上下文),
然后调用delegate(这里就是UIView)的drawLayer:inContext:方法,并且传入已经准备好的CGContextRef对象。
而UIView在drawLayer:inContext:方法中又会调用自己的drawRect:方法
在drawRect:中通过UIGraphicsGetCurrentContext()获取的就是由层传入的CGContextRef对象,在drawRect:中完成的所有绘图都会填入层的CGContextRef中,然后被拷贝至屏幕
9.学习CAShapeLayer + UIBezierPath绘制各种图形:
使用UIBezierPath绘制三步曲:
a.创建path
b.添加路径到path
3.将path绘制出来
工作/学习心得:
工作周报 (2017.09.25-2017.09.30)
本周工作内容:
5.封装swift版数字播放动画。(已完成)
6.封装App启动页面倒计时动画并将倒计时间,圆环颜色,文本尺寸与颜色抽为对外公共接口方便调用(已完成)
7.封装Swift版Toast提示信息公共代码库,其中提示模式分为以下几种模式:(已完成)
a.纯文本模式,提示信息只显示居中显示的文本。
b.动画模式,提供成功与失败的动画。
4.Swift中恒等价运算符:
a.“等价于”表示两个类类型(class type)的常量或者变量引用同一个类实例。
b. “等于”表示两个实例的值“相等”或“相同”,判定时要遵照设计者定义的评判标准,因此相对于“相 等”来说,这是一种更加合适的叫法。
5.IOS中为什么 CALayer 中使用 CGColorRef 和 CGImageRef 这 2 种数据类型,而不用 UIColor 和 UIImage小结如下:
a.首先要知道:CALayer 是定义在 QuartzCore 框架中的;CGImageRef、CGColorRef 两种数据类型是定义在 CoreGraphics
框架中的;UIColor、UIImage 是定义在 UIKit 框架中的。
b.其次,QuartzCore 框架和 CoreGraphics 框架是可以跨平台使用的,在 iOS 和 Mac OS X 上都能使用,但是 UIKit 只能在 iOS 中使用。
c.因此,为了保证可移植性,QuartzCore 不能使用 UIImage、UIColor,只能使用 CGImageRef、CGColorRef。
d.不过很多情况下,可以通过 UIKit 对象的特定方法,得到 CoreGraphics 对象,比如 UIImage 的 CGImage 方法可以返回一个 CGImageRef。
1.Swift中的Selector与OC中@selector区别:
objc中@selector:是 Objective-C 时代的一个关键字,它可以将一个方法转换并赋值给一个 SEL 类型,它的表现很类似一个动态的函数指针,
它是一个runtime
swift中Selector为一个结构体,它也能将一个将一个方法转换并赋值给一个 SEL 类型,但不同的是,对于如果你的 selector 对应 的方法只在 Swift 中可见的话 (也就是说它是一个 Swift 中的 private 方法),在调用这个 selector 时你会遇到一个 unrecognized selector 错误:
解决试是 在方法前面添加 @objc private进行修饰;
如果这个选择子,需要回传参数,一般作法是添加一个外部参数,调用的时候用With+参数的首字母大写,如调用callMethod(ex param : Int),Swift中的Selector需要这样初始化: Selector("callMethodWithE:")
2.当一个对象扩展一个接口时,如果此接口中声明了属性,但是在声明的接口中又想更改这个属性时,那么需要将这个接口声明为一个可变的接口
采用mutating修饰。
1.Swift 中不加修饰的 init 方法都需要在方法中保证所有非 Optional 的实例变量被 赋值初始化,而在子类中也强制 (显式或者隐式地)
调用 super 版本的 designated
2.而因为 Swift 的 init 只可能被调用一次,因此在 init 中我 们可以为let不变量进行赋值,而不会引起任何线程安全的问题
3.目前Swift版中不支持在类中声明类存储属性,这主要是因为在 Objective-C 中就没有类变量这个概念,为了运行时的统一和兼容,暂 时不太方便添加这个特性
下周工作安排:
学习内容:
1.Swift约束动画学习:使用其一个窗帘菜单。(已完成)
2.学习CATextLayer,CAShapeLayer
3.使用CAShapeLayer + UIBezierPath设计不规则形状的UI(处理一个椭圆形的按钮,点击椭圆其他区域不响应点击事件)
4.封装Swift下对话框,并添加基本动画。(已完成)
5.封装Swift带标签的滚动导航视图公共代码。(已完成)
工作/学习心得:
工作周报 (2017.10.09-2017.10.13)
本周工作内容:
1.封装UICollectionView object-c/Swift 版本 分组视图与瀑布流视图MVC框架。(已完成)
2.针对爱情告白项目调研图像识别库,调研对象为face++、image++、腾讯优图、商汤科技、格灵深瞳、深图智服
调研结果:
以上公司在图像识别领域均擅长人脸比对、检测,普通图片内容与场景识别、图片中的文字识别,对于普通的两张图片均不能达到
比对的效果。
3.UITableView 优化小技巧:
a.对于当前不用稍后使用的数据可以进行懒加载技术。
b.显示单元格图片尺寸时可以使用重新绘制
c.对于block中循环引用时,使用weak修饰时,应对只对循环引用的对象进行修饰,并可以使用-(void)dealloc进行测试,
如果页面消失时,即回收了对象,循环引用被打破,否则对象未进行回收。
4.掌握SwiftyJSON库的使用。
5.使用UIBezierPath+CAKeyframeAnimation做路径动画。
6.学习Objc 的runtime(需要持续跟进)。
7.城市告白:处理微信多媒体分享(已完成)。
8.使用对象池模式复用文本对象,提高app性能。
9.城市告白:添加录屏功能。(已完成)
10.城市告白:处理手机移动时当前位置与选中的目标告白点距离不更新的bug(已完成)
11.城市告白:增加发送文件到微信会话功能(已完成)
下周工作安排:
1.小结对象池。
2.掌握Swift中泛型协议,并写一个泛型对象池。
3.跟进城市告白项目测试反馈。
学习内容:
1.Swift约束动画学习:使用其一个窗帘菜单。(已完成)
工作/学习心得:
工作周报 (2017.10.16-2017.10.20)
本周工作内容:
1.修复录屏功能在部分手机失败的bug.
2.城市告白:处理截屏功能。(已完成)
下周工作安排:
1.小结对象池。
2.掌握Swift中泛型协议,并写一个泛型对象池。
3.跟进城市告白项目测试反馈。
学习内容:
1.Swift中使用泛型对象池设计可复用的标签视图。(已完成)
2.Swift中static 与class区分:
a.在非 class 的类型上下文中,我们统一使用 static 来描述类型作用域。这包括在 enum 和 struct 中表述类型方法和类型属性时。
b.class 关键字相比起来就明白许多,是专门用在 class 类型的上下文中的,可以用来修饰 类方法以及类的计算属性。要特别注意 class 中现在是不能出现存储属性的
c. protocol 里定义一个类型域上的方法或者计算属性使用class修饰
d.在 struct 或 enum 中仍然使用 static – 即使 protocol 中定义时使用的是 class
3.Any与AnyObj小结:
a.AnyObject 可以代表任何 class 类型的实例
b.Any 可以表示任意类型,甚至包括方法 (func) 类型
4.Swift初始化方法小结:
1. 设置子类自己需要初始化的参数
2. 调用父类的相应的初始化方法,super.init()
3. 对父类中的需要改变的成员进行设定
5.使用KVO观察属性时,只需要观察一级属性即可。
工作/学习心得:
使用cocopod安装库的步骤为:
1.配置cocopod环境
2.使用命令行,进行项目根目录下。
3.在项目根目录下创建Podfile文件,使用命令行为:
vim Podfile
4.编辑Podfile文件内容,内容为:
platform :ios, '10.3' //声明ios系统,可在模拟器中查看
use_frameworks!
target 'BaiduYunDisk_Swift' do //需要安装的项目
pod 'SnapKit', '~> 3.1' //本项目安装的库
end
5.退出上述文件并保存,回到控制台窗口,输入:Pod install进行安装。
工作周报 (2017.10.23-2017.10.27)
本周工作内容:
1.城市告白:修复告白点数据只加载10条数据的bug。(已完成)
2.城市告白:修复采集端上传页面,快速点击选择上传地点时由单行变成多选的bug(已完成)
3.城市告白:调整采集端一传列表选择上传地点时的判断相等逻辑(已完成)
4.城市告白:处理微信登录模块,微信受权码模块处理完毕;与服务器的通信接口未完成调试
下周工作安排:
1.跟进使用微信登录后续模块。
2.与服务器联调登录、退出接口。
3.跟进测试反馈。
学习内容:
1.使用对象池模式设计滚动列表。
工作/学习心得:
1.生活中的小事,无需事事记在心理。这样很累。有时候选择性的忘记一些事情,可能过得还开心点
工作周报 (2017.10.30-2017.11.03)
本周工作内容:
1.城市告白:与服务器联调登录之后获取用户信息接口。(已完成)
2.城市告白:处理登录后用户信息保存逻辑。(已完成)
3.城市告白:设置头像显示为圆角形式。(已完成)
4.城市告白:处理图片裁剪选择区域框,提供2套接口,接口一:手机系统自带的图片裁剪,接口二:自定义图片裁剪。(已完成)
5.城市告白:删除系统自带的图片裁剪接口。(已完成)
6.城市告白:处理图片裁剪之后的上传逻辑。(已完成)
下周工作安排:
学习内容:
1.使用对象池模式设计滚动列表。
2.闭包使用的是的引用传递,但是如果在捕获列表中使用了闭包外面的变量,则会对捕获列表中的变量进行复制一份,之后再对外部的变量进行
改变操作则不会影响闭包内变量的值。这一点类似值传递。
当然如果想达到引用传递的情况,直接在闭包内进行变量的引用,而不需要在捕获列表中进行捕获即可。
工作/学习心得:
1.生活中的小事,无需事事记在心理。这样很累。有时候选择性的忘记一些事情,可能过得还开心点
工作周报 (2017.11.06-2017.11.10)
本周工作内容:
1.城市告白:修复地图页面切换时不能拖动地图的bug。(已完成)
2.城市告白:调整登录代码,退出时加上清理缓存操作
2.城市告白:修复图片裁剪时只按1:1比例上传的bug。(已完成)
3.城市告白:修复图片裁剪页面,返回按钮crash。(已完成)
4.城市告白:登录框隐藏按钮绑定隐藏事件。(已完成)
5.城市告白:调整截图页面本地相册与建筑缩略图的展示逻辑。(已完成)
6.城市告白:修复对话框已经添加到activity的异常。(已完成)
7.城市告白:优化选择图片裁剪时加载多图过慢。(已完成)
8.城市告白:添加微信分享视频到会话中可以播放的接口。(已完成)
9.城市告白:优化微信登录接口逻辑。(已完成)
下周工作安排:
学习内容:
工作/学习心得:
工作周报 (2017.11.03-2017.11.17)
本周工作内容:
一.城市告白:
1.修改图片剪裁页面的主题样式。(已完成)
2.修复微信客户端未登录时,使用应用内的微信登录时出现短暂白屏的bug。
3.过滤图片选择页面第一栏只显示用户图片。
4.图片选择裁剪页面第一栏不进行裁剪。
5.调整百度地图缩放控件的位置。
6.隐藏百度地图缩放控件及适配带虚拟导航栏的手机。
下周工作安排:
学习内容:
一.u3d场景搭建:
1.地形的创建及其树林、叶子、树干的创建及其纹理的创建。
工作/学习心得:
工作周报 (2017.11.20-2017.11.24)
本周工作内容:
一.城市告白:
1.修复剪裁图片的点击闪退的bug。(已完成)
1.修复不显示自定义图片的bug
1.调整登录检查逻辑
1.扩大返回按钮点击区域
1.新增应用crash退出日志收集系统。
2.处理andorid7.0微信分享视频的bug。
1.代码调整:处理地图点击 心心的对话框
2.调整图片请求接口控制图片大小
1.代码调整:调整获取建筑物区域id的接口请求参数
下周工作安排:
学习内容:
1.学习热修复原理并自主写热修复框架,目前自主写的热修复框架仅能修复代码上的bug,修复资源与so库的热修复功能还需要继续学习。
工作/学习心得:
工作周报 (2017.11.27-2017.12.01)
本周工作内容:
一.城市告白:
1.过滤自定义显示图片。(已完成)
2.代码调整:调整点击事件的响应方式。
1.优化recyclerView中item点击事件,优化内容如下:
a.复用点击事件代理对象,将原来的一对一模式调整为多对一,减少点击事件对象的内存占用。
b.采用手势当中的按下手势代替直接的点击。
2.学习使用android平台下的资源热更新,资源的加载流程以及如何加载补丁。制作补丁需要持续学习。
1.制作自动打包框架,流程如下:
a.android自动编译之后将生成的apk包上传到服务并生成可见的二维码。
b.测试通过扫描这个二维码即可进行相应最新的版本测试。
下周工作安排:
学习内容:
1.制作补丁包命令为:dx --dex --no-strict --output。
工作/学习心得:
工作周报 (2017.12.04-2017.12.08)
本周工作内容:
一.投屏眼镜手机端框架搭建:
1.类的结构设计,基类开发,沉浸式状态栏均已封装到基类中并提供相关调用接口。(已完成)
2.版本升级:多线程下载框架搭建完毕并提供开始,进度演示,暂停/开始相关接口。
3.工具类开发,文件工具类,sp文件缓存工具类,页面跳转工具类,分辨率转换工具均已完成:
4.crash日志捕获工具类处理完毕。
5.搜索页面mvc架构搭建,中英文版本配置文件创建。
6.主线程与子线程之间通信句柄设计。
7.处理输入眼镜密码框控件,并设计外部对话框。
8.搭建投屏页面框架,处理投屏开始后的悬浮窗。
9.处理wifi管理页面,热点信息管理页面。
10.处理触摸控制页面并将滑动次数接口封装好。
11.封装设置模块单选按钮组。
二、f城市告白:
1.修复建筑物分页重复数据bug
下周工作安排:
学习内容:
1.制作补丁包命令为:dx --dex --no-strict --output。
工作/学习心得:
工作周报 (2017.12.10-2017.12.15)
本周工作内容:
一.投屏眼镜:
1.处理引导页。(已完成)
2.处理欢迎页。
3.处理引导页并封装引导页指示器。
4.处理眼镜连接错误与连接断开的时对话框。
5.处理媒体控制页面,并封装左滑与双击接口。
6.处理搜索眼镜列表为空的显示视图。
7.调整输入wifi密码验证逻辑。
8.整理热点与wifi管理工具类。
9.处理输入法模块并添加输入法对话框消失的时候键盘随之消失。
10.封装红点提示控件并提供消息提醒数与是否隐藏接口。
11.处理输入法编辑框。
下周工作安排:
学习内容:
1.
工作/学习心得:
工作周报 (2017.12.18-2017.12.22)
本周工作内容:
一.投屏眼镜:
1.处理控制页面输入对话框。(已完成)
2.处理音量/亮度自动关闭对话框逻辑。
3.封装浮动窗口工具类。
4.处理投屏模块。
5.处理网络切换模块与wifi模块同时替换选择wifi连接时的对话框ui.
6.封装switch开关按钮控制。
7.封装扫描视图控件。
8.封装弹性容器。
9.处理搜索页面,搜索结果为空。
10.处理手机热点页面。
下周工作安排:
学习内容:
1.
工作/学习心得:
1.从容面对工作与生活中的一切。
工作周报 (2017.12.25-2017.12.29)
本周工作内容:
一.投屏眼镜:
1.封装震动工具类。(已完成)
2.替换引导页面与启动图的ui素材。
3.封装控制页面的新手引导。
4.处理控制页面手势滑动时的动画效果。
下周工作安排:
学习内容:
1.
工作/学习心得:
工作周报 (2018.01.02-2018.01.05)
本周工作内容:
一.投屏眼镜:
1.阅读眼镜上一版本桌面项目源码。
3.封装android tv应用开发项目框架,采用mvp模式。
4.处理桌面应用的焦点问题。
5.处理recyclerView中item选项的获取焦点时的放大与z轴问题。
6.处理recyclerView中item选项间隔问题。
7.处理加载本机app信息问题。
8.封装小红点显示工具类
下周工作安排:
1.完善视频列表。
2.完善桌面工具栏的业务逻辑。
3.自测视频列表。
4.移植桌面项目到系统源码中。
学习内容:
1.学习android tv应用开发。
工作/学习心得:
1.与同事交流时,尽量保持一种高效的状态。
2.近来学习React Native一事有所搁置,需尽快提上日程,安排好时间学习。
工作周报 (2018.01.08-2018.01.12)
本周工作内容:
一.投屏眼镜:
1.完善视频列表并调整视频列表的选中阴影。
2.调整视频列表首列与尾列的间距。
3.处理本页面顶部工具栏的业务逻辑及ui更新状态.
4.处理眼镜信息展示页。
5.移植桌面到眼镜的上一个源码版本中,其中焦点与应用列表均已处理完毕。
下周工作安排:
学习内容:
1.学习在android.mk文件中使用依赖包。
使用依赖包的步骤如下:
1).先在项目中的android.mk文件添加如下配置项。
LOCAL_STATIC_JAVA_LIBRARIES := recyclerview android-support-v7-recyclerview android-support-v4
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res frameworks/support/v7/recyclerview/res
LOCAL_AAPT_FLAGS := --auto-add-overlay --extra-packages android.support.v7.recyclerview
2).末尾添加:
include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := \
recyclerview:libs/android-support-v7-recyclerview.jar
include $(BUILD_MULTI_PREBUILT)
3).当使用
工作/学习心得:
1.控制情绪对于工作是会有很大的帮助的,自己这方面做的还不够,今后需加强改善。
2.没有必要在众人面前暴露过多的私人事情,这样只会让别人认为不够成熟.
工作周报 (2018.01.15-2018.01.19)
本周工作内容:
一.投屏眼镜:
1.更换小智精灵的引导页与新手引导。
2.处理小智精灵2.0版的蓝牙搜索页面。
3.处理小智精灵2.0版的主页面并添加控制手势页面。
4.调整2.0版本热点模块。
5.处理热点与wifi网络的连接方式。
6.新增音量增减、亮度增减与静音协议。
7.处理投屏页面,媒体播放控制页面(控制接口暂未设计)
下周工作安排:
1.调试新增的音量增减、高亮增减,静音接口
2.调整版本升级策略
3.处理投屏眼镜端。
学习内容:
1.无
工作/学习心得:
1.在平时的工作当中,控制自己的情绪非常重要,自己这方面做的还不够,需要加强。
2.本周工作态度有消极之势需要调整工作态度。
工作周报 (2018.01.22-2018.01.26)
本周工作内容:
一.投屏眼镜:
1.调试2.0版本眼镜端的wifi连接。
1.调试2.0版本眼镜端的热点直连。
3.调试焦点控制页面上下左右确定返回焦点事件。
4.调整眼镜端wifi网络连接过滤策略。
5.调整眼镜连接手机网络的广播响应信息处理逻辑,清晰代码结构。
6.调整小智精灵2.0版本wifi密码缓存策略。
7.优化焦点控制页面广播接收策略。
8.处理眼镜端新增音量增减、亮度增减协议与投屏协议。
9.处理投屏提示对话框与未搜索到蓝牙眼镜对话框。
10.处理文本输入框随文本高度自动增长。
11.调整文本输入框的圆角样式。
12.调整焦点手势的响应方式。
13.调整蓝牙选择列表顶部状态栏的隐藏逻辑,从启动页进入时隐藏,从主页面进入时显示标题栏。
14.增加主页面版本升级红点提示逻辑,如果发布了新版本,“版本升级”右上角显示红点提示。
15.封装统一loading效果控件。
16.处理投屏眼镜手机端本地视频控制页面的手势操作。
17.调整控制眼镜静音策略,如果眼镜已经静音则恢复到上一次未静音前的音量,反之则静音。
18.调整眼镜系统的亮度对话框显示与手机同步显示。
19.调整音量与亮度自动关闭对话框的逻辑。
20.调整蓝牙搜索列表的样式与设备连接状态的ui.
二.与设计讨论事宜
1.10分钟内。。。。。此处需要与阿宝那边讨论下,看能否实现,那个投屏的app是他开发的。
2.跳转到系统设置界面,能够返回来,这个与手机厂商系统有关,如果手机厂商的系统设置页面左边带有返回,那么即可,否则实现不了。
3.手机断开投屏,眼镜的投屏接收端理论上是知道的,应该可以做到返回上一个操作页面,不过需要与阿宝具体确认下(待定)
4.当眼镜端进入到视频播放页面,手机端能够自动弹出来(同步性不能做到100%)。
5.关于视频操作页面不能控制眼镜的焦点移动,眼镜那边做不出一个很好的过滤策略,只能这样了,俺尽力了。
6.视频控制页面的交互性需要你的确认。
三.待调整部分:
1.控制页面滑动震动取消。 已经完成
2.控制页面导航菜单区域调大点。 已经完成
3.蓝牙选择列表页面,如果已经连接,点击本项弹出对话框。
4.视频控制页面尽量与眼镜端是否在播放视频一致。
5.视频播放页面只保留暂停播放的震动,其余取消。 已经完成
下周工作安排:
1.视频播放控制页面,退出播放控制页面,眼镜端需要杀掉视频播放页面。
2.处理桌面的播放器部分。
3.跟进眼镜端的代码结构部分,需要特别注意的是蓝牙服务的健壮性与代码结构性。
学习内容:
1.在项目中使用h5进行富文本的样式设置。
工作/学习心得:
1.如果眼镜端出现 服务未发现时,,需要将相关so文件push到目的目录:
执行如下命令:
1.adb push /Volumes/cxm/55/sdk/android/android/out/target/product/v700_cxvr/system/bin/HandService /system/bin
再push相关依赖库
2.adb push /Volumes/cxm/55/sdk/android/android/out/target/product/v700_cxvr/system/lib/libHandService.so /system/lib
2.对于编译ndk层的文件,同编译android模块,进入到需要编译的模块根目录然后mm即可。如编译小智精灵2.0版本的按键值,进入到的目录是:
/55/sdk/android/android/device/actions/common/frameworks/HandService/libHandService$ mm
编译成功即能输出得到的so,其文件目录为:
out/target/product/v700_cxvr/system/lib/libHandService.so
在替换眼镜的so库文件时,需要注意:
1.库文件一般push到 /system/lib
2.可执行文件push /system/bin
工作周报 (2018.01.29-2018.02.02)
本周工作内容:
一.投屏眼镜:
1.处理桌面本地视频列表预览时获取到焦点文本长度大于控件本身宽度时滚动显示,失去焦点时停止滚动。
2.处理眼镜调起输入法时,手机端自动弹出输入法对话框。
3.处理蓝牙搜索列表点击未搜索到设备时弹的对话框的提示内容。
4.处理亮度&音量&静音按钮高亮没有消除 bug。
5.处理热点对话框连接前的对话框。
6.去除wifi列表重复数据。
7.处理切换蓝牙列表时不直接切换的bug。
8.处理眼镜端的输入法连接上小智精灵时切换到白泽输入法,断开连接时切换到百度输入法。
下周工作安排:
1.
2.
3.
学习内容:
1.mac电脑连接远程服务器:smb://192.168.1.200
工作/学习心得:
1.无学习
工作周报 (2018.02.05-2018.02.09)
本周工作内容:
一.投屏眼镜:
1.屏幕桌面系统主页面的返回键事件。
2.处理视频列表页面 wifi信号 ui不随系统更新的bug.
3.处理视频控制页面音量与亮度按钮的高亮与否状态与对应弹出的对话框保持一致。
4.处理小智精灵crash日志收集器。
5.处理不能完全退出投屏的bug.
6.添加桌面本地视频预览功能。
7.修复本地视频播放时,小智精灵不能控制的bug。
下周工作安排:
1.回家
学习内容:
1.mac电脑连接远程服务器:smb://192.168.1.200
工作/学习心得:
1.无学习
年终总结:
一.参与的项目:
1.小智精灵:(总分100)
架构思想存在诸多漏洞,扩展性,健壮性,皆需提高。比如蓝牙通讯框架,发生的断开重连次数较多,
眼镜端的蓝牙解析框架封装的不好,需要抽时间完善处理。(眼镜端的代码也有关系,这方面看源码过少)
后续事宜:蓝牙解析端,代码需要重构,规范性没做好。
得分:70分。
2.白泽应用市场:(总分100)(Android/IOS)
责任心:
过于固守己见,缺乏耐心,不善于指导别人。对于自己负责的项目,跟进力度小。
得分:40分
业务能力:
1.文件下载框架封装过,但是没用自己封装的多线程文件下载框架,对封装这种商用的框架信心不够,需要加强。
2.IOS开发方面:全新的认识,经验不足,对于自己今后往移动架构师方面发展有阻碍,今后需抽时间学习加强。
3.跨平台方面:React Native方面没有接触,这个新框架非常适合开发轻量级的app。急需补强。
得分:40分
3.城市告白:
责任心:不喜欢帮助别人,爱打擦边球。一个团队的进步才是真正的进步,需要学习别人好的方面,同时改进自己的技术短板
比如说andrid底层知识,Native层掌握不够,需加强。
linux基本命令也不熟悉:需加强。
业务能力:
1.android方面,缺乏底层知识,应用层对于一些复杂的控件设计不精通,需加强。
2.业务架构能力不足,设计的架构扩展性有待提高。
心态:
与别人沟通过于偏执,不听别人的意见,缺乏耐心,需改进。
得分:60分
4.投屏眼镜:
1.职业素质:
1.1.不够包容别人,易情绪化面对工作与处理事情,不利于今后的发展,急需改进。
1.2.与别人沟通态度不够端正,感性因素较重,应理性对待友情,爱情,同事之间的关系。
2.业务能力:
2.1.团队合作容恰度极低,不善于处理团队的事情,缺乏应有的领导能力。
2.2.对于架构设计能力眼光较为短浅,需从长远考虑。
3.团队沟通交流心态欠端正,特别是与测试人员交流时,缺乏应有的耐心与容忍度,不利于自己今后的发展,需要改进。
得分:30分
年度总评:及格
1.需改进急躁的心态,平和的与团队进行有效交流,认真对待工作,端正自己的情感价值观。
2.锻炼自己的领导能力,争取在新的一年里能够高效的带领一个小团队。
3.IOS开发能力与跨平台能力需加强,需进行一些新知识的补强工作。