Android 焦点

最近在做 Android TV,和手机 APP 不同的是,TV 大都需要依赖遥控器来改变焦点而不是 Touch 事件(除非你的屏幕可以触控~~)

Leanback

当时做 TV 项目搜到的资料都是它,但是没几个人细讲,我也不打算细讲···
因为这个库需要你自己去源码编译,有很多东西写死了,或者不是 public 的,而且不一定符合你们设计的审美~~
我们最后就是用源码编译搞的,只用了一个 VerticalGridView, 还改了一些东西。

SingleTask 血案

最近还是在做小包的需求(什么是小包···就是功能和体积的阉割版),测试提了个 bug,说主站的 APP,打开详情页,回到后台,再重新打开 APP,会回到详情页。而小包回到了首页。

RxJava doOnNext 歪打正着

来到了快手,代码是真滴乱。RxJava 到处甩,然后又炫技式的使用,冗余各种复杂逻辑,且有些地方使用并不规范,只不过没有出问题。配合自制 MVPs 架构,又秀了一波依赖注入,全是注解,导致我刚看代码时,完全凌乱了,重点是没有任何文档,对新人极不友好,且我认为,代码不应该这样写。

Promise

如今写了很多门语言之后越来越有感触,事件驱动的设计离不开各种异步调用。比如 Android 中主线程如今已经不允许发送网络请求等等,这时候都需要一些异步回调。而在前端也是如此,但是前端8成以上的工程师能做的原理性的东西很少。
首先 JsCore 改不了吧?水平有限!其次,CSS 的解析改不了吧?写各种 loader,各种插件已经很牛逼了,我感觉那些 webpack 相关的东西,至今我也不是很懂,只是会用。所以大部分人都关注在业务开发上。
而客户端的工程师还有很多其他的事情研究,比如热更新啊、性能优化啊等等。
我觉得没有好坏之分,但是前端在代码架构上或者一些设计上我觉得更优秀,客户端相比很落后。比如双向绑定,redux 等思想。再比如这个 promise,虽然客户端也有可以处理这种事情的东西,比如 RxJava、RxAndroid 等等,但是感觉没这么直接,RxJava 也要不停 subscribeOn、observeOn 等等,或者你说你写个 compose,但是还是那样,不直观不直接。

再来看看 WMS

这几天想重新研究研究一些 Android Framework 相关的东西,看到了 WindowManagerService(WMS),产生了一些疑问。

getSystemService(“window”)获取的是什么

很多人说是,WMS 的代理对象,可是目前我看的 android-28 的源码,发现并不是这样。

HTTP CORS

CORS

跨域资源共享(CORS) 是一种机制,它使用额外的 HTTP 头来告诉浏览器 让运行在一个 origin (domain) 上的Web应用被准许访问来自不同源服务器上的指定的资源。当一个资源从与该资源本身所在的服务器不同的域、协议或端口请求一个资源时,资源会发起一个跨域 HTTP 请求。
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Access_control_CORS

OPTIONS 请求

问题描述

第一次跟前端H5对接,结果请求不通,交流才知道,他们先发一个 OPTIONS 请求,然后再发送真实请求,而我这边后台只对 GET 请求做了处理

说出来不怕丢人,我还真的不知道有 OPTIONS 请求,复习一下相关知识

Http Post FormData

问题描述

需要上传一张图片到我们的对象存储服务器,对方给了接口协议。

需使用 post 请求,Content-Type 为 multipart/form-data

且 key = filecontent,value 就是文件内容

H5 audio 标签

背景

没错,前端天才终于涉及了真正的前端h5页面!

需求是优化一个两年前别人写的播放器!

可是坑死我了···

audio

  • 几个重要的方法
    • play 加载并播放音频或重新播放暂停的的音频
    • pause 暂停处于播放状态的音频文件
  • 几个重要的回调
    • waiting 无法直接播放,加载
    • canplay 缓冲至目前可播放状态
    • play play()和autoplay播放时
    • timeupdate 播放时间变化
    • ended 播放结束

一个简单的播放器逻辑

  • 一个友好的用户交互