实习做了啥

1.更新升级广告sdk(2021.11.8-2021.12.1)

收获

①接触到了三大广告SDK(广点通,穿山甲,谷歌Admob),熟悉了公司的项目
②思想上的进步:主要是封装的思想,改动的时候只需要改动具体实现类的某一些方法,而外部的那些大的封装方法都不用变。即只改具体实现,上层逻辑不变
③更新公司内部SDK的标准流程(使用本地依赖,github多人协作,项目打包)
而且还发现了公司的一个bug: 无效轮询bug

每1s去轮询,发现没有已经load的Ad,这时没有执行load方法去load广告,也就是进行了无效的轮询。
公司是这样的,第一次会执行一次checkLoad,作用是检查是否有已经load的广告。然后如果没有load的广告,就去load,后面每隔1s就去轮询。也就是等待第一次checkLoad方法load的广告。如果这个广告load成功了,就展示。如果load失败了,就一直等。
正常来讲,load失败,应该再去执行下load方法。

④广告分成了mMain和mSplash,我当时觉得两个广告都是加载的一样的,为啥要区分。后来才明白,这是为了方便运营统计的。

期间学习的其他东西

OKHttp,Retrofit原理,网络缺口学习,组件化入门

2.增加TV端“联系我们”页面

描述

在“TV端”的主页,加一个“联系我们”页面。

收获

入门了TV端,熟悉了TV端代码。
遇到了TV端的通用问题,即焦点问题。我遇到的就是没有加focusable属性,导致当时获取不到焦点。

3.增加自定义Notification(2021.12.9-2021.12.19)

描述

在手机通知栏,添加的快捷控制方式

实现思路

(1)需要广播,自定义notification工具类,以及ui布局
(2)在主activityoncreate方法中进行notification工具类的init,在ondestroy方法中进行工具类的销毁(主要是为了销毁manager,防止内存泄漏)
(3)不管用户在通知栏连接的vpn还是在主页连接的vpn,都会走同一个方法(如果是在通知栏连接vpn,则会使用Eventbus,走主页连接vpn的方法,所以是同一个方法),则将notification的ui更新,都放在这同一个方法里面。
(4)如果是非vip用户,每次点击通知栏都会打开app,目的是增加广告展示率

收获

自定义notification,广播,Eventbus,activity生命周期,属性动画和补间/帧动画的区别
(1)熟悉了自定义notification,知道有些控件他是不支持自定义的,比如switch
(2)使用自定义notification进行交互(activityservicebroadcastreceiver之间的配合)。后来把service去掉了,而且通过Eventbus减轻了broadcastreceiver的负担
(3)和项目的对接
这里注意,直接用Eventbus进行通信即可,无需在广播里面重新写一遍一样的代码。
问题
①app运行到后台的时候,可以断开,但是无法连接,动画会卡死
②在锁屏状态下,notification依然显示
③app被用户手动杀死后,notification依然存在
原因及解决思路

一个是应用在后台的时候,禁止了vpn的连接。在后台禁应该是为了防止谷歌admob以为在恶意刷广告导致封号。
最重要的,就是等不到动画停止的回调。
补间动画和帧动画都存在这种问题,只有属性动画不存在。正常来说,vpn连接成功后,会发送一条消息,这条消息会导致执行连接动画停止的回调。
但是在后台状态下,就是等不到动画停止的回调的执行。后来还怀疑是自定义view使用动画和Fragment结合的问题,可能导致viewdetach了。但是我最终没有弄清楚,看了几十篇博客。最终决定用属性动画来解决这个问题。
②锁屏状态下,可以设置VISIBILITY,控制notification不显示。即mBuilder.setVisibility(NotificationCompat.VISIBILITY_SECRET);
③这只在小部分手机存在。用户杀死app属于异常情况,不会走onDestroy方法。所以不能删除notification
我找了很多资料,发现只能用Service来配合。但是因为app此前没有用过相关Service,尽量不去弄新的Service,所以就无法解决。在这期间,我还学习了深杀和浅杀,以及调用的方法onTaskRemoved。具体在这篇文章
(4)代码差距
1.规范性问题,比如各种判空。还有工具类封装的规范,比如变量先在类里面声明。我写的就是前头不顾后头,一点不规范,平时就没注意这些
2.角度问题。写代码要站在全局的角度,我的就是太局部了。其实也是对项目不熟悉。比如一些上下文可以直接获取。
3.技术问题。没在onDestroy里面进行销毁,onDestroy不一定会执行。写ui的时候少用weight,还有可以用一个布局,表示多种状态(通过设置visibility

4.实现人机校验接口和Banner接口(2021.12.20-2021.12.24)

描述

添加人机校验功能和动态获取Banner

收获

webview基本使用
webview和js进行交互(安卓调用js代码,js代码回调安卓方法)
③注意实体类的混淆规则
如果是普通的实体类就直接implements NoProguard
实体类如果是请求的响应体就继承RspBase,RspBase里面有返回的成功和失败代码
④要注意模仿项目原先的编写思路。
比如回调要在调用的方法中实现,并且当作参数传走。
还有接收model,可以写的灵活一点。接收的类型如果是键值对,不一定非得是HashMap,也可以是自己定义一个类去接收。
接收的model也可以作为类型,放到别的类中作为一个对象,去存储数据。
⑤在网络获取成功的回调中写相关代码!!!一定要注意判空处理

人机校验思路

每次进入账户页面,会动态获取人机校验h5的url,然后存起来。
每次点击登录或注册按钮的时候,会先弹出人机验证框dialog。此框里面就有webview控件,加载的是人机校验h5的url。当人机校验成功的时候,网页会回调安卓的方法,传入一个值。同时安卓这边立马进行短信验证。当输入完短信验证码,点击登录或注册的时候,就会把刚刚网页传入的值带进去一块传走。证明用户已通过人机校验。
如果h5的url获取失败,那就不进行人机校验,也就无法获得网页传给安卓的值,也就无法登录或者注册。
至于h5的url的时延问题,因为人机校验成功了之后,紧接着就收到了网页传给安卓的值,是一气呵成的。所以url和网页传给安卓的值是相互匹配的,不会因为h5的url提前获取了,就过期了之类的。

遇到的问题

webview一片空白

5.修复banner以及人机校验的bug,以及修改强制更新的逻辑(到1.14)

①banner的bug主要是新增数据上报,以及新增跳转途径
②人机校验的bug就是:在app使用期间更改了人机校验的方式后,能否及时获取。我这里就是当检测到url发生变化后,会在网络请求失败的回调中重新获取url
③点击“联系客服”后,再弹出人机校验时,一直加载且加载不出来。解决方案。

6.增加ExpandableListView(1.19-过年)

改之前
在这里插入图片描述

改之后
在这里插入图片描述
收获就是ExpandableListView的使用,以及和以前ListView的配合。

load广告的逻辑

有一个接口IAd,然后有两个抽象类,分别是BaseAdOperatorBaseAd,只有BaseAd实现了IAd
每一种广告,都要继承BaseAd,并且有BaseAdOperator类型的成员变量。
BaseAdOperator有唯一实现类,AdOperator,它是FobAd的某一成员变量。有两个,分别是mMainmSplash
如图
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

### 回答1: 网络工程专业实习生可以的工作包括: 1. 网络设计和部署:参与设计、部署、维护和管理网络架构,保证网络的稳定和高效运行。 2. 网络安全:协助识别和防范网络安全漏洞,并对其进行预防和管理。 3. 网络监控:参与网络监控,识别和解决网络问题。 4. 网络维护:参与网络维护,包括硬件、软件和操作系统维护。 5. 技术支持:为用户提供技术支持,解决网络相关问题。 以上是网络工程专业实习生可以从事的一些工作,具体工作内容可能因公司和项目不同而有所不同。 ### 回答2: 网络工程专业实习可以从以下几个方面进行工作: 1. 网络设备部署与配置:实习生可以参与网络设备的架设与配置工作,如路由器、交换机、防火墙等,学习并掌握设备的基本功能和操作,了解网络拓扑结构的设计与实施。 2. 网络维护与故障处理:实习生可以协助进行网络的日常维护工作,包括监控网络性能、定期巡检设备、诊断和处理网络故障等。在实践中,可以学习并掌握常见的网络问题的排查和解决方法,提高自己的网络故障处理能力。 3. 网络安全管理:实习生在实习过程中可以参与网络安全管理工作,包括对网络进行漏洞扫描、安全策略的制定与实施、入侵检测与防御、实施安全事件响应等。通过实践,可以学到关于网络安全的专业知识和技能,提高自己的网络安全意识与能力。 4. 项目支持与实施:实习生还可以参与网络工程项目的支持与实施工作,协助项目组完成网络工程的实施与部署,了解项目管理的基本流程和方法,提高自己的团队合作和组织协调能力。 通过网络工程专业实习实习生可以积累实践经验,加深对网络工程的了解与理解,提升解决实际问题的能力。同时,实习还可以为日后的就业提供更多机会,增加就业竞争力。实习生可以通过实践中的学习与锻炼,不断提高自己在网络工程领域的综合素质与专业技能,为将来的职业发展打下坚实基础。 ### 回答3: 网络工程专业实习可以很多事情。首先,实习生可以参与网络基础设施的建设与维护,学习网络设备的配置与管理。他们可以在实际工作环境中应用所学的知识,并通过实践提升技术能力。其次,实习生可以参与网络安全方面的工作。他们可以协助网络安全团队进行漏洞扫描、安全评估和事件响应等工作,学习并熟悉网络安全的基本概念和技能。此外,实习生还可以参与网络工程项目的规划与实施。他们可以协助团队成员进行需求分析、网络设计和项目管理等工作,了解和掌握项目开发和实施的流程和方法。另外,实习生可以参与网络故障排除与维修工作。他们可以协助工程师进行故障分析和修复,熟悉常见网络问题的解决方案,提高快速定位和解决问题的能力。总的来说,网络工程专业实习生可以在实践中学习并应用专业知识,提升技术能力和实际工作经验。通过实习,他们可以更好地理解和掌握网络工程的实际应用,为将来的工作好准备。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值