- 博客(169)
- 收藏
- 关注

原创 总目标:成为一名合格的前端开发者
总目标:成为一名合格的前端开发者需要的技能必需HTML HTML5CSS CSS3 SASS/SCSSJavaScript/TypeScript Javascript ES6 ES7 TypeScript前端框架 React React 深入原理 Vue(MVVM) Bootstrap前端设计 Ant Design Material UI浏览器、网络原理 浏览器工作原理、性能优化 网络原理数据传输 Ajax 基本的数据传输协议工
2022-05-27 17:48:52
287
原创 从 JS 到 Dart:语法基础
声明:var final const。支持自动推断类型,但类型一直固定。未初始化的值为 null。基本类型:num int double String bool List Set Map。Final vs const: const 编译时确定,final 运行时确定。
2025-02-20 19:53:14
416
原创 【SICP】高阶过程和复合数据
总结来看,这就是我们常说的数据抽象、过程抽象课程中把这种称为抽象屏障:当构造一个过程,将构造整体的任务划分为实现部件的任务,调用过程中有一个抽象屏障,将细节隔离在底层;分离对象的使用和表示,用 CONS CAR CDR 作为抽象层来隔开。
2024-11-20 19:54:08
854
2
原创 多平台编包动态引入依赖的解决方案
A 平台需要引入一个依赖,B 平台却是不需要的,那么面向 B 平台打包的时候把依赖装进去自然就不大合适。最好的方法是动态引入依赖,根据平台来判断要不要引入。
2024-11-05 15:07:51
757
原创 跨平台 OTT 项目使用 Google Analytics 替代 KPI log
主要意思就是可以自动收集数据,然后分析数据。分析数据先不谈,收集数据和 KPI Log 的职能是一样的
2024-10-25 12:04:35
663
原创 kotlin定时器和主线程定时器
操作Exoplayer实例等,要求在主线程更新Exoplayer实例,用Timer.schedule定时无法满足要求
2024-10-25 10:50:30
1167
原创 【算法】dfs转dp的通用方式
说实话,dp一学就会,一做就懵的一个很重要的原因就是所谓递推不总是一件合乎思维的事。爬楼梯的题我们想象说dp[i]是爬后i级楼梯的种数,这样递推公式,数据结构,划分方法纷纷水到渠成,那像这样的题呢?
2024-08-19 10:47:10
493
原创 Android TV上OTT PWA应用开发的播放器选择:video.js vs exoplayer
本文从功能和性能两方面对比video.js和exoplayer的优劣
2024-08-08 19:24:21
440
原创 Flutter跨平台开发技术
Flutter 是由 Google 推出的开源移动应用开发框架,可用于快速构建高性能、美观的移动应用程序。它采用 Dart 语言进行开发,具有热重载功能,可以快速查看代码更改后的效果,极大地提高了开发效率Flutter 的 UI 框架采用了现代化的响应式编程风格,可以轻松地创建漂亮且高度定制化的用户界面。它还提供了丰富的组件库,开发者可以根据自己的需求选择合适的组件来构建应用程序。
2024-07-11 17:40:45
1310
原创 解决android native包webview,webview中的请求blocked by CORS policy
其他地方搜的都不好使,我已经搜过了,我这个绝对好使
2024-07-05 18:39:44
1302
原创 视频流加密解密技术
CENC 的机制受 MPEG-DASH(基于 HTTP 的动态自适应流媒体)ISO/IEC 标准 23001-7 管辖,该标准为多个 DRM 系统的兼容性提供了总体框架加密方法:AES, DES, RC4, 3DES, RSA,也就是什么对称加密,非对称加密,公钥私钥的那一套简单的理解,CENC 是用来规范加密的,DRM 是用来解密的。解密的方式有很多种,但加密的方式是同一种。这样,不同的 DRM 系统可以对同一文件进行解密,支持更广泛的可访问客户端。
2024-04-17 16:21:32
2027
原创 Fire TV开发app超出屏幕外,显示不了全部内容解决
在settings-Display&Sounds-Display-Calibrate Display中调整页面缩放比例。按照它的提示,按上/下键,直到上下左右四个箭头刚好顶到电视边缘为止。
2024-04-07 18:39:52
183
原创 Flutter 的状态管理
把子组件的状态,提升到上级组件中,从而实现在多个组件之间共享和同步数据的效果以 flutter counter demo,那个按按钮+1 的来说,现在的 count 是几,不是存在页面显示几的地方,而是作为 HomePage 的一个 state,这样就提到了上级;子组件那个按钮的 press 事件,也不是说找到页面显示几的 Text 元素,然后改那个元素,而是改 state。
2024-03-01 11:14:33
1389
原创 flutter基础入门笔记
flutter 和 react 差不多,react 是 component(class 的),flutter 是 widget;react 是通过 props 和 state 变化驱动 rerender,flutter 是根据父组件构造函数参数值和 state 变化驱动 rerender;flutter 和 react 管理 state 状态的都是 setState;甚至连生命周期也都是差不多。
2024-02-22 16:22:46
628
原创 【算法心得】Integer is also a constraint
【代码】【算法心得】Integer is also a constraint。
2023-11-27 18:54:44
191
原创 【算法心得】When data range not large, try Bucket sort
【代码】【算法心得】When data range not large, try Bucket sort。
2023-11-24 14:23:32
248
原创 【JavaScript Weekly】2023.11.16
Prettier 更新了3.1版本,对三元组的格式化做了更新opinionated: 这个没有直接对应的中文意思,类似于褒义版本的刚愎自用,在 Prettier 的语境下,就是如果不按它那么写就不行,就会报错画红波浪线control flow 控制流syntax 语法experimental 实验性的。
2023-11-21 20:48:28
226
原创 【算法心得】minus instead of add
From now on I will try to write blog in English, there may be a lot of grammar issue in these articles, but I think I am only a learner, it is a part of study.
2023-11-20 17:44:19
152
原创 【SICP】Primitive elements, combination, abstraction
抽象化一些组合式并给它命名,使得可以将其作为一个元素(* A A)我们无法分辨内建元素(things are built in)与复合元素(things are compound)的区别,因为复合元素经过了一层抽象封装(abstraction wrapper)
2023-09-28 12:01:04
159
原创 【SICP】引入与教学大纲
我们希望的是,不管 a1,a2 是向量,或者电信号,声波的什么类型,我们的过程仍要有效若 a1,a2 是多项式,最后的结果要是格式化好的多项式控制系统复杂度的方法:构建一门新的语言,强调系统的某个方面而隐藏某些细节Y operator Y 运算符:在过程式语言中表达无限了解 Lisp 解释的过程(process of interpretation):EVAL 求值 APPLY 应用的相互轮转 apply-eval loop。
2023-09-28 09:06:12
153
原创 【算法心得】位运算
每次计算s的值时,其实是先计算每个数位上1的个数,若有奇数个1,则该位上的结果为1,偶数个为0,这是这次推论出的一个结论,不过对于这题来说用不到。所以对于任意一组个数为偶数的序列,如果它是x x x x x x这样的构造,那它最后异或出来的结果肯定是0。我们将前N-1个数变成s,那前N-1个数的新异或值是0,算上最后一个数,假设为a,整体N个元素的新s值为a。对于元素偶数个的序列,直接将从头到尾变成s,这样算出来的新s就肯定是0,再从头到尾变成0,就完成了。0^0=0,所以多少个0相互异或都是0。
2023-09-05 15:22:53
106
原创 【算法笔记】二维的哈希与迭代转换;Runtime Error 的解决思路
15*2e6=3e7,这个放栈内存上肯定爆掉,我用的vector,放堆内存不知道,估计也很极限,所以就给改成了每次用到的时候现算。最后回家路上走着走着才想起来,把小块放在左上角的那步,就是迭代的初始情况,我没有加判断,比方说小块的大小比大块的还大,那第一步的时候是会越界的。查了一下,也有可能是比方说数组开太大了,爆内存了,比如 int A[1e8],肯定会 RE(栈内存里,堆内存不会)RE 的原因一般是越界了,访问不存在的内存这样的,不过打出来所有访存的index,发现没有一个越界了。
2023-08-31 15:03:44
467
原创 【算法随记】C(n,m)不越界但A(n,m)越界;C(n,1)+C(n,3)+C(n,5)...等二项式定理;“memset”: 找不到标识符
这题要模1e9+7,但是只有加减乘能模,除法模不了。所以这个A(n,m)要存原值,原值也太大了,爆 long long。先算A(n,m)里有多少个2 3 5 7,再减去(n-m)!中2 3 5 7的个数,最后把剩下的乘起来。费马小定理:若M是质数,且B、M互质,那么B^(M-1) mod M = 1。要是能不要除法,全是乘法就好了。M自己就是质数,当然与B互质。
2023-08-23 21:05:35
427
原创 【算法心得】下标会变不好用线段树,那就通过线段树反向求下标
如果线段树里存的是某区间某元素的数量(每一个节点是一个数组),那么让这个数组tree[x]中空出tree[x][0]来作为tree[x][1]~tree[x][N]的和,这样找到区间字符数量为l_origin是可行的,r_origin同理。1e5,只能O(nlogn)了呀,我想过用链表维护这个string,这样删了之后下标是真下标,然后把同样的字符链接起来,删的时候好找,但是这样还是没办法判断下标,要是判断下标是不是在 [l,r],就得一格一格走链表,那一趟就O(n)了😵。
2023-08-22 13:02:19
83
原创 【算法随记】二进制数的后缀相同不代表它们是倍数关系
打出来看是01101111001111001(倒序),我的输出是6(110),感觉没问题呀,正好是最后面的三位。只有xxxxx10是10的倍数,xxxxx1是1的倍数,这是美好的巧合(奇偶性),推广不了的。110xxxxxx不是110的倍数,xxxxxx110也不是。就像7xxx未必是7的倍数,xxxx7也未必是7的倍数。第三个点是81142,wa了。
2023-08-21 18:13:57
103
原创 scroll 和 wheel 事件的区别
只有 element 可以 scroll,才能在 element been scrolled 的时候,触发 scroll 事件。这是 mdn 上写的 wheel 和 scroll 事件的区别,说 wheel 未必触发 scroll 事件,这个其实也间接的说明这俩本身就不是一个东西。我觉得 list 是一个长的列表,比 container 要长,应该能滚动才是,不知道为啥滚动不了。鼠标的事件常用的有click,这个是点击,mousemove,位移,还有 wheel,就是滚轮了。后来请教了师父,他直接。
2023-08-21 14:20:26
383
原创 【算法心得】正确估计dfs时间复杂度;剪枝优化不怕重构
这题看到题,“表达式中使用的不同字符数最大为 10”,就觉得dfs就完事了,最多不过10!的,那简直就是嗖的一下就跑完了。剪枝吧,刚开始为了能用得上之前的代码,就在之前的dfs前包了一层,先dfs个位的,然后剪,再dfs其他的。后来重新写,发现其实也没那么慢,应该早一点重构的。之前的代码未必和后边的代码兼容,与其改不如直接重新写。今天第一次知道leetcode要pass,是要所有点加起来的时间,而不是单个点的时间。比方说,有7个字符,不是想象中的 7!当时真的绝望了,因为已经调了好久了。
2023-08-14 18:47:02
390
原创 【算法心得】array去重,状压dp,dfs与动态规划的关系
状压dp不是什么新型的dp,只是针对存储方式,用二进制来压缩dp表的index。比如要存选取135的dp的状态,index是10101(二进制)我发现一般dfs tle的基本都能转dp,比方说最典型的八皇后,也能从小块开始,自底向上的算出全棋盘的解这样。这题也是这样,计算最后1个,最后两个的路径长度,最后三个的路径长度,知道最后n个的路径长度。
2023-08-11 20:52:23
236
原创 【算法心得】js string改其中的某位要substring;replace+正则;Set;Set 转 Array; Map
【代码】【算法心得】js string改其中的某位要substring;replace+正则;Set;Set 转 Array;Map。
2023-08-04 11:11:09
144
原创 【算法心得】C++map用不着map.find(arr[j])!=map.end();js的map是map不是哈希;编译器选GNU
我自己都没想到调了一个半小时,要是之前肯定老早就放弃了,觉得评测机sb,不是我的问题,但是吧今天是组团练算法第一天,不好意思。后来真的没有招了,找了一个写的逻辑差不多的,为了跟他写的差不多我自己的优化都舍弃了,最后基本是写的一样一样的,还是TLE。不过吧在第10个点WA了,这个很快查出来了,把ans换成long long 就好了。后来发现跟人家唯一不同的是编译器选的不一样,我选的Clang++,人家是GNU。把最开始的那次,没跟着优化的代码拿过去跑,也可以AC,满意了。看了人家写的,还加了。
2023-08-03 20:51:37
363
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人