文章
把旧博客迁移到 Astro 和 Vercel
记录一次从旧静态博客到 Astro 的迁移过程:文章抽取、路径保留、GitHub 建仓、Vercel 部署,以及中间踩到的几个小坑。
一次 Android 首页性能体验优化复盘
从启动任务、首屏接口、View 预创建、图片直出和防劣化监控几个方向,复盘一次 Android 首页体验优化。
Android App 安全模式与连续崩溃自恢复设计
围绕连续 crash、启动阶段异常和高风险缓存,整理一套 Android App 安全模式与自恢复机制的设计思路。
Flutter PlatformView 点击坐标错位问题排查
一次 Flutter PlatformView 嵌入原生地图后点击坐标错位的排查记录,核心问题来自 Flutter 逻辑坐标和 Android density 的转换边界。
个人简历
求职岗位:Android开发工程师 基本信息 姓名:贺文杰 性别:男 邮箱:emhhbmdmZW5lQGdtYWlsLmNvbQ== ( https://www.base64decode.org/ BASE64解码) 教育情况 本科:长安大学 时间:2012.09 ~ 2016.07 备注:专业第一 硕士:东南
翻页效果的RecyclerView
实现一个自定义LayoutManager,默认只有一个抽象方法,实现的重点在于onLayoutChildren对页面的布局和滑动操作,当然还有缓存。 属性定义 mPosition是当前item的位置信息,mPositionOffset是偏移信息,mMinVy是最低的y方向的速度,这个需要根据不同屏幕尺寸来定。 布局流程
小爱技能开发大赛-抽签技能开发分享
“抽签”技能的开发流程基本沿袭官方给出的 Hello World 的开发方式。 首先明确技能的功能,一般而言,抽签包括两个步骤,设置抽签人数,依次开始抽签。此外还需要支持查看已经抽签的结果。再看应用场景,因为技能的对象面向于智能音箱,而音箱的人机交互方式只有通过语音进行,所以对于给用户的交互过程既要保证功能的准确传达,
ConcurrentHashmap拾遗
为什么Hashtable ConcurrentHashmap不支持key或者value为null? 在很多java资料中,都有提到 ConcurrentHashmap HashMap和Hashtable都是key-value存储结构,但他们有一个不同点是 ConcurrentHashmap、Hashtable不支持ke
Volley理解
概述 物理质量 使用Volley 需要Volley.jar(120k),加上自己的封装最多140k。 使用OkHttp需要 okio.jar (80k), okhttp.jar(330k)这2个jar包,总大小差不多400k,加上自己的封装,差不多得410k。 Volley 的优点 非常适合进行数据量不大,但通信频繁的
【Android面试特辑】Android线程与线程池总结回顾
总结一下Android中Thread和ThreadPool的内容,建议保存图片查看,欢迎补充。
【Android面试特辑】Handler总结回顾
总结一下Handler的内容,建议保存图片查看,欢迎补充。
【Android面试特辑】事件分发机制总结回顾
总结一下事件分发的内容,建议保存图片查看,欢迎补充。
二进制中0的个数
师兄的一道网易面试题 问题:求二进制0的个数,要求从第一位为1往后统计个数? 方法一 主要考虑正负数情况。 对于正数,在不为0的情况下,计算其二进制,容易得0的个数。 对于负数,因为已知第一位是1的,所以不用担心有高位0,直接取1,然后依次左移,看&原值是不是0。停止条件是这个数为0。 方法二 另一种技巧性强的方法。从
【Android面试特辑】Binder总结回顾
总结一下Binder的内容,建议保存图片查看,欢迎补充。
【Android面试特辑】BroadcastReceiver总结回顾
总结一下BroadcastReceiver的内容,建议保存图片查看,欢迎补充。
【Android面试特辑】Fragment总结回顾
总结一下Fragment的内容,建议保存图片查看,欢迎补充。
【Android面试特辑】Service总结回顾
总结一下Service的内容,建议保存图片查看,欢迎补充。Binder的内容单独提出来。
【Android面试特辑】Activity总结回顾
总结一下Activity的内容,建议保存图片查看,欢迎补充,以后会添加启动过程。
阿里笔试测试题(零售通App中使用消息数的红点引导用户点击)
题目如下 这道题当时没做出来,一个是因为时间短,一个是因为思路太不成熟。 构建这个树比较麻烦,数据结构选好了其实就比较简单。 大致要求就是求得一级节点消息数的最大值。 构建这棵树,采用HashMap 这样可以快速根据字符串找到对应地Node,同时拿一个ArrayList 存储下根节点连接的一级节点,便于后期求一级节点。
LeetCode【82. Remove Duplicates from Sorted List II】
本文的题目是一道中等难度题(82题),之前没有注意删除头结点时的技巧。 题目内容 Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the origin
Android7.0完美适配——FileProvider拍照裁剪全解析
在做android7.0的适配时,发现拍照裁剪图片等功能莫名其妙地崩溃了。通过观察控制台的崩溃记录,原因很明显,file:// 不被允许作为一个附加的 Uri 的意图,否则会抛出 FileUriExposedException,接下来就依次适配之。 FileProvider介绍 官方对于 FileProvider 的解
IntelliJ IDEA下使用默认Spring MVC框架运行失败的解决方案
IntelliJ IDEA下导入Spring MVC框架,直接运行失败,下面说明一下具体的解决步骤。 使用IDEA,直接导入Spring MVC框架 目录结构: web.xml dispatcher-servlet.xml 在WEB-INF/jsp目录下创建hello.jsp src目录下创建com.wenjiehe.
Relative Ranks问题的两种实现
本文的题目是一道基础题(506题),基于排序问题,借此熟悉一下快排和冒泡及其使用,同时也能很明显地看出快排的优势。 题目内容 Description: Given scores of N athletes, find their relative ranks and the people with the top th
研究生一年级寒假杂记
这篇文章讲讲研一的寒假在家做了哪些事及发生的改变。 今年回家特别早,几乎一考完试就回家了,应该是在外面呆久了,倍感离家近时对家的怀念。 这个假期过得还算充实,每天睡觉的量绝对是为接下来的一年养足了精神,每天睡觉平均十小时,每天都觉得特别困,想睡觉。除了最后来学校的那个晚上没睡好,其他时间基本一沾枕头就睡着了,再睡到自然
基于Hexo的博客同步中的一些问题
这篇文章讲讲在我的Octopress博客更换成基于Hexo的博客后,为了在多台电脑能够同步中遇到的问题。 我基于 这个回答 来解决这个问题的。问题主要出在theme上,由于NexT主题引自第三方,所以这就牵扯到git中的submodule问题了。想偷懒把不引入,但是好像不行,于是按以下思路进行解决:clone NexT
行迹V0.6版本概述总结
这篇文章讲讲目前行迹版本(v0.6)的一些总结。最开始的版本,对于签到信息等信息类的管理展示用的是开源库cardslib,但是我用的比较简单,开始不太清楚ListView和RecyclerView的使用方式,在做cardslib的refresh和reload时,遇到了很多问题,这一块还没有彻底解决,后来选择了一个国人的
行迹开篇
毕业前开始写一款应用,经过一次大的重构,现在这个应用已经稍微像点样子了,准备开始一边写技术总结,一边做下去。 因为开发应用的时候,android基本玩的差不多了,算是边学边开发,所以很多架构比较散,不最优,只能慢慢地一步一不提升了。我们总是由弱到强的嘛! 说正题,这款应用我很久之前就想做了,但是一直犹豫以后做的方向,是
Raspberry Pi 3 opencv+python的人脸识别
上次安装了opencv库,这次我们来使用一下。 安装PIL库 接下来只要运行python xx.py 过一会,如果图片内有人的话生成一个文件夹,里面有一张人脸的截图和一张人脸的标识图。 以下为示例: 接下来用一下摄像头: 在 process(“kobe.jpg”) 前面加一句: 看一下效果: 光线不好还是能认出来,说明
Raspberry Pi 3 编译opencv
OpenCV的全称是:Open Source Computer Vision Library。OpenCV是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的
Raspberry Pi 3 使用owncloud云服务
我们将要搭建自己的云系统平台,更精确的说是一个云存储系统,正如上面的产品所提供的功能。我们将使用开源软件ownCloud来搭建自己的私有云。ownCloud 起源于一个叫The KDE 云计算项目,现在已经适用于大多主流平台,它最早是KED的开发者Frank Karlitschek 创建的,现在由一个ownCloud
Raspberry Pi 3 ngrok内网穿透
现在很多宽带服务都不分公网ip,那怎么让外网访问树莓派的服务呢? ngrok 就可以实现外网访问树莓派,ngrok的具体介绍和实现就不说了,主要来看看怎么使用。 我用的是国内的ngrok.cc 的服务。 去ngrok.cc 下载arm版本的客户端,解压。 修改 ngrok.cfg 文件 这里的token填写在 Ngro
Raspberry Pi 3 发微博
本打算做个微博机器人,但是貌似微博把接口的权限改变了,不是很好弄,所以这里先做个半自动的。 首先去open.weibo.com 先建立自己的应用,你会得到一个 App Key App Secret ,除此以外我们需要在 应用信息-高级信息中,把授权回调页 写成 https://api.weibo.com/oauth2/
Raspberry Pi 3 搭建本地DNS服务器
需求:上网时莫名地弹出广告,或者莫名的流量被消耗掉导致网速变慢。其次是部分网站域名不能正常被解析,莫名其妙地打不开,或者时好时坏。 管理下局域网的DNS(双十一的时候,把某宝网站直接给解析到本地ip,打不开网页,O(∩_∩)O哈哈~) 这里我用的是dnsmasq 安装比较简单: 下面我们就需要配置dnsmasq了,配置
Raspberry Pi 3 中文显示及输入+百度云传输
树莓派系统显示中文的话,大部分都是一个的小方块,还好我们有非常无私的开源者: 文泉驿的开源中文字体,树莓派全网唯一的开源中文字体库 能显示中文,输入也是必不可少的: 快捷键也是Ctrl+空格 然后选择第五项Internationalisation Options,change_locale,在Default local
Raspberry Pi 3 wifi问题
树莓派自带wifi模块,应该说是很实用的功能,用法其实和USB wifi一样使用,但是树莓派3死活连接不上我的wifi,于是我就参照USB wifi的使用。 先用SSH登陆: 由于回宿舍,没有显示器,所以需要直接修改此文件: 按照道理说,直接点图形界面的wifi连接,输入密码就可以了,然而我的死活就是不行 尝试加入一些
Raspberry Pi 3 开箱+扩容+samba
昨儿树莓3到手,今天先用了下电阻屏,帖子在此 ,花了些时间,今晚重点吧树莓基础环境先搭建下。 开箱图: Pi3和微雪的屏 说明书多国语言: 正面照: 背面: 这个3的卡槽由以前的弹出式变成现在直插的,安装时候没有弹簧按压声。 安装很简单,去 http://downloads.raspberrypi.org/raspbi
趁年轻,做点自己不喜欢的事
大家都说你年轻的时候要多做点喜欢的事,等大些时候只能身不由己,为了生活而活。这话说的没错。可是有些时候,可当你说,我讨厌做这件事的时候, 你想过你为什么讨厌它么 ? 你说,我从小就讨厌,这个说的太模糊。其实,有些时候,你只是第一次遇到它的时候,刚好,双方没有在同一频率。于是你就莫名其妙地开始讨厌它了。或者某一天,你听到
计划下的牺牲
我个人很喜欢给自己定下具体数量的目标,比如今天晚上我要看多少多少页的书,如果最后因为没看完就不开心,敷衍般也要凑到那个页数,然而第二天其实还要再往前倒退点重新开始看。 我也渐渐知道这种上纲上线的任务指标多半意味着敷衍、草草了事(某些国人最喜欢干这些了),定任务本来是件好事,但如果僵化地制定就没什么意思了,就是个面子工程
七月的时光
七月发生了好多事情,最早的时候去了夏令营,也是第一次接触除了江苏,陕西以外的985高校,确实名校毕竟有名校的风采,感觉整个格局,气氛都不一样,偶尔看到了中南的实验室,确实比起我们学校来要强,环境,人员,氛围,看了一眼都感觉不一样。所以,要去个好的学校读研呀。 最遗憾的是,飞了9年的New Horizon,我却不能关注它
大学,为什么我一直这么忙?
感觉我的大学一直处于忙碌,忙着上课,学习各种东西。我都一直在做什么呢? 大一的时候都比较认真,不光是学习上,对很多未知的事情都保持敬畏、探索的心。大一上老老实实学习着,没加入什么社团、组织,感觉比别人差了好多(无事恐惧症?),大一下虽然课程比较重,概念比较多,对于我这种上课上课就走神的人来说简直就是噩梦,但居然还是花了
大学中的一些学生
正值大三,现在的时候应该是对大学特别有感触的时候。趁此写写我所见的学生、老师,还有其他一些更多的真实的大学。 三年前走进学校,大家之间的区别可能存在,但肯定不会有现在的差别之大。之所以说是差别,而不是差距,应该是因为每个人来上大学之前的想法本来就不同,有人高考意外发挥好了,潜移默化地心底里有些放松自己,又离开父母,进入
走在归路上的一点思考
难得再来这种忙碌的单纯生活 晚上在路边一家店吃了份饭,突然觉得现在的生活真是很矛盾,忙碌,似乎整天没有时间休息,吃饭也变得很急,安安稳稳地吃完饭再继续干活似乎都是在浪费时间。但确实也很安逸,安逸的是,每天知道自己要去做什么,有什么没有完成,想怎样的办法去实现它。人活得很呆,很累,也可以说不累,不用想很多难以预料的社会性
大三的结束与开始
电脑反复中病毒,前段时间的重装系统暂时帮助度过了病毒危机,前几天突然开始又大量报毒,现在看来可能是移动硬盘和电脑交叉感染,这段时间也就弄了下博客,还是重新弄挺麻烦的,估计又得从头再来了。把电脑上的软件全卸了重装,估计得要几天时间慢慢恢复,慢慢来吧。以前最讨厌这种几天的大工程,做不完的感觉很是压抑,现在任务越来越难,应该
人各有志,从来就不是你堕落的理由
人各有志,从来就不是你堕落的理由 有些人就是喜欢用借口来狡辩自己的无能。 我也喜欢这样。事情做不好了就说自己没有全力以赴、没有细心,自己手头事情多来不及认真处理。比如写这篇文章,也是定下要求之后,磨了好几天才开始动手去做。但还好,我开始写了。 我听说过很多同学说不喜欢自己的专业。他们说高考的时候自己也什么都不知道,听家
快去做吧
我总是想得很多,做的很少 每天到床上之后,几乎总是会想很多,然后越想越睡不着,等实在想累了,可能就会睡着了。当时每次醒来之后却基本上都忘记了自己当时认为的,很正确、优秀的思考。不知不觉自己也对这种思考失去了信心,所谓该思考时不思考,不该思考时,却在思考。这大概不能称之为思考吧,应该叫乱想。 我总是追求很多,放弃很少 有
如果你想去做的话
少年,年轻是用来做你不敢的事,而不是做你会的事的呢。